App & Framework Hosting is now generally available in all 30+ regions.

Game Servers

How to Set Up a tModLoader Server for Modded Terraria

Applies to: Terraria server hosting

Modded Terraria does not run on the vanilla server. tModLoader — the free, official-on-Steam mod loader — ships its own dedicated server binary, its own mod folders, and its own rules about versions. This guide sets up a tModLoader server from scratch: server files, getting .tmod files onto it, the enabled.json that actually switches mods on, and the memory reality of packs like Calamity.

01Get the tModLoader server files

First rule: the vanilla TerrariaServer binary cannot load mods, and a tModLoader client cannot join it modded. You need the tModLoader server, which comes with the tModLoader install itself. Two ways to get it on a server machine:

# SteamCMD — tModLoader's dedicated app ID is 1281930
steamcmd +login anonymous +app_update 1281930 validate +quit

Or download the release archive from the tModLoader GitHub releases page and unzip it. Either way you start the server with the provided script — start-tModLoaderServer.sh on Linux, start-tModLoaderServer.bat on Windows — not the vanilla server executable. Note that tModLoader tracks a specific Terraria version and updates monthly; the version you install here is the version your players must match (step 5).

02Add the mods to the server

Mods are .tmod files, distributed through the Steam Workshop. The server needs its own copies; there are two practical routes:

  • Workshop download on the server: steamcmd +workshop_download_item 1281930 <workshop-id> for each mod (the ID is in the mod's Workshop URL), or point the server's config at a steam_workshop_folder. The start script can also install a Workshop collection by ID, which is the tidiest way to manage a pack.
  • Copy from a client: on a PC that already runs the mods, grab the .tmod files from the tModLoader Mods folder (Documents\My Games\Terraria\tModLoader\Mods on Windows, plus the Steam workshop content folder for Workshop-installed mods) and upload them to the server's Mods folder.

03Enable the mods in enabled.json

Having a .tmod file present is not enough — the server only loads mods named in enabled.json, which sits in the same Mods folder. It is a plain JSON array of internal mod names:

[
  "CalamityMod",
  "MagicStorage",
  "BossChecklist"
]

The internal name is not always the display name (Calamity's is CalamityMod, with no spaces — it matches the .tmod filename). The easy route: set up and test the exact mod list on your own client, then copy your client's enabled.json to the server verbatim.

04Configure and start the server

Run the start script once and it will walk you through world creation interactively. For unattended running, set serverconfig.txt instead:

world=/path/to/ModdedWorld.wld
autocreate=3
port=7777
maxplayers=8
password=secret
modpath=/path/to/Mods

Create the world with the mods enabled — mods that add ores, biomes or structures need to generate them into the world. Enabling a content mod on a world generated without it works, but the new world-gen content will be missing or thin. Modded worlds save as .wld plus a .twld sidecar holding the modded data; keep the pair together when moving or backing up worlds.

05Match client and server versions, then connect

tModLoader multiplayer requires the client and server to agree twice over: the tModLoader version itself, and the version of every enabled mod. The good news is mod sync is built in — when a player joins, the server offers any mods they are missing and the client downloads them automatically. Version mismatches are the part that bites: tModLoader updates monthly, and if Steam updates players' clients before the server is updated (or vice versa), joins fail until both sides match. Update the server and clients together, or pin the mod list and update on a schedule your group knows about.

06Give it enough memory

Vanilla Terraria is famously light; modded is not. Every loaded mod adds content, textures and code to the server process, and big content mods multiply memory use several times over. As a working rule: 4GB is the floor for tModLoader with a light mod list, and a serious pack — Calamity, Thorium, Fargo's plus the usual quality-of-life stack — wants 6GB or more, especially with a larger world and more players. If the server is killed mid-session or stalls during world load, memory is the first suspect.

Run it on HostPanel: our Terraria server hosting plans switch between vanilla and tModLoader from the panel and serve mods to joining players automatically.

Troubleshooting

Players get a version mismatch when joining

Client and server are on different tModLoader releases — usually because Steam auto-updated one side after a monthly release. Update the server to current and have players restart Steam/tModLoader; if you need to stay on an older version, tModLoader's Steam betas offer previous monthly branches so everyone can pin the same one.

Mods are in the folder but the server loads none of them

enabled.json is missing, invalid JSON, or lists display names instead of internal names. Check the server console during startup — it prints which mods it found and enabled — and copy a known-good enabled.json from a client that runs the pack.

The server crashes or is killed while loading mods

Out of memory. Mod loading is the peak memory moment, so a server that dies before the world even loads is under-provisioned — move up from 4GB, or trim the mod list. On Linux, dmesg showing the OOM killer confirms it.