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