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.
- 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. - Get your mods: in tModLoader open Workshop → Download Mods, subscribe to what you want, then turn them on in Workshop → Manage Mods and reload.
- 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. - 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
-worldat the.wldfile, never the.twldnext to it. Use-steam -lobby friendsinstead of-nosteamif 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
- Download
docker-compose.ymland theDockerfilefrom DedicatedServerUtils and put them next to thetModLoaderfolder. - Set your UID and GID in
docker-compose.yml(runidto see them) and make sure the folder is owned by that user:chown -R UID:GID tModLoader. - Start it with
docker compose up -d. The server listens on port 7777. - 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". - 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.
- In tModLoader: Workshop → Mod Packs → Save Enabled as New Mod Pack.
- Click Open Mod Pack Folder and go into the folder named after your pack.
- Copy
install.txt(the Workshop IDs) andenabled.json(what to switch on) into the server’sModsfolder. - Install them:
install-modswith the script,docker compose buildand thendocker compose up -dwith Docker, or on Windows simply enable the pack’s mods in tModLoader before starting the server. - 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.wldandMyWorld.twld. The.twldholds 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.
- Stop the server and copy both the
.wldand.twldfiles. tModLoader also keeps zipped world backups in theWorlds\Backupsfolder of its save directory. - Update: Steam does it on Windows;
./manage-tModLoaderServer.sh installordocker compose buildon Linux. - If a mod hasn’t been updated for the new tModLoader yet, disable it until it is.
- 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.
