|
tModLoader v2026.03
A mod to make and play Terraria mods
|
This directory contains utilities for a dedicated server on Linux or Docker
You can track the status of it here. A user claims to have a workaround in this issue, but as they have not posted the solution there is currently no known way to run any TML applications on ARM
Server Configuration
Updating the Management Script
Both the Docker and Management script require the same folder structure, so make sure it's setup properly before installing. Here is what is should look like:
install.txt and enabled.json are needed for any mods you wish to install from the Steam Workshop. The steam workshop does not use mod names to identify mods, so a modpack should be made to install mods from the workshop
Save Enabled as New Mod PackOpen Mod Pack FolderMods folder and copy install.txt and enabled.json file into it./manage-tModLoaderServer.sh install-mods to install the mods on your serverdocker from your package manager or Docker's Official Pagedocker compose version. If the command errors, your manager still uses V1 and will need to additionally install the docker-compose package. All commands below assume Compose V2 is installed, so if you have V1 replace any docker compose commands with docker-composedocker-compose.yml with your GID and UID. These can be found by running id, and generally default to 1000tModLoader folder have this same UID/GID. This can be set by running chown -R UID:GID tModLoaderTMLVERSION arg to get a specific tModLoader versiondocker compose up -d. This command will create the Mods and Worlds directories if they don't already existdocker attach tml. To detach from the console press Ctrl-P Ctrl-Q to avoid shutting down or Ctrl-C to detach and shutdown the serverTo run commands inside the container, run docker exec -it tml execute "YOUR COMMAND". An example hello world would be docker exec -it tml execute "say Hello World!". The quotes are required around the entire command because tmux can only accept one argument to be passed, otherwise the command is sent as a single word without spaces
To update, download the newest container and rebuild it using docker compose build to update tModLoader. Mods will be updated as well. If the container doesn't rebuild you can force rebuilding by running docker compose build --no-cache
The manage-tModLoaderServer.sh script can be used to install tModLoader either directly from the GitHub release or from SteamCMD. The script is made to run fully standalone, so just download it to your server and run it. This is not the recommended way to install the dedicated server, and typically is only used to access the server's files
To explore all the options before continuing, run ./manage-tModLoaderServer.sh -h to get a list of all environment variables and command line parameters
STEAMCMDPATH environment variable to the management script./manage-tModLoaderServer.sh install-tml --username your_steam_username and enter any password/2fa if necessary. tModLoader will install to the server directory in your installation folder./manage-tModLoaderServer.sh install-tml --github. This will install the latest GitHub release, which is the same version as released on Steamtmlversion.txt file from a modpack or pass the TMLVERSION environment variable with a specific version, e.g. v2022.06.96.4./manage-tModLoaderServer.sh install-modsinstall.txt is missing, and no mods will be enabled if enabled.json is missing. You will need a Mods/enabled.json to contain all Mods that you want enabled, including local mods./manage-tModLoaderServer.sh start. Be sure to pass in --folder again if you used a custom location during installationNOTE: install-mods and install-tml can be run together with the install command, e.g. ./manage-tModLoaderServer.sh install ...
./manage-tModLoaderServer.sh install will update both TML and installed mods. To update just mods, run the install-mods command. To only update TML, run the install-tml command
To run tModLoader without needing any input on startup (such as from an init system), copy the example serverconfig.txt and change the settings how you like. Key options are defined below, and other options can be found on the Terraria wiki
worldname changes the default world name when creating a new world using autocreate You do not need to include .wld in your world name. This setting will not work with an existing world, see the world option for an existing worldworld sets the exact path to an existing or new terraria world, ex. /path/to/your_world.wld. For Docker installations, the world path must follow /tModLoader/Worlds/your_world.wldautocreate=1 will enable autocreating, which creates a new world at your provided location if one does not already existIf an update for manage-tModLoaderServer.sh is available, a message will be printed letting you know one is available. It can be updated using ./manage-tModLoaderServer.sh update-script. An outdated script may contain bugs or lack features, so it is usually a good idea to update when possible