How to set up a Terraria server from scratch
Three flavours covered: vanilla Terraria, TShock (adds permissions, plugins, and admin tooling), and tModLoader (for Calamity / Thorium / other overhauls). World generation, config file, admin commands, plugin install, and the errors you'll actually hit.
What you need first
- An active Terraria plan on Fatality Servers โ see our Terraria hosting plans.
- A Steam copy of Terraria on every player's PC โ dedicated servers are separate from the client, but clients still need the game.
- RAM: 2 GB is plenty for vanilla 8-player; 4 GB for modded with Calamity; 6-8 GB for overhauls with 10+ players.
- An SFTP client (FileZilla, WinSCP) if you plan to upload an existing world or hand-edit configs. Panel's file manager works for everything else.
Pick your flavour โ vanilla, TShock, or tModLoader
The first decision. They're mutually exclusive โ pick one per server, can't mix.
Vanilla Terraria server
Unmodified dedicated server from Re-Logic. No plugins, no permissions, no admin tooling beyond /help. Best for: small friend SMPs (4-8 people) where nobody needs to ban anyone.
TShock (recommended for most)
A fork of the Terraria server with a C# plugin framework on top. Adds: group-based permissions, a huge command set, bans / kicks / mutes, regions (protected zones), SSC (server-side characters), and 200+ community plugins. Vanilla client connects to TShock servers unmodified. Best for: any public or semi-public server.
tModLoader
The modded Terraria engine. Required for overhauls like Calamity Mod, Thorium, Starlight River, Magic Storage, and hundreds of smaller mods. Both server and client must run tModLoader (not vanilla). No TShock โ use the vanilla-style admin commands. Best for: modded runs.
Can I combine TShock + tModLoader? There's a community project called tModLoader+TShock (tShockCore-compatible) but it lags behind both upstreams and isn't well-supported. In practice, pick one. Modded runs pick tModLoader; anything else picks TShock.
Deploy the server
-
Pick the Terraria template at checkout
On our Terraria hosting page, pick a plan sized for your slot count and flavour. During setup, the panel asks which variant โ vanilla, TShock, or tModLoader.
-
Select the version
Vanilla and TShock both lock to a specific Terraria build (current is 1.4.4.9). tModLoader ships in two channels: Stable (matches the mods majority of players have) and Preview (cutting-edge). Pick Stable unless you're beta-testing.
-
Wait for install
Vanilla and TShock install in ~60 seconds. tModLoader takes 2-3 minutes (bigger download). Console shows
Terraria Server X.X.X.Xwhen ready, followed by the world-generation prompts.
Generate or upload a world
On first boot, the server asks for a world. You have three options:
Option A โ Generate a new world on the server
Panel console will prompt interactively (or our config wizard handles it pre-boot). Pick:
- Size โ Small (4200ร1200), Medium (6400ร1800), Large (8400ร2400). Medium is the most common; Large is for 8+ players who plan long runs.
- Difficulty โ Normal, Expert, Master, Journey. Expert is the community default for PvE servers.
- Evil biome โ Corruption or Crimson. Aesthetic / mechanical difference; pick whichever your group prefers.
- World name and seed โ leaving seed blank gives a random world. Specific seeds unlock named worlds (
for the worthy,not the bees,drunk world, etc.).
Generation takes 30-60 seconds for Small, 2-3 minutes for Large.
Option B โ Upload an existing world
Got a world from single-player or another host? Copy the .wld file (and optionally the matching .twld if you're running TShock) via SFTP to:
Worlds/ (vanilla / tModLoader)
tshock/worlds/ (TShock, depending on build)
Restart the server, select that world at the prompt.
Option C โ Import from a friend's Terraria Worlds folder
Default Terraria single-player world location:
Windows: %USERPROFILE%\Documents\My Games\Terraria\Worlds\
Linux: ~/.local/share/Terraria/Worlds/
Back up before uploading an old world. Loading a world generated on an older Terraria version onto a newer server usually works but occasionally produces weird artefacts (missing NPCs, invalid tiles). Keep a copy of the original before your first server boot.
Vanilla serverconfig.txt
Vanilla Terraria servers read from serverconfig.txt in the server root. This file is auto-generated on first run; the lines that matter:
world=Worlds/myworld.wld # Path to the world file
autocreate=2 # World size if auto-generating: 1=Small, 2=Medium, 3=Large
worldname=My Server # Display name if auto-generating
difficulty=1 # 0=Normal, 1=Expert, 2=Master, 3=Journey
maxplayers=8 # Slot count
port=7777 # Default port (don't change on Fatality plans)
password= # Join password (blank = public)
motd=Welcome to the server # Shown on connect
banlist=banlist.txt # Path to ban list
secure=1 # Enables basic anti-cheat
seed= # World seed for auto-generation
Vanilla admin is a single keyword: whoever types /op <password> where <password> matches what you've set via server console is elevated. It's extremely barebones โ which is why most admins run TShock instead.
TShock โ admins, groups, and commands
TShock is where Terraria server admin actually gets usable. It ships with an entirely different config system and a big command library.
Where TShock config lives
Under the tshock/ directory:
tshock/config.jsonโ server behaviour (rates, anti-cheat, auto-save)tshock/sscconfig.jsonโ Server-Side Character config (if enabled)tshock/tshock.sqliteโ SQLite DB holding users, groups, bans, regions (default; MySQL supported)tshock/logs/โ rolling server logsServerPlugins/โ drop plugin.dlls here
Create your first admin account
Once the server is running, open the console and run:
/user add <username> <password> superadmin
That creates a user in the superadmin group (full permissions). In-game, any player can now log in with:
/login <username> <password>
Groups and permissions
TShock ships with default groups: superadmin, trustedadmin, owner, admin, trustedplayer, default, guest. Each group inherits from a lower one.
Most-used commands for permission management:
/group list โ List all groups
/group add <name> <permissions> โ Create a new group
/group addperm <group> <permission> โ Grant a permission
/user group <username> <group> โ Move a user into a group
/user password <username> <newpass> โ Reset someone's password
Full permission reference: check tshock/docs/ in your server files, or TShock's wiki at tshock.readme.io.
Useful in-game admin commands
/kick <player> <reason> โ Boot a player
/ban add <player> <reason> โ Ban (by account + IP + UUID)
/mute <player> <minutes> โ Silence chat
/tp <player> โ Teleport to a player
/tphere <player> โ Teleport a player to you
/save โ Force world save
/time set <time> โ Set time of day (noon, night, midnight)
/rain start|stop โ Control weather
/reload โ Reload configs without restart
/worldinfo โ World size, seed, difficulty, hardmode status
Installing TShock plugins
-
Download the plugin
.dllMost plugins live on the TShock GitHub or the Terraria-Plugins community. Popular ones: CreativePowers, EssentialsPlus, Bank, SurvivalCore, HousingRegions.
-
Drop it into
ServerPlugins/Via SFTP or the file manager. If the plugin ships a separate config file, it goes in
tshock/. -
Restart the server
Plugins load on startup. Check the console for
Loaded plugin: <name>lines and any errors.
tModLoader โ Calamity, Thorium, and friends
If you want overhaul mods, this is the path. tModLoader servers need tModLoader clients โ vanilla Terraria clients can't connect.
Install mods on the server
Two options:
Steam Workshop sync (easiest)
- Subscribe to the mods you want in your local Steam client (via tModLoader's in-game Mod Browser, which downloads from Workshop)
- Find the mods in your local
tModLoader/tModLoader/Mods/directory - SFTP upload the
.tmodfiles to the server'sMods/directory - Edit
Mods/enabled.jsonon the server to list the mods you want active:[ "CalamityMod", "ThoriumMod", "MagicStorageExtra", "RecipeBrowser" ] - Restart the server
Direct mod download (server-only)
If you don't own Terraria locally, you can pull mods directly from the Mod Browser via the server console:
tModLoader> modbrowser
# (follow prompts to find & download mods by name)
Popular overhauls
- Calamity Mod โ biggest content overhaul. New bosses, biomes, weapons, classes. Stable, massive community.
- Thorium Mod โ second-biggest. New classes (Healer, Bard, Throwing), bosses, biomes. Plays well alongside Calamity.
- Starlight River โ art-focused overhaul with hand-crafted bosses. Lower scope than Calamity.
- Magic Storage (Extra) โ storage quality-of-life, not an overhaul. Install with any pack.
- Recipe Browser โ searchable recipe UI. Ship it on every modded server.
- Boss Checklist โ UI element tracking bosses you've defeated. Same deal โ ship by default.
Player mods must match the server exactly. tModLoader enforces an identical mod list. Share the exact set of .tmod files with your community, or use the in-client Server Mod Browser sync option โ but every client needs a local copy installed before they can connect.
Boosting RAM on overhaul packs
Calamity + Thorium + 10-20 QoL mods on a Large world will push 3-4 GB RAM usage at idle. During hardmode boss fights with multiple players and particle-heavy attacks, spikes to 6+ GB. Plan accordingly โ our Community tier and up is the safe default for Calamity servers.
Connect and test
-
Launch the correct client
Vanilla server โ vanilla Terraria client. TShock server โ vanilla Terraria client (TShock is transparent to clients). tModLoader server โ tModLoader client with the matching mods installed.
-
Multiplayer โ Join via IP
Main menu โ Multiplayer โ Join via IP. Enter
YOUR-SERVER-IPand the port (usually7777). Enter the server password if you set one. -
Log in as admin (TShock)
In chat, run:
/login <username> <password>You're now elevated and can run admin commands.
Common errors and fixes
"Server did not respond" / can't connect
TCP port 7777 needs to be reachable. Our panel opens it by default; if you've manually firewalled the VPS, open it. Double-check the server console shows Listening on port 7777.
"Old client or server" error
Client and server are on different Terraria versions. Update the client through Steam, or roll the server back to the version the player is on (panel โ Settings โ Version).
"Missing mod" / "Mod version mismatch" (tModLoader)
The client's .tmod file set doesn't match the server's. Share your exact mod list โ the easiest way is to zip up tModLoader/tModLoader/Mods/ and distribute it to your community with clear install instructions.
TShock says "Password is incorrect" but I'm sure it's right
TShock passwords are case-sensitive and use the account created via /user add, not serverconfig.txt. If you've forgotten it, reset from console: /user password <username> <newpass>.
World won't load, "Invalid world file"
The world file is corrupt or generated by a newer Terraria version than the server. Options:
- Panel โ Backups โ roll back to the last good snapshot (daily auto-snapshots + 30-day retention ship standard)
- Update the server to match the world's source version
- As a last resort, generate a fresh world and transfer players' inventories via SSC or a plugin
Plugin won't load, System.IO.FileNotFoundException
Plugin was compiled against a different TShock API version than what you're running. Check the plugin's README for the supported TShock version range. Update either the plugin or TShock.
Stuck on something specific? Email support with your server IP, flavour (vanilla / TShock / tModLoader), and the last 50 lines of your console โ we'll usually have an answer within the hour.