User Tools

Site Tools


convars

Differences

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

Link to this comparison view

Next revision
Previous revision
convars [2026/05/15 02:42] – created frank_lee_smithconvars [2026/05/24 00:47] (current) frank_lee_smith
Line 1: Line 1:
 ===== Basics ===== ===== Basics =====
  
-Most gameplay settings are now native saved ConVars. On many hosts, including Physgun, these are stored in a large file like:+Most gameplay settings are now native saved ConVars. These are stored in a large file:
  
 <code text> <code text>
Line 19: Line 19:
 Only edit ''Value''. Do **not** edit ''Timeout'' or ''DeleteAt''. Only edit ''Value''. Do **not** edit ''Timeout'' or ''DeleteAt''.
  
-Notes:+**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''.   * Stop the server before manually editing ''game.json''.
-  * All commands can also be executed in console, which is easier and will apply live (with some variance). Setting the command via the console will store/update the value in ''game.json''. 
   * Preserve valid JSON syntax.   * Preserve valid JSON syntax.
   * Values are usually stored as strings, even for numbers and booleans.   * Values are usually stored as strings, even for numbers and booleans.
Line 36: Line 35:
 ^ In game.json ^ In server console ^ ^ In game.json ^ In server console ^
 | ''convar.ttt_rtv_enabled'' | ''ttt_rtv_enabled false'' | | ''convar.ttt_rtv_enabled'' | ''ttt_rtv_enabled false'' |
- 
-These are most easily modified directly from the console. 
  
 ===== Time ===== ===== Time =====
  
 ^ ConVar ^ Default ^ Applies ^ Description ^ ^ 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_max_rounds'' | 6 | Live | 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_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_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_starting_minutes'' | 5 | Next round | Public round timer duration in minutes before haste overtime starts. |
Line 67: Line 64:
 | ''ttt_karma_kill_penalty'' | 30 | Round end | How harshly friendly damage removes karma before internal scaling. | | ''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. | | ''ttt_karma_round_increment'' | 15 | Round end | Karma restored at round end when the player teamkilled nobody. |
- 
-==== Advanced Karma ConVars ==== 
- 
-These exist for compatibility and deeper tuning, but are not shown in the Create Lobby menu. 
- 
-^ ConVar ^ Default ^ Description ^ 
-| ''ttt_karma_max'' | 1100 | Maximum karma value. | 
  
 ===== Voice ===== ===== Voice =====
  
 ^ ConVar ^ Default ^ Applies ^ Description ^ ^ 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_enabled'' | False | Map travel | 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. |+| ''ttt_proximity_voice_range'' | 800 | Map Travel | Voice range in world units when proximity voice is enabled. |
  
 ===== Map Vote ===== ===== Map Vote =====
Line 86: Line 76:
 | ''ttt_rtv_enabled'' | True | Live | Allows players to start Rock the Vote map-change votes. Admin-forced map votes are unaffected. | | ''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_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 availableDedicated servers should normally use ''MapVote.Maps'' instead. |+| ''ttt_mapvote_pool''''Official;Verified'' | Newly-created map votes | Source pools used for generated map vote optionsUse values such as ''Official'', ''Verified'', and ''AllCompatible'', separated by semicolons. Leave empty to use only ''MapVote.AlwaysInclude'' from ''server_settings.json''. | 
 +| ''ttt_mapvote_filter_by_players'' | False | Newly-created map votes | Prefer maps whose authored size range fits the current lobby size. | 
 +| ''ttt_mapvote_show_tags'' | True | Newly-created map votes | Shows approved map package tags on map vote cards. | 
 + 
 +''MapVote.AlwaysInclude'' and ''MapVote.NeverShow'' are not ConVars. They live in ''server_settings.json'' because they are package-ident lists. 
 + 
 +When ''AllCompatible'' is enabled, compatible map discovery is prewarmed once after server/lobby settings apply and cached for the server/lobby lifetime. Map votes still apply the current map, ''AlwaysInclude'', ''NeverShow'', player-count filtering, and random option selection when each vote starts.
  
 ===== Visuals ===== ===== Visuals =====
Line 93: Line 89:
 | ''ttt_allow_player_cosmetics'' | True | Next round | Allows players to use their s&box headwear. | | ''ttt_allow_player_cosmetics'' | True | Next round | Allows players to use their s&box headwear. |
  
-===== Moderation =====+===== AFK =====
  
 ^ ConVar ^ Default ^ Applies ^ Description ^ ^ ConVar ^ Default ^ Applies ^ Description ^
 | ''ttt_auto_afk'' | True | Live | Automatically marks idle alive players as AFK. | | ''ttt_auto_afk'' | True | Live | Automatically marks idle alive players as AFK. |
- 
-====== Moderation Roles ====== 
- 
-Dedicated servers store Moderator, Admin, and Owner assignments in ''roles.json'' in the same data area as ''server_settings.json''. 
- 
-Use SteamID64 values. Invalid or zero IDs are ignored. Founder is derived from the active host/session and is not written to ''roles.json''. 
- 
-Example: 
- 
-<file json roles.json> 
-[ 
-  { 
-    "steamId": 76561190000000000, 
-    "role": "admin" 
-  }, 
-  { 
-    "steamId": 76561190000000001, 
-    "role": "moderator" 
-  }, 
-  { 
-    "steamId": 76561190000000002, 
-    "role": "owner" 
-  } 
-] 
-</file> 
- 
-Useful role commands: 
- 
-^ Command ^ Persists? ^ Description ^ 
-| ''ttt_addadmin STEAMID64'' | Yes, to ''roles.json'' | Assign Admin. | 
-| ''ttt_removeadmin STEAMID64'' | Yes, to ''roles.json'' | Remove Admin. | 
-| ''ttt_addmod STEAMID64'' / ''ttt_removemod STEAMID64'' | Yes, to ''roles.json'' | Add or remove Moderator. | 
-| ''ttt_addowner STEAMID64'' / ''ttt_removeowner STEAMID64'' | Yes, to ''roles.json'' | Add or remove Owner. | 
-| ''ttt_setrole STEAMID64 ROLE'' | Yes, to ''roles.json'' | Replace assignable roles with one role. ROLE is ''mod'', ''admin'', or ''owner''. | 
-| ''ttt_clearrole STEAMID64'' | Yes, to ''roles.json'' | Remove assignable roles. Founder is not removed. | 
-| ''ttt_listadmins'' | No change | Print admin IDs. | 
-| ''ttt_listroles'' | No change | Print assigned roles. | 
- 
-''ttt_listadmins'' prints Admin, Owner, and Founder IDs. It does not print Moderators. Use ''ttt_listroles'' to confirm Moderator assignments. 
- 
- 
-====== Useful Commands ====== 
  
 ===== Map And Vote Commands ===== ===== Map And Vote Commands =====
Line 146: Line 100:
 | ''votekick PLAYERNAME'' | Starts a public votekick. Players can also type ''/votekick'' or ''!votekick'' 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''. | | ''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. |+| ''changelevel MAPIDENT'' | Changes to a map ident. May cause instability! |
 | ''map MAPIDENT'' | Alias for ''changelevel''. | | ''map MAPIDENT'' | Alias for ''changelevel''. |
 | ''scene SCENEFILE'' | Host-only scene change command for scene files. Use map idents for normal server operation. | | ''scene SCENEFILE'' | Host-only scene change command for scene files. Use map idents for normal server operation. |
 +| ''t.maps.official'' | Dedicated-server-console-only command that prints the official map source list. |
 +| ''t.maps.verified'' | Dedicated-server-console-only command that prints the verified map source list. |
 +| ''t.maps.compatible'' | Dedicated-server-console-only command that discovers and prints compatible unverified map packages. This can take longer than the static source-list commands. |
 +| ''t.server.mapvote.print'' | Dedicated-server-console-only command that prints current map vote source settings from ''server_settings.json''. |
 +| ''t.server.mapvote.pool.set Official,Verified'' | Dedicated-server-console-only command that updates ''MapVote.Pool'' in ''server_settings.json''. Use ''Official'', ''Verified'', ''AllCompatible'', ''All'', ''Any'', or an empty string. |
 +| ''t.server.mapvote.alwaysinclude.add org.map'' | Dedicated-server-console-only command that adds a map ident to ''MapVote.AlwaysInclude''. |
 +| ''t.server.mapvote.alwaysinclude.remove org.map'' | Dedicated-server-console-only command that removes a map ident from ''MapVote.AlwaysInclude''. |
 +| ''t.server.mapvote.nevershow.add org.map'' | Dedicated-server-console-only command that adds a map ident to ''MapVote.NeverShow''. |
 +| ''t.server.mapvote.nevershow.remove org.map'' | Dedicated-server-console-only command that removes a map ident from ''MapVote.NeverShow''. |
  
- +The ''t.server.mapvote.*'' mutation commands write ''server_settings.json'' and reject changes while a map vote is already active.
-====== Deprecated Or Ignored Settings ====== +
- +
-^ Old Setting ^ Current Status ^ +
-''Server.StartupMap'' | RemovedUse 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''+
  
 ====== Troubleshooting ====== ====== Troubleshooting ======
Line 176: Line 131:
  
 <code text> <code text>
-[server.settings] loaded path=server_settings.json schema=lobby=True vote_maps=18+[server.settings] loaded path=server_settings.json schema=lobby=True map_pool=Official;Verified always_include=0 never_show=0
 </code> </code>
  
Line 201: Line 156:
  
 <code text> <code text>
-[lobby.settings] applied public, 6 rounds, 5m, prep 20s, haste 5m +0.5m/death, curated, 10 vote maps+[lobby.settings] applied public, 6 rounds, 5m, prep 20s, haste 5m +0.5m/death, open catalog, official + verified pool, 10 vote maps 
 +</code> 
 + 
 +Useful AllCompatible prewarm message: 
 + 
 +<code text> 
 +[MapCatalog] allcompatible_prewarm_complete game=thieves.terrortown maps=11 source=LobbyStartSettingsRuntime.ApplyToSystems
 </code> </code>
  
convars.1778812978.txt.gz · Last modified: 2026/05/15 02:42 by frank_lee_smith

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki