]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - xonotic-server.cfg
Merge branch 'k9er/strafehud-changes' into 'master'
[xonotic/xonotic-data.pk3dir.git] / xonotic-server.cfg
index 08987e7796f3efd9b27e0e8f02816d9bdddd15b5..67f9be443c87211ac1b3b13e850ed5ee47e9332a 100644 (file)
@@ -27,7 +27,7 @@ alias sv_hook_readyrestart
 set teamplay_lockonrestart 0 "lock teams once all players readied up and the game restarted (no new players can join after restart unless using the server-command unlockteams)"
 
 set g_maxplayers 0 "maximum number of players allowed to play at the same time, 0 means unlimited, -1 uses the map setting or unlimited if not set (rounded to multiple of team number)"
 set teamplay_lockonrestart 0 "lock teams once all players readied up and the game restarted (no new players can join after restart unless using the server-command unlockteams)"
 
 set g_maxplayers 0 "maximum number of players allowed to play at the same time, 0 means unlimited, -1 uses the map setting or unlimited if not set (rounded to multiple of team number)"
-set g_maxplayers_spectator_blocktime 5 "if the players voted for the \"nospectators\" command, this setting defines the number of seconds a observer/spectator has time to join the game before they get kicked"
+set g_maxplayers_spectator_blocktime 5 "if sv_spectate is disabled, such as by voting for \"nospectators\", this setting defines the number of seconds an observer/spectator has to join the game before they get kicked"
 
 // tournament mod
 set g_warmup 0 "splits the game into warmup and match stages, 1 means the match starts when g_warmup_majority_factor of players are ready OR g_warmup_limit is hit, >1 also requires at least g_warmup players (including bots) to join, -1 means that minimum player requrement is set by the map (lower bound of 2 or 2 per team)"
 
 // tournament mod
 set g_warmup 0 "splits the game into warmup and match stages, 1 means the match starts when g_warmup_majority_factor of players are ready OR g_warmup_limit is hit, >1 also requires at least g_warmup players (including bots) to join, -1 means that minimum player requrement is set by the map (lower bound of 2 or 2 per team)"
@@ -51,12 +51,13 @@ set sv_timeout_number 2 "how many timeouts one player is allowed to call (gets r
 set sv_timeout_leadtime 4 "how long the players will be informed that a timeout was called before it starts, in seconds"
 set sv_timeout_resumetime 3 "how long the remaining timeout-time will be after a player called the timein command"
 
 set sv_timeout_leadtime 4 "how long the players will be informed that a timeout was called before it starts, in seconds"
 set sv_timeout_resumetime 3 "how long the remaining timeout-time will be after a player called the timein command"
 
-set sv_autopause 1 "Single player or listen server: pause while all clients have the menu, console or chat open. Dedicated server: pause after starting a map if the server is empty and unpause when the first player joins the empty server."
+seta sv_autopause 1 "Single player or listen server: pause while all clients have the menu, console or chat open. Dedicated server: pause after starting a map if the server is empty and unpause when the first player joins the empty server."
 
 set g_telefrags 1 "telefragging, i.e. killing someone who stands in the way of someone who is teleporting"
 set g_telefrags_teamplay 1 "never telefrag team mates"
 set g_telefrags_avoid 1 "when teleporters have a random destination, avoid teleporting to locations where a telefrag would happen"
 set g_teleport_maxspeed 0 "maximum speed that a player can keep when going through a teleporter (if a misc_teleporter_dest also has a cap the smallest one of these will be used), 0 = don't limit, -1 = keep no speed"
 
 set g_telefrags 1 "telefragging, i.e. killing someone who stands in the way of someone who is teleporting"
 set g_telefrags_teamplay 1 "never telefrag team mates"
 set g_telefrags_avoid 1 "when teleporters have a random destination, avoid teleporting to locations where a telefrag would happen"
 set g_teleport_maxspeed 0 "maximum speed that a player can keep when going through a teleporter (if a misc_teleporter_dest also has a cap the smallest one of these will be used), 0 = don't limit, -1 = keep no speed"
+set g_teleport_minspeed 0 "minimum speed that a player can keep when going through a teleporter which affects speed"
 
 set g_respawn_ghosts 1 "if 1 dead bodies become ghosts and float away when the player respawns"
 set g_respawn_ghosts_speed 5 "the speed with which respawn ghosts float and rotate"
 
 set g_respawn_ghosts 1 "if 1 dead bodies become ghosts and float away when the player respawns"
 set g_respawn_ghosts_speed 5 "the speed with which respawn ghosts float and rotate"
@@ -94,7 +95,7 @@ set sv_precacheplayermodels 1 "preload all the player models at game start, to a
 set sv_spectator_speed_multiplier 1.5 "base movement speed factor of spectators, all movement settings scale off this"
 set sv_spectator_speed_multiplier_min 1 "minimum movement speed factor for spectators as determined by scrolling"
 set sv_spectator_speed_multiplier_max 5 "maximum movement speed factor for spectators as determined by scrolling"
 set sv_spectator_speed_multiplier 1.5 "base movement speed factor of spectators, all movement settings scale off this"
 set sv_spectator_speed_multiplier_min 1 "minimum movement speed factor for spectators as determined by scrolling"
 set sv_spectator_speed_multiplier_max 5 "maximum movement speed factor for spectators as determined by scrolling"
-set sv_spectate 1 "if set to 1, new clients are allowed to spectate or observe the game, if set to 0 joining clients spawn as players immediately (no spectating)"
+set sv_spectate 1 "if set to 1 clients are allowed to spectate or observe the game, if set to 0 clients spawn as players immediately or are kicked after g_maxplayers_spectator_blocktime if that's not possible (incompatible with spec-based features such as sv_maxidle_playertospectator and g_balance_teams_queue)"
 set sv_defaultcharacter 0 "master switch, if set to 1 the further configuration for replacing all player models, skins and colors is taken from the sv_defaultplayermodel, sv_defaultplayerskin and sv_defaultplayercolors variables"
 set sv_defaultcharacterskin 0 "if set to 1 the further configuration for replacing all skins is taken from the sv_defaultplayerskin variables"
 set sv_defaultplayermodel "models/player/erebus.iqm" "default model selection, only works if sv_defaultcharacter is set to 1; you may append a :<skinnumber> suffix to model names; you can specify multiple, separated by space, and a random one will be chosen"
 set sv_defaultcharacter 0 "master switch, if set to 1 the further configuration for replacing all player models, skins and colors is taken from the sv_defaultplayermodel, sv_defaultplayerskin and sv_defaultplayercolors variables"
 set sv_defaultcharacterskin 0 "if set to 1 the further configuration for replacing all skins is taken from the sv_defaultplayerskin variables"
 set sv_defaultplayermodel "models/player/erebus.iqm" "default model selection, only works if sv_defaultcharacter is set to 1; you may append a :<skinnumber> suffix to model names; you can specify multiple, separated by space, and a random one will be chosen"
@@ -193,19 +194,21 @@ set g_spawnshieldtime 1 "number of seconds you are invincible after you spawned,
 set g_spawnshield_blockdamage 1 "how much spawn shield protects you from damage (1 = full protection)"
 set g_antilag 2 "AntiLag (0 = no AntiLag, 1 = verified client side hit scan, 2 = server side hit scan in the past)"
 set g_antilag_nudge 0 "don't touch"
 set g_spawnshield_blockdamage 1 "how much spawn shield protects you from damage (1 = full protection)"
 set g_antilag 2 "AntiLag (0 = no AntiLag, 1 = verified client side hit scan, 2 = server side hit scan in the past)"
 set g_antilag_nudge 0 "don't touch"
-set g_shootfromeye 0 "shots are fired from your eye/crosshair; visual gun position can still be influenced by cl_gunalign 1 and 2"
+set g_shootfromeye 1 "shots are fired from your eye/crosshair; visual gun position can still be influenced by cl_gunalign 1 and 2"
 set g_shootfromcenter 0 "weapon gets moved to the center, shots still come from the barrel of your weapon; visual gun position can still be influenced by cl_gunalign 1 and 2"
 set g_shootfromfixedorigin "" "if set to a string like 0 y z, the gun is moved to the given y and z coordinates. If set to a string like x y z, the whole shot origin is used"
 set g_weapon_stay 0 "1: ghost weapons can be picked up but give no ammo, thrown guns have ammo 2: ghost weapons can be picked up and refill ammo to one pickup size, thrown guns have no ammo (to prevent infinite ammo abuse)"
 set g_weapon_throwable 1 "if set to 1, weapons can be dropped"
 set g_powerups -1 "if set to 0 no powerups will spawn, if 1 they will spawn in all game modes, -1 is game mode default"
 set g_powerups_drop 0 "allow dropping powerups (1 = timer continues, 2 = timer freezes until picked up)"
 set g_shootfromcenter 0 "weapon gets moved to the center, shots still come from the barrel of your weapon; visual gun position can still be influenced by cl_gunalign 1 and 2"
 set g_shootfromfixedorigin "" "if set to a string like 0 y z, the gun is moved to the given y and z coordinates. If set to a string like x y z, the whole shot origin is used"
 set g_weapon_stay 0 "1: ghost weapons can be picked up but give no ammo, thrown guns have ammo 2: ghost weapons can be picked up and refill ammo to one pickup size, thrown guns have no ammo (to prevent infinite ammo abuse)"
 set g_weapon_throwable 1 "if set to 1, weapons can be dropped"
 set g_powerups -1 "if set to 0 no powerups will spawn, if 1 they will spawn in all game modes, -1 is game mode default"
 set g_powerups_drop 0 "allow dropping powerups (1 = timer continues, 2 = timer freezes until picked up)"
-set g_powerups_drop_ondeath 0 "players will drop their powerups on death (1 = timer continues, 2 = timer freezes until picked up)"
+set g_powerups_drop_ondeath 1 "players will drop their powerups on death (1 = timer continues, 2 = timer freezes until picked up)"
 set g_powerups_stack 0 "enables stacking of powerup timers when picking up a powerup you already have; otherwise timer is reset to the time granted by the item, if greater than the time you currently have"
 set g_powerups_strength 1 "allow strength powerups to spawn"
 set g_powerups_shield 1 "allow shield powerups to spawn"
 set g_powerups_speed 1 "allow speed powerups to spawn"
 set g_powerups_invisibility 1 "allow invisibility powerups to spawn"
 set g_powerups_stack 0 "enables stacking of powerup timers when picking up a powerup you already have; otherwise timer is reset to the time granted by the item, if greater than the time you currently have"
 set g_powerups_strength 1 "allow strength powerups to spawn"
 set g_powerups_shield 1 "allow shield powerups to spawn"
 set g_powerups_speed 1 "allow speed powerups to spawn"
 set g_powerups_invisibility 1 "allow invisibility powerups to spawn"
+set g_powerups_jetpack 1 "allow jetpacks to spawn"
+set g_powerups_fuelregen 1 "allow fuel regenerators to spawn"
 set g_use_ammunition 1 "if set to 0 all weapons have unlimited ammo"
 set g_pickup_items -1 "if set to 0 all items (health, armor, ammo, weapons...) are removed from the map, if 1 they are forced to spawn"
 set g_pickup_respawntime_scaling_reciprocal 0 "Multiply respawn time by `reciprocal / (p + offset) + linear` where `p` is the current number of players, takes effect with 2 or more players present, `reciprocal` (with `offset` and `linear` set to 0) can be used to achieve a constant number of items spawned *per player*"
 set g_use_ammunition 1 "if set to 0 all weapons have unlimited ammo"
 set g_pickup_items -1 "if set to 0 all items (health, armor, ammo, weapons...) are removed from the map, if 1 they are forced to spawn"
 set g_pickup_respawntime_scaling_reciprocal 0 "Multiply respawn time by `reciprocal / (p + offset) + linear` where `p` is the current number of players, takes effect with 2 or more players present, `reciprocal` (with `offset` and `linear` set to 0) can be used to achieve a constant number of items spawned *per player*"
@@ -221,19 +224,18 @@ set g_fullbrightitems 0 "disables lighting effects on items, making them appear
 set g_nodepthtestplayers 0 "disables depth testing on players"
 set g_nodepthtestitems 0 "disables depth testing on items"
 set g_casings 2 "specifies which casings (0: none, 1: only shotgun casings, 2: shotgun and machine gun casings) are sent to the client"
 set g_nodepthtestplayers 0 "disables depth testing on players"
 set g_nodepthtestitems 0 "disables depth testing on items"
 set g_casings 2 "specifies which casings (0: none, 1: only shotgun casings, 2: shotgun and machine gun casings) are sent to the client"
-set g_norecoil 0 "if set to 1 shooting weapons won't make you crosshair to move upwards (recoil)"
+set g_norecoil 1 "if set to 1 shooting weapons won't make you crosshair to move upwards (recoil)"
 set g_maplist_mostrecent "" "contains the name of the maps that were most recently played"
 set g_maplist_mostrecent_count 3 "number of most recent maps that are blocked from being played again"
 set g_maplist_index 0 "this is used internally for saving position in maplist cycle"
 set g_maplist_selectrandom 0 "if 1, a random map will be chosen as next map - DEPRECATED in favor of g_maplist_shuffle"
 set g_maplist_mostrecent "" "contains the name of the maps that were most recently played"
 set g_maplist_mostrecent_count 3 "number of most recent maps that are blocked from being played again"
 set g_maplist_index 0 "this is used internally for saving position in maplist cycle"
 set g_maplist_selectrandom 0 "if 1, a random map will be chosen as next map - DEPRECATED in favor of g_maplist_shuffle"
-set g_maplist_shuffle 1 "new randomization method: like selectrandom, but avoid playing the same maps in short succession. This works by taking out the first element and inserting it into g_maplist with a bias to the end of the list"
+set g_maplist_shuffle 1 "shuffles the order of maps during selection to ensure random maps are chosen"
 set g_maplist_check_waypoints 0 "when 1, maps are skipped if there currently are bots, but the map has no waypoints"
 set g_maplist_ignore_sizes 0 "when 1, all maps are shown in the map list regardless of player count"
 set g_maplist_sizes_count_maxplayers 1 "check the player limit when getting the player count so forced spectators don't affect the size restrictions"
 set g_maplist_sizes_count_bots 1 "include the number of bots currently in the server when counting the number of players for size restrictions"
 set g_maplist_sizes_specparty 0 "this fraction of people are expected to only spectate, reduces player count used to select voting GUI maps"
 
 set g_maplist_check_waypoints 0 "when 1, maps are skipped if there currently are bots, but the map has no waypoints"
 set g_maplist_ignore_sizes 0 "when 1, all maps are shown in the map list regardless of player count"
 set g_maplist_sizes_count_maxplayers 1 "check the player limit when getting the player count so forced spectators don't affect the size restrictions"
 set g_maplist_sizes_count_bots 1 "include the number of bots currently in the server when counting the number of players for size restrictions"
 set g_maplist_sizes_specparty 0 "this fraction of people are expected to only spectate, reduces player count used to select voting GUI maps"
 
-set g_items_mindist 4000 "starting distance for the fading of items"
 set g_items_maxdist 4500 "maximum distance at which an item can be viewed, after which it will be invisible"
 set g_items_dropped_lifetime 20 "default lifetime for dropped items unless explicitly overriden (ie. flags)"
 
 set g_items_maxdist 4500 "maximum distance at which an item can be viewed, after which it will be invisible"
 set g_items_dropped_lifetime 20 "default lifetime for dropped items unless explicitly overriden (ie. flags)"
 
@@ -241,12 +243,16 @@ set g_grab_range 200 "distance at which dragable objects can be grabbed"
 
 set g_player_alpha 1 "default opacity of players"
 set g_player_brightness 0 "set to 2 for brighter players"
 
 set g_player_alpha 1 "default opacity of players"
 set g_player_brightness 0 "set to 2 for brighter players"
+
 set g_player_damageforcescale 2 "push multiplier of attacks against players"
 
 set g_player_damageforcescale 2 "push multiplier of attacks against players"
 
+set g_player_damageplayercenter 1 "0: always calculate knockback force direction from player's eyes instead of bbox center. 1: use bbox center point for others, shot origin for attacker's self-damage"
+
 set g_playerclip_collisions 1 "0 = disable collision testing against playerclips, might be useful on some defrag maps"
 set g_botclip_collisions 1 "0 = disable collision testing against botclips, might be useful on some defrag maps"
 
 set g_playerclip_collisions 1 "0 = disable collision testing against playerclips, might be useful on some defrag maps"
 set g_botclip_collisions 1 "0 = disable collision testing against botclips, might be useful on some defrag maps"
 
-set g_spawn_alloweffects 1 "allow clients to enable spawn point and event effects such as particles and sounds, see cl_spawn_ cvars for more info"
+set g_spawn_alloweffects 3 "allow clients to enable spawn point and event effects such as particles and sounds (1 for particles only, 2 for sound only, 3 for both), see cl_spawn_ cvars for more info"
+
 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"
 // respawn delay
 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"
 // respawn delay
@@ -276,10 +282,13 @@ set g_teamdamage_threshold 40       "for teamplay_mode 4: threshold over which t
 set g_teamdamage_resetspeed 20      "for teamplay_mode 4: how fast player's teamdamage count decreases"
 
 set g_balance_teams 1 "automatically balance out players entering instead of asking them for their preferred team"
 set g_teamdamage_resetspeed 20      "for teamplay_mode 4: how fast player's teamdamage count decreases"
 
 set g_balance_teams 1 "automatically balance out players entering instead of asking them for their preferred team"
-set g_balance_teams_prevent_imbalance 1 "prevent players from changing to larger teams"
+set g_balance_teams_prevent_imbalance 1 "prevent players from changing to larger teams during the match"
+set g_balance_teams_queue 0 "queue players to maintain balance when they join during the match, any bots should be added with minplayers_per_team instead of bot_number so humans can replace them instead of waiting in queue while a bot plays"
+set g_balance_teams_remove 0 "remove excess players from teams to maintain balance when someone leaves (currently does nothing in matches with more than 2 teams)"
+set g_balance_teams_remove_wait 10 "seconds to warn everyone before removing an excess player (0 = immediately)"
 set g_changeteam_banned 0 "not allowed to change team"
 
 set g_changeteam_banned 0 "not allowed to change team"
 
-set sv_teamnagger 1 "enable a nag message when the teams are unbalanced"
+set sv_teamnagger 2 "enable a nag message when the teams are unbalanced, value sets team size difference threshold, 1 is recommended when g_balance_teams_queue is enabled, g_warmup won't end while the message is visible"
 
 set g_bloodloss 0   "amount of health below which blood loss occurs"
 
 
 set g_bloodloss 0   "amount of health below which blood loss occurs"
 
@@ -328,7 +337,6 @@ set sv_eventlog_files_nameprefix xonotic "prefix of individual log file names"
 set sv_eventlog_files_namesuffix .log "suffix of individual log file names"
 set sv_eventlog_ipv6_delimiter 0 "use a _ delimiter for IPV6 IPs, so that they can be easily detected in scripts"
 
 set sv_eventlog_files_namesuffix .log "suffix of individual log file names"
 set sv_eventlog_ipv6_delimiter 0 "use a _ delimiter for IPV6 IPs, so that they can be easily detected in scripts"
 
-set nextmap "" "override the maplist when switching to the next map"
 set lastlevel "" "for singleplayer use, shows the menu once the match has ended"
 set quit_when_empty 0 "set to 1, then the server exits when the next level would start but is empty"
 set quit_and_redirect "" "set to an IP to redirect all players at the end of the match to another server. Set to \"self\" to let all players reconnect at the end of the match (use it to make seamless engine updates)"
 set lastlevel "" "for singleplayer use, shows the menu once the match has ended"
 set quit_when_empty 0 "set to 1, then the server exits when the next level would start but is empty"
 set quit_and_redirect "" "set to an IP to redirect all players at the end of the match to another server. Set to \"self\" to let all players reconnect at the end of the match (use it to make seamless engine updates)"
@@ -367,6 +375,7 @@ set sv_vote_gametype_keeptwotime 10 "show only 2 options after this amount of ti
 set sv_vote_gametype_options "dm tdm ca ctf" "identifiers of gamemodes on the voting screen, can be custom (max 9 chars) - see example in server/server.cfg"
 set sv_vote_gametype_timeout 20 "how long the gametype vote screen lasts"
 set sv_vote_gametype_default_current 1 "Keep the current gametype if no one votes"
 set sv_vote_gametype_options "dm tdm ca ctf" "identifiers of gamemodes on the voting screen, can be custom (max 9 chars) - see example in server/server.cfg"
 set sv_vote_gametype_timeout 20 "how long the gametype vote screen lasts"
 set sv_vote_gametype_default_current 1 "Keep the current gametype if no one votes"
+set sv_vote_gametype_maplist_reset 1 "Reset g_maplist when switching to a new gametype"
 
 set g_chat_flood_spl 3 "normal chat: seconds between lines to not count as flooding"
 set g_chat_flood_lmax 2 "normal chat: maximum number of lines per chat message at once"
 
 set g_chat_flood_spl 3 "normal chat: seconds between lines to not count as flooding"
 set g_chat_flood_lmax 2 "normal chat: maximum number of lines per chat message at once"
@@ -384,6 +393,7 @@ set g_chat_spectator_allowed 1 "allow spectators to communicate via in-game chat
 set g_chat_team_allowed 1 "allow players to communicate via in-game team chat"
 set g_chat_teamcolors 0 "colorize nicknames in team color for chat"
 set g_chat_tellprivacy 1 "when disabled, tell messages are also sent to the server console log... otherwise they're kept private between players."
 set g_chat_team_allowed 1 "allow players to communicate via in-game team chat"
 set g_chat_teamcolors 0 "colorize nicknames in team color for chat"
 set g_chat_tellprivacy 1 "when disabled, tell messages are also sent to the server console log... otherwise they're kept private between players."
+set g_chat_show_playerid 0 "when enabled, show the player numbers next to their names in the chat"
 set g_nick_flood_timeout 120 "time after which nick flood protection resets (set to 0 to disable nick flood checking)"
 set g_nick_flood_penalty 0.5 "duration of the nick flood penalty"
 set g_nick_flood_penalty_yellow 3 "number of changes to allow before warning and movement blocking"
 set g_nick_flood_timeout 120 "time after which nick flood protection resets (set to 0 to disable nick flood checking)"
 set g_nick_flood_penalty 0.5 "duration of the nick flood penalty"
 set g_nick_flood_penalty_yellow 3 "number of changes to allow before warning and movement blocking"
@@ -395,11 +405,21 @@ set sv_waypointsprite_limitedrange 5120 "default maximum viewing distance of way
 
 set sv_itemstime 1 "enable networking of time left until respawn for items such as mega health/armor and powerups"
 
 
 set sv_itemstime 1 "enable networking of time left until respawn for items such as mega health/armor and powerups"
 
-set g_ban_default_bantime 5400 "90 minutes"
+// bans
+set g_ban_default_bantime 5400 "default ban time in seconds"
 set g_ban_default_masksize 3 "masksize 0 means banning by UID only, 1 means banning by /8 (IPv6: /32) network, 2 means banning by /16 (IPv6: /48) network, 3 means banning by /24 (IPv6: /56) network, 4 means banning by single IP (IPv6: /64 network)"
 set g_ban_default_masksize 3 "masksize 0 means banning by UID only, 1 means banning by /8 (IPv6: /32) network, 2 means banning by /16 (IPv6: /48) network, 3 means banning by /24 (IPv6: /56) network, 4 means banning by single IP (IPv6: /64 network)"
-set g_ban_telluser 1 "notify the banned player about it when they try to join"
-set g_banned_list "" "format: IP remainingtime IP remainingtime ..."
+set g_ban_sync_uri "" "sync using this ban list provider (empty string to disable)"
+set g_ban_sync_interval 5 "sync interval in minutes"
+set g_ban_sync_trusted_servers "" "request ban lists from these Xonotic servers (do not include your own server there, or unbanning may fail)"
+set g_ban_sync_timeout 45 "time out in seconds for the ban sync requests"
+set g_ban_sync_trusted_servers_verify 0 "ignore additional bans sent by the servers, and use only bans for the requested IP"
+set g_ban_telluser 1 "notify the banned player they are banned when they try to join"
+set g_banned_list "" "list of banned players; player format: IP remainingtime"
 set g_banned_list_idmode "1" "when set, the IP banning system always uses the ID over the IP address (so a user in a banned IP range can connect if they have a valid signed ID)"
 set g_banned_list_idmode "1" "when set, the IP banning system always uses the ID over the IP address (so a user in a banned IP range can connect if they have a valid signed ID)"
+set g_chatban_list "" "list of banned players from chat; player format: IP or playerkey"
+set g_playban_list "" "list of banned players from playing (forced to spectate); player format: IP or playerkey"
+set g_playban_minigames 0 "disallow playbanned players (who are forced to spectate) from playing minigames"
+set g_voteban_list "" "list of banned players from voting; player format: IP or playerkey"
 
 // useful vote aliases
 set timelimit_increment 5 "number of minutes added to the timer when voting for extendmatchtime"
 
 // useful vote aliases
 set timelimit_increment 5 "number of minutes added to the timer when voting for extendmatchtime"
@@ -407,20 +427,10 @@ set timelimit_decrement 5 "number of minutes removed from the timer when voting
 set timelimit_min 5 "shortest match time achieveable with reducematchtime and timelimit votes"
 set timelimit_max 60 "maximum match time achieveable with extendmatchtime and timelimit votes"
 
 set timelimit_min 5 "shortest match time achieveable with reducematchtime and timelimit votes"
 set timelimit_max 60 "maximum match time achieveable with extendmatchtime and timelimit votes"
 
-sv_gameplayfix_delayprojectiles 0
-sv_gameplayfix_q2airaccelerate 1
-sv_gameplayfix_stepmultipletimes 1
-sv_gameplayfix_stepdown 2
-// only available in qc physics
-set sv_gameplayfix_stepdown_maxspeed 0 "maximum speed walking entities can be moving for stepping down to apply"
-
 // delay for "kill" to prevent abuse
 set g_balance_kill_delay 2 "timer before death when using the kill command"
 set g_balance_kill_antispam 5 "additional time added to the kill delay if used repeatedly"
 
 // delay for "kill" to prevent abuse
 set g_balance_kill_delay 2 "timer before death when using the kill command"
 set g_balance_kill_antispam 5 "additional time added to the kill delay if used repeatedly"
 
-// this feature is currently buggy in the engine (it appears to PREVENT any dropping in lots of maps, leading to weirdly aligned entities, and in some cases even CAUSES them to drop through solid, like in facing worlds nex)
-sv_gameplayfix_droptofloorstartsolid 0
-
 set sv_foginterval 1 "force enable fog in regular intervals"
 
 set sv_maxidle 0 "kick players idle for more than this amount of time in seconds"
 set sv_foginterval 1 "force enable fog in regular intervals"
 
 set sv_maxidle 0 "kick players idle for more than this amount of time in seconds"
@@ -440,12 +450,6 @@ set g_maplist_allow_frustrating 0 "allow impossible maps to be, e.g., voted for
 
 set sv_clones 0 "number of clones a player may make (reset by the \"kill\" command)"
 
 
 set sv_clones 0 "number of clones a player may make (reset by the \"kill\" command)"
 
-set g_ban_sync_uri "" "sync using this ban list provider (empty string to disable)"
-set g_ban_sync_interval 5 "sync every 5 minutes"
-set g_ban_sync_trusted_servers "" "request ban lists from these xonotic servers (do not include your own server there, or unbanning may fail)"
-set g_ban_sync_timeout 45 "time out in seconds for the ban sync requests"
-set g_ban_sync_trusted_servers_verify 0 "when set to 1, additional bans sent by the servers are ignored, and only bans for the requested IP are used"
-
 set g_showweaponspawns 1 "1: display waypoints for weapon spawns found on the map when a weapon key is pressed and the weapon is not owned; 2: for dropped weapons too; 3: for all the weapons sharing the same impulse"
 
 set g_ballistics_mindistance 2 "when shooting through walls thinner than this, treat them as this thick (useful because patches (curved surfaces) have no thickness)"
 set g_showweaponspawns 1 "1: display waypoints for weapon spawns found on the map when a weapon key is pressed and the weapon is not owned; 2: for dropped weapons too; 3: for all the weapons sharing the same impulse"
 
 set g_ballistics_mindistance 2 "when shooting through walls thinner than this, treat them as this thick (useful because patches (curved surfaces) have no thickness)"
@@ -501,13 +505,68 @@ set debug_text_3d_default_align 0 "Default text alignment for debug_text_3d()"
 set debug_text_3d_default_duration 10 "Default duration for debug_text_3d()"
 set debug_text_3d_default_velocity "0 -10 0" "Default velocity for debug_text_3d() in screen coords (X and Y from top left)"
 
 set debug_text_3d_default_duration 10 "Default duration for debug_text_3d()"
 set debug_text_3d_default_velocity "0 -10 0" "Default velocity for debug_text_3d() in screen coords (X and Y from top left)"
 
+///////// qc debugger shortcuts /////////
+// breakpoint
+alias ps_b "prvm_breakpoint server ${* ?}"
+alias pc_b "prvm_breakpoint client ${* ?}"
+alias pm_b "prvm_breakpoint menu ${* ?}"
+
+// entity
+alias ps_e "prvm_edict server ${* ?}"
+alias pc_e "prvm_edict client ${* ?}"
+alias pm_e "prvm_edict menu ${* ?}"
+
+// field get
+alias ps_fg "prvm_edictget server ${* ?}"
+alias pc_fg "prvm_edictget client ${* ?}"
+alias pm_fg "prvm_edictget menu ${* ?}"
+// field set
+alias ps_fs "prvm_edictset server ${* ?}"
+alias pc_fs "prvm_edictset client ${* ?}"
+alias pm_fs "prvm_edictset menu ${* ?}"
+// field watchpoint
+alias ps_fw "prvm_edictwatchpoint server ${* ?}"
+alias pc_fw "prvm_edictwatchpoint client ${* ?}"
+alias pm_fw "prvm_edictwatchpoint menu ${* ?}"
+
+// global get
+alias ps_gg "prvm_globalget server ${* ?}"
+alias pc_gg "prvm_globalget client ${* ?}"
+alias pm_gg "prvm_globalget menu ${* ?}"
+// global set
+alias ps_gs "prvm_globalset server ${* ?}"
+alias pc_gs "prvm_globalset client ${* ?}"
+alias pm_gs "prvm_globalset menu ${* ?}"
+// global watchpoint
+alias ps_gw "prvm_globalwatchpoint server ${* ?}"
+alias pc_gw "prvm_globalwatchpoint client ${* ?}"
+alias pm_gw "prvm_globalwatchpoint menu ${* ?}"
+///////// qc debugger shortcuts END /////////
+
+sv_gameplayfix_delayprojectiles 0
+sv_gameplayfix_q2airaccelerate 1
+sv_gameplayfix_stepmultipletimes 1
+sv_gameplayfix_stepdown 2
+// only available in qc physics
+set sv_gameplayfix_stepdown_maxspeed 0 "maximum speed walking entities can be moving for stepping down to apply"
+
+// this feature is currently buggy in the engine (it appears to PREVENT any dropping in lots of maps, leading to weirdly aligned entities, and in some cases even CAUSES them to drop through solid, like in facing worlds nex)
+// the bugs should be fixed in https://gitlab.com/xonotic/darkplaces/-/merge_requests/144 but we don't need this, didn't enable it in the past, and it's not implemented in DropToFloor_QC().
+sv_gameplayfix_droptofloorstartsolid 0
+
 // otherwise, antilag breaks
 sv_gameplayfix_consistentplayerprethink 1
 
 // otherwise, antilag breaks
 sv_gameplayfix_consistentplayerprethink 1
 
+// Xonotic's QC physics still depend on this cvar (feature deprecated in DP master)
+sv_gameplayfix_unstickplayers 1
+
 // improve some minor details
 sv_gameplayfix_gravityunaffectedbyticrate 1
 sv_gameplayfix_nogravityonground 1
 
 // improve some minor details
 sv_gameplayfix_gravityunaffectedbyticrate 1
 sv_gameplayfix_nogravityonground 1
 
+// avoid needing to work around Quake bbox expansion in many places
+sv_legacy_bbox_expand 0
+
 set sv_q3compat_changehitbox 0 "use Q3 player hitbox dimensions and camera height on Q3 maps (maps with an entry in a .arena or .defi file)"
 
 set g_movement_highspeed 1 "multiplier scale for movement speed (applies to sv_maxspeed and sv_maxairspeed, also applies to air acceleration when g_movement_highspeed_q3_compat is set to 0)"
 set sv_q3compat_changehitbox 0 "use Q3 player hitbox dimensions and camera height on Q3 maps (maps with an entry in a .arena or .defi file)"
 
 set g_movement_highspeed 1 "multiplier scale for movement speed (applies to sv_maxspeed and sv_maxairspeed, also applies to air acceleration when g_movement_highspeed_q3_compat is set to 0)"
@@ -523,7 +582,7 @@ sv_cullentities_trace_prediction_time 0.4
 sv_cullentities_trace_eyejitter 0
 
 // less "lagging" of other players, but also less PL tolerant... let's try this
 sv_cullentities_trace_eyejitter 0
 
 // less "lagging" of other players, but also less PL tolerant... let's try this
-sv_clmovement_inputtimeout 0.066 // slightly less than 2 frames, so only one frame can be compensated
+sv_clmovement_inputtimeout 0.06249 // slightly less than 2 32hz frames, so only one frame can be compensated
 
 // strength sound settings
 set sv_strengthsound_antispam_time 0.1 "minimum distance of strength sounds"
 
 // strength sound settings
 set sv_strengthsound_antispam_time 0.1 "minimum distance of strength sounds"
@@ -567,6 +626,27 @@ set g_playerstats_playerdetail_autoupdatetime 1800 // automatically update every
 // autoscreenshots
 set g_max_info_autoscreenshot 3 "how many info_autoscreenshot entities are allowed"
 
 // autoscreenshots
 set g_max_info_autoscreenshot 3 "how many info_autoscreenshot entities are allowed"
 
+
+// commands for saving and reloading the current posistion and view, even after a map restart
+// useful for taking screenshots and comparing things
+alias posview_load "_posview_set \"$_posview_pos\" \"$_posview_angles\""
+alias posview_save "_posview_save_to_cvars _posview_pos _posview_angles; _posview_save_$posview_verbose"
+alias _posview_save_0 ""
+alias _posview_save_1 "posview_info"
+
+// NOTE without ^7 the quote mark wouldn't be printed
+alias posview_info "echo saved player posview:; echo _posview_pos ^7\"$_posview_pos\"; echo _posview_angles ^7\"$_posview_angles\""
+seta posview_verbose 1 "also print posview on save so that a previously saved posview can be restored by copying it from the OS console log and pasted to the Xonotic console"
+
+// internal commands:
+//  _posview_set <position> <view angles>: sets the specified position and view angles ("x y z" "pitch yaw roll")
+//  _posview_save_to_cvars <pos_cvar> <angles_cvar>: saves current position and view angles to the specified cvars
+alias _posview_set "prvm_edictset server 1 origin \"$1\"; prvm_edictset server 1 fixangle 1; prvm_edictset server 1 angles \"$2\""
+alias _posview_save_to_cvars "prvm_edictget server 1 origin ${1 ?}; prvm_edictget server 1 v_angle ${2 ?}"
+seta _posview_pos "0 0 0"
+seta _posview_angles "0 0 0"
+
+
 // mod names for server browser
 // note: the lowest of these that mismatches default is used
 set g_mod_physics "" "Current physics config name"
 // mod names for server browser
 // note: the lowest of these that mismatches default is used
 set g_mod_physics "" "Current physics config name"
@@ -595,6 +675,8 @@ set sv_showspectators 1 "Show who's spectating who in the player info panel when
 
 set sv_damagetext 2 "<= 0: disabled, >= 1: visible to spectators, >= 2: visible to attacker, >= 3: all players see everyone's damage"
 
 
 set sv_damagetext 2 "<= 0: disabled, >= 1: visible to spectators, >= 2: visible to attacker, >= 3: all players see everyone's damage"
 
+set sv_show_entnum 0 "Show the number and some info of the entity you're aiming at"
+
 set sv_showfps 0 "Show player's FPS counters in the scoreboard. This setting acts as a delay in seconds between updates. NOTE: this feature gathers performance telemetry, it may require consent from players on the server depending on your legislation"
 set sv_doors_always_open 0 "If set to 1 don't close doors which after they were open"
 
 set sv_showfps 0 "Show player's FPS counters in the scoreboard. This setting acts as a delay in seconds between updates. NOTE: this feature gathers performance telemetry, it may require consent from players on the server depending on your legislation"
 set sv_doors_always_open 0 "If set to 1 don't close doors which after they were open"