From a629d274753e702c0bef047fbe78199bfde3a74c Mon Sep 17 00:00:00 2001 From: Samual Lenks Date: Thu, 6 Sep 2012 15:45:55 -0400 Subject: [PATCH 1/1] Move all of the game mode configuration into its own file --- defaultXonotic.cfg | 378 +------------------------------------------ gamemodes.cfg | 391 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 392 insertions(+), 377 deletions(-) create mode 100644 gamemodes.cfg diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 33816a26c..5a03b0db6 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -31,15 +31,6 @@ seta cl_startcount 0 "how many times the client has been run" seta g_configversion 0 "Configuration file version (used to upgrade settings) 0: first run, or previous start was <2.4.1 Later, it's overridden by config.cfg, version ranges are defined in config_update.cfg" -// say aliases -alias asay_ctf_flagcarrier "say_team flag carrier at %y" -alias asay_ctf_haveflag "say_team (%l) have the flag" -alias asay_willgo "say_team will go to %y" -alias asay_support "say_team (%l) need help, %h%%" -alias asay_killed "say_team got killed at %d" -alias asay_noammo "say_team (%l) need %W for %w" -alias asay_drop "say_team (%l) dropped %w ; impulse 17" - // other aliases alias +hook +button6 alias -hook -button6 @@ -463,45 +454,6 @@ set sv_dodging_height_threshold 10 "the maximum height above ground where to all set sv_dodging_wall_distance_threshold 10 "the maximum distance from a wall that still allows dodging" set sv_dodging_sound 1 "if 1 dodging makes a sound. if 0 dodging is silent" -set leadlimit 0 -set leadlimit_and_fraglimit 0 "if set, leadlimit is ANDed with fraglimit (otherwise ORed)" - -// this means that timelimit can be overidden globally and fraglimit can be overidden for each game mode: DM/TDM, Domination, CTF, and Runematch. -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)" -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)" -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)" -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)" -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)" -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)" -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)" -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)" -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)" -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)" -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)" -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)" -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)" -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)" -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)" -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)" -seta g_nexball_safepass_maxdist 5000 // Max distance to allow save fassping (0 to turn off safe passing) -seta g_nexball_safepass_turnrate 0.1 // How fast the safe-pass ball can habge direction -seta g_nexball_safepass_holdtime 0.75 // How long to remeber last teammate you pointed at -seta g_nexball_viewmodel_scale 0.25 // How large the ball for the carrier -seta g_nexball_viewmodel_offset "8 8 0" // Where the ball is located on carrier "forward right up" -seta g_nexball_tackling 1 // Allow ball theft? - - -seta g_ctf_ignore_frags 0 "1: regular frags give no points" - -set g_freezetag 0 "Freeze Tag: Freeze the opposing team(s) to win, unfreeze teammates by standing next to them" -seta g_freezetag_warmup 5 "Time players get to run around before the round starts" -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)" -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)" -seta g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate" -seta g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range" -seta g_freezetag_revive_extra_size 100 "Distance in qu that you can stand from a frozen teammate to keep reviving him" -seta g_freezetag_frozen_force 0.6 "How much to multiply the force on a frozen player with" - set g_spawn_furthest 0.5 "this amount of the spawns shall be far away from any players" set g_spawn_useallspawns 0 "use all spawns, e.g. also team spawns in non-teamplay, and all spawns, even enemy spawns, in teamplay" set g_spawn_near_teammate 0 "if set, players prefer spawns near a team mate" @@ -509,60 +461,6 @@ set g_spawn_near_teammate_distance 640 "max distance to consider a spawn to be n // respawn delay set g_respawn_delay 2 "number of seconds you have to wait before you can respawn again" set g_respawn_waves 0 "respawn in waves (every n seconds), intended to decrease overwhelming base attacks" -// when variables are set to 0, they take over the global setting... -// to force disable delay or waves, set them to 0.125 -set g_ctf_respawn_delay 0 -set g_ctf_respawn_waves 0 -set g_ctf_weapon_stay 0 -set g_dm_respawn_delay 0 -set g_dm_respawn_waves 0 -set g_dm_weapon_stay 0 -set g_dom_respawn_delay 0 -set g_dom_respawn_waves 0 -set g_dom_weapon_stay 0 -set g_lms_respawn_delay 0 -set g_lms_respawn_waves 0 -set g_lms_weapon_stay 0 -set g_rune_respawn_delay 0 -set g_rune_respawn_waves 0 -set g_rune_weapon_stay 0 -set g_tdm_respawn_delay 0 -set g_tdm_respawn_waves 0 -set g_tdm_weapon_stay 0 -set g_ka_respawn_delay 0 -set g_ka_respawn_waves 0 -set g_ka_weapon_stay 0 -set g_kh_respawn_delay 0 -set g_kh_respawn_waves 0 -set g_kh_weapon_stay 0 -set g_arena_respawn_delay 0 -set g_arena_respawn_waves 0 -set g_arena_weapon_stay 0 -set g_ca_respawn_delay 0 -set g_ca_respawn_waves 0 -set g_ca_weapon_stay 0 -set g_ca_damage2score_multiplier 0.01 -set g_ca_round_timelimit 180 -set g_nb_respawn_delay 0 -set g_nb_respawn_waves 0 -set g_nb_weapon_stay 0 -set g_as_respawn_delay 0 -set g_as_respawn_waves 0 -set g_as_weapon_stay 0 -set g_ons_respawn_delay 0 -set g_ons_respawn_waves 0 -set g_ons_weapon_stay 0 -set g_rc_respawn_waves 0 -set g_rc_respawn_delay 0 -set g_rc_weapon_stay 0 -set g_cts_respawn_waves 0 -set g_cts_respawn_delay 0 -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_weapon_stay 2 -set g_ft_respawn_waves 0 -set g_ft_respawn_delay 0 -set g_ft_weapon_stay 0 // overtime seta timelimit_overtime 2 "duration in minutes of one added overtime, added to the timelimit" @@ -585,236 +483,11 @@ seta g_teamdamage_resetspeed 20 "for teamplay 4: how fast player's teamdamage co seta g_balance_teams 1 "automatically balance out players entering instead of asking them for their preferred team" seta g_balance_teams_prevent_imbalance 1 "prevent players from changing to larger teams" set g_balance_teams_scorefactor 0.34 "at the end of the game, take score into account instead of team size by this amount (beware: values over 0.5 mean that a x:0 score imbalance will cause ALL new players to prefer the losing team at the end, despite numbers)" -set g_tdm_teams 2 "how many teams are in team deathmatch (set by mapinfo)" -seta g_tdm_teams_override 0 "how many teams are in team deathmatch" -set g_tdm_team_spawns 0 "when 1, a map can define team spawnpoints for TDM" set g_changeteam_banned 0 "not allowed to change team" set g_changeteam_fragtransfer 0 "% of frags you get to keep when you change teams (rounded down)" set sv_teamnagger 1 "enable a nag message when the teams are unbalanced" -// dm -set g_dm 1 "Deathmatch: killing any other player is one frag, player with most frags wins" -set gamecfg 1 // "deathmatch" - -// ctf -set g_ctf 0 "Capture The Flag: take the enemy flag and bring it to yours at your base to score" -set g_ctf_flag_return_time 15 -set g_ctf_flag_return_dropped 100 -set g_ctf_flag_return_damage 0 -set g_ctf_flag_return_when_unreachable 1 "automatically return the flag if it falls into lava/slime/trigger hurt" -set g_ctf_flagcarrier_auto_helpme_when_damaged 50 -set g_ctf_flagcarrier_allow_vehicle_carry 1 -set g_ctf_flagcarrier_selfdamagefactor 1 -set g_ctf_flagcarrier_selfforcefactor 1 -set g_ctf_flagcarrier_damagefactor 1 -set g_ctf_flagcarrier_forcefactor 1 -set g_ctf_flagcarrier_waypointforenemy_stalemate 60 "show the enemy flagcarrier location after both teams have held the flags for this amount of time" -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_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_fullbrightflags 0 -set g_ctf_dynamiclights 0 -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" -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" -set g_ctf_flag_collect_delay 1 -set g_ctf_flag_health 0 -set g_ctf_flag_dropped_waypoint 2 "show dropped flag waypointsprite when a flag is lost. 1 = team only, 2 = for all players" -set g_ctf_flag_dropped_floatinwater 200 "move upwards while in water at this velocity" -set g_ctf_flag_pickup_verbosename 0 "show the name of the person who picked up the flag too" -set g_ctf_drop 1 "dropping allows circumventing carrierkill score, so enable this with care!" -set g_ctf_drop_velocity 500 "how fast or far a player can throw the flag" -set g_ctf_pass 1 "allow passing of flags to nearby team mates" -set g_ctf_pass_radius 500 "maximum radius that you can pass to a team mate in" -set g_ctf_pass_wait 2 "delay in seconds between how often players can pass the flag (antispam, essentially)" -set g_ctf_pass_request 1 "allow players to request the flag carrier to pass the flag to them" -set g_ctf_pass_turnrate 50 "how well the flag follows the best direction to its target while passing" -set g_ctf_pass_timelimit 2 "how long a flag can stay trying to pass before it gives up and just becomes dropped" -set g_ctf_pass_velocity 750 "how fast or far a player can pass the flag" -set g_ctf_allow_vehicle_touch 1 "allow flags to be picked up/captured/returned from inside a vehicle - -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_force 100 "push force of the shield" - -// fun for server admins -set g_ctf_flag_red_model "models/ctf/flags.md3" -set g_ctf_flag_red_skin 0 -set g_ctf_flag_blue_model "models/ctf/flags.md3" -set g_ctf_flag_blue_skin 1 -set g_ctf_flag_glowtrails 0 -set g_ctf_flag_pickup_effects 1 -set g_ctf_flag_capture_effects 1 -set g_ctf_captimerecord_always 0 "if enabled, assisted CTF records (with other players on the server) are recorded too" - -// runematch -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)" -set g_runematch_pointrate 5 -set g_runematch_fixedspawns 1 "use fixed runematch spawns if available" -set g_runematch_pointamt 1 -set g_runematch_shuffletime 30 "how often runes change position" -set g_runematch_respawntime 15 "how soon after being dropped to respawn" -set g_runematch_frags_killedby_runeholder 4 -set g_runematch_frags_killed_runeholder 5 -set g_runematch_frags_norune 0 -set g_runematch_drop_runes_max 2 "only drop up to 2 runes, the rest should respawn" -set g_runematch_allow_same 0 "allow matching rune-curse pairs" -set g_runematch_rune_alpha 0.78 -set g_runematch_rune_effects 544 "EF_ADDITIVE + EF_FULLBRIGHT = 544" -set g_runematch_rune_glow_size 0 -set g_runematch_rune_glow_color 0 -set g_runematch_rune_color_strength 1.0 -// strength/weakness -set g_balance_rune_strength_damage 2.0 -set g_balance_rune_strength_force 1.5 -set g_balance_curse_weak_damage 0.5 -set g_balance_curse_weak_force 0.6 -set g_balance_rune_strength_combo_damage 0.9 -set g_balance_rune_strength_combo_force 1.0 -// defense/vulner -set g_balance_rune_defense_takedamage 0.5 -set g_balance_curse_vulner_takedamage 2.0 -set g_balance_rune_defense_combo_takedamage 1.0 -// vampire/empathy -set g_balance_rune_vampire_absorb 0.4 -set g_balance_curse_empathy_takedamage -0.4 -set g_balance_rune_vampire_combo_absorb -0.1 -set g_balance_rune_vampire_maxhealth 500 -set g_balance_curse_empathy_minhealth 20 -set g_balance_rune_vampire_combo_minhealth 40 -// regen/venom -set g_balance_rune_regen_hpmod 1.75 -set g_balance_curse_venom_hpmod 0.6 -set g_balance_rune_regen_combo_hpmod 0.9 -set g_balance_rune_regen_regenrate 3.0 -set g_balance_curse_venom_rotrate 3.0 -set g_balance_rune_regen_combo_regenrate 0.5 -set g_balance_rune_regen_combo_rotrate 1.5 -set g_balance_rune_regen_limitmod 1 -set g_balance_curse_venom_limitmod 1 -set g_balance_rune_regen_combo_limitmod 1 -// speed/slow -set g_balance_rune_speed_atkrate 0.66 -set g_balance_curse_slow_atkrate 1.5 -set g_balance_rune_speed_combo_atkrate 1.2 -set g_balance_rune_speed_highspeed 1.5 -set g_balance_curse_slow_highspeed 0.6 -set g_balance_rune_speed_combo_highspeed 0.9 - -// domination -set g_domination 0 "Domination: capture and hold control points to gain points" -set g_domination_default_teams 2 "default number of teams for maps that aren't domination-specific" -seta g_domination_teams_override 0 "use a specific number of teams in domination games (minimum 2), disables dom_team entities" -set g_domination_disable_frags 0 "players can't get frags normally, only get points from kills" -set g_domination_point_amt 0 "override: how many points to get per ping" -set g_domination_point_fullbright 0 "domination point fullbright" -set g_domination_point_rate 0 "override: how often to give those points" -set g_domination_point_capturetime 0.1 "how long it takes to capture a point (given no interference)" -set g_domination_point_glow 0 "domination point glow (warning, slow)" -//set g_domination_balance_team_points 1 "# of points received is based on team sizes" - -// last man standing -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_regenerate 0 -set g_lms_campcheck_interval 10 -set g_lms_campcheck_message "^1Don't camp!" -set g_lms_campcheck_damage 100 -set g_lms_campcheck_distance 1800 -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" - -// arena -set g_arena 0 "Arena: many one-on-one rounds are played to find the winner" -set g_arena_maxspawned 2 "maximum number of players to spawn at once (the rest is spectating, waiting for their turn)" -set g_arena_roundbased 1 "if disabled, the next player will spawn as soon as someone dies" -set g_arena_warmup 5 "time, newly spawned players have to prepare themselves in round based matches" - -// ca -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 10 "point limit 10 is standard for clan arena" -set g_ca_point_leadlimit 0 -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" - -// onslaught -set g_onslaught 0 "Onslaught: take control points towards the enemy generator and then destroy it" -set g_onslaught_gen_health 2500 -set g_onslaught_cp_health 1000 -set g_onslaught_cp_buildhealth 100 -set g_onslaught_cp_buildtime 5 -set g_onslaught_cp_regen 20 - -// assault -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" - -// race -set g_race 0 "Race: be faster than your opponents" -set g_race_qualifying_timelimit 0 -set g_race_qualifying_timelimit_override -1 -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)" - -// cts -set g_cts 0 "CTS: complete the stage" - -// nexball -set g_nexball 0 "Nexball: Basketball and Soccer go Xonotic" - -set g_nexball_basketball_effects_default 8 "default: dim light. The original version used 1024 (fire) but it gives bad performance" -set g_balance_nexball_primary_speed 1000 "launching speed" -set g_balance_nexball_primary_refire 0.7 "launching refire" -set g_balance_nexball_primary_animtime 0.3 "launching animtime" -set g_balance_nexball_secondary_animtime 0.3 "launching animtime" -set g_balance_nexball_secondary_speed 3000 "stealing projectile speed" -set g_balance_nexball_secondary_lifetime 0.15 "stealing projectile lifetime" -set g_balance_nexball_secondary_force 500 "stealing projectile force" -set g_balance_nexball_secondary_refire 0.6 "stealing projectile refire" -set g_balance_nexball_secondary_animtime 0.3 "stealing projectile animtime" - -// -1: MrBougo's first try, not very playable but working... -// The ball gets the player's velocity * 1.5 + a vertical boost -// 0: Revenant style -// Player's velocity + a boost where he's looking at + a boost -// perpendicularly to the first boost, that is upwards relatively -// to the view angle -// 1: MrBougo's modded Rev style 1 -// The 2nd Rev boost is always vertical -// 2: MrBougo's modded Rev style 2 -// The 1st Rev boost is always horizontal -// The 2nd Rev boost is always vertical -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" -set g_nexball_basketball_bouncefactor 0.6 "velocity loss when the ball bounces" -set g_nexball_basketball_bouncestop 0.075 "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)" -set g_nexball_football_bouncefactor 0.6 "velocity loss when the ball bounces" -set g_nexball_football_bouncestop 0.075 "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)" - -set g_nexball_football_boost_forward 100 "forward velocity boost when the ball is touched" -set g_nexball_football_boost_up 200 "vertical velocity boost when the ball is touched" - -set g_nexball_basketball_delay_hold 20 "time before a player who caught the ball loses it (anti-ballcamp)" -set g_nexball_basketball_delay_hold_forteam 60 "time before a ball reset when a team holds the ball for too long" -set g_nexball_basketball_teamsteal 1 "1 to allow players to steal from teammates, 0 to disallow" - -set g_nexball_basketball_carrier_highspeed 0.8 "speed multiplier for the ballcarrier" - -set g_nexball_meter_period 1 "time to make a full cycle on the power meter" -set g_nexball_basketball_meter 1 "use the power meter for basketball" -set g_nexball_basketball_meter_minpower 0.5 "minimal multiplier to the launching speed when using the power meter" -set g_nexball_basketball_meter_maxpower 1.2 "maximal multiplier to the launching speed when using the power meter" - -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_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" -set g_nexball_trail_color 254 "1-256 for different colors (Quake palette, 254 is white)" - -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" - set g_bloodloss 0 "amount of health below which blood loss occurs" set g_footsteps 1 "serverside footstep sounds" @@ -1459,9 +1132,6 @@ set sv_maxidle 0 // when sv_maxidle is not 0, assume spectators are idle too set sv_maxidle_spectatorsareidle 0 -// CTF capture limit placeholder cvar -set capturelimit 0 - // these entities are not referenced by anything directly, they just represent // teams and are found by find() when needed prvm_leaktest_ignore_classnames "ctf_team dom_team tdm_team" @@ -1627,52 +1297,6 @@ seta cl_modeldetailreduction 1 "the higher, the less detailed certain map models set g_mapinfo_settemp_acl "+*" "ACL for mapinfo setting cvars" -// hooks -alias _cl_hook_gamestart "set _cl_hook_gametype $1; _cl_hook_gamestart_stage2" -alias _cl_hook_gamestart_stage2 "cl_hook_gamestart_all; cl_hook_gamestart_${_cl_hook_gametype}" -alias cl_hook_gamestart_all -alias cl_hook_gamestart_nop //is only called when CSQC unloads before knowing the gametype, very unlikely -alias cl_hook_gamestart_dm -alias cl_hook_gamestart_tdm -alias cl_hook_gamestart_dom -alias cl_hook_gamestart_ctf -alias cl_hook_gamestart_rune -alias cl_hook_gamestart_lms -alias cl_hook_gamestart_arena -alias cl_hook_gamestart_ca -alias cl_hook_gamestart_kh -alias cl_hook_gamestart_ons -alias cl_hook_gamestart_as -alias cl_hook_gamestart_rc -alias cl_hook_gamestart_nb -alias cl_hook_gamestart_cts -alias cl_hook_gamestart_ka -alias cl_hook_gamestart_ft -alias cl_hook_gameend -alias cl_hook_activeweapon - -alias _sv_hook_gamestart "set _sv_hook_gametype $1; _sv_hook_gamestart_stage2" -alias _sv_hook_gamestart_stage2 "sv_hook_gamestart_all; sv_hook_gamestart_${_sv_hook_gametype}" -alias sv_hook_gamestart_all -alias sv_hook_gamestart_dm -alias sv_hook_gamestart_tdm -alias sv_hook_gamestart_dom -alias sv_hook_gamestart_ctf -alias sv_hook_gamestart_rune -alias sv_hook_gamestart_lms -alias sv_hook_gamestart_arena -alias sv_hook_gamestart_ca -alias sv_hook_gamestart_kh -alias sv_hook_gamestart_ons -alias sv_hook_gamestart_as -alias sv_hook_gamestart_rc -alias sv_hook_gamestart_nb -alias sv_hook_gamestart_cts -alias sv_hook_gamestart_ka -alias sv_hook_gamestart_ft -alias sv_hook_gamerestart -alias sv_hook_gameend - seta cl_casings_maxcount 100 "maximum amount of shell casings (must be at least 1)" seta cl_gibs_maxcount 100 "maximum amount of gibs (must be at least 1)" seta cl_vehicle_spiderbot_cross_alpha 0.6 @@ -1959,12 +1583,12 @@ scr_loadingscreen_scale_limit 2 // other config files exec mutator_new_toys.cfg // run BEFORE balance to make sure balance wins exec balanceXonotic.cfg -exec ctfscoring-samual.cfg exec effects-normal.cfg exec physicsX.cfg exec turrets.cfg exec vehicles.cfg exec crosshairs.cfg +exec gamemodes.cfg // load console command aliases and settings exec commands.cfg diff --git a/gamemodes.cfg b/gamemodes.cfg new file mode 100644 index 000000000..5be357029 --- /dev/null +++ b/gamemodes.cfg @@ -0,0 +1,391 @@ +// ================================== +// Master config for core game modes +// ================================== + + + + +// ======== +// common +// ======== + +// hooks +alias _cl_hook_gamestart "set _cl_hook_gametype $1; _cl_hook_gamestart_stage2" +alias _cl_hook_gamestart_stage2 "cl_hook_gamestart_all; cl_hook_gamestart_${_cl_hook_gametype}" +alias cl_hook_gamestart_all +alias cl_hook_gamestart_nop //is only called when CSQC unloads before knowing the gametype, very unlikely +alias cl_hook_gamestart_dm +alias cl_hook_gamestart_tdm +alias cl_hook_gamestart_dom +alias cl_hook_gamestart_ctf +alias cl_hook_gamestart_rune +alias cl_hook_gamestart_lms +alias cl_hook_gamestart_arena +alias cl_hook_gamestart_ca +alias cl_hook_gamestart_kh +alias cl_hook_gamestart_ons +alias cl_hook_gamestart_as +alias cl_hook_gamestart_rc +alias cl_hook_gamestart_nb +alias cl_hook_gamestart_cts +alias cl_hook_gamestart_ka +alias cl_hook_gamestart_ft +alias cl_hook_gameend +alias cl_hook_activeweapon + +alias _sv_hook_gamestart "set _sv_hook_gametype $1; _sv_hook_gamestart_stage2" +alias _sv_hook_gamestart_stage2 "sv_hook_gamestart_all; sv_hook_gamestart_${_sv_hook_gametype}" +alias sv_hook_gamestart_all +alias sv_hook_gamestart_dm +alias sv_hook_gamestart_tdm +alias sv_hook_gamestart_dom +alias sv_hook_gamestart_ctf +alias sv_hook_gamestart_rune +alias sv_hook_gamestart_lms +alias sv_hook_gamestart_arena +alias sv_hook_gamestart_ca +alias sv_hook_gamestart_kh +alias sv_hook_gamestart_ons +alias sv_hook_gamestart_as +alias sv_hook_gamestart_rc +alias sv_hook_gamestart_nb +alias sv_hook_gamestart_cts +alias sv_hook_gamestart_ka +alias sv_hook_gamestart_ft +alias sv_hook_gamerestart +alias sv_hook_gameend + +// say aliases +alias asay_ctf_flagcarrier "say_team flag carrier at %y" +alias asay_ctf_haveflag "say_team (%l) have the flag" +alias asay_willgo "say_team will go to %y" +alias asay_support "say_team (%l) need help, %h%%" +alias asay_killed "say_team got killed at %d" +alias asay_noammo "say_team (%l) need %W for %w" +alias asay_drop "say_team (%l) dropped %w ; impulse 17" + + +set leadlimit 0 +set leadlimit_and_fraglimit 0 "if set, leadlimit is ANDed with fraglimit (otherwise ORed)" + +// this means that timelimit can be overidden globally and fraglimit can be overidden for each game mode: DM/TDM, Domination, CTF, and Runematch. +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)" +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)" +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)" +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)" +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)" +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)" +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)" +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)" +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)" +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)" +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)" +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)" +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)" +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)" +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)" +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)" +seta g_nexball_safepass_maxdist 5000 // Max distance to allow save fassping (0 to turn off safe passing) +seta g_nexball_safepass_turnrate 0.1 // How fast the safe-pass ball can habge direction +seta g_nexball_safepass_holdtime 0.75 // How long to remeber last teammate you pointed at +seta g_nexball_viewmodel_scale 0.25 // How large the ball for the carrier +seta g_nexball_viewmodel_offset "8 8 0" // Where the ball is located on carrier "forward right up" +seta g_nexball_tackling 1 // Allow ball theft? + +seta g_ctf_ignore_frags 0 "1: regular frags give no points" + + + +set g_freezetag 0 "Freeze Tag: Freeze the opposing team(s) to win, unfreeze teammates by standing next to them" +seta g_freezetag_warmup 5 "Time players get to run around before the round starts" +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)" +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)" +seta g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate" +seta g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range" +seta g_freezetag_revive_extra_size 100 "Distance in qu that you can stand from a frozen teammate to keep reviving him" +seta g_freezetag_frozen_force 0.6 "How much to multiply the force on a frozen player with" + +// when variables are set to 0, they take over the global setting... +// to force disable delay or waves, set them to 0.125 +set g_ctf_respawn_delay 0 +set g_ctf_respawn_waves 0 +set g_ctf_weapon_stay 0 +set g_dm_respawn_delay 0 +set g_dm_respawn_waves 0 +set g_dm_weapon_stay 0 +set g_dom_respawn_delay 0 +set g_dom_respawn_waves 0 +set g_dom_weapon_stay 0 +set g_lms_respawn_delay 0 +set g_lms_respawn_waves 0 +set g_lms_weapon_stay 0 +set g_rune_respawn_delay 0 +set g_rune_respawn_waves 0 +set g_rune_weapon_stay 0 +set g_tdm_respawn_delay 0 +set g_tdm_respawn_waves 0 +set g_tdm_weapon_stay 0 +set g_ka_respawn_delay 0 +set g_ka_respawn_waves 0 +set g_ka_weapon_stay 0 +set g_kh_respawn_delay 0 +set g_kh_respawn_waves 0 +set g_kh_weapon_stay 0 +set g_arena_respawn_delay 0 +set g_arena_respawn_waves 0 +set g_arena_weapon_stay 0 +set g_ca_respawn_delay 0 +set g_ca_respawn_waves 0 +set g_ca_weapon_stay 0 +set g_ca_damage2score_multiplier 0.01 +set g_ca_round_timelimit 180 +set g_nb_respawn_delay 0 +set g_nb_respawn_waves 0 +set g_nb_weapon_stay 0 +set g_as_respawn_delay 0 +set g_as_respawn_waves 0 +set g_as_weapon_stay 0 +set g_ons_respawn_delay 0 +set g_ons_respawn_waves 0 +set g_ons_weapon_stay 0 +set g_rc_respawn_waves 0 +set g_rc_respawn_delay 0 +set g_rc_weapon_stay 0 +set g_cts_respawn_waves 0 +set g_cts_respawn_delay 0 +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_weapon_stay 2 +set g_ft_respawn_waves 0 +set g_ft_respawn_delay 0 +set g_ft_weapon_stay 0 + +set g_tdm_teams 2 "how many teams are in team deathmatch (set by mapinfo)" +seta g_tdm_teams_override 0 "how many teams are in team deathmatch" +set g_tdm_team_spawns 0 "when 1, a map can define team spawnpoints for TDM" + +// dm +set g_dm 1 "Deathmatch: killing any other player is one frag, player with most frags wins" +set gamecfg 1 // "deathmatch" + +// ctf +set g_ctf 0 "Capture The Flag: take the enemy flag and bring it to yours at your base to score" +set g_ctf_flag_return_time 15 +set g_ctf_flag_return_dropped 100 +set g_ctf_flag_return_damage 0 +set g_ctf_flag_return_when_unreachable 1 "automatically return the flag if it falls into lava/slime/trigger hurt" +set g_ctf_flagcarrier_auto_helpme_when_damaged 50 +set g_ctf_flagcarrier_allow_vehicle_carry 1 +set g_ctf_flagcarrier_selfdamagefactor 1 +set g_ctf_flagcarrier_selfforcefactor 1 +set g_ctf_flagcarrier_damagefactor 1 +set g_ctf_flagcarrier_forcefactor 1 +set g_ctf_flagcarrier_waypointforenemy_stalemate 60 "show the enemy flagcarrier location after both teams have held the flags for this amount of time" +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_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_fullbrightflags 0 +set g_ctf_dynamiclights 0 +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" +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" +set g_ctf_flag_collect_delay 1 +set g_ctf_flag_health 0 +set g_ctf_flag_dropped_waypoint 2 "show dropped flag waypointsprite when a flag is lost. 1 = team only, 2 = for all players" +set g_ctf_flag_dropped_floatinwater 200 "move upwards while in water at this velocity" +set g_ctf_flag_pickup_verbosename 0 "show the name of the person who picked up the flag too" +set g_ctf_drop 1 "dropping allows circumventing carrierkill score, so enable this with care!" +set g_ctf_drop_velocity 500 "how fast or far a player can throw the flag" +set g_ctf_pass 1 "allow passing of flags to nearby team mates" +set g_ctf_pass_radius 500 "maximum radius that you can pass to a team mate in" +set g_ctf_pass_wait 2 "delay in seconds between how often players can pass the flag (antispam, essentially)" +set g_ctf_pass_request 1 "allow players to request the flag carrier to pass the flag to them" +set g_ctf_pass_turnrate 50 "how well the flag follows the best direction to its target while passing" +set g_ctf_pass_timelimit 2 "how long a flag can stay trying to pass before it gives up and just becomes dropped" +set g_ctf_pass_velocity 750 "how fast or far a player can pass the flag" +set g_ctf_allow_vehicle_touch 1 "allow flags to be picked up/captured/returned from inside a vehicle + +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_force 100 "push force of the shield" + +// fun for server admins +set g_ctf_flag_red_model "models/ctf/flags.md3" +set g_ctf_flag_red_skin 0 +set g_ctf_flag_blue_model "models/ctf/flags.md3" +set g_ctf_flag_blue_skin 1 +set g_ctf_flag_glowtrails 0 +set g_ctf_flag_pickup_effects 1 +set g_ctf_flag_capture_effects 1 +set g_ctf_captimerecord_always 0 "if enabled, assisted CTF records (with other players on the server) are recorded too" + +// CTF capture limit placeholder cvar +set capturelimit 0 +exec ctfscoring-samual.cfg + +// runematch +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)" +set g_runematch_pointrate 5 +set g_runematch_fixedspawns 1 "use fixed runematch spawns if available" +set g_runematch_pointamt 1 +set g_runematch_shuffletime 30 "how often runes change position" +set g_runematch_respawntime 15 "how soon after being dropped to respawn" +set g_runematch_frags_killedby_runeholder 4 +set g_runematch_frags_killed_runeholder 5 +set g_runematch_frags_norune 0 +set g_runematch_drop_runes_max 2 "only drop up to 2 runes, the rest should respawn" +set g_runematch_allow_same 0 "allow matching rune-curse pairs" +set g_runematch_rune_alpha 0.78 +set g_runematch_rune_effects 544 "EF_ADDITIVE + EF_FULLBRIGHT = 544" +set g_runematch_rune_glow_size 0 +set g_runematch_rune_glow_color 0 +set g_runematch_rune_color_strength 1.0 +// strength/weakness +set g_balance_rune_strength_damage 2.0 +set g_balance_rune_strength_force 1.5 +set g_balance_curse_weak_damage 0.5 +set g_balance_curse_weak_force 0.6 +set g_balance_rune_strength_combo_damage 0.9 +set g_balance_rune_strength_combo_force 1.0 +// defense/vulner +set g_balance_rune_defense_takedamage 0.5 +set g_balance_curse_vulner_takedamage 2.0 +set g_balance_rune_defense_combo_takedamage 1.0 +// vampire/empathy +set g_balance_rune_vampire_absorb 0.4 +set g_balance_curse_empathy_takedamage -0.4 +set g_balance_rune_vampire_combo_absorb -0.1 +set g_balance_rune_vampire_maxhealth 500 +set g_balance_curse_empathy_minhealth 20 +set g_balance_rune_vampire_combo_minhealth 40 +// regen/venom +set g_balance_rune_regen_hpmod 1.75 +set g_balance_curse_venom_hpmod 0.6 +set g_balance_rune_regen_combo_hpmod 0.9 +set g_balance_rune_regen_regenrate 3.0 +set g_balance_curse_venom_rotrate 3.0 +set g_balance_rune_regen_combo_regenrate 0.5 +set g_balance_rune_regen_combo_rotrate 1.5 +set g_balance_rune_regen_limitmod 1 +set g_balance_curse_venom_limitmod 1 +set g_balance_rune_regen_combo_limitmod 1 +// speed/slow +set g_balance_rune_speed_atkrate 0.66 +set g_balance_curse_slow_atkrate 1.5 +set g_balance_rune_speed_combo_atkrate 1.2 +set g_balance_rune_speed_highspeed 1.5 +set g_balance_curse_slow_highspeed 0.6 +set g_balance_rune_speed_combo_highspeed 0.9 + +// domination +set g_domination 0 "Domination: capture and hold control points to gain points" +set g_domination_default_teams 2 "default number of teams for maps that aren't domination-specific" +seta g_domination_teams_override 0 "use a specific number of teams in domination games (minimum 2), disables dom_team entities" +set g_domination_disable_frags 0 "players can't get frags normally, only get points from kills" +set g_domination_point_amt 0 "override: how many points to get per ping" +set g_domination_point_fullbright 0 "domination point fullbright" +set g_domination_point_rate 0 "override: how often to give those points" +set g_domination_point_capturetime 0.1 "how long it takes to capture a point (given no interference)" +set g_domination_point_glow 0 "domination point glow (warning, slow)" +//set g_domination_balance_team_points 1 "# of points received is based on team sizes" + +// last man standing +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_regenerate 0 +set g_lms_campcheck_interval 10 +set g_lms_campcheck_message "^1Don't camp!" +set g_lms_campcheck_damage 100 +set g_lms_campcheck_distance 1800 +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" + +// arena +set g_arena 0 "Arena: many one-on-one rounds are played to find the winner" +set g_arena_maxspawned 2 "maximum number of players to spawn at once (the rest is spectating, waiting for their turn)" +set g_arena_roundbased 1 "if disabled, the next player will spawn as soon as someone dies" +set g_arena_warmup 5 "time, newly spawned players have to prepare themselves in round based matches" + +// ca +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 10 "point limit 10 is standard for clan arena" +set g_ca_point_leadlimit 0 +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" + +// onslaught +set g_onslaught 0 "Onslaught: take control points towards the enemy generator and then destroy it" +set g_onslaught_gen_health 2500 +set g_onslaught_cp_health 1000 +set g_onslaught_cp_buildhealth 100 +set g_onslaught_cp_buildtime 5 +set g_onslaught_cp_regen 20 + +// assault +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" + +// race +set g_race 0 "Race: be faster than your opponents" +set g_race_qualifying_timelimit 0 +set g_race_qualifying_timelimit_override -1 +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)" + +// cts +set g_cts 0 "CTS: complete the stage" + +// nexball +set g_nexball 0 "Nexball: Basketball and Soccer go Xonotic" + +set g_nexball_basketball_effects_default 8 "default: dim light. The original version used 1024 (fire) but it gives bad performance" +set g_balance_nexball_primary_speed 1000 "launching speed" +set g_balance_nexball_primary_refire 0.7 "launching refire" +set g_balance_nexball_primary_animtime 0.3 "launching animtime" +set g_balance_nexball_secondary_animtime 0.3 "launching animtime" +set g_balance_nexball_secondary_speed 3000 "stealing projectile speed" +set g_balance_nexball_secondary_lifetime 0.15 "stealing projectile lifetime" +set g_balance_nexball_secondary_force 500 "stealing projectile force" +set g_balance_nexball_secondary_refire 0.6 "stealing projectile refire" +set g_balance_nexball_secondary_animtime 0.3 "stealing projectile animtime" + +// -1: MrBougo's first try, not very playable but working... +// The ball gets the player's velocity * 1.5 + a vertical boost +// 0: Revenant style +// Player's velocity + a boost where he's looking at + a boost +// perpendicularly to the first boost, that is upwards relatively +// to the view angle +// 1: MrBougo's modded Rev style 1 +// The 2nd Rev boost is always vertical +// 2: MrBougo's modded Rev style 2 +// The 1st Rev boost is always horizontal +// The 2nd Rev boost is always vertical +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" +set g_nexball_basketball_bouncefactor 0.6 "velocity loss when the ball bounces" +set g_nexball_basketball_bouncestop 0.075 "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)" +set g_nexball_football_bouncefactor 0.6 "velocity loss when the ball bounces" +set g_nexball_football_bouncestop 0.075 "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)" + +set g_nexball_football_boost_forward 100 "forward velocity boost when the ball is touched" +set g_nexball_football_boost_up 200 "vertical velocity boost when the ball is touched" + +set g_nexball_basketball_delay_hold 20 "time before a player who caught the ball loses it (anti-ballcamp)" +set g_nexball_basketball_delay_hold_forteam 60 "time before a ball reset when a team holds the ball for too long" +set g_nexball_basketball_teamsteal 1 "1 to allow players to steal from teammates, 0 to disallow" + +set g_nexball_basketball_carrier_highspeed 0.8 "speed multiplier for the ballcarrier" + +set g_nexball_meter_period 1 "time to make a full cycle on the power meter" +set g_nexball_basketball_meter 1 "use the power meter for basketball" +set g_nexball_basketball_meter_minpower 0.5 "minimal multiplier to the launching speed when using the power meter" +set g_nexball_basketball_meter_maxpower 1.2 "maximal multiplier to the launching speed when using the power meter" + +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_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" +set g_nexball_trail_color 254 "1-256 for different colors (Quake palette, 254 is white)" + +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" -- 2.39.2