]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - xonotic-server.cfg
Transifex autosync
[xonotic/xonotic-data.pk3dir.git] / xonotic-server.cfg
index 76fca626990b1aea468f6b3d9e17198871d2f868..e638577222b1cc279385114895fd6e4e8777e022 100644 (file)
@@ -27,14 +27,14 @@ 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 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 he gets kicked"
+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"
 
 // tournament mod
-set g_warmup 0 "split the game into a warmup- and match-stage, -1 means stay in warmup until enough (set by map, lower bound of 2 or 2 per team) players join, then g_warmup_limit and readiness apply"
+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)"
 set g_warmup_limit 180 "limit warmup-stage to this time (in seconds); if set to -1 the warmup-stage is not affected by any timelimit, if set to 0 the usual timelimit also affects warmup-stage"
 set g_warmup_allow_timeout 0 "allow calling timeouts in the warmup-stage (if sv_timeout is set to 1)"
 set g_warmup_allguns 1 "provide more weapons on start while in warmup: 0 = normal start weapons, 1 = all guns available on the map, 2 = all normal weapons"
-set g_warmup_majority_factor 0.8 "fraction of joined players sufficient to end warmup before g_warmup_limit by readying up"
+set g_warmup_majority_factor 0.8 "fraction of joined players (not including bots) sufficient to end warmup before g_warmup_limit by readying up"
 
 alias sv_hook_warmupend
 
@@ -51,10 +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"
 
+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_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"
@@ -191,14 +194,14 @@ 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_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_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"
@@ -219,19 +222,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_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_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 "1: shuffling method which avoids playing the same maps in short succession by taking out the first element and inserting it into g_maplist with a bias to the end of the list. -1: a simpler shuffling method which should be adequate if g_maplist_mostrecent_count is large enough."
 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)"
 
@@ -239,12 +241,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_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_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
@@ -375,7 +381,11 @@ set g_chat_flood_burst_team 2 "team chat: allow bursts of so many chat lines"
 set g_chat_flood_spl_tell 1 "private chat: seconds between lines to not count as flooding"
 set g_chat_flood_lmax_tell 2 "private chat: maximum number of lines per chat message at once"
 set g_chat_flood_burst_tell 2 "private chat: allow bursts of so many chat lines"
-set g_chat_flood_notify_flooder 1 "when 0, the flooder still can see his own message"
+set g_chat_flood_notify_flooder 1 "when disabled, the flooder still can see their own message"
+set g_chat_allowed 1 "allow players to communicate via in-game chat"
+set g_chat_private_allowed 1 "allow players to communicate via in-game private chat"
+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_nick_flood_timeout 120 "time after which nick flood protection resets (set to 0 to disable nick flood checking)"
@@ -389,11 +399,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 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_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_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"
@@ -401,20 +421,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"
 
-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"
 
-// 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"
@@ -434,12 +444,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 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)"
@@ -495,13 +499,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)"
 
+///////// 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
 
+// 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
 
+// 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)"
@@ -529,6 +588,9 @@ set sv_db_saveasdump 0 "write server.db in dump format (loads slower, easier to
 // allow fullbright
 set sv_allow_fullbright 1 "when set, clients may use r_fullbright on this server without getting a night vision effect overlay"
 
+// forbid pickup timer
+set sv_forbid_pickuptimer 0 "when set, clients won't be able to see the time they picked up an item"
+
 // auto-teams (team selection by player ID)
 // any player not listed is forced to spectate
 set g_forced_team_red "" "list of player IDs for red team"
@@ -558,6 +620,27 @@ set g_playerstats_playerdetail_autoupdatetime 1800 // automatically update every
 // 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"
@@ -586,6 +669,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_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"
 
@@ -594,4 +679,7 @@ set sv_warpzone_allow_selftarget 0 "do not touch"
 // don't notify cvar changes in the chat
 sv_disablenotify 1
 
-set sv_quickmenu_file "" "filename of the quickmenu that appears in client's default quickmenu, file must be located in a subfolder with an unique name"
+set sv_quickmenu_file "" "filename of a custom server's quickmenu that will be selectable from the default client's quickmenu. This file must be sent in a pk3 archive and should have an unique name (e.g. quickmenu-servername.txt) to prevent overriding existing quickmenus"
+
+// Avoid perf problems near '0 0 0'; `set` without a description is because only current DP has this engine cvar
+set sv_areagrid_link_SOLID_NOT 0