LOX Quake 2 Server Console Variables

For LOX version 1.12.8

 

This is a list of the console variables (CVARS) available to LOX server administrators for LOX versions 1.12.8 and higher. At the time this document is being completed LOX is at version 1.12.8. You should make sure this list is the correct one for your version of LOX since earlier versions use different values for some of the weapon and feature bans and you will get unexpected results if you use the wrong values. The current list of weapon ban constants is found in the server_readme.txt accompanying the LOX binary you downloaded. Not all constants are available in all versions of the mod. Not all server variables are listed here.  See the original Quake 2 CVAR list and any special lists for custom game engines like r1q2 for variables beyond the scope of this list.

 

To test the existence of a CVAR, type its name in the console or RCON. For example, type “loxweaponban” in the console to get the current value of the loxweaponban CVAR. If you type “loxtest” in the console the server will respond with “Unknown command ‘loxtest’ ”. You would normally type the constants without quotes. If you use quotes around the CVAR the server will respond just as well as without quotes. When the CVAR is setting a string value that string MUST be in quotes. CVAR set commands are always preceded with the word set. Typing “set loxweaponban 0” sets the value to zero. Some values can be set while the server is running and some must be set before the server begins, either by setting them on the command line that starts the server or else in the server.cfg file.

 

Numeric values can be expressed in decimal, hexadecimal or octal bases by following the C Language syntax: Numbers beginning with 1 through 9 are interpreted as decimal as in 1234, or 9500. The range of decimal digits is 0 through 9. Numbers beginning with 0 are interpreted as octal as in 01777 or 064377. The range of octal digits is 0 thru 7. Numbers beginning with “0x” are interpreted as hexadecimal numbers as in 0x8AFF or 0x1EE8 or 0xDEADBEEF. The range of hexadecimal digits is 0 through 9 and A through F which represents the 16 values a hexadecimal digit can contain. Sometimes it’s more convenient to represent very large decimal numbers as an 8-digit hexadecimal string. For example the decimal number 3735928559 is the hexadecimal 0xDEADBEEF.

 

Each CVAR in the server.cfg file should be entered in a line by itself. Comments can be added by using the C++ comment delimiter “//”. Examples of this can be found in the sample server.cfg files as well as this document. Blank lines are permitted in the server.cfg file but if the line is not blank and not controlling a CVAR, it must be a comment line. The format of this document outlines the name of the CVAR, the default value the server will set, the range of values the CVAR can assume and what feature the CVAR controls and whether the CVAR can be modified while the game is running.

 

When changing cvars with RCON or through the console on an active server it’s important to know that if you ban a weapon the effect of the ban may not become immediately apparent. The weapon and feature bans do not apply once a player has that item in his inventory. If a player already has the banned weapon he will be able to continue to use it until he’s fragged. Once he re-spawns he will be denied the weapon or feature that was banned.

 

campertime

Range: 5 to 600

Default: 60

Set any time.

The number of seconds a player can stand in one spot before he's warned about camping. There is a 5 second countdown after the warning before the server kills him. This value is used only if DF_ANTICAMPER is set in DMFLAGS.

 

coop

Range: 0|1

Default: 0

Latched. Value is set at startup only.

Make it a cooperative game. Human players vs. Strogg AI’s. This game is restricted to the original 48 single-player maps. No custom maps allowed, set maplist 0. This is mutually exclusive with deathmatch and ctf modes. Only set one of them to 1 at a time.

 

ctf

Range: 0|1

Default: 0

Latched. Value is set at startup only.

Make it a CTF (Extinction) game. Multi-player mode with teams. This mode pits teams against each other for spawn pads and territory. Red team vs. Blue team, the object is to tag spawn pads for your teams color until all pads are converted to your color while killing the opposing team. Once all pads are converted the game is won when all the other team’s players are fragged and can’t respawn. This is mutually exclusive with deathmatch and coop modes. Only set one of them to 1 at a time.

 

custom_ents

Range: 0|1

Default: 0

Set any time.

This allows deathmatch games to spawn custom entities from the .ent files for each map on your server. This flag takes effect only after a map change. See the documentation on how to create a custom ent file for details. Use this feature to add more weapons or powerups to maps without the need for changing the actual maps. In Extinction mode this flag has no effect.

 

deathmatch

Range: 0|1

Default: 0

Latched. Value is set at startup only.

Make it a deathmatch game. This is the classic multiplayer mode. This is a free-for-all (FFA) mode or server can be set to recognize teams by model or teams by skin. Mutually exclusive with coop and ctf modes. Only set one of them to 1 at a time. Example: set deathmatch 1, set ctf 0, set coop 0 if running a deathmatch server.

 

debugmodels

Range: 0|1

Default: 0

Set any time.

Print model debug info to server & client consoles. This causes the server to print a debug message about the number of model indexes consumed by the game in progress. Usually not used on a live server. Quake 2 limits the number of model indexes to 256. When this limit is exceeded some games can crash the server. The LOX mod checks the model indexes and when the limit is about to be reached it forces an EndDMLevel and cycles the game into the next map in order to avoid server crashes. Use this CVAR only to check a game map that seems to cause premature timeouts. Avoid using maps in your server that cause this scenario.

 

dmflags

Range: 0 … 0xffffffff

Default: 0

Set any time.

Standard Quake 2 dmflags plus the additional LOX flags listed here. See server_readme.txt for more current information.

 

DF_REVENGE_FACTOR = 65536

DF_DAYNIGHT = 131072

DF_ANTICAMPER = 262144

DF_HIGHFRAGGER  = 524288

DF_WEAPONHEAT  = 1048576

 

electallowveto       

Range: 0 or 1

Default: 0

Set any time.

This controls whether a single NO vote can cancel an election. This allows a single player to cause the election to terminate by simply voting no. This can be abused. A majority of players may want a map change, but a single player can veto the map change if this is set. If you want elections to be unanimous, set electpercentage to 100.

 

electduration

Range: 10 to 120

Default: 30

Set any time.

This controls the duration of an election. Once an election starts only those players that were in the game at the start of the election can vote. The number of votes needed for the election to pass is set at the start of the election. The player will have electduration seconds to type yes or no in the consoles in order to vote. The election will remain open until this time expires or it becomes mathematically impossible for it to pass. If the vote passes the election action will take place immediately. At this time the only item that can be voted is map change.

 

electpercentage

Range: 0 to 100

Default: 55

Percent of players required for a map change vote to pass. Use 0 to inhibit map voting. When a map vote is initiated with the “vote map” command the server counts the number of players, this count, times the percentage, determines how many yes votes are needed for the vote to pass.

 

electreminders     

Range: 0 to 6

Default: 3

Set any time.

This controls the number of reminders that will be sent during an election. The interval is controlled by electduration divided by electreminders.

 

electstarts

Range: 1 to 6

Default: 2

Set any time.

This controls the number of times per map a player can initiate an election. This prevents vote spamming. A counter is kept for each player and it is reset when a new map begins.

 

ext_devt

Range: 0 or 1

Default: 0

Latched, set at startup only.

Normally 0, set this to 1 to enable extinction map development. This causes the server to print the names and locations of weapons on the console when you run over them. Use the laser tripwire command to identify particular map coordinates for placement of entities in ent files. Run this with a dedicated server, setting the game as you nomally would, then connect to the game and explore the map. The special server messages will be displayed in your console and you can then condump the information and use it for creating special ent files for adding weapons or other items to that map without modifying the map file itself. Never set this to 1 in a live server.

 

featureban

Range: 0 to 0xffffffff

Default: 5

Set any time.

This is a 32-bit integer representing the bitmap featurebans. Set the bit to ban the feature designated in the server_readme.txt file.

 

fragban

Range: 0 to 0xffffffff

Default: 0

Set any time.

This is a 32-bit integer representing the bitmap fragbans. Set the bit to ban frags designated in the server_readme.txt file. Frag banning is an interesting way to allow the weapon in the game but to discourage frequent use of that weapon by preventing scoring for kills made with that weapon.

 

fraglimit

Range: 0 …unlimited

Default: 0

This sets the score that will end a game map session. Any reasonable limit is supported, set this above 100 at your own peril. Players condemned to eternal game sessions have been known to hunt down admins. Setting fraglimit to 0 sets no limit. When using coop mode timelimit and fraglimit should be set to zero to allow the players to progress through the game scenes along the story line.

 

gravity

Range: 0…65535

Default: 800

Set any time.

Formerly sv_gravity, this controls the server gravity constant. 800 is full gravity. This CVAR is reset to default on each map change. Maps can change server gravity as well, for example, space.bsp sets server gravity to 100. Setting gravity to 0 leads to some very freaky spider-man effects, letting you cling or walk on vertical surfaces, etc. Setting gravity to a value greater than 32767 creates a negative gravity effect. The defining gravity parameter for physics in Q2 is a two-byte quantity (a short int), therefore the gravity is positive only when this number is less than 32767.

 

g_nukes_takedamage

Range: 0 or 1

Default: 0

Set any time.

Setting this to 1 allows guided nukes to take damage and be shot down.

 

g_rockets_takedamage

Range: 0 or 1

Default: 0

Set any time.

Setting this to 1 allows guided rockets to take damage and be shot down.

 

highfraggerreward

Range: 0 to ?

Default: 2

This is the number of bonus points awarded to a player for fragging the current high fragger. Set DF_HIGHFRAGGER in dmflags to enable this feature.

 

homerseekowner

Range: 0|1

Default: 0

Determines whether homing and skipper rockets will seek the player who launched them if a better target can’t be found.

 

hostname

Range: any text

"Server Name"

Set the server's name string. This is the name of the server as it will appear in game browsers like GameSpy or AllSeeingEye.

 

kamifrozen

Range: 0|1

Default: 0

This allows clients to go kamikaze if frozen or become kamikaze from the kaminit weapon if they are frozen.

 

logarstats

Range: 0|1|2

Default: 0

This tells the server to log ARSG compatible frag and statistical information. See http://www.alteredrealms.com/ for more information. Setting logarstats to 0 turns it off, 1 makes the server log the data to lox/arsg.log and 2 makes it thread the statistics in the qconsole.log file with the other logged information. You should leave it off or log it separately. If you don’t care to collect player statistics, leave it off. This feature was added at special request but soon thereafter support of ARSG by AlteredRealms was discontinued. We were told that ARSG would be modified to include support for LOX but this did not materialize. At this late stage in the life of Q2 it was not surprising.

 

logfile_name

Range: any valid filename

Default: qconsole.log

Set anytime. Usually set in server.cfg.

This tells the server what file name to use when logging game information such as chats, kills, statistics, RCON commands, etc. in dedicated server mode. This is a server engine CVAR not a LOX CVAR. Refer to your server documentation.

 

logstats

Range: 0|1

Default: 0

This tells the server to log summary player statistics in the server log between maps. This information is distinct from the ARSG statistics.

 

loxarmorban

Range: 0 to 0xffffffff

Default: 0

Set any time.

This is a 32-bit integer representing the bitmap loxarmorbans. Set the bit to ban the armor designated in the server_readme.txt file.

 

loxgrenadeban

Range: 0 to 0xfffffff

Default: 0

Set any time.

This is a 32-bit integer representing the bitmap grenade bans. Set the bit to ban the grenade type designated in the server_readme.txt file.

 

loxfeatureban

Range: 0 to 0xffffffff

Default: 0

Set any time.

This is a 32-bit integer representing the bitmap featurebans. Set the bit to ban the feature designated in the server_readme.txt file.

 

loxsweeperban

Range: 0 to 0xffffffff

Default: 0

Set any time.

This is a 32-bit integer representing the bitmap loxsweeperbans. Set the bit to ban the sweeper designated in the server_readme.txt file. Sweepers are the most-loved and the most-hated weapon in LOX. You love it when you have it and you hate it when you don’t. If your server is infested with sweeper lovers that just can’t learn about the other fine weapons in LOX, this is your control.

 

loxtrackerban

Range: 0 to 0xffffffff

Default: 0

Set any time.

This is a 32-bit integer representing the bitmap tracker bans. Set the bit to ban the feature designated in the server_readme.txt file. Trackers are mini-bots in the LOX game. Think of them as smart grenades. They are deployed with the “tracker” command and the weapon they fire is the same class of weapon the player was holding when the tracker was deployed. When a tracker is banned it cannot be launched while holding a weapon of the banned class. This makes it possible to allow a weapon but ban its use as a tracker. Several weapons are permanently banned in LOX and they do not appear in the tracker bans.

 

loxturretban

Range: 0 to 0xffffffff

Default: 0

Set any time.

This is a 32-bit integer representing the bitmap turret bans. Set the bit to ban the feature designated in the server_readme.txt file. Turrets are mini-bots in the LOX game and they are sticky trackers. They can be stuck on walls or ceilings where players are likely to be but not be likely to see in time. They are deployed with the “turret” command and the weapon they fire is the same class of weapon the player was holding when the turret was deployed. When a turret is banned it cannot be launched while holding a weapon of the banned class. This makes it possible to allow a weapon but ban its use as a turret. Several weapons are permanently banned in LOX and they do not appear in the turret bans.

 

loxweaponban

Range: 0 to 0xffffffff

Default: 0

Set any time.

This is a 32-bit integer representing the bitmap loxweaponbans. Set the bit to ban the LOX weapon associated with that weapon as designated in the server_readme.txt file. This CVAR is used to control what LOX weapons are available in the game when those weapons don’t fit another category of bans.

 

maplist

Range: 1 to ??

Default: 0

Set any time.

This is both a Boolean value and an index to the line in the server maplist.txt file. When set to zero, map list rotation will not occur. This is used for coop servers where the standard map exits are used to change maps instead of a custom map list. When set to 1 or greater, it allows the server to use the maplist.txt file for selection of custom map rotation. This value is incremented with every map change and points to the current map in the maplist.txt file.

 

maplistfile

Range: text

Default: maplist.txt

Set any time.

This is the name of the maplist file you want to use for the map rotation. The default is maplist.txt and the maplist variable points to the line in the file naming the current map. The names of the maps are entered, one per line, without the .bsp extension. The server will select the maps from this file in sequence until the end of the file and then begin again at line 1.

 

maxclients

Range: 0 to 64

Default: 4

This sets the maximum number of clients that can be connected to the server. The upper limit of this is 64 players or the limit of your hosting server.

 

maxfloatingmines

Range: 0 to 10

Default: 7

This sets the maximum allowed floating mines per user. It limits the number of deployed floating mines a player can have out at a time.

 

maxlasertrips

Range: 0 to 10

Default: 4

Allowed max laser tripwire per user. This controls the number of deployed tripwires a player can have out at a time.

 

maxspectators

Range: 0 to maxclients

Default: 4

This controls the maximum number of spectators that can be connected to the server. The upper limit is the active number of maxclients.

 

maxtrackers

Range: 0 to 10

Default: 3

Allowed max trackers per user. This controls the number of deployed trackers a player can have out at a time.

 

maxturrets

Range: 0 to 10

Default: 3

Allowed max turrets per user. This controls the number of deployed turrets a player can have out at a time.

 

motdfile

Range: any valid filename

Default: “motd.txt”

Controls the name of the motto of the day (motd) file the server will display when a new player connects to the server. Fill the motd file with your server’s banner or pointers to your clan website.

 

nightdaytime

Range: 0 to “timelimit”

Default: 13

Set any time.

When to cycle day and night times on each map session.

 

password

Range: text

Default: empty

Set any time.

Causes server to require a password from clients in order to connect. Typically used for tournament games or private servers.

 

public

Range: 0|1

Default: 0

Set any time.

Causes server to send heartbeats and announce itself as a public server to be listed on master servers. Not a LOX CVAR, this is listed here for reference. This is a Quake 2 server CVAR.

 

respawn_protect

Range: 0 to 6

Default: 5

Set any time.

Spawning players remain invulnerable for the number of seconds specified in this constant. The purpose of spawn protection is to allow re-spawned players time to grab the nearest weapon and get into the action. Increase or decrease this value according to your own criteria for game action. Too high, and the protection favors re-spawners who might select the best default weapon and frag vulnerable players in range. Too low, and re-spawning players don’t have enough time to get to weapons and powerups.

 

revengereward

Range: 0 to 6

Default: 1

This sets the number of frags a player gets for scoring against another player while flying the angle of revenge.

 

setmaster

Range: any text

Usually “q2master.planetquake.com master0.gamespy.com satan.idsoftware.com udp.speakeasy.net” or other master servers. This is the list of master servers the server will send heartbeats to if public is 1.

 

skill

Range: 1 to 3

Default: 1

Latched.

This sets the skill level of the game in single player mode or in cooperative mode. This controls the intelligence, number and accuracy of the monsters. Set skill to 3 for maximum monster effects in coop. As it is, the monsters won’t stand a chance against the LOX weaponry.

 

spectator_password

Range: Text

Default: empty

Set any time.

Sets the password required from a client in order to become a spectator. Usually used for tournament games or to restrict spectator mode to authorized players.

 

timelimit

Range: 0… ?

Default: 0

Set any time.

This sets the time that a map will be played if no player hits the frag limit. Any reasonable limit is supported, set this above 60 at your own peril. Players condemned to eternal game sessions have been known to hunt down admins. Setting timelimit to 0 sets no limit. When using coop mode timelimit and fraglimit should be set to zero to allow the players to progress through the game scenes along the story line.

 

weaponban

Range: 0 to 0xffffffff

Default: 0

Set any time.

This is a 32-bit integer representing the bitmap weaponbans. Set the bit to ban the weapon designated. See server_readme.txt for documentation of the bits.

 


Flag definitions and constants

 

// dmflags

 

// These turn features ON as opposed to banning them.

DF_NO_HEALTH

1

DF_NO_ITEMS

2

DF_WEAPONS_STAY

4

DF_NO_FALLING

8

 

 

DF_INSTANT_ITEMS

16

DF_SAME_LEVEL

32

DF_SKINTEAMS

64

DF_MODELTEAMS

128

 

 

DF_NO_FRIENDLY_FIRE

256

DF_SPAWN_FARTHEST

512

DF_FORCE_RESPAWN

1024

DF_NO_ARMOR

2048

 

 

DF_ALLOW_EXIT

4096

DF_INFINITE_AMMO

8192

DF_QUAD_DROP

16384

DF_FIXED_FOV

32768

 

 

DF_REVENGE_FACTOR

65536

DF_DAYNIGHT

131072

DF_ANTICAMPER

262144

DF_HIGHFRAGGER

524288

 

 

DF_WEAPONHEAT

1048576

 

 

 


 

// Weapon banning flags.

//weaponbans

WB_SUPERBLASTER

0x00000001

//1

WB_SHOTGUN

0x00000002

//2

WB_SNIPERGUN

0x00000004

//4

WB_SUPERSHOTGUN

0x00000008

//8

 

 

 

WB_FREEZEGUN

0x00000010

//16

WB_MACHINEGUN

0x00000020

//32

WB_MACHINEROCKETGUN

0x00000040

//64

WB_BURSTMACHINEGUN

0x00000080

//128

 

 

 

WB_CHAINGUN

0x00000100

//256

WB_STREETSWEEPER

0x00000200

//512

WB_GRENADE

0x00000400

//1024

WB_CLUSTERGRENADE

0x00000800

//2048

 

 

 

WB_RAILBOMB

0x00001000

//4096

WB_PLASMAGRENADE

0x00002000

//8192

WB_NAPALMGRENADE

0x00004000

//16384

WB_SHRAPNELGRENADE

0x00008000

//32768

 

 

 

WB_GRENADELAUNCHER

0x00010000

//65536

WB_BAZOOKA

0x00020000

//131072

WB_ROCKETLAUNCHER

0x00040000

//262144

WB_HOMINGROCKETLAUNCHER

0x00080000

//524288

 

 

 

WB_HYPERBLASTER

0x00100000

//1048576

WB_PLASMARIFLE

0x00200000

//2097152

WB_RAILGUN

0x00400000

//4194304

WB_FLAMETHROWER

0x00800000

//8388608

 

 

 

WB_BFG10K

0x01000000

//16777216

 

 

 

 


 

// Banning flags for the WoD:LOX weapon extensions

 

//loxweaponban

 

LWB_AIRFIST

0x00000001 //1

LWB_SWORD

0x00000002 //2

LWB_PULSERIFLE

0x00000004 //4

LWB_NAILGUN

0x00000008 //8

 

 

LWB_BUCKY

0x00000010 //16

LWB_SKIPPERHOMINGROCKET

0x00000020 //32

LWB_CATACLYSMDEVICE

0x00000040 //64

LWB_GUIDEDNUKE

0x00000080 //128

 

 

LWB_GUIDEDMISSILE

0x00000100 //256

LWB_POSITRON

0x00000200 //512

LWB_STICKGRENADELAUNCHER

0x00000400 //1024

LWB_ICECUBEGUN

0x00000800 //2048

 

 

LWB_DURG

0x00001000 //4096

LWB_LIGHTNINGGUN

0x00002000 //8192

LWB_DOUBLEIMPACT

0x00004000 //16384

LWB_FBFG

0x00008000 //32768

 

 

LWB_DISINTEGRATOR

0x00010000 //65536

LWB_VACUUMMAKER

0x00020000 //131072

LWB_ENERGYVORTEX

0x00040000 //262144

LWB_SPIRALROCKETLAUNCHER

0x00080000 //524288

 

 

LWB_SONICRAILGUN

0x00100000 //1048576

LWB_EXPLOSIVESHOTGUN

0x00200000 //2097152

LWB_EXPLOSIVESUPERSHOTGUN

0x00400000 //4194304

LWB_EXPLOSIVEMACHINEGUN

0x00800000 //8388608

 

 

LWB_KAMINIT

0x01000000 //16777216

LWB_WALLPIERCINGRAILGUN

0x02000000 //33554432

LWB_NUKE

0x04000000 //67108864

LWB_FLOATINGMINELAUNCHER

0x08000000 //134217728

 

 

LWB_ANTIMATTERCANNON

0x10000000 //268435456

LWB_SUPERRAILSHOTGUN

0x20000000 //536870912

LWB_FREEZATRON

0x40000000 //1073741824

 


 

//loxtrackerban

 

LTB_BFG10K

0x00000001 //1

LTB_FBFG

0x00000002 //2

LTB_FREEZEGUN

0x00000004 //4

LTB_NAILGUN

0x00000008 //8

 

 

LTB_BUCKY

0x00000010 //16

LTB_RAILGUN

0x00000020 //32

LTB_ENERGYVORTEX

0x00000040 //64

LTB_KAMINIT

0x00000080 //128

 

 

LTB_SNIPERGUN

0x00000100 //256

LTB_POSITRON

0x00000200 //512

LTB_STICKGRENADELAUNCHER

0x00000400 //1024

LTB_ICECUBEGUN

0x00000800 //2048

 

 

LTB_DURG

0x00001000 //4096

LTB_LIGHTNINGGUN

0x00002000 //8192

LTB_DOUBLEIMPACT

0x00004000 //16384

LTB_DISINTEGRATOR

0x00008000 //32768

 

 

LTB_PULSERIFLE

0x00010000 //65536

LTB_EXPLOSIVESHOTGUN

0x00020000 //131072

LTB_EXPLOSIVESUPERSHOTGUN

0x00040000 //262144

LTB_EXPLOSIVEMACHINEGUN

0x00080000 //524288