First Run

Now, you have installed MCDR, it’s time to run it for the first time

Note

The most common use of MCDR is to control a Minecraft server, so we also take this as the demonstrated use case here

Tip

To manage a Minecraft server with MCDR, it is recommended to have some basic understanding of common Minecraft servers

Which means, you should know:

  • The Minecraft servers: what they are, how to configure (one of) them

  • Start command of Minecraft server: what it is, what its arguments mean

  • Console of the server: what it prints, what command can you send to it

  • How to manage the server: configure, mods / plugins etc.

If you have not, Google is your friend

Prepare

To manage a Minecraft server with MCDR, you should have a well-configured Minecraft server

For example, this is the typical directory structure of a vanilla Minecraft server:

./
├── libraries/
├── logs/
├── versions/
├── world/
├── banned-ips.json
├── banned-players.json
├── eula.txt
├── ops.json
├── minecraft_server.jar
├── server.properties
├── usercache.json
└── whitelist.json

With this command to start it:

java -Xms1G -Xmx2G -jar minecraft_server.jar nogui

You can also use other servers, such as Fabric, Spigot, Paper, etc.

Tip

Configure and troubleshoot your server BEFORE you introduce MCDR. Otherwise, you can’t distinguish whether a problem is caused by MCDR or your server

MCDR was born as a daemon for common servers of Minecraft: Java Edition. Most plugins are predicated on that

Of course, if you don’t need to make use of the plugin ecosystem designed for Java Edition servers, you can run any programs you want with MCDR

Initialize

Let’s say you are going to start MCDR in a folder named my_mcdr_server. Then you can run the following commands to initialize the environment for MCDR:

cd my_mcdr_server
mcdreforged init

MCDR will generate its default structure like this:

my_mcdr_server/
 ├─ config/
 ├─ logs/
 │   └─ MCDR.log
 ├─ plugins/
 ├─ server/
 ├─ config.yml
 └─ permission.yml

Animated demo:


Configure

Server

Remember the server you prepared? Put it into the server folder. The directory structure should be something like this:

    my_mcdr_server/
    ├─ config/
    ├─ logs/
    │   └─ MCDR.log
    ├─ plugins/
    ├─ server/
++  │   ├─ ...
++  │   ├─ minecraft_server.jar
++  │   └─ server.properties
    ├─ config.yml
    └─ permission.yml

Config File

Then, edit the config.yml file to configure MCDR. You can find more information about this in Configuration

For most users, there are 4 parts of the configuration that you need to be aware of

Read each section carefully and make sure you fill in the correct values.

As a simple example, these are the ones you need to be aware of for a vanilla Minecraft 1.21 server with Java 21:

start_command: java -Dfile.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 -Xms1G -Xmx2G -jar minecraft_server.jar nogui

handler: vanilla_handler

encoding: utf8
decoding: utf8

If you’re confusing about why this command is much longer than we mentioned earlier, read the encoding, decoding section again

Run

Now, you should be able to launch MCDR, and it should start handling the server correctly

mcdreforged

An animated demo, configured as above:


Also, test MCDR in the game: