As a disclaimer, I am new to github and didn't know how to correctly fork from rfvgyhn/tmodloader. All credit to him for all of this work, I just updated it to the newest version of tModloader
tModLoader dedicated server
Terraria server 1.3.5.3 with tModLoader v0.11.8.
Supports graceful shutdown (saves when the container receives a stop command) and also supports autosaving every 10 minutes (configurable, see Environment Variables below).
docker run -d --name tmod -p 7777:7777 -v /etc/localtime:/etc/localtime:ro codyruggiero/tmodloader-docker
docker run -d --name tmod -p 7777:7777 -v /etc/localtime:/etc/localtime:ro -v $(pwd)/data:/terraria codyruggiero/tmodloader-docker
You can mount a config file. This allows you to specify server and world settings. If you don't specify one, a default will be used. See wiki for file format details.
docker run -d --name tmod -p 7777:7777 -v /etc/localtime:/etc/localtime:ro -v $(pwd)/data:/terraria -v $(pwd)/config.txt:/terraria-server/config.txt codyruggiero/tmodloader-docker
If you want to use the server's mod browser to install and enable mods, run an interactive container with the setup
parameter appended to the end.
docker run -it --rm -v $(pwd)/data:/terraria codyruggiero/tmodloader-docker setup
After setting up your mods, and optionally setting up a world, press Ctrl+C
to exit the container. Then you can use the normal docker command to run your server. Note that you'll see the mods and the enabled.json
files appear in your mods folder on the host.
You can also skip this step and directly download your mods. Place the mod files in your data/ModLoader/Mods
folder and make sure to enable them in the data/ModLoader/Mods/enabled.json
file.
This container is designed to be run in headless mode. This means you you can't manually type commands like you would on a normal Terraria server. You can inject commands from the host machine though. For example, assuming your container is named tmod:
docker exec tmod inject "kick player1"
docker exec tmod inject "say NOT THE BEEES!!!"
Name | Default Value | |
---|---|---|
TMOD_SHUTDOWN_MSG | Shutting Down! | Message that appears when server is shutting down |
TMOD_AUTOSAVE_INTERVAL | */10 * * * * | Cron expression that specifies how often to save the world. Default is every 10 minutes. |
TMOD_IDLE_CHECK_INTERVAL | Disabled | Cron expression that specifies how often to check if no players are online. If none are online, the server will save the world and exit. This can be useful if your server costs are based on CPU usage. Pairs well with game-manager. |
TMOD_IDLE_CHECK_OFFSET | 0 | This allows for sub-minute resolution if the idle check interval is specified |
docker run -d --name tmod \
-e TMOD_SHUTDOWN_MSG="Goodbye" \
-e TMOD_AUTOSAVE_INTERVAL="*/15 * * * *" \
-e TMOD_IDLE_CHECK_INTERVAL="*/1 * * * *" \
-e TMOD_IDLE_CHECK_OFFSET=10 \
-p 7777:7777 \
-v /etc/localtime:/etc/localtime:ro \
codyruggiero/tmodloader-docker
version: '3'
services:
tmod:
image: 'codyruggiero/tmodloader-docker:latest'
container_name: 'tmod'
ports:
- '7777:7777'
volumes:
- /etc/localtime:/etc/localtime:ro
- ./data:/terraria
- ./config.txt:/terraria-server/config.txt
environment:
- TMOD_SHUTDOWN_MSG="See ya!"