User Tools

Site Tools


convars

This is an old revision of the document!


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.

All commands can also be executed in console, which should prove to be easier and 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 / False or 1 / 0 for 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

These are most easily modified directly from the console.

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.json is in the correct game ident's data folder.
  • Make sure ConVars are edited under config/convar/game.json or your host's ConVar panel.
  • Restart the dedicated server after editing files by hand.
  • Check that your JSON is valid.
  • In game.json, edit only Value.
  • Check the server console for [server.settings] messages.
  • Check the server console for [lobby.settings] applied to 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.1778816218.txt.gz · Last modified: 2026/05/15 03:36 by frank_lee_smith

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki