User Tools

Site Tools


configuring_your_server

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
configuring_your_server [2026/05/08 01:27] frank_lee_smithconfiguring_your_server [2026/05/15 02:45] (current) – removed frank_lee_smith
Line 1: Line 1:
-======== 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: [[https://sbox.game/dev/doc/systems/networking-multiplayer/dedicated-servers/|s&box Dedicated Servers]] 
- 
- 
-===== Basics ===== 
- 
-**Our game ident:** 
- 
-<code text> 
-thieves.terrortown 
-</code> 
- 
- 
-**TTT-specific config file:** 
- 
-<code text> 
-server_settings.json 
-</code> 
- 
-On a SteamCMD dedicated install, this should be under the game data folder for the package ident you are running. 
- 
-Example: 
- 
-<code text> 
-steamcmd/ttt/data/thieves/terrortown/server_settings.json 
-</code> 
- 
- 
-========== Important! ========== 
- 
-Choose the server startup map like so: 
- 
-<code text> 
-+game thieves.terrortown thieves.rooftops 
-</code> 
- 
-For a dev server: 
- 
-<code text> 
-+game thieves.terrortowndev thieves.rooftops 
-</code> 
- 
-The first map ident after the game ident is the startup map. TTT remembers that native startup map as the empty-server reset map. 
- 
-Do **not** configure startup map through ''server_settings.json''. The old ''Server.StartupMap'' field is deprecated and ignored. 
- 
- 
-===== Launch Example ===== 
- 
-This is a typical dedicated launch shape: 
- 
-<code text> 
--headless +game thieves.terrortowndev thieves.rooftops +hostname "Test" +port 37017 +net_query_port 37018 +net_hide_address 0 
-</code> 
- 
-Optional server-token launch argument: 
- 
-<code text> 
-+net_game_server_token YOUR_TOKEN_HERE 
-</code> 
- 
- 
-===== 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.// 
- 
-<file json server_settings.json> 
-{ 
-  "SchemaVersion": 1, 
-  "Server": {}, 
-  "Lobby": { 
-    "MaxPlayers": 24, 
-    "Privacy": 0, 
-    "MinPlayerCount": 2, 
-    "MaxRounds": 6, 
-    "RoundTimeMinutes": 30, 
-    "PrepareDurationSeconds": 20, 
-    "HasteMode": true, 
-    "MapVoteOptionCount": 8, 
-    "AllowPlayerCosmetics": true, 
-    "ProximityVoiceEnabled": false, 
-    "ProximityVoiceRange": 2000, 
-    "KarmaEnabled": true 
-  }, 
-  "MapVote": { 
-    "Maps": "thieves.rooftops;thieves.whitehouse;thieves.minecraft_t5" 
-  }, 
-  "AdminSteamIds": [] 
-} 
-</file> 
- 
- 
-======= 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: 
- 
-<code json> 
-"StartupMap": "thieves.rooftops" 
-</code> 
- 
-This field is now ignored. Set the startup map in the native launch command instead: 
- 
-<code text> 
-+game thieves.terrortown thieves.rooftops 
-</code> 
- 
- 
-===== Lobby Settings ===== 
- 
-==== Lobby.MaxPlayers ==== 
- 
-Maximum player count for the Terror Town lobby. 
- 
-<code json> 
-"MaxPlayers": 24 
-</code> 
- 
-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: 
- 
-<code json> 
-"Privacy": 0 
-</code> 
- 
-==== Lobby.MinPlayerCount ==== 
- 
-Minimum number of players required before normal round start behavior can proceed. 
- 
-<code json> 
-"MinPlayerCount": 2 
-</code> 
- 
-==== Lobby.MaxRounds ==== 
- 
-Maximum number of rounds before the normal end-of-match or map-vote flow. 
- 
-<code json> 
-"MaxRounds": 6 
-</code> 
- 
-==== Lobby.RoundTimeMinutes ==== 
- 
-Base round time limit, in minutes. 
- 
-<code json> 
-"RoundTimeMinutes": 30 
-</code> 
- 
-==== Lobby.PrepareDurationSeconds ==== 
- 
-Preparation phase duration before a round starts, in seconds. 
- 
-<code json> 
-"PrepareDurationSeconds": 20 
-</code> 
- 
-==== Lobby.HasteMode ==== 
- 
-Controls whether haste mode timing is enabled. 
- 
-<code json> 
-"HasteMode": true 
-</code> 
- 
-==== Lobby.MapVoteOptionCount ==== 
- 
-Maximum number of map choices shown during a map vote. 
- 
-<code json> 
-"MapVoteOptionCount": 8 
-</code> 
- 
-Allowed range: 3 to 12. 
- 
-==== Lobby.AllowPlayerCosmetics ==== 
- 
-Controls whether player cosmetics are allowed. 
- 
-<code json> 
-"AllowPlayerCosmetics": true 
-</code> 
- 
-==== Lobby.ProximityVoiceEnabled ==== 
- 
-Controls whether normal alive-player voice is limited by distance during active rounds. 
- 
-<code json> 
-"ProximityVoiceEnabled": false 
-</code> 
- 
-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. 
- 
-<code json> 
-"ProximityVoiceRange": 2000 
-</code> 
- 
-Allowed range: 500 to 5000. 
- 
-==== Lobby.KarmaEnabled ==== 
- 
-Controls whether karma rules are enabled. 
- 
-<code json> 
-"KarmaEnabled": true 
-</code> 
- 
- 
-===== Map Vote Rotation ===== 
- 
-The map vote pool is configured through: 
- 
-<code json> 
-"MapVote": { 
-  "Maps": "thieves.rooftops;thieves.dolls;throwupproducs.islandtropical" 
-} 
-</code> 
- 
-Separate map idents with semicolons, commas or newlines. 
- 
-<code text> 
-org.map;org.map 
-</code> 
- 
-//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: 
- 
-<code text> 
-t.server.maps 
-</code> 
- 
- 
-===== Admin Steam IDs ===== 
- 
-Dedicated servers can bootstrap admins with: 
- 
-<code json> 
-"AdminSteamIds": [ 
-  00000000000000000, 
-  11111111111111111 
-] 
-</code> 
- 
-Use SteamID64 values. 
- 
-Invalid or zero IDs are ignored. 
- 
- 
-===== Other Dedicated Server Options ===== 
- 
-These are launch/convar options, not fields inside ''server_settings.json''. 
- 
-^ Option ^ Default ^ Description ^ 
-| t.dedicated.empty_reset | 1 | Reset the server back to its native startup map after all real players leave. | 
-| t.dedicated.empty_reset.delay | 20.0 | Delay, in seconds, before empty-server reset runs. | 
- 
- 
-===== 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: 
- 
-<code text> 
-[server.settings] loaded path=server_settings.json lobby=True vote_maps=18 admin_count=1 
-</code> 
- 
-If an old config still contains ''Server.StartupMap'', you may see: 
- 
-<code text> 
-[server.settings] loaded path=server_settings.json lobby=True vote_maps=18 admin_count=1 legacy_startup_map_ignored=thieves.rooftops 
-</code> 
- 
-Useful failure message: 
- 
-<code text> 
-[server.settings] failed_to_load path=server_settings.json error=... 
-</code> 
- 
-Useful launch message: 
- 
-<code text> 
-[server.launch] boot_context game=thieves.terrortown boot_map=thieves.rooftops launch_map=thieves.rooftops source=GameNetworkManager.OnStart dedicated=True 
-</code> 
- 
- 
-===== 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.1778203666.txt.gz · Last modified: 2026/05/08 01:27 by frank_lee_smith

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki