carcass

Discord

carcass is a Python CLI tool for spinning up a network of proxied Minecraft servers with configurable parameters and plugins.

Useful for rapid testing of plugins that require a server network or that run on the proxy side.

Usage

To use carcass, install Python 3.10+ and run python ./carcass.py --eula true. Alternatively, you can execute the bundled Powershell script, create_network.ps1.

This will create a network of two PaperMC Minecraft servers (/alpha and /beta) connected to a Waterfall proxy (/proxy). You can then use the \.start_servers.ps1 script to start the servers (or use the individual Batch/Powershell scripts generated in each server/the proxy directory).

Arguments

You can pass various arguments to customize the network that will be spun up, including specifying the paths of plugins and preconfigured data folders to copy over.

ArgumentNameDescriptionExample
-h, --helpHELPPrint the help menu-h
-e, --eulaEULAAccept the Minecraft EULA-e true
-bt, --typeTYPESet the type of backend (Paper)-bt paper
-pt, --proxyPROXYSet the type of proxy (Waterfall)-pt waterfall
-b, --backendsBACKENDSList of backend names-b alpha beta gamma
-p, --ports, --backend-portsPORTSList of backend ports (order matters)-b 25566 25567 25568
-v, --version, --minecraft-versionVERSIONMinecraft version to use-v 1.19.2
-pv, --proxy-versionPROXY VERSIONProxy version group to use-v 1.19
-r, --ram, --backend-ramRAMRAM (in MB) to allocate to each backend-r 2048
-pr, --proxy-ramPROXY RAMRAM (in MB) to allocate the proxy-pr 512
-pp, --proxy-portPROXY PORTPort number to run the proxy on-pp 25565
-ph, --proxy-hostPROXY HOSTHostname to run the proxy with-ph localhost
-pn, --proxy-namePROXY NAMEName to call the proxy directory-pn proxy
-bp, --pluginsPLUGINSFile paths of backend plugin jars to copy in-bp path/to/a/plugin.jar also/another.jar
-bpf, --plugin-foldersPLUGIN FOLDERSFile paths of backend plugin data folders to copy-bpf plugin/data/folder/ and/another/
-pp, --proxy-pluginsPROXY PLUGINSFIle paths of proxy plugin jars to copy in-pp path/to/a/plugin.jar also/another.jar
-ppf, --proxy-plugin-foldersPROXY PLUGIN FOLDERSFile paths of proxy plugin data folders to copy-ppf plugin/data/folder/ and/another/
-o, --outputOUTPUTOutput directory; where the servers will be made-o ./servers/

I recommend writing your own simple script that use carcass to spin up a network of servers and then use the \.start_servers.ps1 script (of which you can pass an argument specifying the network directory to start) to start them.

License

carcass is licensed under Apache-2.0.

Carcass

minecraftToolpython
A Python CLI tool for quickly spinning up a network of proxied Minecraft servers
License
Apache-2.0