]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - gamemodes-server.cfg
Nades code: don't use booleans as array indexes for m_projectile, optimize spawn_held...
[xonotic/xonotic-data.pk3dir.git] / gamemodes-server.cfg
index 548a512234f7afce4c83377131fc383592a7375c..a859acbded174ebaf334b8725ea30439b342c45a 100644 (file)
@@ -2,8 +2,8 @@
 //  Master config for core game modes
 // ===================================
 
-// global gametype setting (0 = deathmatch)
-set gamecfg 0
+// global gametype setting (uses gametype shortname, default gametype is deathmatch)
+set gamecfg "dm"
 
 
 // =================
@@ -29,7 +29,13 @@ alias sv_hook_gamestart_ka
 alias sv_hook_gamestart_ft
 alias sv_hook_gamestart_inv
 alias sv_hook_gamestart_duel
-alias sv_hook_gamerestart
+alias sv_hook_gamestart_mayhem
+alias sv_hook_gamestart_tmayhem
+alias sv_hook_gamestart_tka
+alias sv_hook_gamestart_surv
+// there is currently no hook for when the match is restarted
+// see sv_hook_readyrestart for previous uses of this hook
+//alias sv_hook_gamerestart
 alias sv_hook_gameend
 
 
@@ -56,16 +62,21 @@ alias sv_vote_gametype_hook_ons
 alias sv_vote_gametype_hook_rc
 alias sv_vote_gametype_hook_tdm
 alias sv_vote_gametype_hook_duel
+alias sv_vote_gametype_hook_mayhem
+alias sv_vote_gametype_hook_tmayhem
+alias sv_vote_gametype_hook_tka
+alias sv_vote_gametype_hook_surv
 
-// Example preset to allow 1v1ctf to be used for the gametype voting screen
+// Example preset to allow 1v1ctf to be used for the gametype voting screen.
+// Aliases can have max 31 chars so the gametype can have max 9 chars.
 // sv_vote_gametype_*_type Must be set to the name of the gametype the option is based on
 // sv_vote_gametype_*_name Contains a human-readable name of the gametype
 // sv_vote_gametype_*_description Contains a longer description
 //set sv_vote_gametype_1v1ctf_type ctf
 //set sv_vote_gametype_1v1ctf_name "Capture the Flag Duel"
 //set sv_vote_gametype_1v1ctf_description "One vs One match in CTF"
-//alias sv_vote_gametype_hook_all "set g_maxplayers 0"
-//alias sv_vote_gametype_hook_1v1ctf "set g_maxplayers 2"
+//alias sv_vote_gametype_hook_all "g_maxplayers 0"
+//alias sv_vote_gametype_hook_1v1ctf "g_maxplayers 2"
 
 
 // ===========
@@ -73,7 +84,7 @@ alias sv_vote_gametype_hook_duel
 // ===========
 // this means that timelimit can be overidden globally and fraglimit can be overidden for each game mode: DM/TDM, Domination, CTF, and Runematch.
 set leadlimit 0
-set leadlimit_and_fraglimit 0 "if set, leadlimit is ANDed with fraglimit (otherwise ORed)"
+set leadlimit_and_fraglimit 0 "both leadlimit AND fraglimit must be reached"
 set timelimit_override -1      "Time limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 set fraglimit_override -1      "Frag limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 set leadlimit_override -1      "Lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
@@ -205,6 +216,34 @@ set g_duel_respawn_delay_large_count 0
 set g_duel_respawn_delay_max 0
 set g_duel_respawn_waves 0
 set g_duel_weapon_stay 0
+set g_mayhem_respawn_delay_small 0
+set g_mayhem_respawn_delay_small_count 0
+set g_mayhem_respawn_delay_large 0
+set g_mayhem_respawn_delay_large_count 0
+set g_mayhem_respawn_delay_max 0
+set g_mayhem_respawn_waves 0
+set g_mayhem_weapon_stay 0
+set g_tmayhem_respawn_delay_small 0
+set g_tmayhem_respawn_delay_small_count 0
+set g_tmayhem_respawn_delay_large 0
+set g_tmayhem_respawn_delay_large_count 0
+set g_tmayhem_respawn_delay_max 0
+set g_tmayhem_respawn_waves 0
+set g_tmayhem_weapon_stay 0
+set g_tka_respawn_delay_small 0
+set g_tka_respawn_delay_small_count 0
+set g_tka_respawn_delay_large 0
+set g_tka_respawn_delay_large_count 0
+set g_tka_respawn_delay_max 0
+set g_tka_respawn_waves 0
+set g_tka_weapon_stay 0
+set g_surv_respawn_delay_small 0
+set g_surv_respawn_delay_small_count 0
+set g_surv_respawn_delay_large 0
+set g_surv_respawn_delay_large_count 0
+set g_surv_respawn_delay_max 0
+set g_surv_respawn_waves 0
+set g_surv_weapon_stay 0
 
 
 // =========
@@ -219,13 +258,14 @@ set g_assault 0 "Assault: attack the enemy base as fast as you can, then defend
 set g_ca 0 "Clan Arena: Played in rounds, once you're dead you're out! The team with survivors wins the round"
 set g_ca_point_limit -1 "Clan Arena point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 set g_ca_point_leadlimit -1 "Clan Arena point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-set g_ca_spectate_enemies 0 "Allow spectating enemy player by dead player during clan arena games"
-set g_ca_warmup 10 "how long the players will have time to run around the map before the round starts"
-set g_ca_damage2score_multiplier 0.01
+set g_ca_spectate_enemies 0 "allow eliminated players to spectate enemy players during Clan Arena games. -1 blocks freeroam camera. Changes to this cvar take effect from the next round"
+set g_ca_warmup 10 "time players get to run around before the round starts"
+set g_ca_damage2score 100  "every this amount of damage done give players 1 point"
 set g_ca_round_timelimit 180 "round time limit in seconds"
 set g_ca_teams_override 0
 set g_ca_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any"
 set g_ca_teams 0
+set g_ca_prevent_stalemate 0 "When round time ends instead of instant stalemate give round win to the team with 1: most survivors. 2: most total health. 3: most survivors or if equal then most total health"
 set g_ca_weaponarena "most" "starting weapons - takes the same options as g_weaponarena"
 
 
@@ -239,11 +279,13 @@ set g_ctf_leaderboard 0 "show top capture times in the scoreboard"
 set g_ctf_flag_return 1 "auto return the flag to base when touched by a teammate"
 set g_ctf_flag_return_carrying 0 "(manual return mode) auto return the flag to base if touched by a flag carrier"
 set g_ctf_flag_return_carried_radius 100 "allow flags to be returned by carrier if base is within this radius"
-set g_ctf_flag_return_time 15 "automatically return the flag to base after this amount of time"
+set g_ctf_flag_return_time 30 "automatically return the flag to base after this amount of time"
 set g_ctf_flag_return_dropped 100 "automatically return the flag to base if dropped within this distance from base (in qu)"
 set g_ctf_flag_return_damage 0 "allow the flag to be damaged, reducing time needed to automatically return to base"
 set g_ctf_flag_return_damage_delay 0 "how much time the flag takes to automatically return to base if it falls into lava/slime/trigger hurt"
 set g_ctf_flag_return_when_unreachable 1 "automatically return the flag if it falls into lava/slime/trigger hurt"
+set g_ctf_flag_waypoint 1 "show a waypoint at the flag for easy discovery and directions"
+set g_ctf_flag_waypoint_maxdistance 0 "maximum distance from a flag from which their waypoint is shown, a value of 0 means no limit"
 set g_ctf_flagcarrier_auto_helpme_damage 100 "automatically place a helpme notification on flag carrier waypointsprite if they get hit and their health dips below this value"
 set g_ctf_flagcarrier_auto_helpme_time 2 "antispam time for the helpme notification"
 set g_ctf_flagcarrier_selfdamagefactor 1
@@ -254,7 +296,7 @@ set g_ctf_stalemate 1 "show the enemy flagcarrier location after both teams have
 set g_ctf_stalemate_endcondition 1 "condition for stalemate mode to be finished: 1 = If ONE flag is no longer stale, 2 = If BOTH flags are no longer stale"
 set g_ctf_stalemate_time 60 "time for each flag until stalemate mode is activated"
 set g_ctf_flagcarrier_waypointforenemy_spotting 1 "show the enemy flagcarrier location if a team mate presses +use to spot them"
-set g_ctf_dropped_capture_delay 1.5 "autocapture delay when flag is thrown onto the base - counted from throw, not landing"
+set g_ctf_dropped_capture_delay 1 "autocapture delay when flag is thrown onto the base - counted from when the flag lands on the ground"
 set g_ctf_dropped_capture_radius 100 "allow dropped flags to be automatically captured by base flags if the dropped flag is within this radius of it"
 set g_ctf_flag_damageforcescale 2
 set g_ctf_portalteleport 0 "allow flag carriers to go through portals made in portal gun without dropping the flag"
@@ -291,7 +333,7 @@ set g_ctf_allow_monster_touch 0 "allow flags to be returned by monsters"
 set g_ctf_score_ignore_fields 0 "force regular score settings to override per entity specified scores"
 
 set g_ctf_shield_max_ratio 0   "shield at most this percentage of a team from the enemy flag (try: 0.4 for 40%)"
-set g_ctf_shield_min_negscore 20       "shield the player from the flag if he's got this negative amount of points or less"
+set g_ctf_shield_min_negscore 20       "shield the player from the flag if they've got this negative amount of points or less"
 set g_ctf_shield_force 100     "push force of the shield"
 
 set g_ctf_flag_red_model "models/ctf/flags.md3"
@@ -306,7 +348,7 @@ set g_ctf_flag_neutral_model "models/ctf/flags.md3"
 set g_ctf_flag_neutral_skin 4
 set g_ctf_flag_glowtrails 1
 set g_ctf_fullbrightflags 0
-set g_ctf_dynamiclights 0
+set g_ctf_dynamiclights 0 "flags (not flag carriers) cast light of their team's colour"
 
 set g_ctf_ignore_frags 0       "1: regular frags give no points"
 exec ctfscoring-samual.cfg
@@ -317,9 +359,10 @@ exec ctfscoring-samual.cfg
 // ====================
 set g_cts 0 "CTS: complete the stage"
 set g_cts_selfdamage 1 "0 = disable all selfdamage and falldamage in cts"
-set g_cts_finish_kill_delay 10 "prevent cheating by running back to the start line, and starting out with more speed than otherwise possible"
+set g_cts_finish_kill_delay 2 "kill player this many seconds after stage completion to prevent cheating by starting out with more speed than otherwise possible; set it to 0 to not kill or to -1 to kill instantly"
 set g_cts_send_rankings_cnt 15 "send this number of map records to clients"
 set g_cts_removeprojectiles 0 "remove projectiles when the player dies, to prevent using weapons earlier in the stage than intended"
+set g_cts_drop_monster_items 0 "allow killed monsters to drop their items"
 
 
 // ==========================
@@ -349,8 +392,8 @@ set g_domination_point_rate         0 "override: how often to give those points"
 set g_domination_point_glow            0 "domination point glow (warning, slow)"
 set g_domination_roundbased 0 "enable round-based domination (capture all control points to win the round)"
 set g_domination_roundbased_point_limit 5 "capture limit in round-based domination mode"
-set g_domination_round_timelimit 120
-set g_domination_warmup 5
+set g_domination_round_timelimit 120 "round time limit in seconds"
+set g_domination_warmup 5 "time players have to wait before the round starts"
 //set g_domination_balance_team_points 1 "# of points received is based on team sizes"
 
 
@@ -358,15 +401,23 @@ set g_domination_warmup 5
 //  freezetag
 // ===========
 set g_freezetag 0 "Freeze Tag: Freeze the opposing team(s) to win, unfreeze teammates by standing next to them"
-set g_freezetag_warmup 5 "Time players get to run around before the round starts"
+set g_freezetag_warmup 10 "time players get to run around before the round starts"
 set g_freezetag_point_limit -1 "Freeze Tag point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 set g_freezetag_point_leadlimit -1     "Freeze Tag point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-set g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate"
-set g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range"
+set g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate if g_freezetag_revive_time_to_score is off"
+set g_freezetag_revive_speed_t2s 0.25 "Speed for reviving a frozen teammate if g_freezetag_revive_time_to_score is active"
+set g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range (if g_freezetag_revive_time_to_score is active reviving progress is not cleared)"
 set g_freezetag_revive_extra_size 100 "Distance in qu that you can stand from a frozen teammate to keep reviving him"
 set g_freezetag_revive_nade 1 "Enable reviving from own nade explosion"
 set g_freezetag_revive_nade_health 40 "Amount of health player has if they revived from their own nade explosion"
-set g_freezetag_round_timelimit 180 "round time limit in seconds"
+set g_freezetag_revive_time_to_score 1.5 "every this amount of seconds give players reviving a frozen teammate 1 point"
+set g_freezetag_round_timelimit 360 "round time limit in seconds"
+set g_freezetag_revive_auto 1 "automatically revive frozen players after some time (g_freezetag_frozen_maxtime)"
+set g_freezetag_revive_auto_progress 1 "start the automatic reviving progress as soon as the player gets frozen"
+set g_freezetag_revive_auto_reducible 1 "reduce auto-revival time when frozen players are hit by enemies; set to -1 to reduce it even when they are hit by teammates"
+set g_freezetag_revive_auto_reducible_forcefactor 0.01 "hit force to time reduction conversion factor"
+set g_freezetag_revive_auto_reducible_maxforce 400 "max force considered at once"
+set g_freezetag_revive_spawnshield 1 "apply spawnshield for this time in seconds after the player has been revived"
 set g_freezetag_frozen_maxtime 60 "frozen players will be automatically unfrozen after this time in seconds"
 set g_freezetag_teams_override 0
 set g_freezetag_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any"
@@ -378,8 +429,8 @@ set g_freezetag_weaponarena "most_available" "starting weapons - takes the same
 //  keepaway
 // ==========
 set g_keepaway 0 "game mode which focuses around a ball"
-set g_keepaway_score_bckill 1 "enable scoring points (y/n) for ball carrier kills (value is how many points to award)"
-set g_keepaway_score_killac 1 "amount of points to give when you kill someone while you have the ball"
+set g_keepaway_score_bckill 1 "points for killing the ball barrier (Ball Carrier Kill)"
+set g_keepaway_score_killac 1 "points for kills while holding the ball (Kill As Carrier)"
 set g_keepaway_score_timeinterval 1 "amount of time it takes between intervals for timepoints to be added to the score"
 set g_keepaway_score_timepoints 0 "points to add to score per timeinterval, 0 for no points"
 set g_keepaway_ballcarrier_effects 8 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)"
@@ -393,9 +444,9 @@ set g_keepaway_noncarrier_damage    1       "damage done to other players if both you and
 set g_keepaway_noncarrier_force        1       "force done to other players if both you and they don't have the ball"
 set g_keepaway_noncarrier_selfdamage   1       "self damage if you don't have the ball"
 set g_keepaway_noncarrier_selfforce    1       "self force if you don't have the ball"
-set g_keepawayball_effects 0 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)"
+set g_keepawayball_effects 8 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)"
 set g_keepawayball_trail_color 254     "particle trail color from player/ball"
-set g_keepawayball_damageforcescale    3 "Scale of force which is applied to the ball by weapons/explosions/etc"
+set g_keepawayball_damageforcescale    2 "Scale of force which is applied to the ball by weapons/explosions/etc"
 set g_keepawayball_respawntime 10      "if no one picks up the ball, how long to wait until the ball respawns"
 
 
@@ -432,10 +483,27 @@ set g_keyhunt_team_spawns 0 "when 1, players spawn from the team spawnpoints of
 set g_lms 0 "Last Man Standing: everyone starts with a certain amount of lives, and the survivor wins"
 set g_lms_lives_override -1
 set g_lms_extra_lives 0
-set g_lms_regenerate 0
-set g_lms_last_join 3  "if g_lms_join_anytime is false, new players can only join if the worst active player has more than (fraglimit - g_lms_last_join) lives"
-set g_lms_join_anytime 1       "if true, new players can join, but get same amount of lives as the worst player"
+set g_lms_regenerate 0 "health and/or armor regeneration, according to g_balance_health_regen and g_balance_armor_regen"
+set g_lms_rot 0 "health and/or armor rotting, according to g_balance_health_rot and g_balance_armor_rot"
+set g_lms_last_join 3  "if g_lms_join_anytime is 0, new players can only join if the worst active player has (fraglimit - g_lms_last_join) or more lives; in other words, new players can no longer join once the worst player loses more than g_lms_last_join lives"
+set g_lms_join_anytime 1       "1: new players can join, but get same amount of lives as the worst player; 0: new players can only join if the worst active player has (fraglimit - g_lms_last_join) or more lives"
+set g_lms_items 0 "enables items to spawn, weaponarena still disables weapons and ammo (to force all items to spawn, use g_pickup_items 1 instead)"
 set g_lms_weaponarena "most_available" "starting weapons - takes the same options as g_weaponarena"
+set g_lms_leader_lives_diff 2 "players leading by at least this number of lives are considered leaders and are more visible"
+set g_lms_leader_minpercent 0.5 "leading players are not considered leaders only if they are more than this percentage of total players"
+set g_lms_leader_wp_time 5 "show waypoints for leaders only for this amount of time"
+set g_lms_leader_wp_interval 25 "periodically show again waypoints for leaders after this amount of time"
+set g_lms_leader_wp_interval_jitter 10 "jitter waypoint interval by this amount of time"
+set g_lms_dynamic_respawn_delay 1 "increase player respawn delay based on the number of lives less than the leader (NOTE: delay doesn't increase when only 2 players are left alive)"
+set g_lms_dynamic_respawn_delay_base 2 "base player respawn delay"
+set g_lms_dynamic_respawn_delay_increase 3 "increase base player respawn delay by this amount of time for each life less than the leader"
+set g_lms_dynamic_respawn_delay_max 20 "max player respawn delay"
+set g_lms_dynamic_vampire 1 "attackers receive a fraction of health removed from enemies based on the number of lives less than the enemy"
+set g_lms_dynamic_vampire_factor_base 0.1 "base vampire factor"
+set g_lms_dynamic_vampire_factor_increase 0.1 "increase vampire factor by this fraction for each life less than the enemy"
+set g_lms_dynamic_vampire_factor_max 0.5 "max vampire factor"
+set g_lms_dynamic_vampire_min_lives_diff 2 "number of lives the attacker must have less than the enemy to receive the base fraction of health"
+set g_lms_forfeit_min_match_time 30 "end the match early if at least this many seconds have elapsed and less than 2 players are playing due to forfeits"
 
 
 // =========
@@ -472,7 +540,7 @@ set g_nexball_basketball_meter_maxpower   1.2    "maximal multiplier to the laun
 set g_nexball_delay_goal     3    "delay between a goal and a ball reset"
 set g_nexball_delay_idle     10   "maximal idle time before a reset"
 set g_nexball_delay_start    3    "time the ball stands on its spawn before being released"
-set g_nexball_delay_collect  0.5  "time before the same player can catch the ball he launched"
+set g_nexball_delay_collect  0.5  "time before the same player can catch the ball they launched"
 set g_nexball_sound_bounce   1    "bouncing sound (0: off)"
 set g_nexball_basketball_trail  1  "1 to leave a trail"
 set g_nexball_football_trail    0  "1 to leave a trail"
@@ -492,8 +560,8 @@ set g_nexball_tackling 1 "Allow ball theft?"
 // ===========
 set g_onslaught 0 "Onslaught: take control points towards the enemy generator and then destroy it"
 set g_onslaught_point_limit 1 "Onslaught point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-set g_onslaught_warmup 5
-set g_onslaught_round_timelimit 500
+set g_onslaught_warmup 5 "time players have to wait before the round starts"
+set g_onslaught_round_timelimit 500 "round time limit in seconds"
 set g_onslaught_teleport_radius 200 "Allows teleporting from a control point to another"
 set g_onslaught_teleport_wait 5 "Time before player can teleport again"
 set g_onslaught_spawn_choose 1 "Allow players to choose the control point to be spawned at"
@@ -535,8 +603,6 @@ set g_invasion_monster_count 10 "number of monsters on first wave (increments)"
 set g_invasion_zombies_only 0 "only spawn zombies"
 set g_invasion_spawn_delay 0.25
 set g_invasion_spawnpoint_spawn_delay 0.5
-set g_invasion_teams 0 "number of teams in invasion (note: use mapinfo to set this)"
-set g_invasion_team_spawns 1 "use team spawns in teamplay invasion mode"
 set g_invasion_type 0 "type of invasion mode - 0: round-based, 1: hunting, 2: complete the stage (note: use mapinfo to set this)"
 
 // ======
@@ -546,3 +612,88 @@ set g_duel 0 "Duel: frag the opponent more in a one versus one arena battle"
 //set g_duel_warmup 180 "Have a short warmup period before beginning the actual duel"
 set g_duel_with_powerups 0 "Enable powerups to spawn in the duel gamemode"
 set g_duel_not_dm_maps 0 "when this is set, DM maps will NOT be listed in duel"
+
+// ==============================
+//  free for all and team mayhem
+// ==============================
+set g_mayhem 0 "Mayhem: Compete for the most damage dealt and kills in this chaotic mayhem!"
+set g_tmayhem 0 "Team Mayhem: Compete with your team for the most damage dealt and kills in this chaotic mayhem!"
+
+set g_mayhem_scoring_upscaler 20 "upscale one frag's worth to be this amount of in score"
+set g_tmayhem_scoring_upscaler 20 "upscale one frag's worth to be this amount of in score"
+set g_mayhem_scoring_kill_weight 0.25 "how much is a kill worth in frags"
+set g_tmayhem_scoring_kill_weight 0.25 "how much is a kill worth in frags"
+set g_mayhem_scoring_damage_weight 0.75 "how much is damage equal to player's spawning health+armor worth in frags"
+set g_tmayhem_scoring_damage_weight 0.75 "how much is damage equal to player's spawning health+armor worth in frags"
+set g_mayhem_scoring_disable_selfdamage2score 0 "disable reducing score with self damage at the cost of full penalty for suicides regardless of how much health was lost suiciding"
+set g_tmayhem_scoring_disable_selfdamage2score 0 "disable reducing score with self damage at the cost of full penalty for suicides regardless of how much health was lost suiciding"
+
+set g_mayhem_point_limit -1 "Mayhem score limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+set g_mayhem_point_leadlimit -1 "Mayhem score lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+set g_tmayhem_point_limit -1 "Team Mayhem score limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+set g_tmayhem_point_leadlimit -1 "Team Mayhem score lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+
+set g_mayhem_weaponarena "most_available" "starting weapons - takes the same options as g_weaponarena"
+set g_tmayhem_weaponarena "most_available" "starting weapons - takes the same options as g_weaponarena"
+
+set g_mayhem_powerups 1 "Allow powerups in mayhem. Only checked if g_powerups is -1 therefore this will be overridden by g_powerups 1 or 0"
+set g_tmayhem_powerups 1 "Allow powerups in team mayhem. Only checked if g_powerups is -1 therefore this will be overridden by g_powerups 1 or 0"
+set g_mayhem_pickup_items 0 "spawn pickup items in mayhem"
+set g_tmayhem_pickup_items 0 "spawn pickup items in team mayhem"
+set g_mayhem_pickup_items_remove_weapons_and_ammo 1 "when pickup items are enabled in mayhem still remove weapons and ammo pickups"
+set g_tmayhem_pickup_items_remove_weapons_and_ammo 1 "when pickup items are enabled in team mayhem still remove weapons and ammo pickups"
+
+set g_mayhem_selfdamage 0 "0 = disable selfdamage in mayhem, 1 = enable selfdamage in mayhem"
+set g_tmayhem_selfdamage 0 "0 = disable selfdamage in tmayhem, 1 = enable selfdamage in tmayhem"
+
+set g_mayhem_regenerate 0 "health and/or armor regeneration, according to g_balance_health_regen and g_balance_armor_regen"
+set g_tmayhem_regenerate 0 "health and/or armor regeneration, according to g_balance_health_regen and g_balance_armor_regen"
+set g_mayhem_rot 0 "health and/or armor rotting, according to g_balance_health_rot and g_balance_armor_rot"
+set g_tmayhem_rot 0 "health and/or armor rotting, according to g_balance_health_rot and g_balance_armor_rot"
+
+set g_tmayhem_teams 2 "how many teams are in team mayhem (set by mapinfo)"
+set g_tmayhem_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any"
+set g_tmayhem_teams_override 0 "how many teams are in team mayhem"
+
+// ===============
+//  team keepaway
+// ===============
+set g_tka 0 "another game mode which focuses around a ball"
+set g_tka_on_ka_maps 1 "when this is set, all KA maps automatically support TKA"
+set g_tka_on_tdm_maps 0 "when this is set, all TDM maps automatically support TKA"
+set g_tka_teams 2 "how many teams are in team keepaway (set by mapinfo)"
+set g_tka_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any"
+set g_tka_teams_override 0     "how many teams are in team keepaway"
+set g_tka_point_limit -1 "TKA point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+set g_tka_point_leadlimit -1 "TKA point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+set g_tka_score_team 1 "allow points to be awarded to teammates for any kill when the ball is in your team's possession"
+set g_tka_score_bckill 1 "points for killing the ball barrier (Ball Carrier Kill)"
+set g_tka_score_killac 1 "points for kills while holding the ball (Kill As Carrier)"
+set g_tka_score_timeinterval 1 "amount of time it takes between intervals for timepoints to be added to the score"
+set g_tka_score_timepoints 0 "points to add to score per timeinterval, 0 for no points"
+set g_tka_ballcarrier_effects 8 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)"
+set g_tka_ballcarrier_highspeed 1 "speed multiplier done to the person holding the ball (recommended when used with some mutators)"
+set g_tka_ballcarrier_damage   1       "damage multiplier while holding the ball"
+set g_tka_ballcarrier_force    1       "force multiplier while holding the ball"
+set g_tka_ballcarrier_selfdamage       1       "self damage multiplier while holding the ball"
+set g_tka_ballcarrier_selfforce        1       "self force multiplier while holding the ball"
+set g_tka_noncarrier_warn      1       "warn players when they kill without holding the ball"
+set g_tka_noncarrier_damage    1       "damage done to other players if both you and they don't have the ball"
+set g_tka_noncarrier_force     1       "force done to other players if both you and they don't have the ball"
+set g_tka_noncarrier_selfdamage        1       "self damage if you don't have the ball"
+set g_tka_noncarrier_selfforce 1       "self force if you don't have the ball"
+set g_tkaball_effects 8 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)"
+set g_tkaball_trail_color      254     "particle trail color from player/ball"
+set g_tkaball_damageforcescale 2 "Scale of force which is applied to the ball by weapons/explosions/etc"
+set g_tkaball_respawntime      10      "if no one picks up the ball, how long to wait until the ball respawns"
+
+// ==========
+//  survival
+// ==========
+set g_survival 0 "Survival: identify and eliminate all the hunters before all your allies are gone"
+set g_survival_not_lms_maps 0 "when this is set, LMS maps will NOT be listed in survival"
+set g_survival_hunter_count 0.25 "number of players who will become hunters, set between 0 and 0.9 to use a multiplier of the current players, or 1 and above to specify an exact number of players"
+set g_survival_punish_teamkill 1 "kill the player when they kill an ally"
+set g_survival_reward_survival 1 "give a point to all surviving players if the round timelimit is reached, in addition to the points given for kills"
+set g_survival_warmup 10 "how long the players will have time to run around the map before the round starts"
+set g_survival_round_timelimit 120 "round time limit in seconds"