tModLoader Server: How to Add Mods to a Terraria Server

To add mods to a Terraria server, you run a tModLoader server: the vanilla TerrariaServer and TShock can’t load content mods. tModLoader is free on Steam for anyone who owns Terraria, and its install folder includes start-tModLoaderServer.bat (.sh on Linux and Mac). Load the server with the same mods your players have enabled, give it more RAM than vanilla, and keep its tModLoader version matched to theirs. Here is each step, on Windows, Linux and Docker.

Vanilla, TShock or tModLoader: which server runs mods?

Only tModLoader runs content mods: new items, bosses, biomes and whole overhauls like Calamity. The vanilla server runs plain Terraria. TShock adds server-side plugins such as accounts, protected regions and admin commands, but no new content. tModLoader is effectively a separate game, with its own worlds folder, and a tModLoader client won’t connect to a vanilla server.

Server What it runs What players need
Vanilla TerrariaServer Terraria 1.4.5.8, no mods Normal Terraria
TShock 6.2.1 Vanilla plus server plugins Normal Terraria
tModLoader server Mods from the tModLoader Workshop, on a Terraria 1.4.4 base tModLoader and the same mods

That 1.4.4 base matters: tModLoader’s stable releases haven’t moved to 1.4.5 yet, so 1.4.5 items and seeds aren’t in modded worlds. Pick vanilla or modded before you build the world: a world saved by vanilla 1.4.5 won’t open in tModLoader yet, and a modded world loses its modded tiles and items if you take it back to vanilla.

How to start a Terraria tModLoader server on Windows

Install tModLoader from Steam, enable the mods you want, then run start-tModLoaderServer.bat from the tModLoader install folder. It asks whether to enable Steam multiplayer, which world to load, then max players, port, port forwarding and a password. Put -nosteam and -world in your own .bat to skip the questions and boot straight into a world.

  1. Install tModLoader from Steam (you need Terraria on Steam). It lands in C:\Program Files (x86)\Steam\steamapps\common\tModLoader. GOG owners install it by hand in a folder next to the Terraria install.
  2. Get your mods: in tModLoader open Workshop → Download Mods, subscribe to what you want, then turn them on in Workshop → Manage Mods and reload.
  3. Run start-tModLoaderServer.bat. Choose whether Steam multiplayer is on (friends, friends of friends, or private), let the mods load, pick a world, then answer the max players, port (7777 by default), port forwarding and password prompts.
  4. Skip the prompts next time with a .bat of your own:
    start-tModLoaderServer.bat -nosteam -world "C:\Users\YOU\Documents\My Games\Terraria\tModLoader\Worlds\MyWorld.wld"

    Point -world at the .wld file, never the .twld next to it. Use -steam -lobby friends instead of -nosteam if your group joins through Steam.

Just playing with a couple of friends while you’re online? tModLoader also has Host & Play, which runs the modded world inside your game. It closes when you quit, like vanilla.

How to set up a tModLoader dedicated server on Linux or Docker

On Linux, tModLoader’s DedicatedServerUtils give you two routes: a Docker container, which the project recommends, or the manage-tModLoaderServer.sh script, which installs tModLoader from SteamCMD or GitHub. Both expect the same folder layout, with a Mods folder for install.txt, enabled.json and any .tmod files, plus a Worlds folder. ARM machines aren’t supported.

tModLoader/
├── Mods/
│   ├── enabled.json
│   ├── install.txt
│   └── mymod.tmod        (optional, manual mods)
├── Worlds/
│   ├── MyWorld.wld
│   └── MyWorld.twld
└── serverconfig.txt      (optional)

Docker

  1. Download docker-compose.yml and the Dockerfile from DedicatedServerUtils and put them next to the tModLoader folder.
  2. Set your UID and GID in docker-compose.yml (run id to see them) and make sure the folder is owned by that user: chown -R UID:GID tModLoader.
  3. Start it with docker compose up -d. The server listens on port 7777.
  4. Open the console with docker attach tml, and leave it with Ctrl-P Ctrl-Q (Ctrl-C stops the server). Send one command without attaching: docker exec -it tml execute "say Server restarting in 5 minutes".
  5. Update tModLoader and mods by rebuilding: docker compose build.

Management script

./manage-tModLoaderServer.sh install-tml --github      # or: install-tml --username yoursteamname (SteamCMD)
./manage-tModLoaderServer.sh install-mods
./manage-tModLoaderServer.sh start

Later, ./manage-tModLoaderServer.sh install updates tModLoader and the mods together. On GitHub installs, a tmlversion.txt from your mod pack pins a specific tModLoader version if the pack needs an older one.

How to add mods to the server: install.txt and enabled.json

The Steam Workshop knows mods by ID, not by name, so a server installs Workshop mods from a mod pack. In tModLoader, save your enabled mods as a mod pack, open its folder and copy install.txt and enabled.json into the server’s Mods folder. Hand-downloaded .tmod files go in the same folder, but they only load if enabled.json lists them too.

  1. In tModLoader: Workshop → Mod Packs → Save Enabled as New Mod Pack.
  2. Click Open Mod Pack Folder and go into the folder named after your pack.
  3. Copy install.txt (the Workshop IDs) and enabled.json (what to switch on) into the server’s Mods folder.
  4. Install them: install-mods with the script, docker compose build and then docker compose up -d with Docker, or on Windows simply enable the pack’s mods in tModLoader before starting the server.
  5. Start the server and read the console. A mod that fails to load names itself there.

Two serverconfig.txt lines help on hosted or headless servers: modpath= sets the folder the server loads .tmod files from, and modpack= loads only one pack’s mods. The launch option -tmlsavedirectory moves the whole save folder (worlds and mods) somewhere else.

What every player needs to join a modded Terraria server

Everyone who joins needs tModLoader, the same tModLoader version as the server, and the same mods. A friend on vanilla Terraria can’t connect at all. A friend one tModLoader update behind gets “You are not using the same version as this server.” Share your mod list so everyone subscribes to the same mods, and tell the group before you update the server.

  • Characters and worlds are separate from vanilla. tModLoader saves to Documents\My Games\Terraria\tModLoader. Use Migrate individual players… in its player and world menus to bring vanilla ones over.
  • Worlds from a newer Terraria won’t open. A vanilla 1.4.5 world shows “(LaterVersion)” in tModLoader until tModLoader catches up.
  • Moving a modded world to the server? Copy both MyWorld.wld and MyWorld.twld. The .twld holds the modded data.

Calamity and big mod lists: how much RAM?

On a Terraria server with mods, memory use is mostly the mods. A handful of small mods is a good fit for 6 GB, and Calamity or a long list of content mods is where 8 GB or more makes sense. If the server throws OutOfMemoryException, tModLoader’s advice is to cut down on large mods or use a smaller world. Vanilla, for comparison, runs on 2–4 GB.

To see which mods weigh the most, turn on Show Mod Memory Estimates in Settings → tModLoader Settings, restart tModLoader, and the Mods menu shows a memory graph per mod. It measures your game rather than the server, but the heavy mods are heavy on both. Your own PC needs headroom too: tModLoader lists 6 GB as its client minimum. Renting instead? Terraria server hosting on GameTeam changes RAM in one click, so you can start at 6 GB and go up when the mod list grows.

Keeping a modded server updated

tModLoader ships a new stable version near the start of each month, and Steam updates your players’ copies on its own. Update the server the same day or nobody can join. Back up the world first, because mods can break saves. Then update tModLoader and the mods, start the server and read the log before you invite everyone back.

  1. Stop the server and copy both the .wld and .twld files. tModLoader also keeps zipped world backups in the Worlds\Backups folder of its save directory.
  2. Update: Steam does it on Windows; ./manage-tModLoaderServer.sh install or docker compose build on Linux.
  3. If a mod hasn’t been updated for the new tModLoader yet, disable it until it is.
  4. Keep the server on the stable branch unless the whole group has switched to preview.

tModLoader server troubleshooting

When a modded Terraria server misbehaves, the cause is almost always a version mismatch or a broken mod, and the logs say which. The server writes server.log to the tModLoader-Logs folder in the install directory. Read it first. The table covers the messages people hit most and what to do about each one.

Symptom Likely cause Fix
“You are not using the same version as this server.” tModLoader versions differ, or a vanilla server is running on the same port Update the side that’s behind; make sure only the modded server uses 7777
Mods get disabled when you join your own server A mod errors on the server side Find the mod named in server.log and disable it
Stuck on “Connecting…” Usually a badly behaved mod Try a fresh player and world, watch the server console for errors
Stuck on “Found Server” Another program holds port 7777 (ASUS Armoury Crate is a known one) Close it, or start the server on another port
OutOfMemoryException Too many large mods for the RAM Fewer big mods, a smaller world, or more RAM
Mods uploaded but nothing changes Not listed in enabled.json, or the server reads another modpath Rebuild the pack’s enabled.json; check modpath=
World shows “(LaterVersion)” It was saved by a newer Terraria than tModLoader supports Wait for a tModLoader update, or use an older backup

Basic connection problems (IP addresses, port 7777, firewalls) work the same as on vanilla, and the Terraria dedicated server guide covers them.

The easy way: a modded server that keeps itself matched

On Terraria server hosting from GameTeam you pick the tModLoader build, add RAM in one click when your mod list grows, and pay per GB from $0.49/GB a week with unlimited slots. There’s no SteamCMD, Docker or port forwarding to set up.

The AI copilot sets up the tModLoader build, keeps the server’s mod list matched, and reads the log when a join fails. Ask it “my friend gets You are not using the same version as this server, what’s wrong?” and it tells you which side is behind. For console and TShock commands, see Terraria server commands.

FAQ

Can you add mods to a vanilla Terraria server?

No. The vanilla server only runs plain Terraria. Content mods need a tModLoader server, and every player needs tModLoader too.

Is tModLoader free?

Yes. It’s a free app on Steam for anyone who owns Terraria on Steam. GOG owners install it manually next to Terraria.

Can I put my single-player modded world on a server?

Yes. Copy the .wld and .twld files from Documents\My Games\Terraria\tModLoader\Worlds into the server’s worlds folder and point world= (or -world) at the .wld.

Can I run Calamity on a Terraria server?

Yes, on a tModLoader server with Calamity in the mod pack and every player running it too. Start at 8 GB of RAM and add more if you stack other big mods on top.

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *