convars
Table of Contents
Basics
Most gameplay settings are now native saved ConVars. These are stored in a large file:
config/convar/game.json
Each value appears under a convar. key. Example:
"convar.ttt_rtv_enabled": {
"Value": "False",
"Timeout": 1781214253,
"DeleteAt": 0
}
Only edit Value. Do not edit Timeout or DeleteAt.
These are most easily modified directly from the console. Commands will apply live (with some variance; see the sections below). Setting the command via the console will store/update the value in game.json.
- Stop the server before manually editing
game.json. - Preserve valid JSON syntax.
- Values are usually stored as strings, even for numbers and booleans.
- Use
True/Falseor1/0for boolean values, matching what your host panel writes.
Gameplay ConVars
The key in game.json includes the convar. prefix. The console command does not.
Example:
| In game.json | In server console |
|---|---|
convar.ttt_rtv_enabled | ttt_rtv_enabled false |
Time
| ConVar | Default | Applies | Description |
|---|---|---|---|
ttt_max_rounds | 6 | Next round / map travel | Number of rounds to play before the match ends and a map vote begins. |
ttt_round_time_minutes | 5 | Next round | Round duration in minutes when haste mode is off. |
ttt_haste_mode | True | Next round | Enables haste mode, where the public timer starts shorter and hidden time is added as players die. |
ttt_haste_starting_minutes | 5 | Next round | Public round timer duration in minutes before haste overtime starts. |
ttt_haste_minutes_per_death | 0.5 | Next round | Minutes added to the hidden round limit each time a player dies. |
Gameplay Roles
| ConVar | Default | Applies | Description |
|---|---|---|---|
ttt_traitor_pct | 0.25 | Next round | Fraction of round players assigned as traitors. |
ttt_traitor_max | 32 | Next round | Maximum number of traitors that can be assigned in a round. |
ttt_detective_pct | 0.13 | Next round | Fraction of round players assigned as detectives when enough players are present. |
ttt_detective_max | 32 | Next round | Maximum number of detectives that can be assigned in a round. |
ttt_detective_min_players | 8 | Next round | Minimum round player count required before detectives can be assigned. |
Karma
| ConVar | Default | Applies | Description |
|---|---|---|---|
ttt_karma | True | Next round | Enables karma penalties, rewards, and low-karma damage scaling. |
ttt_karma_low_autokick | False | Round end | Kicks non-host players below the low-karma threshold at round end. |
ttt_karma_kick_threshold | 300 | Round end | Karma value below which low-karma auto-kick removes non-host players. Only matters when ttt_karma_low_autokick is enabled. |
ttt_karma_starting | 1000 | New player component | Karma assigned to newly-created player components. |
ttt_karma_damage_threshold | 800 | Live damage checks | Karma value below which outgoing damage is reduced. |
ttt_karma_kill_penalty | 30 | Round end | How harshly friendly damage removes karma before internal scaling. |
ttt_karma_round_increment | 15 | Round end | Karma restored at round end when the player teamkilled nobody. |
Voice
| ConVar | Default | Applies | Description |
|---|---|---|---|
ttt_proximity_voice_enabled | False | Live | Uses distance-limited voice chat for normal alive-player voice. Team voice and dead/alive voice filtering are separate. |
ttt_proximity_voice_range | 800 | Live | Voice range in world units when proximity voice is enabled. |
Map Vote
| ConVar | Default | Applies | Description |
|---|---|---|---|
ttt_rtv_enabled | True | Live | Allows players to start Rock the Vote map-change votes. Admin-forced map votes are unaffected. |
ttt_mapvote_option_count | 10 | Newly-created map votes | Maximum number of maps shown during a map vote. |
ttt_mapvote_include_uncurated | False | Newly-created map votes | Includes uncurated maps in curated map vote pools when available. Dedicated servers should normally use MapVote.Maps instead. |
Visuals
| ConVar | Default | Applies | Description |
|---|---|---|---|
ttt_allow_player_cosmetics | True | Next round | Allows players to use their s&box headwear. |
AFK
| ConVar | Default | Applies | Description |
|---|---|---|---|
ttt_auto_afk | True | Live | Automatically marks idle alive players as AFK. |
Map And Vote Commands
| Command | Description |
|---|---|
rtv | Starts a Rock the Vote map-change vote if ttt_rtv_enabled is true. Players can also type /rtv or !rtv in chat. |
votekick PLAYERNAME | Starts a public votekick. Players can also type /votekick or !votekick in chat. |
ttt_forcemapvote | Admin/host command that forces the map-vote flow. It is not blocked by ttt_rtv_enabled. |
changelevel MAPIDENT | Changes to a map ident. May cause instability! |
map MAPIDENT | Alias for changelevel. |
scene SCENEFILE | Host-only scene change command for scene files. Use map idents for normal server operation. |
Troubleshooting
If your settings are not applying:
- Make sure
server_settings.jsonis in the correct game ident's data folder. - Make sure ConVars are edited under
config/convar/game.jsonor your host's ConVar panel. - Restart the dedicated server after editing files by hand.
- Check that your JSON is valid.
- In
game.json, edit onlyValue. - Check the server console for
[server.settings]messages. - Check the server console for
[lobby.settings] appliedto confirm the resolved lobby/rule settings. - 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 schema=2 lobby=True vote_maps=18
Useful default/backfill messages:
[server.settings] missing path=server_settings.json; created active defaults. Edit server_settings.json and restart the dedicated server to customize settings. [server.settings] defaults_backfilled path=server_settings.json
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
Useful applied settings message:
[lobby.settings] applied public, 6 rounds, 5m, prep 20s, haste 5m +0.5m/death, curated, 10 vote maps
convars.txt · Last modified: 2026/05/15 03:38 by frank_lee_smith