User Tools

Site Tools


configuring_your_server

This is an old revision of the document!


Dedicated Server Settings

Server hosting for TTT is still early and subject to change. We will update this page and add more under this category over time.

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

Basics

Our game ident:

thieves.terrortown

TTT-specific config file:

server_settings.json

On a SteamCMD dedicated install, this should be under the game data folder for the package ident you are running.

Example:

steamcmd/ttt/data/thieves/terrortown/server_settings.json

Important!

Choose the server startup map like so:

+game thieves.terrortown thieves.rooftops

For a dev server:

+game thieves.terrortowndev thieves.rooftops

The first map ident after the game ident is the startup map. TTT remembers that native startup map as the empty-server reset map. Choose a map that was made for TTT, or there won't be any weapons for players.

Do not configure startup map through server_settings.json. The old Server.StartupMap field is deprecated and ignored.

Basic server_settings.json Example

The file will be automatically generated the first time you launch TTT. The below is a shortened example. The generated file will include the full curated map list.

server_settings.json
{
  "SchemaVersion": 1,
  "Server": {},
  "Lobby": {
    "MaxPlayers": 24,
    "Privacy": 0,
    "MinPlayerCount": 2,
    "MaxRounds": 6,
    "RoundTimeMinutes": 30,
    "PrepareDurationSeconds": 20,
    "HasteMode": true,
    "MapVoteOptionCount": 10,
    "AllowPlayerCosmetics": true,
    "ProximityVoiceEnabled": false,
    "ProximityVoiceRange": 2000,
    "KarmaEnabled": true
  },
  "MapVote": {
    "Maps": "thieves.rooftops;thieves.whitehouse;thieves.minecraft_t5"
  },
  "AdminSteamIds": []
}

Server Settings

SchemaVersion

Generated by the game for future migrations. Leave this alone.

Server

Currently no active settings are required under Server.

Older configs may contain:

"StartupMap": "thieves.rooftops"

This field is now ignored. Set the startup map in the native launch command instead:

+game thieves.terrortown thieves.rooftops

Lobby Settings

Lobby.MaxPlayers

Maximum player count for the Terror Town lobby.

"MaxPlayers": 24

Keep this aligned with any external server-manager max-player setting.

Lobby.Privacy

Controls lobby privacy.

Value Meaning
0 Public
1 Private
2 Friends Only

For public dedicated servers, use:

"Privacy": 0

Lobby.MinPlayerCount

Minimum number of players required before normal round start behavior can proceed.

"MinPlayerCount": 2

Lobby.MaxRounds

Maximum number of rounds before the normal end-of-match or map-vote flow.

"MaxRounds": 6

Lobby.RoundTimeMinutes

Base round time limit, in minutes.

"RoundTimeMinutes": 5

Lobby.PrepareDurationSeconds

Preparation phase duration before a round starts, in seconds.

"PrepareDurationSeconds": 20

Lobby.HasteMode

Controls whether haste mode timing is enabled.

"HasteMode": true

Lobby.MapVoteOptionCount

Maximum number of map choices shown during a map vote.

"MapVoteOptionCount": 8

Allowed range: 3 to 12.

Lobby.AllowPlayerCosmetics

Controls whether player cosmetics are allowed.

"AllowPlayerCosmetics": true

Lobby.ProximityVoiceEnabled

Controls whether normal alive-player voice is limited by distance during active rounds.

"ProximityVoiceEnabled": false

Traitor and detective team voice channels remain team-routed. Dead-player voice behavior remains controlled by the normal dead/alive voice filter.

Lobby.ProximityVoiceRange

Voice range in world units when proximity voice is enabled.

"ProximityVoiceRange": 2000

Allowed range: 500 to 5000.

Lobby.KarmaEnabled

Controls whether karma rules are enabled.

"KarmaEnabled": true

Map Vote Rotation

The map vote pool is configured through:

"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 lists from the server console with:

t.server.maps

Admin Steam IDs

Dedicated servers can bootstrap admins with:

"AdminSteamIds": [
  00000000000000000,
  11111111111111111
]

Use SteamID64 values.

Invalid or zero IDs are ignored.

Troubleshooting

If your settings are not applying:

  • Make sure the file is named server_settings.json.
  • Make sure the file is in the correct game ident's data folder.
  • Restart the dedicated server after editing the file.
  • Check that your JSON is valid.
  • Check the server console for [server.settings] messages.
  • Check the server console for [server.launch] messages to confirm the native boot map.

Useful successful load message:

[server.settings] loaded path=server_settings.json lobby=True vote_maps=18 admin_count=1

If an old config still contains Server.StartupMap, you may see:

[server.settings] loaded path=server_settings.json lobby=True vote_maps=18 admin_count=1 legacy_startup_map_ignored=thieves.rooftops

Useful failure message:

[server.settings] failed_to_load path=server_settings.json error=...

Useful launch message:

[server.launch] boot_context game=thieves.terrortown boot_map=thieves.rooftops launch_map=thieves.rooftops source=GameNetworkManager.OnStart dedicated=True

Current Limitations

  • Settings are read once when the server process starts.
  • Restart the server after editing server_settings.json.
  • Missing fields may be filled in with defaults on startup; existing values in your active config should not be overwritten.
  • Keep Lobby.MaxPlayers aligned with any external server-manager player limit.
  • Set the startup map with the native launch command, not server_settings.json.
  • Dedicated server support is still early and may change.
configuring_your_server.1778204177.txt.gz ยท Last modified: 2026/05/08 01:36 by frank_lee_smith

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki