]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - gamemodes.cfg
Merge remote-tracking branch 'origin/master' into samual/mutator_ctf
[xonotic/xonotic-data.pk3dir.git] / gamemodes.cfg
1 // ==================================
2 //  Master config for core game modes
3 // ==================================
4
5
6
7
8 // ========
9 //  common
10 // ========
11
12 // hooks
13 alias _cl_hook_gamestart "set _cl_hook_gametype $1; _cl_hook_gamestart_stage2"
14 alias _cl_hook_gamestart_stage2 "cl_hook_gamestart_all; cl_hook_gamestart_${_cl_hook_gametype}"
15 alias cl_hook_gamestart_all
16 alias cl_hook_gamestart_nop  //is only called when CSQC unloads before knowing the gametype, very unlikely
17 alias cl_hook_gamestart_dm
18 alias cl_hook_gamestart_tdm
19 alias cl_hook_gamestart_dom
20 alias cl_hook_gamestart_ctf
21 alias cl_hook_gamestart_rune
22 alias cl_hook_gamestart_lms
23 alias cl_hook_gamestart_arena
24 alias cl_hook_gamestart_ca
25 alias cl_hook_gamestart_kh
26 alias cl_hook_gamestart_ons
27 alias cl_hook_gamestart_as
28 alias cl_hook_gamestart_rc
29 alias cl_hook_gamestart_nb
30 alias cl_hook_gamestart_cts
31 alias cl_hook_gamestart_ka
32 alias cl_hook_gamestart_ft
33 alias cl_hook_gameend
34 alias cl_hook_activeweapon
35
36 alias _sv_hook_gamestart "set _sv_hook_gametype $1; _sv_hook_gamestart_stage2"
37 alias _sv_hook_gamestart_stage2 "sv_hook_gamestart_all; sv_hook_gamestart_${_sv_hook_gametype}"
38 alias sv_hook_gamestart_all
39 alias sv_hook_gamestart_dm
40 alias sv_hook_gamestart_tdm
41 alias sv_hook_gamestart_dom
42 alias sv_hook_gamestart_ctf
43 alias sv_hook_gamestart_rune
44 alias sv_hook_gamestart_lms
45 alias sv_hook_gamestart_arena
46 alias sv_hook_gamestart_ca
47 alias sv_hook_gamestart_kh
48 alias sv_hook_gamestart_ons
49 alias sv_hook_gamestart_as
50 alias sv_hook_gamestart_rc
51 alias sv_hook_gamestart_nb
52 alias sv_hook_gamestart_cts
53 alias sv_hook_gamestart_ka
54 alias sv_hook_gamestart_ft
55 alias sv_hook_gamerestart
56 alias sv_hook_gameend
57
58 // say aliases
59 alias asay_ctf_flagcarrier "say_team flag carrier at %y"
60 alias asay_ctf_haveflag "say_team (%l) have the flag"
61 alias asay_willgo "say_team will go to %y"
62 alias asay_support "say_team (%l) need help, %h%%"
63 alias asay_killed "say_team got killed at %d"
64 alias asay_noammo "say_team (%l) need %W for %w"
65 alias asay_drop "say_team (%l) dropped %w ; impulse 17"
66
67
68 set leadlimit 0
69 set leadlimit_and_fraglimit 0 "if set, leadlimit is ANDed with fraglimit (otherwise ORed)"
70
71 // this means that timelimit can be overidden globally and fraglimit can be overidden for each game mode: DM/TDM, Domination, CTF, and Runematch.
72 seta timelimit_override -1      "Time limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
73 seta fraglimit_override -1      "Frag limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
74 seta leadlimit_override -1      "Lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
75 seta capturelimit_override -1   "Capture limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
76 seta captureleadlimit_override -1       "Capture llead imit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
77 seta g_arena_point_limit -1     "Arena point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
78 seta g_arena_point_leadlimit -1 "Arena point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
79 seta g_domination_point_limit -1        "Domination point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
80 seta g_domination_point_leadlimit -1    "Domination point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
81 seta g_runematch_point_limit -1 "Runematch point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
82 seta g_runematch_point_leadlimit -1     "Runematch point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
83 seta g_keyhunt_point_limit -1   "Keyhunt point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
84 seta g_keyhunt_point_leadlimit -1       "Keyhunt point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
85 seta g_race_laps_limit -1       "Race laps limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
86 seta g_nexball_goallimit -1 "Nexball goal limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
87 seta g_nexball_goalleadlimit -1 "Nexball goal lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
88 seta g_nexball_safepass_maxdist 5000    // Max distance to allow save fassping (0 to turn off safe passing)
89 seta g_nexball_safepass_turnrate 0.1    // How fast the safe-pass ball can habge direction
90 seta g_nexball_safepass_holdtime 0.75   // How long to remeber last teammate you pointed at
91 seta g_nexball_viewmodel_scale 0.25     // How large the ball for the carrier
92 seta g_nexball_viewmodel_offset "8 8 0" // Where the ball is located on carrier "forward right up"
93 seta g_nexball_tackling 1               // Allow ball theft?
94
95 seta g_ctf_ignore_frags 0       "1: regular frags give no points"
96
97
98
99 set g_freezetag 0 "Freeze Tag: Freeze the opposing team(s) to win, unfreeze teammates by standing next to them"
100 seta g_freezetag_warmup 5 "Time players get to run around before the round starts"
101 seta 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)"
102 seta 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)"
103 seta g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate"
104 seta g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range"
105 seta g_freezetag_revive_extra_size 100 "Distance in qu that you can stand from a frozen teammate to keep reviving him"
106 seta g_freezetag_frozen_force 0.6 "How much to multiply the force on a frozen player with"
107
108 // when variables are set to 0, they take over the global setting...
109 // to force disable delay or waves, set them to 0.125
110 set g_ctf_respawn_delay 0
111 set g_ctf_respawn_waves 0
112 set g_ctf_weapon_stay 0
113 set g_dm_respawn_delay 0
114 set g_dm_respawn_waves 0
115 set g_dm_weapon_stay 0
116 set g_dom_respawn_delay 0
117 set g_dom_respawn_waves 0
118 set g_dom_weapon_stay 0
119 set g_lms_respawn_delay 0
120 set g_lms_respawn_waves 0
121 set g_lms_weapon_stay 0
122 set g_rune_respawn_delay 0
123 set g_rune_respawn_waves 0
124 set g_rune_weapon_stay 0
125 set g_tdm_respawn_delay 0
126 set g_tdm_respawn_waves 0
127 set g_tdm_weapon_stay 0
128 set g_ka_respawn_delay 0
129 set g_ka_respawn_waves 0
130 set g_ka_weapon_stay 0
131 set g_kh_respawn_delay 0
132 set g_kh_respawn_waves 0
133 set g_kh_weapon_stay 0
134 set g_arena_respawn_delay 0
135 set g_arena_respawn_waves 0
136 set g_arena_weapon_stay 0
137 set g_ca_respawn_delay 0
138 set g_ca_respawn_waves 0
139 set g_ca_weapon_stay 0
140 set g_ca_damage2score_multiplier 0.01
141 set g_ca_round_timelimit 180
142 set g_nb_respawn_delay 0
143 set g_nb_respawn_waves 0
144 set g_nb_weapon_stay 0
145 set g_as_respawn_delay 0
146 set g_as_respawn_waves 0
147 set g_as_weapon_stay 0
148 set g_ons_respawn_delay 0
149 set g_ons_respawn_waves 0
150 set g_ons_weapon_stay 0
151 set g_rc_respawn_waves 0
152 set g_rc_respawn_delay 0
153 set g_rc_weapon_stay 0
154 set g_cts_respawn_waves 0
155 set g_cts_respawn_delay 0
156 set g_cts_selfdamage 1 "0 = disable all selfdamage and falldamage in cts"
157 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"
158 set g_cts_weapon_stay 2
159 set g_ft_respawn_waves 0
160 set g_ft_respawn_delay 0
161 set g_ft_weapon_stay 0
162
163 set g_tdm_teams 2 "how many teams are in team deathmatch (set by mapinfo)"
164 seta g_tdm_teams_override 0     "how many teams are in team deathmatch"
165 set g_tdm_team_spawns 0 "when 1, a map can define team spawnpoints for TDM"
166
167 // dm
168 set g_dm 1 "Deathmatch: killing any other player is one frag, player with most frags wins"
169 set gamecfg 1   // "deathmatch"
170
171 // ctf
172 set g_ctf 0 "Capture The Flag: take the enemy flag and bring it to yours at your base to score"
173 set g_ctf_flag_return_time 15
174 set g_ctf_flag_return_dropped 100
175 set g_ctf_flag_return_damage 0
176 set g_ctf_flag_return_when_unreachable 1 "automatically return the flag if it falls into lava/slime/trigger hurt"
177 set g_ctf_flagcarrier_auto_helpme_when_damaged 50
178 set g_ctf_flagcarrier_allow_vehicle_carry 1 
179 set g_ctf_flagcarrier_selfdamagefactor 1
180 set g_ctf_flagcarrier_selfforcefactor 1
181 set g_ctf_flagcarrier_damagefactor 1
182 set g_ctf_flagcarrier_forcefactor 1
183 set g_ctf_flagcarrier_waypointforenemy_stalemate 60 "show the enemy flagcarrier location after both teams have held the flags for this amount of time"
184 set g_ctf_flagcarrier_waypointforenemy_spotting 1 "show the enemy flagcarrier location if a team mate presses +use to spot them"
185 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"
186 set g_ctf_flag_damageforcescale 2
187 set g_ctf_portalteleport 0 "allow flag carriers to go through portals made in portal gun without dropping the flag"
188 set g_ctf_reverse 0     "if enabled, flags positions are switched: you have to capture the enemy's flag from your own base by bringing it to your own flag in the enemy base"
189 set g_ctf_flag_collect_delay 1
190 set g_ctf_flag_health 0
191 set g_ctf_flag_dropped_waypoint 2 "show dropped flag waypointsprite when a flag is lost. 1 = team only, 2 = for all players"
192 set g_ctf_flag_dropped_floatinwater 200 "move upwards while in water at this velocity"
193 set g_ctf_flag_pickup_verbosename 0 "show the name of the person who picked up the flag too"
194 set g_ctf_drop 1 "dropping allows circumventing carrierkill score, so enable this with care!"
195 set g_ctf_drop_strengthmultiplier 2 "multiplier for velocity when you have the strength... essentially, throw the flag REALLY hard when you have the strength :D"
196 set g_ctf_drop_velocity 500 "how fast or far a player can throw the flag"
197 set g_ctf_pass 1 "allow passing of flags to nearby team mates"
198 set g_ctf_pass_radius 500 "maximum radius that you can pass to a team mate in"
199 set g_ctf_pass_wait 2 "delay in seconds between how often players can pass the flag (antispam, essentially)"
200 set g_ctf_pass_request 1 "allow players to request the flag carrier to pass the flag to them"
201 set g_ctf_pass_turnrate 50 "how well the flag follows the best direction to its target while passing"
202 set g_ctf_pass_timelimit 2 "how long a flag can stay trying to pass before it gives up and just becomes dropped"
203 set g_ctf_pass_velocity 750 "how fast or far a player can pass the flag"
204 set g_ctf_allow_vehicle_touch 0 "allow flags to be picked up/captured/returned from inside a vehicle
205
206 set g_ctf_shield_max_ratio 0    "shield at most this percentage of a team from the enemy flag (try: 0.4 for 40%)"
207 set g_ctf_shield_min_negscore 20        "shield the player from the flag if he's got this negative amount of points or less"
208 set g_ctf_shield_force 100      "push force of the shield"
209
210 // fun for server admins
211 set g_ctf_flag_red_model "models/ctf/flags.md3"
212 set g_ctf_flag_red_skin 0
213 set g_ctf_flag_blue_model "models/ctf/flags.md3"
214 set g_ctf_flag_blue_skin 1
215 set g_ctf_flag_glowtrails 1
216 set g_ctf_fullbrightflags 0
217 set g_ctf_dynamiclights 0
218 set g_ctf_captimerecord_always 0 "if enabled, assisted CTF records (with other players on the server) are recorded too"
219
220 // CTF capture limit placeholder cvar
221 set capturelimit 0
222 exec ctfscoring-samual.cfg
223
224 // runematch
225 set g_runematch                                         0 "Runematch: pick up and hold the runes, special items that give you points, a special power (rune) and a disadvantage (curse)"
226 set g_runematch_pointrate                               5
227 set g_runematch_fixedspawns                             1 "use fixed runematch spawns if available"
228 set g_runematch_pointamt                                        1
229 set g_runematch_shuffletime                             30 "how often runes change position"
230 set g_runematch_respawntime                             15 "how soon after being dropped to respawn"
231 set g_runematch_frags_killedby_runeholder               4
232 set g_runematch_frags_killed_runeholder                 5
233 set g_runematch_frags_norune                            0
234 set g_runematch_drop_runes_max                          2 "only drop up to 2 runes, the rest should respawn"
235 set g_runematch_allow_same                              0 "allow matching rune-curse pairs"
236 set g_runematch_rune_alpha                              0.78
237 set g_runematch_rune_effects                            544 "EF_ADDITIVE + EF_FULLBRIGHT = 544"
238 set g_runematch_rune_glow_size                          0
239 set g_runematch_rune_glow_color                         0
240 set g_runematch_rune_color_strength                     1.0
241 // strength/weakness
242 set g_balance_rune_strength_damage                      2.0
243 set g_balance_rune_strength_force                       1.5
244 set g_balance_curse_weak_damage                         0.5
245 set g_balance_curse_weak_force                          0.6
246 set g_balance_rune_strength_combo_damage        0.9
247 set g_balance_rune_strength_combo_force                 1.0
248 // defense/vulner
249 set g_balance_rune_defense_takedamage                   0.5
250 set g_balance_curse_vulner_takedamage                   2.0
251 set g_balance_rune_defense_combo_takedamage             1.0
252 // vampire/empathy
253 set g_balance_rune_vampire_absorb                       0.4
254 set g_balance_curse_empathy_takedamage                  -0.4
255 set g_balance_rune_vampire_combo_absorb                 -0.1
256 set g_balance_rune_vampire_maxhealth                    500
257 set g_balance_curse_empathy_minhealth                   20
258 set g_balance_rune_vampire_combo_minhealth              40
259 // regen/venom
260 set g_balance_rune_regen_hpmod                          1.75
261 set g_balance_curse_venom_hpmod                         0.6
262 set g_balance_rune_regen_combo_hpmod                    0.9
263 set g_balance_rune_regen_regenrate                      3.0
264 set g_balance_curse_venom_rotrate                       3.0
265 set g_balance_rune_regen_combo_regenrate        0.5
266 set g_balance_rune_regen_combo_rotrate                  1.5
267 set g_balance_rune_regen_limitmod                       1
268 set g_balance_curse_venom_limitmod                      1
269 set g_balance_rune_regen_combo_limitmod                 1
270 // speed/slow
271 set g_balance_rune_speed_atkrate                                0.66
272 set g_balance_curse_slow_atkrate                                1.5
273 set g_balance_rune_speed_combo_atkrate                  1.2
274 set g_balance_rune_speed_highspeed                      1.5
275 set g_balance_curse_slow_highspeed                      0.6
276 set g_balance_rune_speed_combo_highspeed                        0.9
277
278 // domination
279 set g_domination                        0 "Domination: capture and hold control points to gain points"
280 set g_domination_default_teams          2 "default number of teams for maps that aren't domination-specific"
281 seta g_domination_teams_override                0 "use a specific number of teams in domination games (minimum 2), disables dom_team entities"
282 set g_domination_disable_frags          0 "players can't get frags normally, only get points from kills"
283 set g_domination_point_amt              0 "override: how many points to get per ping"
284 set g_domination_point_fullbright       0 "domination point fullbright"
285 set g_domination_point_rate             0 "override: how often to give those points"
286 set g_domination_point_capturetime      0.1 "how long it takes to capture a point (given no interference)"
287 set g_domination_point_glow             0 "domination point glow (warning, slow)"
288 //set g_domination_balance_team_points  1 "# of points received is based on team sizes"
289
290 // last man standing
291 set g_lms 0 "Last Man Standing: everyone starts with a certain amount of lives, and the survivor wins"
292 set g_lms_lives_override -1
293 set g_lms_regenerate 0
294 set g_lms_campcheck_interval 10
295 set g_lms_campcheck_message "^1Don't camp!"
296 set g_lms_campcheck_damage 100
297 set g_lms_campcheck_distance 1800
298 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"
299 set g_lms_join_anytime 1        "if true, new players can join, but get same amount of lives as the worst player"
300
301 // arena
302 set g_arena 0 "Arena: many one-on-one rounds are played to find the winner"
303 set g_arena_maxspawned 2        "maximum number of players to spawn at once (the rest is spectating, waiting for their turn)"
304 set g_arena_roundbased 1        "if disabled, the next player will spawn as soon as someone dies"
305 set g_arena_warmup 5    "time, newly spawned players have to prepare themselves in round based matches"
306
307 // ca
308 set g_ca 0 "Clan Arena: Played in rounds, once you're dead you're out! The team with survivors wins the round."
309 set g_ca_point_limit 10 "point limit 10 is standard for clan arena"
310 set g_ca_point_leadlimit 0
311 set g_ca_spectate_enemies 0 "Allow spectating enemy player by dead player during clan arena games."
312 set g_ca_warmup 10 "how long the players will have time to run around the map before the round starts"
313
314 // onslaught
315 set g_onslaught 0 "Onslaught: take control points towards the enemy generator and then destroy it"
316 set g_onslaught_gen_health 2500
317 set g_onslaught_cp_health 1000
318 set g_onslaught_cp_buildhealth 100
319 set g_onslaught_cp_buildtime 5
320 set g_onslaught_cp_regen 20
321
322 // assault
323 set g_assault 0 "Assault: attack the enemy base as fast as you can, then defend the base against the enemy for that time to win"
324
325 // race
326 set g_race 0 "Race: be faster than your opponents"
327 set g_race_qualifying_timelimit 0
328 set g_race_qualifying_timelimit_override -1
329 set g_race_teams 0      "when 2, 3, or 4, the race is played as a team game (the team members can add up their laps)"
330
331 // cts
332 set g_cts 0 "CTS: complete the stage"
333
334 // nexball
335 set g_nexball 0 "Nexball: Basketball and Soccer go Xonotic"
336
337 set g_nexball_basketball_effects_default     8    "default: dim light. The original version used 1024 (fire) but it gives bad performance"
338 set g_balance_nexball_primary_speed       1000    "launching speed"
339 set g_balance_nexball_primary_refire         0.7  "launching refire"
340 set g_balance_nexball_primary_animtime       0.3  "launching animtime"
341 set g_balance_nexball_secondary_animtime     0.3  "launching animtime"
342 set g_balance_nexball_secondary_speed     3000    "stealing projectile speed"
343 set g_balance_nexball_secondary_lifetime     0.15 "stealing projectile lifetime"
344 set g_balance_nexball_secondary_force      500    "stealing projectile force"
345 set g_balance_nexball_secondary_refire       0.6  "stealing projectile refire"
346 set g_balance_nexball_secondary_animtime     0.3  "stealing projectile animtime"
347
348 // -1: MrBougo's first try, not very playable but working...
349 //     The ball gets the player's velocity * 1.5 + a vertical boost
350 //  0: Revenant style
351 //     Player's velocity + a boost where he's looking at + a boost
352 //     perpendicularly to the first boost, that is upwards relatively
353 //     to the view angle
354 //  1: MrBougo's modded Rev style 1
355 //     The 2nd Rev boost is always vertical
356 //  2: MrBougo's modded Rev style 2
357 //     The 1st Rev boost is always horizontal
358 //     The 2nd Rev boost is always vertical
359 set g_nexball_football_physics  2  "0: Revenant's original movement, 1: 0 but half independant of aiming height, 2: 1 fully independant, -1: first recode try"
360 set g_nexball_basketball_bouncefactor 0.6    "velocity loss when the ball bounces"
361 set g_nexball_basketball_bouncestop   0.075  "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)"
362 set g_nexball_football_bouncefactor   0.6    "velocity loss when the ball bounces"
363 set g_nexball_football_bouncestop     0.075  "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)"
364
365 set g_nexball_football_boost_forward      100   "forward velocity boost when the ball is touched"
366 set g_nexball_football_boost_up           200   "vertical velocity boost when the ball is touched"
367
368 set g_nexball_basketball_delay_hold           20    "time before a player who caught the ball loses it (anti-ballcamp)"
369 set g_nexball_basketball_delay_hold_forteam   60    "time before a ball reset when a team holds the ball for too long"
370 set g_nexball_basketball_teamsteal             1    "1 to allow players to steal from teammates, 0 to disallow"
371
372 set g_nexball_basketball_carrier_highspeed         0.8  "speed multiplier for the ballcarrier"
373
374 set g_nexball_meter_period                  1    "time to make a full cycle on the power meter"
375 set g_nexball_basketball_meter              1    "use the power meter for basketball"
376 set g_nexball_basketball_meter_minpower   0.5    "minimal multiplier to the launching speed when using the power meter"
377 set g_nexball_basketball_meter_maxpower   1.2    "maximal multiplier to the launching speed when using the power meter"
378
379 set g_nexball_delay_goal     3    "delay between a goal and a ball reset"
380 set g_nexball_delay_idle     10   "maximal idle time before a reset"
381 set g_nexball_delay_start    3    "time the ball stands on its spawn before being released"
382 set g_nexball_delay_collect  0.5  "time before the same player can catch the ball he launched"
383
384 set g_nexball_sound_bounce   1    "bouncing sound (0: off)"
385
386 set g_nexball_basketball_trail  1  "1 to leave a trail"
387 set g_nexball_football_trail    0  "1 to leave a trail"
388 set g_nexball_trail_color     254  "1-256 for different colors (Quake palette, 254 is white)"
389
390 set g_nexball_radar_showallplayers 1  "1: show every player and the ball on the radar  0: only show teammates and the ball on the radar"