Terraria ยท Server setup

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

  1. 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.

  2. 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.

  3. Wait for install

    Vanilla and TShock install in ~60 seconds. tModLoader takes 2-3 minutes (bigger download). Console shows Terraria Server X.X.X.X when 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 logs
  • ServerPlugins/ โ€” 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

  1. Download the plugin .dll

    Most plugins live on the TShock GitHub or the Terraria-Plugins community. Popular ones: CreativePowers, EssentialsPlus, Bank, SurvivalCore, HousingRegions.

  2. Drop it into ServerPlugins/

    Via SFTP or the file manager. If the plugin ships a separate config file, it goes in tshock/.

  3. 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)

  1. Subscribe to the mods you want in your local Steam client (via tModLoader's in-game Mod Browser, which downloads from Workshop)
  2. Find the mods in your local tModLoader/tModLoader/Mods/ directory
  3. SFTP upload the .tmod files to the server's Mods/ directory
  4. Edit Mods/enabled.json on the server to list the mods you want active:
    [
      "CalamityMod",
      "ThoriumMod",
      "MagicStorageExtra",
      "RecipeBrowser"
    ]
  5. 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

  1. 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.

  2. Multiplayer โ†’ Join via IP

    Main menu โ†’ Multiplayer โ†’ Join via IP. Enter YOUR-SERVER-IP and the port (usually 7777). Enter the server password if you set one.

  3. 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.