Table of Contents

Dedicated Server Settings

Server hosting for TTT is still early and subject to change. This page documents the current dedicated-server setup as of 5/14/26.

This page does not explain how to install or start a baseline s&box dedicated server. For general s&box dedicated server setup, see:

s&box Dedicated Servers

How to make a s&box server

For the easiest server hosting, your best option is using physgun. You can even get 30% off with code “TTT”!

Basics

Live package ident:

thieves.terrortown

Native startup map:

Choose the startup map with the native s&box launch command. The map ident after the game ident is the boot map. TTT also uses that boot map as the empty-server reset map.

Launch Example

Typical dedicated launch shape (replace ports and map with your values):

-headless +game thieves.terrortown thieves.rooftops +hostname "Test" +port 00000 +net_query_port 00000 +net_hide_address 0

Configuration Files

TTT currently uses three operator-facing files:

File Purpose
server_settings.json Small dedicated-server bootstrap config: lobby max players/privacy and curated map rotation.
config/convar/game.json Native s&box saved ConVars. Most gameplay/rule settings live here now.
roles.json Moderator/Admin/Owner role assignments written by TTT role commands.

server_settings.json

server_settings.json lives under the package's game data folder.

Example:

data/thieves/terrortown/server_settings.json

The game creates this file with active defaults the first time a dedicated server starts without one.

Current editable shape:

server_settings.json
{
  "SchemaVersion": 2,
  "Lobby": {
    "MaxPlayers": 24,
    "Privacy": 0
  },
  "MapVote": {
    "Maps": "thieves.rooftops;thieves.whitehouse;thieves.minecraft_t5"
  }
}

server_settings.json Fields

Field Default Description
SchemaVersion 2 Generated by the game for future migrations. Leave this alone.
Lobby.MaxPlayers 24 Maximum player count for the lobby. Keep this aligned with any external server-manager player limit.
Lobby.Privacy 0 Lobby privacy: 0 public, 1 private, 2 friends only. Public dedicated servers should use 0.
MapVote.Maps Curated built-in map list Dedicated map vote rotation. Separate map idents with semicolons, commas, or newlines.

Map Vote Rotation

Dedicated map vote pool example:

"MapVote": {
  "Maps": "thieves.rooftops;thieves.dolls;throwupproducs.islandtropical"
}

Separate map idents with semicolons, commas, or newlines.

orgident.mapident;orgident.mapident

Duplicate entries are collapsed. Maps outside the built-in curated list are ignored for dedicated map vote rotation. Make sure at least one valid map remains.

You can print the current built-in map whitelist from the server console with:

t.server.maps

Deprecated Or Ignored Settings

Old Setting Current Status
Server.StartupMap Removed. Use the native +game org.game org.map launch argument.
Scalar Lobby gameplay fields such as MaxRounds, RoundTimeMinutes, KarmaEnabled, ProximityVoiceRange, etc. Removed from server_settings.json. Use the matching saved ConVar instead.
MapVote.Whitelist Migrated to MapVote.Maps if Maps is missing.
MapVote.Blacklist No longer the dedicated rotation model. If only Blacklist is present, defaults are backfilled into MapVote.Maps.