Skip to main content

Minecraft Prep and Install

Client Setup (Java + Online)

  1. Download Java
  2. Download OptiFine the latest version.
  3. On the official Minecraft client, go add a new installation and match the version with OptiFine.
  4. Download and try the official version, then install OptiFine with Java.
  5. Under Settings -> Keep the Launcher open while games are running

Client Setup (Java + Offline)

Use the client PollyMC to enable offline play.

 

Docker Server Setup

Docker-compose for minecraft server

version: "3.9"
services:
  minecraft:
    image: marctv/minecraft-papermc-server:latest
    restart: unless-stopped
    container_name: mcserver
    environment:
      - MEMORYSIZE=4G
      - PAPERMC_FLAGS=""
      - PUID=1000
      - PGID=1000
    volumes:
      - ~/docker/minecraft:/data:rw
    ports:
      - 25565:25565
      - 19132:19132
    stdin_open: true
    tty: true

This downloads the latest version of Minecraft, to use another PaperMC version, need to build the image from scratch.

Warning: PaperMC cannot be downgraded, only newerversion of PaperMC can be installed after first run.

git clone https://github.com/mtoensing/Docker-Minecraft-PaperMC-Server
# go edit the "ARG version=1.xx.x" to the correct version
docker build -t marctv/mcserver:1.xx.x

Folders and Plugins

Plugins are located in folder ./plugins some plugins have .yml files. To update or download plugins, use scp, wget on the server or VSCode.

The world folder consists of the save data. It is separated into world, nether, the_end.

Before starting the server, the eula.txt must have eula=true.

bukkit and spigot.yml in the root folder are configuration files for PaperMC.

Rcon Commands

To access the rcon-cli, use docker attach mcserver, to exit, use Ctrl-P and Q, if using VSCode may need to edit keyboard shortcut.

Editing VSCode Shortcut

Press Ctrl-Shift-P and search for keyboard shortcut json. 

[
    {
        "key": "ctrl+p",
        "command": "ctrl+p",
        "when": "terminalFocus"
    },

    {
        "key": "ctrl+q",
        "command": "ctrl+q",
        "when": "terminalFocus"
    },

    {
        "key": "ctrl+e",
        "command": "ctrl+e",
        "when": "terminalFocus"
    }

]