Xmod Documentation

xmod 2.0.1

a Wolfenstein: Enemy Territory® modification

Date:Fri Feb 13 17:20:54 UTC 2026
UUID:git
Revision:23532a4f
Grade:development


List of Figures

2.1. !status Sample Output

Foreword

 

First and foremost, thanks for taking the time out to give this mod a try. There are many other Wolfenstein: Enemy Territory® modifications out on the internet nowadays with the release of the SDK. This started as a project to just have a little fun and explore how the code of a great game works, but it turned into much more after my clan’s game server kept experiencing instability with the popular Shrubmod.

I hope you have fun with this mod, as this is its intention.

 
 --Jaybird

Preface

Table of Contents

Audience
Command Syntax
 

The cost of adding a feature isn't just the time it takes to code it. The cost also includes the addition of an obstacle to future expansion. ... The trick is to pick the features that don't fight each other.

 
 --John Carmack

Audience

This guide is intended for anyone who runs or is interested in running a xmod 2.0.1 server.

Although ET is available on several platforms, Linux will be used as the reference platform for this documentation. Many concepts here apply equally to OSX and, to some degree, more generically to the Windows platform.

It is assumed the reader is sufficiently familiar with Linux administration to be able to perform basic operating system tasks.

Command Syntax

Linux command syntax appears in monospace font prefixed with a typical shell prompt denoting account/privileges for which the command should be entered with, followed by a number sign (#) or dollar sign ($) indicating root or non-root accounts, respectively. Do not enter the prompt text as part of the command.

[Note]Note
The assumed Linux shell is bash.

ET console command syntax appears in monospace font prefixed with a typical console prompt, a right-bracket (]). Do not enter the prompt text as part of the command.

Table 1. Syntax Conventions

ConventionDescription
braces {}Braces indicate required items.
brackets []Brackets indicate optional items.
ellipses ...Ellipses indicate an arbitrary number of similar items.
italicsItalic style indicates a variable. Substitute a real value for the variable.
vertical bar |A vertical bar indicates a choice within braces or brackets.

Introduction

xmod is an add-on modification to Wolfenstein: Enemy Territory. The idea for xmod came from the main features of Shrubmod. Shrubmod has long been out of date and unsupported, and with the instability issues that come with Shrubmod, something had to be done to get a Shrub-like server-side mod that would provide most of the features, be stable, and be supported.

This mod has long since far outgrown its original objectives and has moved on to implement more advanced features with client-side support. To keep things as simple as possible, only one pak file needs to be downloaded (on the fly) for clients connecting to a xmod server for the first time.

With most of the Shrubmod compatibility implementation complete, the focus has shifted to the requests of the community, many of which mirror features already implemented in ETPro. This mod is becoming a rather well-rounded game play mod as a result. It is seeing more and more options that might be deemed competition-minded while maintaining its fun factor for pub environments.

xmod is a closed source project originally forked from the ET SDK. In mid-2006 the entire code base was converted to compile cleanly in C++ . Some ET SDK and all major xmod subsystems have been refactored/implemented to take full advantage of C++ language features.

Where to download

xmod is available for download at its official home discord.etclan.de. You may find versions available elsewhere on the internet, but if at all possible download it from the official homepage, as it always has the most up-to-date version available.

Further information and suggestions

If there is anything that isn’t answered here, I urge you to visit the website at discord.etclan.de for updated information, as it’s more likely to have information not available at the time this document was published.

Also, I’m always on the lookout for good ideas or suggestions, so, again, please visit the website and let me know what you think!

Minimum System Requirements

Table of Contents

Linux
OSX
Windows

Linux

  1. Linux x86 (32-bit) with GLIBC 2.3.2 or higher
  2. Intel® Pentium® III 600Mhz processor or AMD equivalent
  3. hardware-accelerated OpenGL driver
  4. working installation of Enemy Territory 2.60b

OSX

  1. OSX 10.4 or newer running PPC or x86
  2. working installation of Enemy Territory 2.60d (2.60c was unstable for x86)

Windows

  1. Windows 98/ME/2000/XP (Windows NT 4.0 not recommended for clients)
  2. 100% Windows® 98/ME/2000/XP compatible system (including all 32bit drivers)
  3. Intel® Pentium® III 600Mhz processor or AMD equivalent
  4. Microsoft® Direct X® 8.1 or higher (not included)
  5. working installation of Enemy Territory 2.60b

Part I. Client

Chapter 1. Features

Adrenaline Sharing

You have the ability to share adrenaline with other players. If you switch to the alternate weapon of the adrenaline syringe (usually right click on the mouse), the syringe will point outwards and you can give a live teammate adrenaline. This is an excellent way to promote teamwork in tough situations. This feature is enabled on the server using g_medics(cvar).

Alternate HUD

HUD is an acronym for Heads Up Display. This is the 2D layout of items are on your screen such as what weapon you’re holding, your compass, how much XP and health you have, etc. xmod has an alternative HUD available to use that takes up less screen space. This setting is available on the client using the in-game xmod preferences menu.

Automatic Rate Adjustment

Automatic Rate Adjustment tunes the /rate setting to help deal with big servers running large maps with many players which will help to offer a better gaming experience. If the rate is ramped, it will only be ramped for the current map to avoid entering other servers with a rate which may get you kicked. In all cases, /rate ramping can only increase as high as the server's sv_maxrate setting.

If xmod detects that you have the highest normal /rate setting of 25000 and Auto Rate is set to "auto step" under the Xmod/Misc/Network menu, /rate will be raised in increments of 1000 when the server detects network congestion in the server -> client direction.

If Auto Rate is set to "server max" then /rate will be increased in a similar fashion as "auto step" except that instead of increasing in increments of 1000 it will simply increase all at once and match sv_maxrate.

Class Stealing

Class stealing allows a player to steal a dead teammate’s class. This feature is enabled on the server using g_covertops(cvar).

In order to steal a class, you stand over a dead teammate and hold your activate key, much as you would steal a uniform as a covert ops. When you finish stealing their class, you lose your class abilities and your current weapons. You will gain the weapon the dead player was using (on an empty clip, you must find ammo!) and all the abilities of their class.

[Tip]Tip
If the server administration has enabled it, when you are a disguised covert ops and steal a class, you keep the disguise even though you aren’t a covert ops anymore.

Corpse Dragging

Corpse dragging allows a player to drag a dead body (awaiting Medic revive) along the ground while depressing the activate-key. This feature is enabled on the server using g_dragCorpse(cvar).

[Tip]Tip
Use this to drag a teammate's body away from danger, or drag a dead enemy to a safe place for uniform stealing.

Double Jump

Double jump allows you to jump an extra time while in mid-air to gain more height. This feature is enabled on the server using g_misc(cvar).

Goomba Killing

Alluding to the Mario Bros. days you can “goomba” kill people by landing on their heads. The farther you fall, the more damage you inflict. Also, if you land on someone’s head, it softens your fall. This feature is enabled on the server using g_goomba(cvar).

Hitsounds

This extremely popular feature makes a sound when you hit a player. This feature is enabled on the client using the in-game xmod preferences menu.

The sound distinguishes between friendly/enemy hits, and depending on the server setting g_hitmode(cvar), the general body-part of player being hit.

Killing Sprees

The game keeps track of player kills and presents Unreal-Tournament-like killing spree messages and sounds. This feature is enabled on the client using the in-game xmod preferences menu. This feature must also be enabled on the server using g_killingSpree(cvar).

Live Uniform Stealing

Covert-Ops can sneak behind someone and steal the pants right off of them! You must stay behind the player though. This feature is enabled on the server using g_covertops(cvar).

Obituaries

By default, death messages (obituaries) will show up on the left-middle part of your screen. On larger servers where there are a lot of deaths, it may be desirable to relocate those messages to the chat area. This setting is available on the client using the in-game xmod preferences menu.

Panzer War

Panzer war is a fun game-play mode made for destructionists. This feature is enabled on the server using g_panzerWar(cvar).

When enabled, the following is in effect:

  • players spawn as Soldier with a panzerfaust, a knife and 100 grenades
  • panzerfaust shoots faster
  • soldier charge recharges faster
  • soldier runs faster
  • panzer ammo is not consumed (infinite shots)
  • panzer damage is reduced to 33% of original amount
  • panzer splash damage radius is 67% of its original amount

[Note]Note
This is a fun game mode and as such, it may not be compatible with the objectives of most maps.

[Warning]Warning
This feature is mutually exclusive to g_knifeonly(cvar), and g_sniperWar(cvar).

Playdead

A popular Shrubmod feature, playdead is enabled on the server using g_playDead(cvar).

Playdead allows a player to fake being dead in the hopes an attacker will give them no further attention and kindly move on. You can use this feature by binding a key for it in the in-game xmod menu under Misc. The key you specify will toggle playdead mode.

When you are in playdead mode, you cannot shoot your weapon. To an enemy, you look like a dead player (after a tap-out and awaiting a respawn). However, you will still be a solid body (players cannot walk through you) and your eyes will still blink.

[Note]Note
Note that this version of playdead is a bit less bugged than Shrubmod’s version. It’s much harder to get stuck in walls, and there’s just about zero chance of someone using this as an exploit to get through a wall (example, bank doors on Goldrush) due to extra checks to make sure there is enough clearance for your player to fall down and still be in the “world”.

[Tip]Tip
This is an excellent way to infiltrate enemy bases and maintain the element of surprise!

Private Messaging

Private messaging allows one player to send a private message to another player or group of players on the same server. This feature is enabled on the server using g_privateMessages(cvar).

To use this feature, simply go into the Misc section of the xmod menu, and bind a key to use it. You may also use private messages through the console or global chat window, but this method is deprecated and discouraged.

You can find a player’s slot number by using the admin command !listplayers or the builtin command /players in your client console. This is the best way to make sure only one specific individual receives your message.

You can also specify a partial name match. This is a shorthand way, but also allows for multiple people to receive the message. For example, sending a message to “dam” will send the message “hello!” to players “Adam” and “Damage”, since they both have “dam” in their name. Just be careful that you don’t make the partial name too generic or you might send your message to someone unintended!

There is also the option to block Private Messages. With Admin System enabled, anyone who is equal to your level or lower will be unable to send you a Private Message if you are blocking them. Anyone above you, however, will still be able to do so. This allows server admins to use Private Messaging as a valuable tool. You can find this option also in the in-game xmod menu.

Poison Syringes

Poison syringes are added to weapon slot #4 (behind grenades). It is a blue colored syringe that you can poke enemies with (or friendlies when friendly-fire enabled). When poked with a poison syringe, your view will start swaying back and forth, and get distorted. You can hear your heart pounding. Better find help. This option is enabled on the server using g_poisonSyringes(cvar).

Compounding effect - that is, if you are poked multiple times, you loose health faster. This allows XP sharing with poison hits – if you poke someone with a poison syringe, you will get XP for every time damage is dealt until they die. The interval of time that your syringe damages the player is 1.5 seconds, so every 1.5 seconds you will get 0.2 Medic XP and hurt the player 10HP. Since it tracks multiple people hitting the player with a Poison Syringe, the last poison damage inflicted that causes the death of the player gives the person who hit them with the specific syringe that caused the death a final 3 Medic XP.

Poisoned players can be cured with health packs. However, in an effort to make the game more balanced, medics cannot self-antidote. Essentially, a player can antidote themselves by finding a health pack that is not their own. Since poison compounds, you must find a health pack for each time you have been poisoned. For example, if you have been poked 4 times with a syringe, you must find 4 health packs.

[Tip]Tip
Health cabinets provide a good source of health packs.

Sniper War

Sniper war is a fun game-play mode made for sharpshooters. This feature is enabled on the server using g_sniperWar(cvar).

When enabled, the following is in effect:

  • players spawn as Covert-Ops with a sniper rifle, a knife, binoculars, and 400 rifle rounds
  • players awarded with all Covert-Ops skills
  • headshots while in scoped weapon-mode are instant kills
  • if hitsounds are enabled, headshots result in an voice shouting "headshot"

[Note]Note
This is a fun game mode and as such, it may not be compatible with the objectives of most maps.

[Warning]Warning
This feature is mutually exclusive to g_knifeonly(cvar), and g_panzerWar(cvar).

Poison Gas Mines

Poison gas mines are a new weapon available to level-5 engineers behind the normal weaponbank for landmines. Level-5 engineers are able to use poison gas mines if enabled on the server using g_sk5_eng(cvar). Similar to S-mines, they bounce into the air, but release a deadly gas for a duration of time.

Poison Throwing Knives

Throwing knives will also poison whomever they hit. This feature is enabled on the server using g_weapons(cvar).

S-mines

S-mines (A.K.A. Bouncing Betties) are a new weapon available to level-5 engineers behind the normal weaponbank for landmines. Level-5 engineers are able to use S-Mines if enabled on the server using g_sk5_eng(cvar).

The German S-mine (Schrapnellmine in German), also known as the Bouncing Betty, is the best-known version of a class of mines known as bounding mines. These mines launch into the air at about waist height and explode, propelling shrapnel horizontally at lethal speeds. The S-mine was an anti-personnel landmine developed by Nazi Germany in the 1930s and used extensively by German forces during World War II. It was designed to be used in open areas to attack unshielded infantry. Until production ceased with the defeat of Germany in 1945, Germany produced over 1.93 million S-mines.

Shoutcasting

Players with the server password specified by g_shoutcastpassword(cvar) can use the shoutcasting feature. This is a beefed up version of spectating. Players will be able to see the names of players above their heads, see timers on dynamite, and see all landmines across the map. To login and logout, use the following client-console commands, respectively:

/sclogin PASSWORD
/sclogout

Throwing Knives

Knives can be thrown. You will need to re-bind whatever key you are currently using for alternate weapon to use the new xmod command using the in-game xmod menu. It acts just like the alternate weapon function, with the addition of allowing very special control over throwing knives. To throw a knife, hold the alt-fire button and release. The longer you hold the knife (up to 1 second), the harder it is thrown. Knives react according to your momentum too – if you are strafing left when releasing, the knife will have a leftward vector as well. This feature is enabled on the server using g_weapons(cvar).

Watermarks

Server admins have the option of displaying a small logo on every player’s screen using g_watermark(cvar). Usually this logo will fade after a specified period of time, but admins may decide to keep the logo for an extended or indefinite amount of time using g_watermarkFadeAfter(cvar) and g_watermarkFadeTime(cvar). Clients can adjust the opacity or even completely disable this logo using the in-game xmod preferences menu.

Winchester M1897

Winchester M1897 (A.K.A. M97) is a new weapon selection available for every class except Covert-Ops. It is a pump-action shotgun with an external hammer and tube magazine.

The United States military used a short-barreled version known variously as the trench or riot shotgun. It was developed into a version issued to US troops during World War I. Unlike most modern pump-action shotguns, the Winchester Model 1897 (versions of which were type classified as the Model 97 or M97 for short) fired each time the action closed with the trigger depressed (that is, it lacks a trigger disconnector). That and its 6-shot capacity made it extremely effective for close-combat, such that troops referred to it as a trench sweeper. It was used in limited numbers during World War II by the United States Army and Marine Corps.

Reloading works different than most ET weapons as you must load one shell at a time, and reloading can be interrupted by pressing (not necessarily holding) fire while reloading.

Chapter 2. Command Reference

Name

about — show mod information

Synopsis

!about

Description

about displays information about the xmod modification including version, authors, and features.


Name

admintest — test admin privileges

Synopsis

!admintest

Description

admintest tests whether you have admin privileges and displays your current admin level.


Name

ban — Ban an online player.

Synopsis

!ban [SECONDS] [REASON]

Description

ban Ban an online player.


Name

baninfo — Show ban details.

Synopsis

!baninfo

Description

baninfo Show ban details.


Name

banlist — List banned users.

Synopsis

!banlist [-name NAME]

Description

banlist List banned users.


Name

banuser — Ban a user. Useful for banning players which are not connected.

Synopsis

!banuser [SECONDS] [REASON]

Description

banuser Ban a user. Useful for banning players which are not connected.


Name

cancelvote — Voids the current vote.

Synopsis

!cancelvote

Description

cancelvote Voids the current vote.


Name

chicken — Call a player a chicken.

Synopsis

!chicken

Description

chicken Call a player a chicken.


Name

crazygravity — Change to a new random gravity every 30 seconds. No argument reports status.

Synopsis

!crazygravity

Description

crazygravity Change to a new random gravity every 30 seconds. No argument reports status.


Name

crybaby — Make a player cry like a baby.

Synopsis

!crybaby

Description

crybaby Make a player cry like a baby.


Name

dbload — Reload the Admin System database files. Use 'migrate' to import legacy userDB to SQLite.

Synopsis

!dbload

Description

dbload Reload the Admin System database files. Use 'migrate' to import legacy userDB to SQLite.


Name

dbsave — Save the Admin System database (SQLite auto-saves).

Synopsis

!dbsave

Description

dbsave Save the Admin System database (SQLite auto-saves).


Name

disorient — Disorients (flips) a player's view.

Synopsis

!disorient

Description

disorient Disorients (flips) a player's view.


Name

finger — Get information about a player.

Synopsis

!finger

Description

finger Get information about a player.


Name

fling — Fling a player randomly into the air.

Synopsis

!fling [DISTANCE]

Description

fling Fling a player randomly into the air.


Name

flinga — Fling all players randomly into the air.

Synopsis

!flinga [DISTANCE]

Description

flinga Fling all players randomly into the air.


Name

ftime — Shows the current Central Time in a FUN way.

Synopsis

!ftime

Description

ftime Shows the current Central Time in a FUN way.


Name

glow — All players emit a colored glow. No argument reports status.

Synopsis

!glow

Description

glow All players emit a colored glow. No argument reports status.


Name

help — show command help

Synopsis

!help [COMMAND]

Description

help shows all Admin System commands you are authorized to use, and gives descriptions. If a specific command name is provided, detailed help for that command is displayed.


Name

jxac_screenshot — Request screenshot from a specific player (JXAC).

Synopsis

!jxac_screenshot [QUALITY]

Description

jxac_screenshot Request screenshot from a specific player (JXAC).


Name

jxac_screenshotall — Request screenshot from all connected players (JXAC).

Synopsis

!jxac_screenshotall [QUALITY]

Description

jxac_screenshotall Request screenshot from all connected players (JXAC).


Name

jxac_status — Show JXAC status for all players or a specific player.

Synopsis

!jxac_status [PLAYER]

Description

jxac_status Show JXAC status for all players or a specific player.


Name

kick — Kick a player off the server.

Synopsis

!kick [REASON]

Description

kick Kick a player off the server.


Name

launch — Launch a player straight up.

Synopsis

!launch [DISTANCE]

Description

launch Launch a player straight up.


Name

launcha — Launch all players straight up.

Synopsis

!launcha [DISTANCE]

Description

launcha Launch all players straight up.


Name

levadd — Create a new admin level.

Synopsis

!levadd

Description

levadd Create a new admin level.


Name

levdelete — Remove the admin level specified by

Synopsis

!levdelete [MIGRATE_LEVEL]

Description

levdelete Remove the admin level specified by


Name

levedit — Edit an admin level.

Synopsis

!levedit

Description

levedit Edit an admin level.


Name

levinfo — Show admin level details.

Synopsis

!levinfo

Description

levinfo Show admin level details.


Name

levlist — List admin levels in database.

Synopsis

!levlist [-name NAME]

Description

levlist List admin levels in database.


Name

listplayers — Display all players connected, their client numbers and admin levels.

Synopsis

!listplayers

Description

listplayers Display all players connected, their client numbers and admin levels.


Name

lock — Lock a team so players cannot enter it.

Synopsis

!lock

Description

lock Lock a team so players cannot enter it.


Name

lol — rain grenades on players

Synopsis

!lol [player] [num]

Description

lol rains grenades on players. This causes a single grenade to drop on every player at once.


Name

lsplayers — Display all players connected, their client numbers and admin levels.

Synopsis

!lsplayers

Description

lsplayers Display all players connected, their client numbers and admin levels.


Name

mute — Mute someone so he/she cannot talk. No voice commands, nor chat, nor admin commands.

Synopsis

!mute [REASON]

Description

mute Mute someone so he/she cannot talk. No voice commands, nor chat, nor admin commands.


Name

news — Plays the 'news' for the current or specified map.

Synopsis

!news [MAPNAME]

Description

news Plays the 'news' for the current or specified map.


Name

nextmap — Ends the current map and advances to the next map.

Synopsis

!nextmap

Description

nextmap Ends the current map and advances to the next map.


Name

orient — Orients a player's view.

Synopsis

!orient

Description

orient Orients a player's view.


Name

page — page an administrator

Synopsis

!page [MESSAGE]

Description

page sends a message to all online administrators to get their attention.


Name

pants — Strip a player of their pants.

Synopsis

!pants

Description

pants Strip a player of their pants.


Name

panzerwar — A panzerfaust frag-fest. No argument reports status.

Synopsis

!panzerwar

Description

panzerwar A panzerfaust frag-fest. No argument reports status.


Name

pause — Pause the game.

Synopsis

!pause

Description

pause Pause the game.


Name

pip — Make players glitter like a little elf.

Synopsis

!pip [PLAYER_FILTER]

Description

pip Make players glitter like a little elf.


Name

pop — Let all players pop off their helmets.

Synopsis

!pop [PLAYER_FILTER]

Description

pop Let all players pop off their helmets.


Name

putteam — Put a specific player on a different team.

Synopsis

!putteam

Description

putteam Put a specific player on a different team.


Name

rename — Change a specific player's name.

Synopsis

!rename

Description

rename Change a specific player's name.


Name

reset — Restart the current map and also reset XP to what it was when map started.

Synopsis

!reset

Description

reset Restart the current map and also reset XP to what it was when map started.


Name

resetmyxp — Completely reset your own XP.

Synopsis

!resetmyxp

Description

resetmyxp Completely reset your own XP.


Name

resetxp — Completely reset a specific player's XP.

Synopsis

!resetxp

Description

resetxp Completely reset a specific player's XP.


Name

restart — Restart the current map and keep all of the XP gained during the map.

Synopsis

!restart

Description

restart Restart the current map and keep all of the XP gained during the map.


Name

revive — Revive yourself, or revive a different player.

Synopsis

!revive [PLAYER]

Description

revive Revive yourself, or revive a different player.


Name

seen — Find the last time a specific admin was seen on the server.

Synopsis

!seen

Description

seen Find the last time a specific admin was seen on the server.


Name

setlevel — Change a specific player's admin level.

Synopsis

!setlevel

Description

setlevel Change a specific player's admin level.


Name

shake — Make players screen shake for a chosen period of time. Default is 1 second.

Synopsis

!shake [PLAYER_FILTER] [SECONDS]

Description

shake Make players screen shake for a chosen period of time. Default is 1 second.


Name

shuffle — Shuffles the teams based on the rate of XP gain.

Synopsis

!shuffle

Description

shuffle Shuffles the teams based on the rate of XP gain.


Name

slap — Slap players around.

Synopsis

!slap [PLAYER_FILTER] [DAMAGE]

Description

slap Slap players around.


Name

smite — Set players on fire.

Synopsis

!smite [PLAYER_FILTER]

Description

smite Set players on fire.


Name

sniperwar — A sniper shootout. No argument reports status.

Synopsis

!sniperwar

Description

sniperwar A sniper shootout. No argument reports status.


Name

spec — spectate a player

Synopsis

!spec [PLAYER]

Description

spec instantly switches you to the Spectator team and follows the specified player.


Name

spec999 — Put everyone with 999 ping to Spectator team.

Synopsis

!spec999

Description

spec999 Put everyone with 999 ping to Spectator team.


Name

splat — Make a specified player go Splat!

Synopsis

!splat

Description

splat Make a specified player go Splat!


Name

splata — M-m-m-monster splat...!

Synopsis

!splata

Description

splata M-m-m-monster splat...!


Name

status — display server resources

Synopsis

!status [all]

Description

status displays critical server resources which may help determine when a server is reaching its limits due to gameplay, maps, settings and other complexities. Some of the resources listed track game-engine limits which if hit will result in a server crash.

If all is specified, the output is shown on all players' consoles.

Watermarks (high indicators) only apply to the current match. Heap amounts simply track memory used for a particular feature. Rates are averaged over the last 15 seconds.

Figure 2.1. !status Sample Output

-SERVER STATUS
players:       43/64          ( 67.19%)
entities:     362/958         ( 37.79%) (452 high)
gamestate:  12549/16000 bytes ( 78.43%)
serverinfo:   639/1024  bytes ( 62.40%)
systeminfo:  1511/8192  bytes ( 18.44%)
largestcs:    274/1024  bytes ( 26.76%) (38 index)
-DATABASE
user:  2409 records
level:    7 records
map:     10 records
-HEAP
bullet-model:    15 KB  (   15 KB high)
hit-model:      346 KB  (  565 KB high)
-RATES
entity spawn:  27.24/s
entity free:   29.30/s

players

Indicates active number of player slots consumed out of the total game-engine limit.

entities

Indicates the active number of game-entities out of the total game-engine limit. These entities are maticulously replicated to all connected clients and represent dynamic objects in the 3D game world. Primary factors which are known to cause or trigger exhaustion of this resource are:

  • consumed player slots
  • large and/or poorly designed maps
  • abuse of lol(1)
  • high amount of med or ammo packs left on ground

While not an exhaustive list, some common examples of objects which each consume an entity slot are:

  • players
  • constructables
  • capturables (flags)
  • breakables (glass, charis, crates, fences, doors)
  • dropped/thrown grenades
  • dropped weapons
  • projectiles (panzers and mortar rounds)
  • supply packs (health and ammo)
  • landmines
  • movers (tanks, trains)
  • map-specials (fire-railgun button, cranes, doors)

gsdata

Indicates the current size of the game-state data structure which has a game-engine limit. This data is maticulously replicated to all connected clients and is limited in size for game-engine networking reasons. Many factors effect the amount of data and they are too numerous to list here. Primary factors which are known to cause or trigger exhaustion of this resource are:

  • excessive amounts of pk3 files on server
  • large and/or poorly designed maps
  • consumed player slots
  • end-game statistics

serverinfo

Indicates the current size of the serverinfo data structure which amongst other things houses information used by public game browsers. This is an entry in gamestate.

systeminfo

Indicates the current size of the systeminfo data structure which typically stores referenced pak names, unreferenced pak names, checksums and other non-public server information. This is an entry in gamestate.

largestcs

Indicates the size and index of the the largest config-string entry in the gamestate buffer. This does not include serverinfo or systeminfo entries.


Name

swap — Put all Axis on Allies, and all Allies on Axis. Spectators stay Spectator.

Synopsis

!swap

Description

swap Put all Axis on Allies, and all Allies on Axis. Spectators stay Spectator.


Name

throw — Throw a specific player straight ahead.

Synopsis

!throw [DISTANCE]

Description

throw Throw a specific player straight ahead.


Name

throwa — Throw all players straight ahead.

Synopsis

!throwa [DISTANCE]

Description

throwa Throw all players straight ahead.


Name

time — show server time

Synopsis

!time

Description

time shows the current local (server) time.


Name

unban — Unban a specific player.

Synopsis

!unban

Description

unban Unban a specific player.


Name

unlock — Unlock a team so players can enter it again.

Synopsis

!unlock

Description

unlock Unlock a team so players can enter it again.


Name

unmute — Allow a player to talk again.

Synopsis

!unmute

Description

unmute Allow a player to talk again.


Name

unpause — Unpause the game.

Synopsis

!unpause

Description

unpause Unpause the game.


Name

uptime — show server uptime

Synopsis

!uptime

Description

uptime shows how long the server has been running.


Name

userdelete — Remove the user specified by

Synopsis

!userdelete

Description

userdelete Remove the user specified by


Name

useredit — Edit an admin level.

Synopsis

!useredit

Description

useredit Edit an admin level.


Name

userinfo — Show user details.

Synopsis

!userinfo

Description

userinfo Show user details.


Name

userlist — List users in database.

Synopsis

!userlist [-name NAME]

Description

userlist List users in database.

Part II. Server

Table of Contents

3. Upgrade
CVAR Changes
Preparing to Upgrade
Shrubbot Conversion
Upgrade
After Upgrade
4. Install
Preparing to Install
Install
After Install
5. Config
6. Operation
Signals
Startup
Shutdown
Show online status
Restart
Reload database
7. Admin System
Synopsis
Operation
Quickstart Checklist
Privileges
Managing ACLs
Various examples
8. Database System
9. XP-save System
Operation
10. Hitmode System
Introduction
Highlights
Operation
11. ETPro mapscripting
12. Omni-bot
Native Library Search Path
See Also
13. CVAR Reference
cg_drawGun
cg_drawGunAlpha
cg_hudAlpha
cg_hudBackgroundColor
cg_hudBorderColor
dedicated
g_LTChargeTime
g_admin
g_adminChat
g_adminLog
g_alliedmaxlives
g_altStopwatchMode
g_ammoRechargeTime
g_antiwarp
g_autoFireteams
g_axismaxlives
g_bannerLocation
g_bannerTime
g_banners
g_bluelimbotime
g_bulletmode
g_bulletmodeDebug
g_bulletmodeReference
g_bulletmodeTrail
g_campaignFile
g_canisterKick
g_canisterKickDistance
g_canisterKickOwner
g_censor
g_censorPenalty
g_classChange
g_complaintlimit
g_countryflags
g_covertops
g_covertopsChargeTime
g_damageweapons
g_damagexp
g_debugAlloc
g_debugConstruct
g_debugDamage
g_debugMove
g_debugSkills
g_defaultSkills
g_disableComplaints
g_djHeight
g_doubleJump
g_dragCorpse
g_dropAmmo
g_dropHealth
g_dualSMG
g_dynamiteTime
g_enforcemaxlives
g_engineerChargeTime
g_engineers
g_fastres
g_fear
g_filterBan
g_filtercams
g_fixedPhysics
g_fixedPhysicsFPS
g_forcerespawn
g_friendlyFire
g_gametype
g_glow
g_goomba
g_gravity
g_headshot
g_healthRechargeTime
g_heavyWeaponRestriction
g_hitmode
g_hitmodeAntilag
g_hitmodeAntilagLerp
g_hitmodeDebug
g_hitmodeFat
g_hitmodeGhosting
g_hitmodeReference
g_hitmodeZone
g_inactivity
g_instantSpawn
g_intermissionReadyPercent
g_intermissionTime
g_ipcomplaintlimit
g_kickMessage
g_kickTime
g_killAssistances
g_killSpreeLevels
g_killingSpree
g_knifeonly
g_knockback
g_landminetimeout
g_levels_battlesense
g_levels_covertops
g_levels_engineer
g_levels_fieldops
g_levels_lightweapons
g_levels_medic
g_levels_soldier
g_lms_followTeamOnly
g_lms_lockTeams
g_lms_matchlimit
g_lms_roundlimit
g_lms_teamForceBalance
g_log
g_logOptions
g_logSync
g_loseSpreeLevels
g_mapConfigs
g_mapScriptDirectory
g_maxGameClients
g_maxlives
g_maxlivesRespawnPenalty
g_medicChargeTime
g_medicSelfHealDelay
g_medics
g_misc
g_moverScale
g_movespeed
g_multiReviveTime
g_muteTime
g_noAttackInvul
g_noCharge
g_noReload
g_noTeamSwitching
g_packDistance
g_panzerWar
g_password
g_playDead
g_poisonSyringes
g_privateMessages
g_proneDelay
g_protestMessage
g_redlimbotime
g_reflectFriendlyFire
g_revenge
g_reviveSpreeOptions
g_saveCampaignStats
g_scriptDebug
g_scriptDebugLevel
g_scriptName
g_shortcuts
g_shoutcastpassword
g_shove
g_shoveNoZ
g_sk5_battle
g_sk5_cvops
g_sk5_eng
g_sk5_fdops
g_sk5_lightweap
g_sk5_medic
g_sk5_soldier
g_skills
g_slashKill
g_smoothClients
g_snap
g_sniperWar
g_soldierChargeTime
g_soldiers
g_spawnInvul
g_spawnInvulNoClip
g_spectator
g_spectatorInactivity
g_spectatorNames
g_speed
g_teamChangeDelay
g_teamDamageMinHits
g_teamDamageRestriction
g_teamForceBalance
g_truePing
g_userAlliedRespawnTime
g_userAxisRespawnTime
g_userConfig
g_voiceChatsAllowed
g_warmup
g_warnBanLevel
g_warnDecay
g_warnMuteLevel
g_watermark
g_watermarkFadeAfter
g_watermarkFadeTime
g_weaponScriptsDir
g_weapons
g_weaponsenable
g_wolfrof
g_xpCap
g_xpMax
g_xpSave
g_xpSaveTimeout
jxac_antiTamper
jxac_autoBan
jxac_autoKick
jxac_cheatCvarFile
jxac_cheatDbFile
jxac_cheatFile
jxac_checkCvars
jxac_checkSpeedhack
jxac_checkWallhack
jxac_cvarFile
jxac_cvarScan
jxac_cvarScanDelay
jxac_cvarScanInterval
jxac_cvarScanMaxWarnings
jxac_cvarScanWait
jxac_enable
jxac_forceCvarFile
jxac_heartbeatTimeout
jxac_logFile
jxac_moduleScan
jxac_screenshotPath
jxac_screenshotQuality
match_latejoin
match_minplayers
match_mutespecs
match_readypercent
match_timeoutcount
match_timeoutlength
match_warmupDamage
omnibot_enable
rconpassword
refereePassword
server_motd0
server_motd1
server_motd2
server_motd3
server_motd4
server_motd5
sv_allowDownload
sv_dl_maxRate
sv_floodProtect
sv_fps
sv_fullmsg
sv_hostname
sv_lanForceRate
sv_master1
sv_master2
sv_master3
sv_master4
sv_master5
sv_maxPing
sv_maxRate
sv_maxclients
sv_minPing
sv_packetdelay
sv_packetloss
sv_padPackets
sv_privateClients
sv_privatePassword
sv_pure
sv_reconnectlimit
sv_showAverageBPS
sv_showloss
sv_timeout
sv_wwwBaseURL
sv_wwwDlDisconnected
sv_wwwDownload
sv_wwwFallbackURL
sv_zombietime
team_maxArtillery
team_maxCovertOps
team_maxEngineers
team_maxFieldOps
team_maxFlamers
team_maxGrenLaunchers
team_maxLandMines
team_maxM97s
team_maxMG42s
team_maxMedics
team_maxMortars
team_maxPanzers
team_maxplayers
team_nocontrols
vote_allow_balancedteams
vote_allow_comp
vote_allow_friendlyfire
vote_allow_gametype
vote_allow_generic
vote_allow_kick
vote_allow_map
vote_allow_matchreset
vote_allow_matchrestart
vote_allow_mutespecs
vote_allow_muting
vote_allow_nextmap
vote_allow_pub
vote_allow_referee
vote_allow_shuffleteamsxp
vote_allow_startmatch
vote_allow_swapteams
vote_allow_timelimit
vote_allow_warmupdamage
vote_limit
vote_minPercent
vote_percent
vote_voteBased

Chapter 3. Upgrade

CVAR Changes

This section outlines CVARs which have changed significantly prior to xmod 2.0.1. If you are already running 2.0.1 then you should skip this section.

These CVARs will need to be updated in your server configs or these features may not work as expected.

g_censor

With release 2.1.0 and higher, g_censor is no longer a comma-separated list of words, and has changed to accept either { 0, 1 } to respectively { disable, enable } the censor feature.

The words list is now read from a censor.db located in the xmod directory. There is no practical limit to the number of words you can enter into this file. xmod expects one word per line, such as:

word1 
word2 
word3 
g_xpSave

With release 2.1.0 and higher, g_xpSave no longer specifies a filename and has changed to accept { 0, 1 } to respectively { disable, enable } the XP-save feature. The reason for this is that XP data is now integrated into users.db.

Preparing to Upgrade

This section describes the pre-upgrade procedure.

  1. Check Minimum System Requirements.

    [Warning]Warning
    Older versions of ET may not work as expected, or may fail entirely. Using an older version is not recommended and is not supported.

  2. Shutdown server. For this example we will assume you are using the serverctl script bundled with xmod.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ ./serverctl status
    [etserver]$ ./serverctl stop
    [etserver]$ ./serverctl status
    
  3. Backup Important Data. Before making any significant changes to your system, make sure to backup all your important data. Plan for the worst, hope for the best.

Shrubbot Conversion

This section is intended for server administrators migrating xmod from pre-2.1.0 to 2.0.1. If you have already migrated or migration does not apply, you should skip this section.

As of xmod 2.1.0 the data files have changed and are not compatible with older versions. In order to assist servers wanting to upgrade, we provide a Perl script which can convert most (not all) of the data from old shrubbot.cfg to the newer .db formats.

[Note]Note
The conversion script is written in Perl. Most LinuxOSX systems have this available and should be able to run the script. Windows systems typically do not have Perl available. You can either install Perl yourself, or find someone else (maybe a friendly Linux) whom you can trust and have run the script for you.

[Warning]Warning
Upgrades are only supported from xmod 2.0.X to xmod 2.0.1. Older versions may not convert as expected.

Data from shrubbot.cfg will be converted and placed into user.db and level.db. Other data found in .dat files is silently ignored and not converted.

Admin, level and permanent-ban records are converted. Temporary-ban records are not converted.

  1. Change to server's xmod directory as convert_shrub expects to find shrubbot.cfg in the current directory. Execute convert_shrub. The script usually has the correct file permissions and can find perl by itself on recent Linux systems, but for our example we will explicitly run it from your shell path.

    [etserver]$ cd ~etserver/server1/xmod/
    [etserver]$ perl ~etserver/xmod-2.0.1/linux/convert_shrub
    
  2. Examine the newly created .db files. The next time xmod server is launched it will read the files into memory. Then shutdown the server and the full (scrubbed) data will be written which is cleaner, and more rich than what convert_shrub can produce.

    [etserver]$ cd ~etserver/server1/xmod/
    [etserver]$ less level.db
    [etserver]$ less user.db
    
  3. Rename shrubbot.cfg. This file is no longer required but is recommended to keep this file around if you want to compare the converted data. We rename it to show the file is no longer in use.

    [etserver]$ cd ~etserver/server1/xmod/
    [etserver]$ mv shrubbot.cfg shrubbot.cfg.DISABLED
    

Upgrade

This section describes the main upgrade procedure.

  1. Extract xmod 2.0.1 distribution bundle available for download from discord.etclan.de.

    [etserver]$ cd ~etserver
    [etserver]$ tar xzf xmod-2.0.1.tar.gz
    
  2. Create a backup directory to hold files replaced during upgrade.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ mkdir BACKUP
    
  3. Backup and copy new servercl script into place. Once you have copied the new script into place, manually apply any edits that are appropriate for your situation by comparing to backup copy.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ mv serverctl BACKUP/.
    [etserver]$ cp ~etserver/xmod-2.0.1/linux/serverctl .
    
  4. Backup and copy new game server module into place.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ mv xmod/qagame.mp.i386.so BACKUP/.
    [etserver]$ cp ~etserver/xmod-2.0.1/qagame.mp.i386.so xmod/.
    
  5. Backup and copy new game server pak into place.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ mv xmod/xmod-*.pk3 BACKUP/.
    [etserver]$ cp ~etserver/xmod-2.0.1/xmod-2.0.1.pk3 xmod/.
    
  6. Remove any existing etconfig.cfg files (don't worry, these files are automatically written by ET everytime a game ends and just keep a copy of the last known settings for certain CVARs).

    [etserver]$ cd ~etserver/server1/
    [etserver]$ rm etmain/etconfig.cfg
    [etserver]$ rm xmod/etconfig.cfg
    [etserver]$ rm .etwolf/etmain/etconfig.cfg
    [etserver]$ rm .etwolf/xmod/etconfig.cfg
    

After Upgrade

This section describes tasks that you must complete after the upgrade procedure.

Procedure

  1. Startup server. For this example we will assume you are using the serverctl script bundled with xmod.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ ./serverctl status
    [etserver]$ ./serverctl start
    [etserver]$ ./serverctl status
    
  2. Cleanup. Remove the xmod 2.0.1 distribution bundle extract.

    [etserver]$ cd ~etserver
    [etserver]$ rm -r xmod-2.0.1/
    

Chapter 4. Install

Preparing to Install

This section describes pre-install procedure.

  1. Check Minimum System Requirements.

    [Warning]Warning
    Older versions of ET may not work as expected, or may fail entirely. Using an older version is not recommended and is not supported.

  2. Backup Important Data. Before making any significant changes to your system, make sure to backup all your important data. Plan for the worst, hope for the best.

  3. Create server account. This server account requires no special privileges. If you desire to run more than one game server on the same host, you can use the same account for all of them, or create a unique account for each instance. In all cases, each server must have it's own unique directory.

    [root]# adduser -s /bin/bash etserver
    
  4. Download and install Wolfenstein: Enemy Territory. There are many mirrors across the internet offering ET for download. Look for the latest Linux version of the game: 2.60 and the 2.60b patch. The default directory locations are highly recommended.

    [root]# cd /tmp/
    [root]# sh et-linux-2.60.x86.run --nox11
    [root]# unzip ET-2.60b.zip
    [root]# cd "Enemy Territory 2.60b/"
    [root]# cp *.x86 /usr/local/games/enemy-territory/.
    

Install

This section describes the main install procedure.

  1. Extract xmod 2.0.1 distribution bundle available for download from discord.etclan.de.

    [etserver]$ cd ~etserver
    [etserver]$ tar xzf xmod-2.0.1.tar.gz
    
  2. Create server1/ directory structure.

    [etserver]$ cd ~etserver
    [etserver]$ umask 022
    [etserver]$ mkdir server1/
    [etserver]$ cd server1/
    [etserver]$ mkdir etmain/
    [etserver]$ mkdir xmod/
    [etserver]$ mkdir xmod/mapscripts/
    [etserver]$ mkdir xmod/mapconfigs/
    [etserver]$ mkdir pb/
    [etserver]$ mkdir log/
    
  3. Copy servercl script into place.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ cp ~etserver/xmod-2.0.1/linux/serverctl .
    
  4. Copy game server module into place.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ cp ~etserver/xmod-2.0.1/qagame.mp.i386.so xmod/.
    
  5. Copy game server pak into place.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ cp ~etserver/xmod-2.0.1/xmod-2.0.1.pk3 xmod/.
    
  6. Optional: copy sample configuration files into place.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ cp ~etserver/xmod-2.0.1/server.cfg xmod/.
    [etserver]$ cp ~etserver/xmod-2.0.1/xmod.cfg xmod/.
    
  7. Remove any existing etconfig.cfg files (don't worry, these files are automatically written by ET everytime a game ends and just keep a copy of the last known settings for certain CVARs).

    [etserver]$ cd ~etserver/server1/
    [etserver]$ rm etmain/etconfig.cfg
    [etserver]$ rm xmod/etconfig.cfg
    [etserver]$ rm .etwolf/etmain/etconfig.cfg
    [etserver]$ rm .etwolf/xmod/etconfig.cfg
    
  8. Optional: copy mapscripts into place.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ cp ~etserver/xmod-2.0.1/mapscripts/* xmod/mapscripts/.
    

After Install

This section describes the post-install procedure.

  1. Edit serverctl. This script has several important variable settings. At a bare-minimum, you must at least edit ET_IP and change it to your (public) Internet IP address.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ vi serverctl
    
  2. Startup server. For this example we will assume you are using the serverctl script bundled with xmod.

    [etserver]$ cd ~etserver/server1/
    [etserver]$ ./serverctl status
    [etserver]$ ./serverctl start
    [etserver]$ ./serverctl status
    
  3. Cleanup. Remove the xmod 2.0.1 distribution bundle extract.

    [etserver]$ cd ~etserver
    [etserver]$ rm -r xmod-2.0.1/
    

Chapter 5. Config

This chapter provides a convenient organization of server CVARs as found in the sample xmod.cfg file bundled with xmod distribution.

//////////////////////////////////////////////////////////////////////
//
// SECURITY
//
//////////////////////////////////////////////////////////////////////

set g_password           ""
set g_shoutcastpassword  ""
set rconpassword         ""
set refereePassword      ""
set sv_privatePassword   ""

//////////////////////////////////////////////////////////////////////
//
// LOGGING
//
//////////////////////////////////////////////////////////////////////

set g_log         ""
set g_logOptions  "0"
set g_logSync     "0"
set g_adminLog    ""

//////////////////////////////////////////////////////////////////////
//
// BRANDING
//
//////////////////////////////////////////////////////////////////////

//sets .NAME  "MyClan"
//sets .URL   "http://www.myserver.net/"

set sv_hostname  "ETHost"
set g_watermark  ""

set g_protestMessage  "Visit www.myserver.com to file a protest."
set g_kickMessage     "You have been kicked for $TIME."
set g_kickTime        "2m"

//////////////////////////////////////////////////////////////////////
//
// MOTD
//
//////////////////////////////////////////////////////////////////////

set server_motd0  ""
set server_motd1  ""
set server_motd2  ""
set server_motd3  ""
set server_motd4  ""
set server_motd5  ""

//////////////////////////////////////////////////////////////////////
//
// REGISTRATION
//
//////////////////////////////////////////////////////////////////////

set sv_master1  "etmaster.idsoftware.com"
set sv_master2  ""
set sv_master3  ""
set sv_master4  ""
set sv_master5  ""

//////////////////////////////////////////////////////////////////////
//
// NETWORKING
//
//////////////////////////////////////////////////////////////////////

set sv_allowDownload      "1"
set sv_dl_maxRate         "42000"
set sv_floodProtect       "1"
set sv_fps                "20"
set sv_fullmsg            "Server is full."
set sv_lanForceRate       "1"
set sv_maxPing            "0"
set sv_maxRate            "13000"
set sv_maxclients         "20"
set sv_minPing            "0"
set sv_packetdelay        "0"
set sv_packetloss         "0"
set sv_padPackets         "0"
set sv_privateClients     "4"
set sv_pure               "1"
set sv_reconnectlimit     "3"
set sv_showAverageBPS     "0"
set sv_showloss           "0"
set sv_timeout            "240"
set sv_wwwBaseURL         ""
set sv_wwwDlDisconnected  "0"
set sv_wwwDownload        "0"
set sv_wwwFallbackURL     ""
set sv_zombietime         "2"

//////////////////////////////////////////////////////////////////////
//
// VOTING
//
//////////////////////////////////////////////////////////////////////

set vote_allow_balancedteams   "1"
set vote_allow_comp            "1"
set vote_allow_friendlyfire    "1"
set vote_allow_gametype        "1"
set vote_allow_generic         "1"
set vote_allow_kick            "1"
set vote_allow_map             "1"
set vote_allow_matchreset      "1"
set vote_allow_matchrestart    "1"
set vote_allow_mutespecs       "1"
set vote_allow_muting          "1"
set vote_allow_nextmap         "1"
set vote_allow_pub             "1"
set vote_allow_referee         "0"
set vote_allow_shuffleteamsxp  "1"
set vote_allow_swapteams       "1"
set vote_allow_timelimit       "0"
set vote_allow_warmupdamage    "1"
set vote_limit                 "5"
set vote_percent               "50"

//////////////////////////////////////////////////////////////////////
//
// BANNERS
//
//////////////////////////////////////////////////////////////////////

set g_bannerLocation  "4"
set g_bannerTime      "60"

set g_banners  "2"
set g_banner1  "^3THIS SERVER IS RUNNING xmod 2.0.1"
set g_banner2  "^3Join our Discord at discord.etclan.de"

//////////////////////////////////////////////////////////////////////
//
// Matchplay
//
//////////////////////////////////////////////////////////////////////

set g_gametype      "2"
set g_campaignFile  ""

set g_headshot   "0"
set g_knifeonly  "0"
set g_panzerWar  "0"
set g_sniperWar  "0"

set match_latejoin       "1"
set match_minplayers     "0"
set match_mutespecs      "0"
set match_readypercent   "100"
set match_timeoutcount   "3"
set match_timeoutlength  "180"
set match_warmupDamage   "1"

//////////////////////////////////////////////////////////////////////
//
// TEAMS
//
//////////////////////////////////////////////////////////////////////

set g_userAlliedRespawnTime  "0"
set g_userAxisRespawnTime    "0"
set g_teamForceBalance       "1"

set g_ammoRechargeTime    "60000"
set g_healthRechargeTime  "10000"

set team_maxArtillery  "6"
set team_maxLandMines  "20"

set team_maxFlamers        "-1"
set team_maxGrenLaunchers  "-1"
set team_maxM97s           "-1"
set team_maxMG42s          "-1"
set team_maxMortars        "-1"
set team_maxPanzers        "-1"

set team_maxplayers  "0"

set team_maxMedics     "-1"
set team_maxEngineers  "-1"
set team_maxFieldOps   "-1"
set team_maxCovertOps  "-1"

set team_nocontrols  "1"

//////////////////////////////////////////////////////////////////////
//
// PLAYERS
//
//////////////////////////////////////////////////////////////////////

set g_defaultSkills "0 0 0 0 0 0 0"

set g_levels_battlesense   "20 50 90 140 200"
set g_levels_covertops     "20 50 90 140 200"
set g_levels_engineer      "20 50 90 140 200"
set g_levels_fieldops      "20 50 90 140 200"
set g_levels_lightweapons  "20 50 90 140 200"
set g_levels_medic         "20 50 90 140 200"
set g_levels_soldier       "20 50 90 140 200"

set g_covertops  "0"
set g_engineers  "0"
set g_medics     "0"
set g_soldiers   "0"

set g_sk5_battle     "1"
set g_sk5_cvops      "7"
set g_sk5_eng        "127"
set g_sk5_fdops      "3"
set g_sk5_lightweap  "1"
set g_sk5_medic      "243"
set g_sk5_soldier    "7"

set g_covertopsChargeTime  "30000"
set g_engineerChargeTime   "30000"
set g_LTChargeTime         "40000"
set g_soldierChargeTime    "20000"

set g_medicChargeTime     "45000"
set g_medicSelfHealDelay  "0"

//////////////////////////////////////////////////////////////////////
//
// BULLETMODE
//
//////////////////////////////////////////////////////////////////////

set g_bulletmode           "0"
set g_bulletmodeDebug      "0"
set g_bulletmodeReference  "1"
set g_bulletmodeTrail      "0"

//////////////////////////////////////////////////////////////////////
//
// HITMODE
//
//////////////////////////////////////////////////////////////////////

set g_hitmode             "0"
set g_hitmodeAntilag      "800"
set g_hitmodeAntilagLerp  "1"
set g_hitmodeDebug        "0"
set g_hitmodeFat          "0"
set g_hitmodeGhosting     "0"
set g_hitmodeReference    "1"
set g_hitmodeZone         "0"

//////////////////////////////////////////////////////////////////////
//
// MISCELLANEOUS
//
//////////////////////////////////////////////////////////////////////

set g_admin                     "1"
set g_alliedmaxlives            "0"
set g_altStopwatchMode          "0"
set g_antiwarp                  "1"
set g_autoFireteams             "0"
set g_axismaxlives              "0"
set g_censor                    "0"
set g_censorPenalty             "0"
set g_classChange               "0"
set g_complaintlimit            "6"
set g_damagexp                  "0"
set g_debugAlloc                "0"
set g_debugConstruct            "0"
set g_debugDamage               "0"
set g_debugMove                 "0"
set g_debugSkills               "0"
set g_disableComplaints         "0"
set g_dragCorpse                "1"
set g_dropAmmo                  "2"
set g_dropHealth                "2"
set g_dynamiteTime              "30"
set g_enforcemaxlives           "1"
set g_fastres                   "0"
set g_fear                      "0"
set g_filterBan                 "1"
set g_filtercams                "0"
set g_fixedPhysics              "1"
set g_fixedPhysicsFPS           "125"
set g_forcerespawn              "0"
set g_friendlyFire              "1"
set g_glow                      "0"
set g_goomba                    "4"
set g_gravity                   "800"
set g_heavyWeaponRestriction    "100"
set g_inactivity                "0"
set g_intermissionReadyPercent  "75"
set g_intermissionTime          "30"
set g_ipcomplaintlimit          "3"
set g_killSpreeLevels           "5 10 15 20 25 30"
set g_killingSpree              "1"
set g_knockback                 "1000"
set g_landminetimeout           "1"
set g_lms_followTeamOnly        "1"
set g_lms_lockTeams             "0"
set g_lms_matchlimit            "2"
set g_lms_roundlimit            "3"
set g_lms_teamForceBalance      "1"
set g_loseSpreeLevels           "10 20 30"
set g_mapConfigs                "mapconfigs"
set g_mapScriptDirectory        "mapscripts"
set g_maxGameClients            "0"
set g_maxlives                  "0"
set g_maxlivesRespawnPenalty    "0"
set g_misc                      "66"
set g_moverScale                "1.0"
set g_movespeed                 "76"
set g_muteTime                  "0"
set g_noTeamSwitching           "0"
set g_packDistance              "4"
set g_playDead                  "1"
set g_poisonSyringes            "1"
set g_proneDelay                "0"
set g_privateMessages           "1"
set g_reflectFriendlyFire       "100"
set g_saveCampaignStats         "1"
set g_scriptDebug               "0"
set g_scriptDebugLevel          "0"
set g_scriptName                ""
set g_shortcuts                 "0"
set g_shove                     "100"
set g_shoveNoZ                  "1"
set g_skills                    "0"
set g_slashKill                 "0"
set g_smoothClients             "1"
set g_snap                      "7"
set g_spawnInvul                "3"
set g_spectator                 "0"
set g_spectatorInactivity       "0"
set g_speed                     "320"
set g_teamDamageMinHits         "6"
set g_teamDamageRestriction     "0"
set g_truePing                  "1"
set g_voiceChatsAllowed         "4"
set g_warmup                    "30"
set g_watermarkFadeAfter        "60"
set g_watermarkFadeTime         "60"
set g_weapons                   "5606"
set g_wolfrof                   "0"
set g_xpCap                     "0"
set g_xpMax                     "0"
set g_xpSave                    "1"
set g_xpSaveTimeout             "1h"

Chapter 6. Operation

xmod supplies a serverctl script which is used to control the game server process on Linux. While you could create your own script to manage your game server, it is recommended you examine the launch command and signal usage in order to get a better understanding of officially endorsed methods.

Signals

xmod has special signal handling routines for Linux. The serverctl script makes use of these signals. If you have your own scripts, it is recommended you use the following signals for the appropriate actions.

sighup

Queues a graceful shutdown sequence composed of { killserver, quit } server commands.

sigterm

Queues a graceful shutdown sequence composed of { killserver, quit } server commands.

sigusr1

Queues a graceful database reload composed of { !dbload } server commands.

Startup

Startup server. For this example we will assume you are using the serverctl script bundled with xmod.

[etserver]$ cd ~etserver/server1/
[etserver]$ ./serverctl status
[etserver]$ ./serverctl start
[etserver]$ ./serverctl status

Shutdown

Shutdown server. For this example we will assume you are using the serverctl script bundled with xmod.

[etserver]$ cd ~etserver/server1/
[etserver]$ ./serverctl status
[etserver]$ ./serverctl stop
[etserver]$ ./serverctl status

Show online status

Check server status. For this example we will assume you are using the serverctl script bundled with xmod.

[etserver]$ cd ~etserver/server1/
[etserver]$ ./serverctl status

Restart

Restart server. For this example we will assume you are using the serverctl script bundled with xmod.

[etserver]$ cd ~etserver/server1/
[etserver]$ ./serverctl status
[etserver]$ ./serverctl restart
[etserver]$ ./serverctl status

Reload database

Reload database files. For this example we will assume you are using the serverctl script bundled with xmod.

[etserver]$ cd ~etserver/server1/
[etserver]$ ./serverctl reload

Chapter 7. Admin System

The Admin System is a collection of commands used to aid in server administration. The mechanism allows for a user to issue text-based commands from a variety of sources which are then executed on the game server. The system has been influenced by ET mod community's comfort level with Shrubmod, to which we have attempted to maintain some cosmetic familiarity.

Over time the system has grown to include more than just administrative commands; some commands have been added to make game play more enjoyable.

An access control list (ACL) based security system is in place to allow for fine-grained grants or denials of various privileges.

[Note]Note
After installing xmod the only user which has full access to all commands is the server console. Thus one must send commands through rcon or server console. Once users begin connecting and become known to the server, privileges can be granted to online or offline users as per server policy.

[Caution]Caution
The person responsible for managing the game server is ultimately responsible for making sure commands are locked down and granted only to other responsible users. Please do not assume that xmod offers any kinds of guarantees. This is a free project, so we do not guarantee anything!

Synopsis

Commands may be issued from any of the following sources:

  • client console
  • client chat window
  • client team-chat window (if privilege granted)
  • client fireteam-chat window (if privilege granted)
  • client say bindings
  • client say_team bindings (if privilege granted)
  • client say_buddy bindings (if privilege granted)
  • rcon
  • server console

General command syntax is as follows. Note that commands are case-insensitive.

!command [OPTION]...

Use the !help command to obtain a list of all available commands. Optionally, a detailed synopsis and description for a specific command is also available.

!help [COMMAND]

Operation

The admin system is controlled using cvars and are effective immediately upon changing the value.

Table 7.1. Admin System Operation

CVARDESCRIPTION
g_admin(cvar)enable or disables admin system
g_adminLog(cvar)sets the filename used for admin command logging

Quickstart Checklist

Most admins installing a new version of xmod just want to know how to get it up and running as fast as possible. The following is a simple checklist of steps to go through to grant yourself full access after connecting.

  1. Enable server RCON access by setting the password in server console.
    [server-console] rconPassword PASSWORD
  2. Inform client of default RCON password to use by setting the password in client console.
    [client-console] /rconPassword PASSWORD
  3. Enable the admin system.
    [client-console] /rcon g_admin 1
  4. Test that RCON has full access to all available commands. You should see a large list of commands. If you do not get any results there's probably something else wrong.
    [client-console] /rcon !help
  5. Create a high admin-level. The number is arbitrary but must be a positive value.
    [client-console] /rcon !levadd 9
  6. Grant level 9 all commands.
    [client-console] /rcon !levedit 9 -acl +@commands
  7. Determine your client SLOT number as known to the server. This will usually be zero if you connected to an empty server.
    [client-console] /players
  8. Now set your client SLOT to level 9.
    [client-console] /rcon !setlevel SLOT 9
  9. Finished! Now try a few typical commands to see your new level in action.
    [client-console] !admintest
    [client-console] !help
    [client-console] !levlist
    

Privileges

Access control lists (ACL) are used to grant or deny privileges to an admin level or user. Generally, each admin level is different and by convention more privileges are granted to higher levels. Privilege naming is important and to help keep things clean the naming is a clear indicator of the type of privilege as follows:

pseudo
Pseudo privileges are a logical grouping of other privileges.

Table 7.2. Pseudo Privileges

PRIVILEGEDESCRIPTION
@allall privileges
@behaviorsall behavior privileges
@commandsall command privileges

behavior
Behavior privileges are used to control the behavior of the server in very specific ways. They usually effect the way commands operate or general policy enforcement.

Table 7.3. Behavior Privileges

PRIVILEGEDESCRIPTION
B/balanceImmunitycan switch to any team regardless of balance
B/banPermanentdoes not need to specify the duration of a ban (permanent ban)
B/censorImmunitycannot be censored or flood protected
B/commandChatcan run commands from team or fireteam chat
B/commandSilentcan run commands silently from console (/!command)
B/reasonNonedoes not need to specify a reason for kick/ban
B/specChatcan see all team, fireteam and PM chat as spectator
B/voteAnycan call a vote anytime (even if disabled)
B/voteImmunitycannot be kicked, vote-muted, dropped for inactivity or complained against

command
Each command has a corresponding privilege that follows the naming convention C/command . For example, the privilege for !status is C/status. Privilege names are case-insensitive but for clarity we capitalize the prefix. Use the !help command to determine the privilege for a specific command.

Managing ACLs

ACL management is how we grant or deny a privilege to an admin level or user. Basically, an ACL is a list of intermixed granted or denied privileges, and our goal is to manage that list. In cases of logical conflict, a DENIED privilege takes precedence over a GRANTED privilege. Note ACL lists are reduced to their canonical value automatically by removing superfluous or conflicting entries.

Level manipulation is accomplished with !levedit and effects all users at the level being edited immediately. User manipulation is accomplished with !useredit but only effects the specific user being edited.

For the purposes of this documentation we'll be editing an admin level and assume it already exists. The examples will use level 5 and privilege C/news which corresponds to the popular !news command. Substitute these values according to your particular needs.

add grant
The plus sign + immediately in front of a privilege specifies the privilege is to be granted.
!levedit 5 -acl +C/news
add deny
The minus sign - immediately in front of a privilege specifies the privilege is to be denied.
!levedit 5 -acl -C/news
clear privilege
The exclamation mark ! immediately in front of a privilege (without any space!) specifies the privilege is to be cleared (removed) from the ACL.
!levedit 5 -acl !C/news

Various examples

The following are various examples of how the commands may be used for some of the more complex tasks typical for a server admin.

  1. Create a new admin level 500 for people who donate to server, add commands { !pants, !pip, !pop } to it and then assign some online players to that level.
    !levadd 500
    !levedit 500 -name Donators
    !levedit 500 -gtext ^3Greetings donator! Thanks for your contribution.
    !levedit 500 -gsound sound/osp/goat.wav
    !levedit 500 -acl +C/pants
    !levedit 500 -acl +C/pip
    !levedit 500 -acl +C/pop
    !levinfo 500
    !setlevel JohnSmith 500
    !setlevel MarthaKent 500
    !finger JohnSmith
    !finger MarthKent
    
  2. A nasty user has come and gone from your server, but not without first creating a huge disruption. Maybe it's time to ban the player even though they already disconnected. The two pieces of information we have to go on is that the player's name was Jerry and he was connected within the last hour.

    !userlist -name jerry -since 60m

    According to the results, the offending user has been identified with ID 1fea4ad9. Now let's ban the user for 30 days.

    !banuser 1fea4ad9 30d offensive behavior is not tolerated

    And finally lets take a look at our ban list. As luck would have it, the list shows bans in order of newest bans to oldest so he should be right at the top of the list.

    !banlist

    But we've had a change of heart! Let's review his ban details and unban him.

    !baninfo 1fea4ad9
    !unban 1fea4ad9
    

Chapter 8. Database System

As of xmod 2.1.0 a new text-based database file structure has been implemented. Replacing the old data files are new .db files. These files, when possible, store information in human-readable ASCII format.

[Important]Important
All .db files are loaded into memory at game-init (map begin) time, and subsequently saved out to disk (overwriting the files) at game-shutdown (map end) time. This means any manual edits made to the database files will be lost at game-shutdown time. The best practice for manual edits (eg: adding levels to level.db file) is to first shutdown the server before editing database files.

The following table describes the new locations for old data.

Table 8.1. Data Transition

pre-2.1.02.1.0DATA DESCRIPTION
shrubbot.cfglevel.dbaccess levels
shrubbot.cfguser.dbadmin and bans
xpbackup.datuser.dbsaved xp
recspree.datmap.dbtop killing sprees
seendb.datuser.dbadmin and bans

level.db

Stores Admin System levels available for promoting users to higher levels of access. Data maintenance on this file should be done with the appropriate Admin System commands.

map.db

Stores map related information such as killing-spree data. Data maintenance on this file can only be done with a text editor while the server is shutdown.

user.db

Stores Admin System user related information, such as user level assignments, automatic greetings, ban, mute and XP-save data. Data maintenance on this file should be done with the appropriate Admin System commands.

Chapter 9. XP-save System

Table of Contents

Operation

Operation

XP-save is controlled using cvars and are effective immediately upon changing the value. In order for XP-save to function, g_admin(cvar) must be enabled.

Table 9.1. XP-save Operation

CVARDESCRIPTION
g_xpCap(cvar)set XP-limit action
g_xpMax(cvar)set XP-limit amount
g_xpSave(cvar)enable/disable XP-save feature
g_xpSaveTimeout(cvar)set XP-save timeout

Chapter 10. Hitmode System

Introduction

 

The hitmode system is responsible for detecting bullet-hits on players. You might also know it as a hitbox system. As of xmod 2.1.0, an entirely new hitmode architecture has been implemented. I would like to acknowledge that we continue to use contributed code from Zinx Verituse for server-side player-animation tracking.

A great deal of care, thought and testing went into this system as we feel it is one of the most important aspects of gameplay. I hope you enjoy!

 
 --Mr.Mxyzptlk, January 2007.

Highlights

antilag

Antilag has been completely overhauled and integrated allowing for all bullet-fire weapons to benefit. Prior to this, mounted weapons such as Browning and MG42 did not benefit from antilag.

multiple modes

The new architecture allows for xmod to support multiple hitmodes in a single release and leave it up to the server to decide which mode is best for them. As such, we have implemented backwards-compatible modes offering boxes which you are accustomed to, while at the same time permitted us to address some old weaknesses and to also offer newer, more advanced modes.

efficiency

More hitmode and more sophistication usually results in a performance penalty. This is not the case with the new architecture. We use a hierarchal system to cull as many uneeded hit-checks as possible, while also no longer requiring temporary entities from the game engine. The net savings are very significant, resulting in more pound-for-pound CPU relief in typical gameplay, even when comparing a standing-up player with 7-boxes each in real mode, to 2-boxes each in pre-2.1.0 mode.

visual debugging

Visual and data debugging support has been added which allows for testing and comparisons between different hitmodes during actual gameplay. Some of these are also useful for server admins and players seeking to learn and compare the new modes available, and we've decided to keep visual debugging enabled in releases so admins are free to experiment.

Operation

Hitboxes are controlled using cvars and are effective immediately upon changing the value.

Table 10.1. Hitmode Operation

CVARDESCRIPTION
g_hitmode(cvar)set active hitmode
g_hitmodeAntilag(cvar)set antilag history in milliseconds
g_hitmodeAntilagLerp(cvar)enable/disable antilag lerping
g_hitmodeDebug(cvar)set bitflags for hitmode debugging
g_hitmodeFat(cvar)set increased torso-box size in inches
g_hitmodeGhosting(cvar)set lifetime of hit ghosting in milliseconds
g_hitmodeReference(cvar)set reference hitmode for comparison
g_hitmodeZone(cvar)set zone for debugging

Chapter 11. ETPro mapscripting

xmod supports ETPro’s extended mapscripting.

The extended mapscripts offered by ETPro add new functions for new spawn points, map bugfixes, and many other possibilities. Documentation for these scripts is available at ETPro's website http://etpro.anime.net.

To enable use of these scripts, set g_mapScriptDirectory(cvar) appropriately.

Chapter 12. Omni-bot

xmod natively supports the Omni-bot product. This product enables servers to set up computer controlled bots with relative ease. There is nothing that you have to set up within xmod’s configuration to use them. There is, however, some setup that needs to be done with the Omni-bot installation.

To get Omni-bot for your server, visit http://www.omni-bot.com. There, you will find downloads for the files needed to get running, and installation and configuration documentation.

It is imperative that you match the Omni-bot version exactly that which xmod supports. xmod 2.0.1 supports Omni-bot 0.8x (0.81-0.92), and for all other versions please consult the appropriate documentation.

Native Library Search Path

Omni-bot can be installed in a variety of ways on your server. Because different people have different needs, a list of directories is searched and the first one which has a native library for your platform is used. Note that any duplicate directories are searched only once. The following is the standard search path, in order of preference, for Omni-bot native libraries:

  1. optional directory specified via CVAR omnibot_path.
  2. optional omni-bot sub-directory of fs_homepath, if specified.
  3. optional omni-bot sub-directory of fs_basepath, if specified.
  4. omni-bot subdir relative to { $HOME (for Linux) or %Program Files% (for Windows) } environment variables of the server process.
  5. default mechanism for server platform's native library loader.

[Note]Note
On Linux systems, if the directory by which the Omni-bot library was found is relative (not absolute) then you must add '.' to the PATH environment variable before launching the process. If this is not done then the library will load but internal Omni-bot initialization routines will fail. It is strongly suggested that absolute paths be used to work around this issue.

Example search path for a typical Linux server with omnibot_path=/somewhere/omni-bot:

  1. /somewhere/omni-bot/
  2. /home/etserver/omni-bot/
  3. /usr/local/games/enemy-territory/omni-bot/
  4. $HOME/omni-bot/
  5. <SYSTEM-LOADER>

Example search path for a typical Windows server with omnibot_path=Z:\Somewhere\Omni-bot:

  1. Z:\Somewhere\Omni-bot\
  2. G:\ETserver\Omni-bot\
  3. C:\Program Files\Wolfenstein - Enemy Territory\Omni-Bot\
  4. C:\Program Files\Omni-bot\
  5. <SYSTEM-LOADER>

Chapter 13. CVAR Reference

Table of Contents

cg_drawGun
cg_drawGunAlpha
cg_hudAlpha
cg_hudBackgroundColor
cg_hudBorderColor
dedicated
g_LTChargeTime
g_admin
g_adminChat
g_adminLog
g_alliedmaxlives
g_altStopwatchMode
g_ammoRechargeTime
g_antiwarp
g_autoFireteams
g_axismaxlives
g_bannerLocation
g_bannerTime
g_banners
g_bluelimbotime
g_bulletmode
g_bulletmodeDebug
g_bulletmodeReference
g_bulletmodeTrail
g_campaignFile
g_canisterKick
g_canisterKickDistance
g_canisterKickOwner
g_censor
g_censorPenalty
g_classChange
g_complaintlimit
g_countryflags
g_covertops
g_covertopsChargeTime
g_damageweapons
g_damagexp
g_debugAlloc
g_debugConstruct
g_debugDamage
g_debugMove
g_debugSkills
g_defaultSkills
g_disableComplaints
g_djHeight
g_doubleJump
g_dragCorpse
g_dropAmmo
g_dropHealth
g_dualSMG
g_dynamiteTime
g_enforcemaxlives
g_engineerChargeTime
g_engineers
g_fastres
g_fear
g_filterBan
g_filtercams
g_fixedPhysics
g_fixedPhysicsFPS
g_forcerespawn
g_friendlyFire
g_gametype
g_glow
g_goomba
g_gravity
g_headshot
g_healthRechargeTime
g_heavyWeaponRestriction
g_hitmode
g_hitmodeAntilag
g_hitmodeAntilagLerp
g_hitmodeDebug
g_hitmodeFat
g_hitmodeGhosting
g_hitmodeReference
g_hitmodeZone
g_inactivity
g_instantSpawn
g_intermissionReadyPercent
g_intermissionTime
g_ipcomplaintlimit
g_kickMessage
g_kickTime
g_killAssistances
g_killSpreeLevels
g_killingSpree
g_knifeonly
g_knockback
g_landminetimeout
g_levels_battlesense
g_levels_covertops
g_levels_engineer
g_levels_fieldops
g_levels_lightweapons
g_levels_medic
g_levels_soldier
g_lms_followTeamOnly
g_lms_lockTeams
g_lms_matchlimit
g_lms_roundlimit
g_lms_teamForceBalance
g_log
g_logOptions
g_logSync
g_loseSpreeLevels
g_mapConfigs
g_mapScriptDirectory
g_maxGameClients
g_maxlives
g_maxlivesRespawnPenalty
g_medicChargeTime
g_medicSelfHealDelay
g_medics
g_misc
g_moverScale
g_movespeed
g_multiReviveTime
g_muteTime
g_noAttackInvul
g_noCharge
g_noReload
g_noTeamSwitching
g_packDistance
g_panzerWar
g_password
g_playDead
g_poisonSyringes
g_privateMessages
g_proneDelay
g_protestMessage
g_redlimbotime
g_reflectFriendlyFire
g_revenge
g_reviveSpreeOptions
g_saveCampaignStats
g_scriptDebug
g_scriptDebugLevel
g_scriptName
g_shortcuts
g_shoutcastpassword
g_shove
g_shoveNoZ
g_sk5_battle
g_sk5_cvops
g_sk5_eng
g_sk5_fdops
g_sk5_lightweap
g_sk5_medic
g_sk5_soldier
g_skills
g_slashKill
g_smoothClients
g_snap
g_sniperWar
g_soldierChargeTime
g_soldiers
g_spawnInvul
g_spawnInvulNoClip
g_spectator
g_spectatorInactivity
g_spectatorNames
g_speed
g_teamChangeDelay
g_teamDamageMinHits
g_teamDamageRestriction
g_teamForceBalance
g_truePing
g_userAlliedRespawnTime
g_userAxisRespawnTime
g_userConfig
g_voiceChatsAllowed
g_warmup
g_warnBanLevel
g_warnDecay
g_warnMuteLevel
g_watermark
g_watermarkFadeAfter
g_watermarkFadeTime
g_weaponScriptsDir
g_weapons
g_weaponsenable
g_wolfrof
g_xpCap
g_xpMax
g_xpSave
g_xpSaveTimeout
jxac_antiTamper
jxac_autoBan
jxac_autoKick
jxac_cheatCvarFile
jxac_cheatDbFile
jxac_cheatFile
jxac_checkCvars
jxac_checkSpeedhack
jxac_checkWallhack
jxac_cvarFile
jxac_cvarScan
jxac_cvarScanDelay
jxac_cvarScanInterval
jxac_cvarScanMaxWarnings
jxac_cvarScanWait
jxac_enable
jxac_forceCvarFile
jxac_heartbeatTimeout
jxac_logFile
jxac_moduleScan
jxac_screenshotPath
jxac_screenshotQuality
match_latejoin
match_minplayers
match_mutespecs
match_readypercent
match_timeoutcount
match_timeoutlength
match_warmupDamage
omnibot_enable
rconpassword
refereePassword
server_motd0
server_motd1
server_motd2
server_motd3
server_motd4
server_motd5
sv_allowDownload
sv_dl_maxRate
sv_floodProtect
sv_fps
sv_fullmsg
sv_hostname
sv_lanForceRate
sv_master1
sv_master2
sv_master3
sv_master4
sv_master5
sv_maxPing
sv_maxRate
sv_maxclients
sv_minPing
sv_packetdelay
sv_packetloss
sv_padPackets
sv_privateClients
sv_privatePassword
sv_pure
sv_reconnectlimit
sv_showAverageBPS
sv_showloss
sv_timeout
sv_wwwBaseURL
sv_wwwDlDisconnected
sv_wwwDownload
sv_wwwFallbackURL
sv_zombietime
team_maxArtillery
team_maxCovertOps
team_maxEngineers
team_maxFieldOps
team_maxFlamers
team_maxGrenLaunchers
team_maxLandMines
team_maxM97s
team_maxMG42s
team_maxMedics
team_maxMortars
team_maxPanzers
team_maxplayers
team_nocontrols
vote_allow_balancedteams
vote_allow_comp
vote_allow_friendlyfire
vote_allow_gametype
vote_allow_generic
vote_allow_kick
vote_allow_map
vote_allow_matchreset
vote_allow_matchrestart
vote_allow_mutespecs
vote_allow_muting
vote_allow_nextmap
vote_allow_pub
vote_allow_referee
vote_allow_shuffleteamsxp
vote_allow_startmatch
vote_allow_swapteams
vote_allow_timelimit
vote_allow_warmupdamage
vote_limit
vote_minPercent
vote_percent
vote_voteBased

Name

cg_drawGun — set first-person weapon display mode

Synopsis

cg_drawGun [mode]

Table 13.1. cg_drawGun Modes

VALUEDESCRIPTION
0weapon hidden
1normal weapon display (default)
2transparent black
3transparent red
4transparent green
5transparent yellow
6transparent blue
7transparent cyan
8transparent magenta
9transparent white
10transparent orange
11transparent gray
12transparent light gray
13transparent dark green
14transparent olive
15transparent dark blue
16transparent dark red
17transparent brown
18transparent light orange
19transparent teal
20transparent purple
21transparent sky blue
22transparent violet
23transparent steel blue
24transparent light green
25transparent forest green
26transparent red-pink
27transparent dark red
28transparent brown
29transparent tan
30transparent olive
31transparent light yellow
32transparent yellow

Default

cg_drawGun 1

Description

cg_drawGun sets the first-person weapon display mode. Mode 0 hides the weapon entirely. Mode 1 displays the weapon normally with its original textures. Modes 2 through 32 display the weapon as a transparent colored silhouette. The transparency of colored modes is controlled by cg_drawGunAlpha.


Name

cg_drawGunAlpha — set transparency for colored weapon display modes

Synopsis

cg_drawGunAlpha [alpha]

Default

cg_drawGunAlpha 128

Description

cg_drawGunAlpha sets the transparency of the first-person weapon when using colored display modes (cg_drawGun values 2 through 32). alpha is an integer between 0 (fully transparent) and 255 (fully opaque).

This setting has no effect when cg_drawGun is 0 (weapon hidden) or 1 (normal display).


Name

cg_hudAlpha — set global HUD element transparency

Synopsis

cg_hudAlpha [alpha]

Default

cg_hudAlpha 1.0

Description

cg_hudAlpha sets the global transparency for HUD element backgrounds. alpha is a value between 0.0 (fully transparent) and 1.0 (fully opaque). This multiplies with the alpha component of cg_hudBackgroundColor and cg_hudBorderColor.

Affected HUD elements include the FPS counter, speed display, clock, timer, fireteam overlay, and lagometer.


Name

cg_hudBackgroundColor — set HUD element background color

Synopsis

cg_hudBackgroundColor ["R G B A"]

Default

cg_hudBackgroundColor "0.16 0.2 0.17 0.8"

Description

cg_hudBackgroundColor sets the background color for HUD elements as an RGBA string. Each component (R, G, B, A) is a float between 0.0 and 1.0.

The alpha component is further multiplied by cg_hudAlpha.

Affected HUD elements include the FPS counter, speed display, clock, timer, fireteam overlay, and lagometer.


Name

cg_hudBorderColor — set HUD element border color

Synopsis

cg_hudBorderColor ["R G B A"]

Default

cg_hudBorderColor "0.5 0.5 0.5 0.5"

Description

cg_hudBorderColor sets the border color for HUD elements as an RGBA string. Each component (R, G, B, A) is a float between 0.0 and 1.0.

The alpha component is further multiplied by cg_hudAlpha.

Affected HUD elements include the FPS counter, speed display, clock, timer, fireteam overlay, and lagometer.


Name

dedicated — set server mode

Synopsis

dedicated [mode]

Table 13.2. dedicated Modes

MODEDESCRIPTION
0mixed client/server
1dedicated LAN (do not register with browselists)
2dedicated Internet (register with browselists)

Default

dedicated 0

Description

dedicated sets the server mode.


Name

g_LTChargeTime — set amount of time for Field-Ops to recharge

Synopsis

g_LTChargeTime [duration]

Default

g_LTChargeTime 40000

Description

g_LTChargeTime sets the amount of time in milliseconds it takes for Field-Ops to recharge.


Name

g_admin — enable/disable admin system

Synopsis

g_admin [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_admin 0

Description

g_admin enables or disables admin system (!command) functionality.


Name

g_adminChat — enables admin chat visibility for privileged players

Synopsis

g_adminChat [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_adminChat 1

Description

g_adminChat enables admin chat visibility for privileged players.


Name

g_adminLog — set filename used for admin command logging

Synopsis

g_adminLog ["file"]

Default

g_adminLog ""

Description

g_adminLog sets the filename used for admin command logging. The file is always appended to. A value of "" will disable this functionality.


Name

g_alliedmaxlives — sets maximum number of lives for Allied players

Synopsis

g_alliedmaxlives [num]

Default

g_alliedmaxlives 0

Description

g_alliedmaxlives sets maximum number of lives for Allied players. Setting num to 0 disables max lives enforcement and allows unlimited lives.

[Note]Note
This cvar is superceded by g_maxlives(cvar).


Name

g_altStopwatchMode — enable/disable alternative stopwatch gametype

Synopsis

g_altStopwatchMode [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_altStopwatchMode 0

Description

g_altStopwatchMode enables or disables alternative stopwatch gametype. When enabled causes players to swap teams after each game.


Name

g_ammoRechargeTime — set time interval between ammo-pack cabinet respawns

Synopsis

g_ammoRechargeTime [interval]

Default

g_ammoRechargeTime 60000

Description

g_ammoRechargeTime sets the time interval in milliseconds between ammo-pack cabinet respawns.


Name

g_antiwarp — enable/set bitflags for antiwarp functionality

Synopsis

g_antiwarp [flags]

Table 13.3. g_antiwarp Flags

FLAGDESCRIPTION
1enable antiwarp functionality
32log player's warping to their desktop

Default

g_antiwarp 1

Description

g_antiwarp enable/sets bitflags for antiwarp functionality.

Warping occurs when the server recieves several new commands for a player in a very short period of time. This happens because packets from the player were lost or never sent. The player will appear to cross a great distance in a very short period of time, making them hard to hit and possibly allowing them to avoid landmine damage.

The antiwarp system delays commands when they are recieved too quickly. Thus, when a player sends 700ms worth of commands in 50ms, the commands will be spread out over 700ms, causing the player to move smoothly to other players. This affects the player who sent the commands too quickly only by increasing their ping, and will not keep increasing ping endlessly - at maximum, the added ping is the highest ping the player is actually getting. If temporary network issues cause ping to increase beyond a sensible number, the player can stand still for a moment and their ping will normalize.

The net effect is that players with unreliable or congested upstream will not benefit from their situation; rather they (in a sense) are penalized for it, while all the other players on the server are not.

[Caution]Caution
Flags enabling extra debug/logging can be extremely network-expensive and should not be used for normal gameplay.

[Note]Note
The initial code implementation for antiwarp was contributed to xmod by Zinx Verituse, June 2007.


Name

g_autoFireteams — enables/disables automatic fireteam placement

Synopsis

g_autoFireteams [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_autoFireteams 0

Description

g_autoFireteams enables or disables automatic fireteam placement.


Name

g_axismaxlives — sets maximum number of lives for Axis players

Synopsis

g_axismaxlives [num]

Default

g_axismaxlives 0

Description

g_axismaxlives sets maximum number of lives for Axis players. Setting num to 0 disables max lives enforcement and allows unlimited lives.

[Note]Note
This cvar is superceded by g_maxlives(cvar).


Name

g_bannerLocation — set banner location

Synopsis

g_bannerLocation [mode]

Table 13.4. g_bannerLocation Modes

MODEDESCRIPTION
0chat area
1left side of screen
2center of screen
3console only
4top-center of screen

Default

g_bannerLocation 0

Description

g_bannerLocation sets the location used to display banners on client screens.


Name

g_bannerTime — set the duration of display for each banner

Synopsis

g_bannerTime [duration]

Default

g_bannerTime 5

Description

g_bannerTime sets the duration of display for each banner in seconds. The minimum value for this cvar is 5 seconds. If set less than that, it will default to this time.


Name

g_banners — set number of banners to display

Synopsis

g_banners [num]

Default

g_banners 0

Description

g_banners sets the number of banners to display. A value of 0 disables displaying of any banners. A positive value will require corresponding g_banner{1..num} variables to be defined. For example, if num is 3 then the following is applicable:

set g_banner1 "Message text 1."
set g_banner2 "Message text 2."
set g_banner3 "Message text 3."


Name

g_bluelimbotime — the amount of time between Allied team respawns

Synopsis

g_bluelimbotime [interval]

Default

g_bluelimbotime 30000

Description

g_bluelimbotime specifies the time interval in milliseconds between Allied respawns. This cvar is used for the actual calculations in-game and is latched, meaning it cannot be changed during a match. Mapscripts set this cvar, and the g_userAlliedRespawnTime(cvar) cvar overrides this as well. Consequently, g_userAlliedRespawnTime(cvar) should be used to set custom spawn times, and this cvar should not be used at all.


Name

g_bulletmode — set active bulletmode

Synopsis

g_bulletmode [mode]

Table 13.5. g_bulletmode Modes

MODENAMEDESCRIPTION
0autoAutomatically selects recommended mode.
1entity Bullet start-point is center of player entity. This is a useful comparison feature only, and should never be used for real gameplay.
2etmain Baseline (stock) ET behavior. Bullet start-point is consistent with players' viewpoint.
3muzzle Bullet start-point is from muzzle of weapon. This mode is not recommended and is highly experimental. Current testing shows that it suffers from sighting problems.

Default

g_bulletmode 0

Description

g_bulletmode sets the active bulletmode which controls the specific starting and ending points for bullet path.


Name

g_bulletmodeDebug — set bitflags for bulletmode debugging

Synopsis

g_bulletmodeDebug [flags]

Table 13.6. g_bulletmodeDebug Flags

FLAGDESCRIPTION
1visually render (draw) bullet-path
2visually render (draw) reference bullet-path
16log lifecycle (construct/destruct/alloc/free) to client console
256log bullet-fire text to client console

Default

g_bulletmodeDebug 0

Description

g_bulletmodeDebug sets bitflags for bulletmode debugging. These are expert debugging aids provided for the benefit of people who are interested in learning more detail about bullet path and is certainly not meant to be enabled during real gameplay.

[Caution]Caution
Bulletmode visuals are expensive. Each rendered bullet-path consumes a game-engine entity which is limited and adds to network traffic load. If you are not careful, high numbers of players with high rates of shots and long trails may lead to entity exhaustion.

Flags enabling client console logging can easily cause ET limitations to be exceeded, resulting in dropped client connections. In other words, do not fire off rapid rounds while this kind of debugging is active.

[Tip]Tip
Use status(1) to monitor game entities.


Name

g_bulletmodeReference — set reference bulletmode for comparison

Synopsis

g_bulletmodeReference [mode]

Table 13.7. g_bulletmodeReference Modes

MODENAMEDESCRIPTION
1entity Bullet start-point is center of player entity. This is a useful comparison feature only, and should never be used for real gameplay.
2etmain Baseline (stock) ET behavior. Bullet start-point is consistent with players' viewpoint.
3muzzle Bullet start-point is from muzzle of weapon. This mode is not recommended and is highly experimental. Current testing shows that it suffers from sighting problems.

Default

g_bulletmodeReference 1

Description

g_bulletmodeReference sets the reference bulletmode to render for comparison. This feature has no effect unless the corresponding g_bulletmodeDebug(cvar) flag is on.


Name

g_bulletmodeTrail — set maximum number of bullet trails to render

Synopsis

g_bulletmodeTrail [0..25]

Default

g_bulletmodeTrail 0

Description

g_bulletmodeTrail sets the maximum number of bullet trails to render. A bullet trail is a visual debugging aid which shows the path of a bullet.


Name

g_campaignFile — set campaign filename

Synopsis

g_campaignFile [filename]

Default

g_campaignFile ""

Description

g_campaignFile sets the explicit campaign filename to use. Usually ET will force a client to download any file on the server (either in the mod directory or etmain) which contains a .campaign file. If you want to change this behavior, you can filename to the specific campaign desired. Note that you must set this to the file's name, not the pk3's name.


Name

g_canisterKick — enables kicking of canisters (health and ammo packs)

Synopsis

g_canisterKick [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_canisterKick 0

Description

g_canisterKick enables kicking of canisters (health and ammo packs).


Name

g_canisterKickDistance — sets the kick distance for canisters

Synopsis

g_canisterKickDistance [distance]

Default

g_canisterKickDistance 250

Description

g_canisterKickDistance sets the kick distance for canisters. Only has effect when canister kicking is enabled via g_canisterKick(cvar).


Name

g_canisterKickOwner — restricts canister kicking to the pack owner only

Synopsis

g_canisterKickOwner [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_canisterKickOwner 0

Description

g_canisterKickOwner restricts canister kicking to the pack owner only.


Name

g_censor — enable/disable word-censor feature

Synopsis

g_censor [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_censor 0

Description

g_censor enables or disables word-censor functionality. When enabled, the server will censor game chat words matching those found in censor.db.


Name

g_censorPenalty — set bitflags for censorship penalties

Synopsis

g_censorPenalty [flags]

Table 13.8. g_censorPenalty Flags

FLAGDESCRIPTION
1kill and gib
4kill but do not gib
8auto-mute

Default

g_censorPenalty 0

Description

g_censorPenalty sets bitflags for censorship penalties.

[Note]Note
Flags 1 and 4 are mutually exclusive.

See Also

g_censor(cvar)


Name

g_classChange — enables/disables friendly corpse class tealing

Synopsis

g_classChange [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_classChange 0

Description

g_classChange enables or disables friendly corpse class stealing. When enabled this allows a player to take the uniform, class and weapons of a dead teammate.


Name

g_complaintlimit — sets the maximum number of complaints a player can receive per map

Synopsis

g_complaintlimit [num]

Default

g_complaintlimit 6

Description

g_complaintlimit sets the maximum number of complaints a player can receive per map. The counter for each player is reset when a map begins. Setting num to 0 disables complaints kicking.


Name

g_countryflags — enables country flag display next to player names

Synopsis

g_countryflags [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_countryflags 1

Description

g_countryflags enables country flag display next to player names.


Name

g_covertops — set bitflags for Covert-Ops behavior

Synopsis

g_covertops [flags]

Table 13.9. g_covertops Flags

FLAGDESCRIPTION
1keep disguise when class-switching
2keep disguise when throwing med packs and reviving
4keep disguise when throwing ammo packs
8keep disguise when laying mines or using pliers
16enable stealing uniform from a live player from behind
32enable disguised enemy name drawing when close-up

Default

g_covertops 0

Description

g_covertops sets bitflags for Covert-Ops behavior.


Name

g_covertopsChargeTime — set amount of time for Covert-Ops to recharge

Synopsis

g_covertopsChargeTime [duration]

Default

g_covertopsChargeTime 30000

Description

g_covertopsChargeTime sets the amount of time in milliseconds it takes for Covert-Ops to recharge.


Name

g_damageweapons — controls weapon damage modifications

Synopsis

g_damageweapons [value]

Default

g_damageweapons 0

Description

g_damageweapons controls weapon damage modifications. A value of 0 disables weapon damage modifications.


Name

g_damagexp — enables XP for weapons damage awarded based on damage inflicted

Synopsis

g_damagexp [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_damagexp 0

Description

g_damagexp enables XP for weapons damage awarded based on damage inflicted. The default (disabled) mode is to award XP in a lump-sum at the time of a kill. When enabled, XP is awarded on a pro rata basis of 1 XP per 50 points damage (or essentially 0.02 XP per 1 point damage. This helps avoid cases where one player will inflict most of the damage on a target player and another player from the same team gets the final killing shot on the target player, gaining all of the XP.


Name

g_debugAlloc — enables debugging of the game's server stack

Synopsis

g_debugAlloc [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_debugAlloc 0

Description

g_debugAlloc enables debugging of the game's server stack. This should not be enabled except by those who need the information and know what they are doing.


Name

g_debugConstruct — enables a smaller charge penalty for constructing

Synopsis

g_debugConstruct [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_debugConstruct 0

Description

g_debugConstruct enables a smaller charge penalty for constructing. This cvar is cheat protected, and should only be used for testing purposes, such as testing maps.


Name

g_debugDamage — enables debug information for inflicted damage

Synopsis

g_debugDamage [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_debugDamage 0

Description

g_debugDamage enables debug information for inflicted damage. This cvar is cheat protected and should only be used by developers.


Name

g_debugMove — enables debug information for player movement

Synopsis

g_debugMove [num]

Default

g_debugMove 0

Description

g_debugMove enables debug information for player movement. This cvar should only be used by developers. Setting num to 0 disables debug (default), 1 enables most debug output, and 2 or higher enables debug for sliding and moving.


Name

g_debugSkills — enables debugging of the skills system

Synopsis

g_debugSkills [num]

Default

g_debugSkills 0

Description

g_debugSkills enables debugging of the skills system. This cvar should only be used by developers. Setting num to 0 disables debugging, 1 enables debug output to console, and 2 also logs debug to disk.


Name

g_defaultSkills — default skill loadout for connecting players

Synopsis

g_defaultSkills " [battle sense] [engineer] [medic] [field ops] [light weapons] [heavy weapons] [covert ops]"

Default

g_defaultSkills ""

Description

g_defaultSkills defines the default skill levels for each skill class a player will start at on connection to the server. Players that are already on the server will get these defaults applied on map changes if their current level for each individual class is less than the default specified. If the number of arguments does not total 7, or the cvar is empty, the cvar will default to 0 for all skill classes. You may specify 0 to 5 for each skill class.


Name

g_disableComplaints — disables fiendly death complaints for certain weapons

Synopsis

g_disableComplaints [flags]

Table 13.10. g_disableComplaints Flags

FLAGDESCRIPTION
1friendly landmine death complaints are disabled
2friendly airstrike/artillery death complaints are disabled
4friendly mortar death complaints are disabled

Default

g_disableComplaints 0

Description

g_disableComplaints disables fiendly death complaints for certain weapons.


Name

g_djHeight — set double jump height multiplier

Synopsis

g_djHeight [multiplier]

Default

g_djHeight 1.4

Description

g_djHeight defines how many times higher the second jump will be compared to a normal jump. This only has effect when double jump is enabled via g_doubleJump. A value of 1.4 means the second jump will be 1.4 times the normal jump height.


Name

g_doubleJump — toggle double jump

Synopsis

g_doubleJump [value]

Table 13.11. g_doubleJump Values

VALUEDESCRIPTION
0Disable double jump
1Enable - xmod style. Standard. Player must press jump within 850ms of the first jump.
2Enable - nitmod style. The delay between pressing second time jumping is endless.

Default

g_doubleJump 0

Description

g_doubleJump controls whether players can perform a double jump (jump again while in mid-air). The second jump height is controlled by g_DJHeight.


Name

g_dragCorpse — enables corpse dragging

Synopsis

g_dragCorpse [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_dragCorpse 0

Description

g_dragCorpse enables corpse dragging.


Name

g_dropAmmo — enables ammo crate drops on field ops death

Synopsis

g_dropAmmo [num]

Default

g_dropAmmo 0

Description

g_dropAmmo enables ammo crate drops on field ops death. Setting num to 0 disables the feature, while anything greater than 0 is the number of ammo crates to drop when a field ops dies.

[Caution]Caution
Ammo crate drops are expensive. Each crate consumes a game-engine entity which is limited and adds to network traffic load. If you are not careful, high numbers of field ops in conjunction with this cvar set to a high number may lead to entity exhaustion.
[Tip]Tip
Use status(1) to monitor game entities.

Name

g_dropHealth — enables heath pack drops on medic death

Synopsis

g_dropHealth [num]

Default

g_dropHealth 0

Description

g_dropHealth enables health pack drops on medic death. Setting num to 0 disables the feature, while anything greater than 0 is the number of heath packs to drop when a medic dies.

[Caution]Caution
Health pack drops are expensive. Each pack consumes a game-engine entity which is limited and adds to network traffic load. If you are not careful, high numbers of medics in conjunction with this cvar set to a high number may lead to entity exhaustion.
[Tip]Tip
Use status(1) to monitor game entities.

Name

g_dualSMG — enables dual SMG akimbo weapons

Synopsis

g_dualSMG [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_dualSMG 0

Description

g_dualSMG enables dual SMG akimbo weapons.


Name

g_dynamiteTime — sets the timer for dynamite in seconds

Synopsis

g_dynamiteTime [num]

Default

g_dynamiteTime 30

Description

g_dynamiteTime sets the timer for dynamite in seconds.


Name

g_enforcemaxlives — enables player tracking to enforce max lives between connects

Synopsis

g_enforcemaxlives [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_enforcemaxlives 0

Description

g_enforcemaxlives enables player tracking to enforce max lives between connects. If a player disconnects and then reconnects to attempt to gain more lives, the server will kick them for the duration of the map.


Name

g_engineerChargeTime — set amount of time for Engineer to recharge

Synopsis

g_engineerChargeTime [duration]

Default

g_engineerChargeTime 30000

Description

g_engineerChargeTime sets the amount of time in milliseconds it takes for Engineer to recharge.


Name

g_engineers — set bitflags for Engineer behavior

Synopsis

g_engineers [flags]

Table 13.12. g_engineers Flags

FLAGDESCRIPTION
1friendly landmines are not tripped by own team
2friendly dynamite cannot be disarmed by own team
4enable shared construction XP
8Teammates don't activate tripmines
16Players don't trigger their own landmines
32Players don't trigger their own tripmines

Default

g_engineers 0

Description

g_engineers set bitflags for Engineer behavior.


Name

g_fastres — enables fast player revives

Synopsis

g_fastres [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_fastres 0

Description

g_fastres enables fast player revives. With this enabled, a player will jump up instantly after a revive, will not have a time lock (i.e. can move immediately), and have a lower invulnerability grace period.


Name

g_fear — awards a kill to on attacker if their victim suicides

Synopsis

g_fear [time]

Default

g_fear 0

Description

g_fear awards a kill to on attacker if their victim suicides during the specified time period. Time is in milliseconds, and anything above 0 enables this feature. If the time between the time an attacker hits a victim and the time the victim suicides is less than the time specified by g_fear, a kill is awarded to that attacker.


Name

g_filterBan — filters players joining the server

Synopsis

g_filterBan [mode]

Table 13.13. g_filterBan modes

MODEDESCRIPTION
0only players in the filter list are allowed to join
1players in the filter list are not allowed to join

Default

g_filterBan 1

Description

g_filterBan filters players joining the server.


Name

g_filtercams — removes players from camera views

Synopsis

g_filtercams [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_filtercams 0

Description

g_filtercams removes players from camera views. An example is the camera of the objectives in the limbo screen.


Name

g_fixedPhysics — enable/disable physics corrections

Synopsis

g_fixedPhysics [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_fixedPhysics 1

Description

g_fixedPhysics g_fixedPhysics enables or disables physics corrections related to player frame rates. Mathematical rounding errors directly related to certain player frame rates would allow for slightly increased jumping height and distance. With this enabled, rounding errors are avoided, and some artificial rounding error is introduced to simulate those errors, and thus the advantage negated. g_fixedPhysicsFPS(cvar) controls the FPS the added rounding error emulates.


Name

g_fixedPhysicsFPS — sets the emulated FPS used for fixed physics

Synopsis

g_fixedPhysicsFPS [frames per second]

Default

g_fixedPhysicsFPS 125

Description

g_fixedPhysicsFPS sets the emulated FPS value when calculating the artificial rounding error used in g_fixedPhysics. The "magic" numbers to use for this setting are 76, 125, and 333, however, 125 works well and since this value is used as the default for several other mods, it should feel comfortable to most players.


Name

g_forcerespawn — forces a player to go into limbo after a specified amount of time

Synopsis

g_forcerespawn [time]

Default

g_forcerespawn 0

Description

g_forcerespawn forces a player to go into limbo after a specified amount of time. time is in seconds. time of 0 disables the feature, while anything above forces a player into limbo to respawn after the specified amount of time has passed.


Name

g_friendlyFire — set bitflags for friendly fire behavior

Synopsis

g_friendlyFire [flags]

Table 13.14. g_friendlyFire Flags

FLAGDESCRIPTION
1Enable friendly fire
2Half damage to teammates
4Same damage reflected to the inflictor
8Affects movers (tanks, trucks, etc)
16Knockback enabled for friendly fire
64Landmines hurt teammates even when FF is disabled

Default

g_friendlyFire 1

Description

g_friendlyFire sets bitflags for friendly fire behavior. The flags can be combined to enable multiple features.


Name

g_gametype — set general mode of gameplay

Synopsis

g_gametype [mode]

Table 13.15. g_gametype Modes

MODEDESCRIPTION
2objective
3stopwatch
4campaign
5last-man-standing

Default

g_gametype 4

Description

g_gametype sets the general mode of gameplay.


Name

g_glow — makes all players emit a colored glow

Synopsis

g_glow [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_glow 0

Description

g_glow makes all players emit a colored glow. The prefered method to use this feature is with the !glow command.


Name

g_goomba — enables damage from above

Synopsis

g_goomba [factor]

Default

g_goomba 0

Description

g_goomba enables damage from above (think Super Mario Bros). If a falling player lands on another player, the victim will receive damage and break the fall of the falling player. factor is the multiplier of damage the victim will receive from the falling player's falling damage. For example, if a falling player would have received 20 damage on landing on the ground, and factor is 4, the victim will receive 100 points damage. factor of 0 disables this feature.


Name

g_gravity — sets the amount of gravity

Synopsis

g_gravity [num]

Default

g_gravity 800

Description

g_gravity sets the amount of gravity in the world. This cvar is automatically set by the game at the beginning of the match to 800.


Name

g_headshot — set bitflags for headshot beahvior

Synopsis

g_headshot [flags]

Table 13.16. g_headshot Flags

FLAGDESCRIPTION
1only headshots do damage
2headshots do an instant kill

Default

g_headshot 0

Description

g_headshot sets bitflags for headshot behavior. A value of 0 disables this functionality.


Name

g_healthRechargeTime — set time interval between ammo-pack cabinet respawns

Synopsis

g_healthRechargeTime [interval]

Default

g_healthRechargeTime 10000

Description

g_healthRechargeTime sets the time interval in milliseconds between health-pack cabinet respawns.


Name

g_heavyWeaponRestriction — sets a limit of heavy weapons that can be used at once per team

Synopsis

g_heavyWeaponRestriction [percent]

Default

g_heavyWeaponRestriction 100

Description

g_heavyWeaponRestriction sets a limit of heavy weapons that can be used at once per team based on the number of players on the team. For each type of heavy weapon, a team can have only the specified percentage of the team's total players using that weapon.


Name

g_hitmode — set active hitmode

Synopsis

g_hitmode [mode]

Table 13.17. g_hitmode Modes

MODENAMEBOXESSUMMARY
0auton/aautomatically selects recommended mode
1entity1body
2etmain3head, torso, feet
3basic3head, torso, feet
4standard3head, torso, feet
5advanced9head, larm, rarm, lhand, rhand, torso(2), lfoot and rfoot
6oriented10head, larm, rarm, lhand, rhand, torso, lleg, rleg, lfoot and rfoot

Default

g_hitmode 0

Description

g_hitmode sets the active hitmode which controls how bullet-hits are calculated and scored against player models.

entity

Mimics player's word-collision with only a large body box. This is only useful for reference purposes, or servers uninterested in accuracy.

etmain

Baseline (stock) ET behavior composed of { head, torso, feet } boxes. Priority-box scoring in order of { head, feet, torso }. That is to say if a bullet can hit a player's head, regardless of whether it travels through another box on the same player such as torso, the headshot will be scored. For example, shooting a player on a ladder from below, resulst in more headshots than you might expect. This behavior is to maintain backwards-compatibility.

basic

Similar but improved over etmain with { crouch, prone, playdead } adjustments for added realism. Uses priority-box scoring in order of { head, feet, torso }. This mode is somewhat similar to that of older ETPub versions.

standard

Similar but improved over basic with animation-accurate head-box. Uses priority-box scoring in order of { head, feet, torso }. This mode matches that of xmod prior to 2.1.0 version.

advanced

Advanced (realistic), tight behavior with head, left-arm, right-arm, left-hand, right-hand, torso(2), left-foot and right-foot boxes all tracking animation. Uses closest-box scoring, resulting in more difficult headshots when impeded by other boxes.

oriented

Oriented, tight behavior with head, left-arm, right-arm, left-hand, right-hand, torso, left-leg, right-leg, left-foot and right-foot boxes all tracking animation. Uses closest-box scoring, resulting in more difficult headshots when impeded by other boxes. This is the tightest and most discriminating model to date. It is unknown at this time how much CPU this mode will consume on busy servers.


Name

g_hitmodeAntilag — set maximum amount of antilag in milliseconds

Synopsis

g_hitmodeAntilag [0..1500]

Default

g_hitmodeAntilag 800

Description

g_hitmodeAntilag sets the maximum amount of antilag in milliseconds which the server uses for backwards-reconciliation. A value of 0 will disable antilag.


Name

g_hitmodeAntilagLerp — enable/disable antilag lerping

Synopsis

g_hitmodeAntilagLerp [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_hitmodeAntilagLerp 1

Description

g_hitmodeAntilagLerp enables or disables the use of LERP during backwards-reconciliation.


Name

g_hitmodeDebug — set bitflags for hitmode debugging

Synopsis

g_hitmodeDebug [flags]

Table 13.18. g_hitmodeDebug Flags

FLAGDESCRIPTION
1visually render (draw) active boxes
2visually render (draw) reference boxes
4visually render (draw) world-collision-box
16log lifecycle (construct/destruct/alloc/free) to client console
32log snapshot use to client console
64log state changes for state-driven models to client console
256log ray text to client console
512log zone text to client console

Default

g_hitmodeDebug 0

Description

g_hitmodeDebug sets bitflags for hitmode debugging. These are expert debugging aids provided for the benefit of people who are interested in learning more detail about boxes, sizes, and how they react to player movements, and is certainly not meant to be enabled during real gameplay.

[Caution]Caution
Hitmode visuals are expensive. Each rendered box consumes a game-engine entity which is limited and adds to network traffic load. If you are not careful, high numbers of players with high rates of hits and long lifetimes may lead to entity exhaustion.

Flags enabling client console logging can easily cause ET limitations to be exceeded, resulting in dropped client connections. In other words, do not create rapid hits while this kind of debugging is active.

[Tip]Tip
Use status(1) to monitor game entities.


Name

g_hitmodeFat — set increased torso-box size in inches

Synopsis

g_hitmodeFat [-10..10]

Default

g_hitmodeFat 0

Description

g_hitmodeFat sets increased torso-box size in inches. Negative values will attempt to reduce size.


Name

g_hitmodeGhosting — set lifetime of hit ghosting in milliseconds

Synopsis

g_hitmodeGhosting [0..30000]

Default

g_hitmodeGhosting 0

Description

g_hitmodeGhosting sets lifetime of hit ghosting in milliseconds. A value of 0 will disable ghosting. This a visual-debugging technique which takes a visual snapshot of a player's boxes when hit. The boxes are drawn (frozen) in place until the duration has expired. The box which has scored a hit is rendered in a different color.

[Caution]Caution
Hitbox visuals are not free. Each rendered box consumes an game-engine entity which is limited. If you are not careful, high numbers of players with high rates of hits and long lifetimes may lead to entity exhaustion.

[Tip]Tip
Use status(1) to monitor game entities.


Name

g_hitmodeReference — set reference hitmode for comparison

Synopsis

g_hitmodeReference [mode]

Table 13.19. g_hitmodeReference Modes

MODENAMEBOXESBRIEF
1entity1torso (body)
2etmain3head, torso, legs
3basic3head, torso, legs
4standard3head, torso, legs
5advanced9head, larm, rarm, lhand, rhand, torso(2), lfoot and rfoot
6oriented10head, larm, rarm, lhand, rhand, torso, lleg, rleg, lfoot and rfoot

Default

g_hitmodeReference 1

Description

g_hitmodeReference sets the reference hitmode to render for comparison. This feature has no effect unless the corresponding g_hitmodeDebug(cvar) flag is on.


Name

g_hitmodeZone — set zone for debugging

Synopsis

g_hitmodeZone [mode]

Table 13.20. g_hitmodeZone Modes

MODEDESCRIPTION
1body
2head
3left-arm
4right-arm
5left-hand
6right-hand
7torso
8left-torso
9right-torso
10legs
11left-leg
12right-leg
13left-foot
14right-foot

Default

g_hitmodeZone 1

Description

g_hitmodeZone set zone for debugging. This feature has no effect unless the corresponding g_hitmodeDebug(cvar) flag is on.


Name

g_inactivity — set player inactivity limit

Synopsis

g_inactivity [limit]

Default

g_inactivity 0

Description

g_inactivity sets the limit in seconds of player inactivity permitted before player is automatically kicked. A value of 0 disables this feature.


Name

g_instantSpawn — enables instant spawning without waiting for the next spawn wave

Synopsis

g_instantSpawn [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_instantSpawn 0

Description

g_instantSpawn enables instant spawning without waiting for the next spawn wave.


Name

g_intermissionReadyPercent — sets the percentage of 'readied' players needed to end intermission

Synopsis

g_intermissionReadyPercent [percent]

Default

g_intermissionReadyPercent 100

Description

g_intermissionReadyPercent sets the percentage of 'readied' players needed to end intermission. If this percentage isn't reached, intermission will end when the timer expires.


Name

g_intermissionTime — sets the intermission duration

Synopsis

g_intermissionTime [period]

Default

g_intermissionTime 60

Description

g_intermissionTime sets the duration in seconds for end-of-match intermission. Intermission may end sooner if the required percentage of players indicate that they are ready.


Name

g_ipcomplaintlimit — set maximum number of unique complaints allowed for a player

Synopsis

g_ipcomplaintlimit [num]

Default

g_ipcomplaintlimit 3

Description

g_ipcomplaintlimit sets the maximum number of unique (by IP address) complaints a player may have filed against them before they are automatically kicked.


Name

g_kickMessage — set kick message

Synopsis

g_kickMessage ["text"]

Default

g_kickMessage "You have been kicked for $TIME."

Description

g_kickMessage sets the message displayed to players when they attempt to reconnect after being kicked. If the value includes the token $TIME it will be substituted with the human-readable form of g_kickTime(cvar).


Name

g_kickTime — set duration to ban kicked players

Synopsis

g_kickTime [duration]

Default

g_kickTime 2

Description

g_kickTime sets the duration in seconds to ban kicked players. When changed, the read-only cvar sv_tempBanMessage is updated accordingly.

For convenience you may specify duration { days, hours, minutes, seconds } using their respective suffixes { d, h, m, s }. For example, to specify 10 days plus 4 hours, the following are all equivalent:

  • 10d4h
  • 10d4h0m0s
  • 878400s
  • 878400


Name

g_killAssistances — enables kill assistance tracking and announcements

Synopsis

g_killAssistances [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_killAssistances 1

Description

g_killAssistances enables kill assistance tracking and announcements.


Name

g_killSpreeLevels — set killing spree XP milestones

Synopsis

g_killSpreeLevels " [level1] [level2] [level3] [level4] [level5] [level6]"

Default

g_killSpreeLevels "5 10 15 20 25 30"

Description

g_killSpreeLevels sets the XP milestones at which killing spree levels are triggered. The number of levels if fixed at 6 and all levels must be specified or the setting will be ignored.


Name

g_killingSpree — set killing spree mode

Synopsis

g_killingSpree [mode]

Table 13.21. g_killingSpree Modes

MODEDESCRIPTION
0disabled
1enabled
2enabled and longest-sprees per map are recorded

Default

g_killingSpree 0

Description

g_killingSpree sets the killing spree mode.


Name

g_knifeonly — enable/disable knife-only game mode

Synopsis

g_knifeonly [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_knifeonly 0

Description

g_knifeonly enables or disables knife-only game mode.

[Note]Note
This is a fun game mode and as such, it may not be compatible with the objectives of most maps.

[Warning]Warning
This feature is mutually exclusive to g_knifeonly(cvar), and g_sniperWar(cvar).


Name

g_knockback — set knockback effect

Synopsis

g_knockback [amount]

Default

g_knockback 1000

Description

g_knockback sets the primary scalar value used to calculate how far a player is knocked back when receiving damage.


Name

g_landminetimeout — enable/disable landmine and tripmine cleanup upon owner disconnect

Synopsis

g_landminetimeout [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_landminetimeout 1

Description

g_landminetimeout enables or disables landmine and tripmine cleanup when the player who planted them disconnects from server.


Name

g_levels_battlesense — graduated levels of battlesense XP

Synopsis

g_levels_battlesense " [level1] [level2] [level3] [level4] [level5]"

Default

g_levels_battlesense ""

g_levels_battlesense "20 50 90 140 200"

Description

g_levels_battlesense defines the graduated levels of battlesense XP. Between 1-5 integers are used to specify the amount of XP required for each level. Omitting values will disable any of the levels higher than those specified. A value of -1 for any skill level also disables that particular level, although the associated skills will still be gained when reaching a higher level, if allowed. Leaving the value blank causes the default values to be used: "20 50 90 140 200".


Name

g_levels_covertops — graduated levels of Covert-Ops XP

Synopsis

g_levels_covertops " [level1] [level2] [level3] [level4] [level5]"

Default

g_levels_covertops ""

g_levels_covertops "20 50 90 140 200"

Description

g_levels_covertops defines the graduated levels of Covert-Ops XP. Between 1-5 integers are used to specify the amount of XP required for each level. Omitting values will disable any of the levels higher than those specified. A value of -1 for any skill level also disables that particular level, although the associated skills will still be gained when reaching a higher level, if allowed. Leaving the value blank causes the default values to be used: "20 50 90 140 200".


Name

g_levels_engineer — graduated levels of Engineer XP

Synopsis

g_levels_engineer " [level1] [level2] [level3] [level4] [level5]"

Default

g_levels_engineer ""

g_levels_engineer "20 50 90 140 200"

Description

g_levels_engineer defines the graduated levels of Engineer XP. Between 1-5 integers are used to specify the amount of XP required for each level. Omitting values will disable any of the levels higher than those specified. A value of -1 for any skill level also disables that particular level, although the associated skills will still be gained when reaching a higher level, if allowed. Leaving the value blank causes the default values to be used: "20 50 90 140 200".


Name

g_levels_fieldops — graduated levels of Field-Ops XP

Synopsis

g_levels_fieldops " [level1] [level2] [level3] [level4] [level5]"

Default

g_levels_fieldops ""

g_levels_fieldops "20 50 90 140 200"

Description

g_levels_fieldops defines the graduated levels of Field-Ops XP. Between 1-5 integers are used to specify the amount of XP required for each level. Omitting values will disable any of the levels higher than those specified. A value of -1 for any skill level also disables that particular level, although the associated skills will still be gained when reaching a higher level, if allowed. Leaving the value blank causes the default values to be used: "20 50 90 140 200".


Name

g_levels_lightweapons — graduated levels of lightweapons XP

Synopsis

g_levels_lightweapons " [level1] [level2] [level3] [level4] [level5]"

Default

g_levels_lightweapons ""

g_levels_lightweapons "20 50 90 140 200"

Description

g_levels_lightweapons defines the graduated levels of lightweapons XP. Between 1-5 integers are used to specify the amount of XP required for each level. Omitting values will disable any of the levels higher than those specified. A value of -1 for any skill level also disables that particular level, although the associated skills will still be gained when reaching a higher level, if allowed. Leaving the value blank causes the default values to be used: "20 50 90 140 200".


Name

g_levels_medic — graduated levels of Medic XP

Synopsis

g_levels_medic " [level1] [level2] [level3] [level4] [level5]"

Default

g_levels_medic ""

g_levels_medic "20 50 90 140 200"

Description

g_levels_medic defines the graduated levels of Medic XP. Between 1-5 integers are used to specify the amount of XP required for each level. Omitting values will disable any of the levels higher than those specified. A value of -1 for any skill level also disables that particular level, although the associated skills will still be gained when reaching a higher level, if allowed. Leaving the value blank causes the default values to be used: "20 50 90 140 200".


Name

g_levels_soldier — graduated levels of Soldier XP

Synopsis

g_levels_soldier " [level1] [level2] [level3] [level4] [level5]"

Default

g_levels_soldier ""

g_levels_soldier "20 50 90 140 200"

Description

g_levels_soldier defines the graduated levels of Soldier XP. Between 1-5 integers are used to specify the amount of XP required for each level. Omitting values will disable any of the levels higher than those specified. A value of -1 for any skill level also disables that particular level, although the associated skills will still be gained when reaching a higher level, if allowed. Leaving the value blank causes the default values to be used: "20 50 90 140 200".


Name

g_lms_followTeamOnly — enable/disable same-team spectator restriction

Synopsis

g_lms_followTeamOnly [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_lms_followTeamOnly 1

Description

g_lms_followTeamOnly enables or disables same-team spectator restriction. When enabled players can only follow their own teammates.

[Note]Note
This value is in effect only when LMS gametype is enabled using g_gametype(cvar).


Name

g_lms_lockTeams — enable/disable locked teams during match play

Synopsis

g_lms_lockTeams [mode]

Default

g_lms_lockTeams 0

Description

g_lms_lockTeams enables or disables locked teams during match play. When enabled, the teams are locked once match play begins and new players may not join.

[Note]Note
This value is in effect only when LMS gametype is enabled using g_gametype(cvar).


Name

g_lms_matchlimit — set maximum number of matches to play before nextmap

Synopsis

g_lms_matchlimit [num]

Default

g_lms_matchlimit 2

Description

g_lms_matchlimit sets the maximum number of matches to play before moving on to the next map in rotation.

[Note]Note
This value is in effect only when LMS gametype is enabled using g_gametype(cvar).


Name

g_lms_roundlimit — set maximum number of rounds to play before match ends

Synopsis

g_lms_roundlimit [num]

Default

g_lms_roundlimit 3

Description

g_lms_roundlimit sets the maximum number of rounds for a single matchup between teams. A team is considered to win a match when more than 50% of num rounds are won.

[Important]Important
The value of num should always be an odd number.

[Note]Note
This value is in effect only when LMS gametype is enabled using g_gametype(cvar).


Name

g_lms_teamForceBalance — enable/disable passive team balancing

Synopsis

g_lms_teamForceBalance [mode]

Default

g_lms_teamForceBalance 1

Description

g_lms_teamForceBalance enables or disables whether the game will prevent new players from joining the team with more players than the other.

[Note]Note
This value is in effect only when LMS gametype is enabled using g_gametype(cvar).


Name

g_log — set game log output file

Synopsis

g_log ["file"]

Default

g_log ""

Description

g_log sets the game log output file. This file contains time-stamped information from the game. A value of "" will disable this functionality.


Name

g_logOptions — set bitflags for log options

Synopsis

g_logOptions [flags]

Table 13.22. g_logOptions Flags

FLAGDESCRIPTION
1deprecated
2log extended weapons stats for new hitzones
4deprecated
8log ban events

Default

g_logOptions 0

Description

g_logOptions sets bitflags for log options. This setting only applies to g_log(cvar) when enabled.


Name

g_logSync — enable/disable log file sync

Synopsis

g_logSync [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_logSync 0

Description

g_logSync enables or disables log file synchronization (flushing) after each buffered write. A value of "" will disable this functionality. This setting only applies to g_log(cvar) when enabled.


Name

g_loseSpreeLevels — set losing spree XP milestones

Synopsis

g_loseSpreeLevels " [level1] [level2] [level3] [level4] [level5] [level6]"

Default

g_loseSpreeLevels "10 20 30 0 0 0"

Description

g_loseSpreeLevels sets the XP milestones at which losing spree levels are triggered. The number of levels if fixed at 6 and all levels must be specified or the setting will be ignored.


Name

g_mapConfigs — set directory for map-specific configuration files

Synopsis

g_mapConfigs [dir]

Default

g_mapConfigs ""

Description

g_mapConfigs sets the directory for map-specific configuration files. If dir has a value, the following procedure is followed at every map load:

  • execute dir/default.cfg
  • execute dir/MAPNAME.cfg (eg. dir/fueldump.cfg)


Name

g_mapScriptDirectory — set directory for alternative mapscripts

Synopsis

g_mapScriptDirectory [dir]

Default

g_mapScriptDirectory ""

Description

g_mapScriptDirectory sets the directory for alternative mapscripts. This is useful with ETPro extended mapscripts.


Name

g_maxGameClients — sets the maximum number of players that can be in the game at one time

Synopsis

g_maxGameClients [num]

Default

g_maxGameClients 0

Description

g_maxGameClients sets the maximum number of players that can be in the game at one time. If this number is reached, new players will be forced into spectator. Setting this to 0 disables this feature.


Name

g_maxlives — sets maximum number of lives for all players

Synopsis

g_maxlives [num]

Default

g_maxlives 0

Description

g_maxlives sets maximum number of lives for all players. Setting num to 0 disables max lives enforcement and allows unlimited lives.

[Note]Note
This cvar supercedes g_alliedmaxlives(cvar) and g_axismaxlives(cvar).


Name

g_maxlivesRespawnPenalty — sets the penalty for a player after their lives have run out

Synopsis

g_maxlivesRespawnPenalty [num]

Default

g_maxlivesRespawnPenalty 0

Description

g_maxlivesRespawnPenalty sets the penalty for a player after their lives have run out. num is the number of spawns the player must miss to respawn again.


Name

g_medicChargeTime — set amount of time for Medic to recharge

Synopsis

g_medicChargeTime [duration]

Default

g_medicChargeTime 45000

Description

g_medicChargeTime sets the amount of time in milliseconds it takes for Medic to recharge.


Name

g_medicSelfHealDelay — set self-healing delay for Medic in milliseconds

Synopsis

g_medicSelfHealDelay [period]

Default

g_medicSelfHealDelay 0

Description

g_medicSelfHealDelay sets the self-healing delay for Medic in milliseconds. This controls how soon, if at all, a Medic may benefit from their own medpacks (or medpacks dropped by other teammates). A value of 0 permits immediate self-healing. A value of -1 disables self-healing. A positive value delays self-healing by period milliseconds.


Name

g_medics — set bitflags for Medic behavior

Synopsis

g_medics [flags]

Table 13.23. g_medics Flags

FLAGDESCRIPTION
4 regenerate normal health at 2HP/s, and bonus health at 1HP/s.
8 completely disable health regeneration
16share adrenaline
32 pause health regeneration for 5 seconds after the player has taken damage

Default

g_medics 0

Description

g_medics set bitflags for Medic behavior.

[Note]Note
Flags 4 and 8 are mutually exclusive, normal health is usually up to 110-125 HP, and bonus health is any additional health capacity.


Name

g_misc — set various bitflags

Synopsis

g_misc [flags]

Table 13.24. g_misc Flags

FLAGDESCRIPTION
1binoc-war - enables binocular pickup stats
2only admins (admin level 1 or higher) can connect to server
4players can throw health/ammo packs vertically
8level-4 battle-sense revivees get full health
16more realistic weapons aim-spread, factoring player crouch/prone, slick-surfaces and water
32Do not give XP to players who kill someone who has been inactive for more than 30 seconds
64Do not give XP for med packs
128Do not give XP for ammo packs
256Visible enemy landmines (Battle sense level 4) will be transparent red/blue instead of the usual transparent white texture
512Enable realistic lean animation (Attention this will be forced if g_weapons flag 8 is enabled!)
1024Players who drown can't be revived

Default

g_misc 0

Description

g_misc sets various bitflags for miscellaneous game options.


Name

g_moverScale — adjusts the speed of movers

Synopsis

g_moverScale [factor]

Default

g_moverScale 1.0

Description

g_moverScale adjusts the speed of movers. This cvar is the factor to speed up movers. Thus, 1.0 is the default speed, anything less than 1.0 slows movers down, and anything above speeds them up. Examples of movers are tanks and tugs, and usually include anything that moves in a map.


Name

g_movespeed — sets the movement speed of players

Synopsis

g_movespeed [num]

Default

g_movespeed 76

Description

g_movespeed sets the movement speed of players.


Name

g_multiReviveTime — sets the time window in milliseconds for counting consecutive revives as a multi-revive

Synopsis

g_multiReviveTime [milliseconds]

Default

g_multiReviveTime 2000

Description

g_multiReviveTime sets the time window in milliseconds for counting consecutive revives as a multi-revive.


Name

g_muteTime — specifies how long a mute should last

Synopsis

g_muteTime [period]

Default

g_muteTime 0

Description

g_muteTime specifies how long a mute should last. period set to 0 makes mutes permanent (until they are unmuted), while any value above sets the amount of time the player is muted.

For convenience you may specify { days, hours, minutes, seconds } using their respective suffixes { d, h, m, s }. For example, to specify 1 day plus 4 hours, the following are all equivalent:

  • 1d4h
  • 1d4h0m0s
  • 100800s
  • 100800


Name

g_noAttackInvul — prevents players from attacking while spawn-invulnerable

Synopsis

g_noAttackInvul [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_noAttackInvul 0

Description

g_noAttackInvul prevents players from attacking while spawn-invulnerable. When enabled, players lose invulnerability when they fire their weapon.


Name

g_noCharge — disables class ability charge bars, giving unlimited ability usage

Synopsis

g_noCharge [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_noCharge 0

Description

g_noCharge disables class ability charge bars, giving unlimited ability usage.


Name

g_noReload — disables weapon reloading, giving unlimited clip ammunition

Synopsis

g_noReload [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_noReload 0

Description

g_noReload disables weapon reloading, giving unlimited clip ammunition.


Name

g_noTeamSwitching — disables team switching during a match

Synopsis

g_noTeamSwitching [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_noTeamSwitching 0

Description

g_noTeamSwitching disables team switching during a match.


Name

g_packDistance — sets the multiplier of throw distance for ammo and health packs

Synopsis

g_packDistance [num]

Default

g_packDistance 1

Description

g_packDistance sets the multiplier of throw distance for ammo and health packs. The multiplier is used against etmain's throw distance. Higher num results in a farther throwing distance.


Name

g_panzerWar — enable/disable panzer-war game mode

Synopsis

g_panzerWar [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_panzerWar 0

Description

g_panzerWar enables or disables panzer-war game mode.

When enabled, the following is in effect:

  • players spawn as Soldier with a panzerfaust, a knife and 100 grenades
  • panzerfaust shoots faster
  • soldier charge recharges faster
  • soldier runs faster
  • panzer ammo is not consumed (infinite shots)
  • panzer damage is reduced to 33% of original amount
  • panzer splash damage radius is 67% of its original amount

[Note]Note
This is a fun game mode and as such, it may not be compatible with the objectives of most maps.

[Warning]Warning
This feature is mutually exclusive to g_knifeonly(cvar), and g_sniperWar(cvar).


Name

g_password — set password for connecting clients

Synopsis

g_password ["secret"]

Default

g_password ""

Description

g_password sets the password required for connecting clients. An empty value "" specifies that users may connect without a password and is typical for public servers.


Name

g_playDead — enables players to play dead

Synopsis

g_playDead [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_playDead 0

Description

g_playDead enables players to play dead.

Playdead allows a player to fake being dead in the hopes an attacker will give them no further attention and kindly move on. You can use this feature by binding a key for it in the in-game xmod menu under Misc. The key you specify will toggle playdead mode.

When you are in playdead mode, you cannot shoot your weapon. To an enemy, you look like a dead player (after a tap-out and awaiting a respawn). However, you will still be a solid body (players cannot walk through you) and your eyes will still blink.

[Note]Note
Note that this version of playdead is a bit less bugged than Shrubmod’s version. It’s much harder to get stuck in walls, and there’s just about zero chance of someone using this as an exploit to get through a wall (example, bank doors on Goldrush) due to extra checks to make sure there is enough clearance for your player to fall down and still be in the “world”.

[Tip]Tip
This is an excellent way to infiltrate enemy bases and maintain the element of surprise!


Name

g_poisonSyringes — enables the use of poison syringes

Synopsis

g_poisonSyringes [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_poisonSyringes 0

Description

g_poisonSyringes enables the use of poison syringes.

Poison syringes are added to weapon slot #4 (behind grenades). It is a blue colored syringe that you can poke enemies with (or friendlies when friendly-fire enabled). When poked with a poison syringe, your view will start swaying back and forth, and get distorted. You can hear your heart pounding. Better find help. This option is enabled on the server using g_poisonSyringes(cvar).

Compounding effect - that is, if you are poked multiple times, you loose health faster. This allows XP sharing with poison hits – if you poke someone with a poison syringe, you will get XP for every time damage is dealt until they die. The interval of time that your syringe damages the player is 1.5 seconds, so every 1.5 seconds you will get 0.2 Medic XP and hurt the player 10HP. Since it tracks multiple people hitting the player with a Poison Syringe, the last poison damage inflicted that causes the death of the player gives the person who hit them with the specific syringe that caused the death a final 3 Medic XP.

Poisoned players can be cured with health packs. However, in an effort to make the game more balanced, medics cannot self-antidote. Essentially, a player can antidote themselves by finding a health pack that is not their own. Since poison compounds, you must find a health pack for each time you have been poisoned. For example, if you have been poked 4 times with a syringe, you must find 4 health packs.

[Tip]Tip
Health cabinets provide a good source of health packs.


Name

g_privateMessages — enables private messaging

Synopsis

g_privateMessages [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_privateMessages 0

Description

g_privateMessages enables private messaging.


Name

g_proneDelay — enable/disable extended prone dela

Synopsis

g_proneDelay [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_proneDelay 0

Description

g_proneDelay enables or disables penalties to players who go prone. By default, players had to wait 750 milliseconds between going prone and standing back up with no penalty to their accuracy. With this cvar enabled, players will have an additional delay of 1 second (1750 milliseconds total) before they can stand up, and their aim spread will be maximized during this period as well.


Name

g_protestMessage — sets a short footer message for players disconnected as punishment.

Synopsis

g_protestMessage [message]

Default

g_protestMessage ""

Description

g_protestMessage sets a short footer message for players disconnected as punishment. If this cvar has anything set, it will be appended to the message displayed to the player when they are kicked or banned.


Name

g_redlimbotime — the amount of time between Axis team respawns

Synopsis

g_redlimbotime [interval]

Default

g_redlimbotime 30000

Description

g_redlimbotime specifies the time interval in milliseconds between Axis respawns. This cvar is used for the actual calculations in-game and is latched, meaning it cannot be changed during a match. Mapscripts set this cvar, and the g_userAxisRespawnTime(cvar) cvar overrides this as well. Consequently, g_userAxisRespawnTime(cvar) should be used to set custom spawn times, and this cvar should not be used at all.


Name

g_reflectFriendlyFire — sets the percentage of friendly fire to reflect to the attacker

Synopsis

g_reflectFriendlyFire [percent]

Default

g_reflectFriendlyFire 100

Description

g_reflectFriendlyFire sets the percentage of friendly fire to reflect to the attacker. This only works if reflected friendly fire damage is enabled.


Name

g_revenge — enables the revenge feature which announces when a player kills someone who recently killed them

Synopsis

g_revenge [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_revenge 0

Description

g_revenge enables the revenge feature which announces when a player kills someone who recently killed them.


Name

g_reviveSpreeOptions — controls revive spree announcement options

Synopsis

g_reviveSpreeOptions [value]

Default

g_reviveSpreeOptions 1

Description

g_reviveSpreeOptions controls revive spree announcement options.


Name

g_saveCampaignStats — enables persistent stats across all the maps in a campaign

Synopsis

g_saveCampaignStats [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_saveCampaignStats 0

Description

g_saveCampaignStats enables persistent stats across all the maps in a campaign. Turning this feature on duplicates the functionality of etmain's campaigns.


Name

g_scriptDebug — enables debug of map script parsing

Synopsis

g_scriptDebug [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_scriptDebug 0

Description

g_scriptDebug enables debug of map script parsing.


Name

g_scriptDebugLevel — enables script generated debug output

Synopsis

g_scriptDebugLevel [level]

Default

g_scriptDebugLevel 0

Description

g_scriptDebugLevel enables script generated debug output. Setting this to 0 disables script debug output, and higher level settings generate more debug output.


Name

g_scriptName — sets an alternative mapscript to use on a map

Synopsis

g_scriptName [string]

Default

g_scriptName ""

Description

g_scriptName sets an alternative mapscript to use on a map. This is intended for development use only.


Name

g_shortcuts — enable/disable text shortcuts

Synopsis

g_shortcuts [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_shortcuts 0

Description

g_shortcuts enables or disables text shortcuts.

[Tip]Tip
Use the client console command /textshortcuts to list various shortcuts available.


Name

g_shoutcastpassword — set password for clients to use shoutcasting

Synopsis

g_shoutcastpassword ["secret"]

Default

g_shoutcastpassword ""

Description

g_shoutcastpassword sets the password required for clients to use shoutcasting. An empty value "" will disable shoutcasting.


Name

g_shove — set player shoving distance

Synopsis

g_shove [distance]

Default

g_shove 0

Description

g_shove sets the distance a player is shoved. The amount specifies the distance a player is shoved and you should experiment with different values until obtaining the desired results. A value of 0 disables player shoving. A value of 100 might be a good starting point to start tuning this feature.


Name

g_shoveNoZ — enable/disable supression of Z-axis shoving

Synopsis

g_shoveNoZ [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_shoveNoZ 0

Description

g_shoveNoZ enables or disables supression of Z-axis shoving. When enabled, shoving in the vertical up/down direction is supressed, and typically meant to help reduce shove-boosting and other tactics when they are undesired.

[Note]Note
g_shove(cvar) must be enabled for this variable to take effect.

[Warning]Warning
Disabling this feature can greatly alter gameplay, as it allows new and unexpected ways of winning objectives.

See Also

g_shove(cvar)


Name

g_sk5_battle — set bitflags for 5th-level battle-sense skill

Synopsis

g_sk5_battle [flags]

Table 13.25. g_sk5_battle Flags

FLAGDESCRIPTION
1faster stamina recharge

Default

g_sk5_battle 1

Description

g_sk5_battle set bitflags for 5th-level battle-sense skill.


Name

g_sk5_cvops — set bitflags for 5th-level Covert-Ops skill

Synopsis

g_sk5_cvops [flags]

Table 13.26. g_sk5_cvops Flags

FLAGDESCRIPTION
1consume less charge
2more grenades
4enable poison-gas grenade

Default

g_sk5_cvops 7

Description

g_sk5_cvops set bitflags for 5th-level Covert-Ops skill.


Name

g_sk5_eng — set bitflags for 5th-level Engineer skill

Synopsis

g_sk5_eng [flags]

Table 13.27. g_sk5_eng Flags

FLAGDESCRIPTION
1consume less charge
2more grenades
4landmines take longer to spot
8landmines take longer to defuse
16increased construction speed
32enable S-mines
64enable poison-gas mines

Default

g_sk5_eng 127

Description

g_sk5_eng set bitflags for 5th-level Engineer skill.


Name

g_sk5_fdops — set bitflags for 5th-level Field-Ops skill

Synopsis

g_sk5_fdops [flags]

Table 13.28. g_sk5_fdops Flags

FLAGDESCRIPTION
1consume less charge
2more grenades

Default

g_sk5_fdops 3

Description

g_sk5_fdops set bitflags for 5th-level Field-Ops skill.


Name

g_sk5_lightweap — set bitflags for 5th-level light-weapons skill

Synopsis

g_sk5_lightweap [flags]

Table 13.29. g_sk5_lightweap Flags

FLAGDESCRIPTION
1reduced recoil time

Default

g_sk5_lightweap 1

Description

g_sk5_lightweap set bitflags for 5th-level light-weapons skill.


Name

g_sk5_medic — set bitflags for 5th-level Medic skill

Synopsis

g_sk5_medic [flags]

Table 13.30. g_sk5_medic Flags

FLAGDESCRIPTION
1consume less charge
2more grenades
16carry-over health recharge for Covert-Ops
32carry-over health recharge for Engineer
64carry-over health recharge for Field-Ops
128carry-over health recharge for Soldier

Default

g_sk5_medic 243

Description

g_sk5_medic set bitflags for 5th-level Medic skill.


Name

g_sk5_soldier — set bitflags for 5th-level Soldier skill

Synopsis

g_sk5_soldier [flags]

Table 13.31. g_sk5_soldier Flags

FLAGDESCRIPTION
1consume less charge
2more grenades
4enable poison-gas grenade

Default

g_sk5_soldier 7

Description

g_sk5_soldier set bitflags for 5th-level Soldier skill.


Name

g_skills — set bitflags for skills related behavior

Synopsis

g_skills [flags]

Table 13.32. g_skills Flags

FLAGDESCRIPTION
1level 4 battle-sense can spot mines for team
2level 4 explosives-and-construction skill carries over to all classes
4adrenaline carries over to all classes
8level 4 signals enables all classes to spot disguised enemies

Default

g_skills 0

Description

g_skills sets bitflags for various skills related behaviors.


Name

g_slashKill — set client /kill behavior mode

Synopsis

g_slashKill [mode]

Table 13.33. g_slashKill Modes

MODEDESCRIPTION
0default behavior
1player will spawn with 50% class charge
2player will spawn with empty class charge
3player will spawn with class charge at same level as when /kill was issued
4disables /kill command

Default

g_slashKill 0

Description

g_slashKill set client /kill command behavior mode.


Name

g_smoothClients — enable/disable missed client frames smoothing

Synopsis

g_smoothClients [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_smoothClients 1

Description

g_smoothClients enables or disables extrapolation when client frames are missing.


Name

g_snap — set bitflags for server floating point value snapping

Synopsis

g_snap [flags]

Table 13.34. g_snap Flags

FLAGDESCRIPTION
1round player state at end of frame
2round player state during client-think
4round player state during client smoothing extrapolation

Default

g_snap 7

Description

g_snap sets bitflags for server floating point value snapping. Generally you do not need to touch this setting but under certain circumstances, the tweaking of this value can help conserve network bandwidth at the cost of sub-inch, and sub-degree accuracy of certain pieces of information transmitted to clients.

[Caution]Caution
These are expert settings and should not be tweaked without guidance from xmod developers.


Name

g_sniperWar — enable/disable sniper-war game mode

Synopsis

g_sniperWar [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_sniperWar 0

Description

g_sniperWar enables or disables sniper-war game mode.

When enabled, the following is in effect:

  • players spawn as Covert-Ops with a sniper rifle, a knife, binoculars, and 400 rifle rounds
  • players awarded with all Covert-Ops skills
  • headshots while in scoped weapon-mode are instant kills
  • if hitsounds are enabled, headshots result in an voice shouting "headshot"

[Note]Note
This is a fun game mode and as such, it may not be compatible with the objectives of most maps.

[Warning]Warning
This feature is mutually exclusive to g_knifeonly(cvar), and g_panzerWar(cvar).


Name

g_soldierChargeTime — set amount of time for Soldier to recharge

Synopsis

g_soldierChargeTime [duration]

Default

g_soldierChargeTime 20000

Description

g_soldierChargeTime sets the amount of time in milliseconds it takes for Soldier to recharge.


Name

g_soldiers — set bitflags for Soldier behavior

Synopsis

g_soldiers [flags]

Table 13.35. g_soldiers Flags

FLAGDESCRIPTION
1enable gravity effect on panzer rockets

Default

g_soldiers 0

Description

g_soldiers set bitflags for Soldier behavior.


Name

g_spawnInvul — sets spawn invulnerability period for players

Synopsis

g_spawnInvul [period]

Default

g_spawnInvul 3

Description

g_spawnInvul sets the invulnerability period in seconds for newly spawned players.


Name

g_spawnInvulNoClip — enables noclip during spawn invulnerability, allowing players to pass through teammates

Synopsis

g_spawnInvulNoClip [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_spawnInvulNoClip 0

Description

g_spawnInvulNoClip enables noclip during spawn invulnerability, allowing players to pass through teammates.


Name

g_spectator — set bitflags for spectator actions

Synopsis

g_spectator [flags]

Table 13.36. g_spectator Flags

FLAGDESCRIPTION
1click targeted spectator to follow
2click no-target to follow next player, only useful when flag 1 is enabled
4continue following same player even after they die and respawn
8enter free-look mode when subject dies

Default

g_spectator 0

Description

g_spectator sets bitflags controlling various spectator actions.

[Note]Note
Flags 4 and 8 are mutually exclusive,


Name

g_spectatorInactivity — set spectator inactivity limit

Synopsis

g_spectatorInactivity [limit]

Default

g_spectatorInactivity 0

Description

g_spectatorInactivity sets the limit in seconds of spectator inactivity permitted before client is automatically kicked. A value of 0 disables this feature.


Name

g_spectatorNames — controls whether spectator names are visible to other players

Synopsis

g_spectatorNames [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_spectatorNames 1

Description

g_spectatorNames controls whether spectator names are visible to other players.


Name

g_speed — set player baseline speed

Synopsis

g_speed [units]

Default

g_speed 320

Description

g_speed sets the rate at which a player moves. This is the baseline speed for player movement which directly effects how fast a player moves when running, sprinting, walking, crouching, crawling, etc.


Name

g_teamChangeDelay — sets the delay in seconds before a player can switch teams again

Synopsis

g_teamChangeDelay [seconds]

Default

g_teamChangeDelay 0

Description

g_teamChangeDelay sets the delay in seconds before a player can switch teams again. A value of 0 disables the delay.


Name

g_teamDamageMinHits — set friendly-fire tolerance minimum hits

Synopsis

g_teamDamageMinHits [num]

Default

g_teamDamageMinHits 6

Description

g_teamDamageMinHits sets the minimum number of hits required before friendly-fire tolerance is in effect. This variable is only used when g_teamDamageRestriction(cvar) is enabled.


Name

g_teamDamageRestriction — set friendly-fire tolerance percentage

Synopsis

g_teamDamageRestriction [tolerance]

Default

g_teamDamageRestriction 0

Description

g_teamDamageRestriction sets friendly-fire tolerance percentage. A player's friendly-fire is calculated as hits against friendlies as compared to total hits. A value of 1 to 100 inclusive will set the tolerance limit of fiendly-fire and when exceeded, the player will be kicked. A value of 0 disables this feature.


Name

g_teamForceBalance — force team balance

Synopsis

g_teamForceBalance [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_teamForceBalance 0

Description

g_teamForceBalance sets whether the game should balance the teams, that is, the game will not allow a team to have more than 1 player more than the other team.


Name

g_truePing — enable/disable true ping calculation

Synopsis

g_truePing [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_truePing 1

Description

g_truePing enables or disables true ping calculation. When enabled, ping is calculated by averaging the timestamps of commands sent by clients. This is a better way of calculating latency between the client and server. Though it does not affect actual lag or performance, ping numbers will usually be higher with this turned on. Keep this in mind when kicking players for high ping. This has no impact of any kind on antilag support.


Name

g_userAlliedRespawnTime — the amount of time between Allied team respawns

Synopsis

g_userAlliedRespawnTime [interval]

Default

g_userAlliedRespawnTime 0

Description

g_userAlliedRespawnTime specifies the time interval in seconds between Allied respawns. This cvar is used for custom spawn times -- that is, it overrides the time set in the map's script. It automatically updates the g_bluelimbotime(cvar) cvar accordingly.


Name

g_userAxisRespawnTime — the amount of time between Axis team respawns

Synopsis

g_userAxisRespawnTime [interval]

Default

g_userAxisRespawnTime 0

Description

g_userAxisRespawnTime specifies the time interval in seconds between Axis respawns. This cvar is used for custom spawn times -- that is, it overrides the time set in the map's script. It automatically updates the g_redlimbotime(cvar) cvar accordingly.


Name

g_userConfig — sets the filename of the user database

Synopsis

g_userConfig [filename]

Default

g_userConfig xmod.db

Description

g_userConfig sets the filename of the user database. The database stores user levels, XP save data, and other persistent information.


Name

g_voiceChatsAllowed — set maximum number of voice chats per 30 second period

Synopsis

g_voiceChatsAllowed [num]

Default

g_voiceChatsAllowed 4

Description

g_voiceChatsAllowed sets the maximum number of voice chats allowable over a 30 second period. A value of 0 disables voice chats.


Name

g_warmup — sets warmup period before match begins

Synopsis

g_warmup [period]

Default

g_warmup 60

Description

g_warmup sets the warmup period in seconds before match begins. A value of 1 will disable warmup period.


Name

g_warnBanLevel — sets the warning level at which a player is automatically banned

Synopsis

g_warnBanLevel [level]

Default

g_warnBanLevel 100

Description

g_warnBanLevel sets the warning level at which a player is automatically banned.


Name

g_warnDecay — enables automatic decay of player warning levels over time

Synopsis

g_warnDecay [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_warnDecay 1

Description

g_warnDecay enables automatic decay of player warning levels over time.


Name

g_warnMuteLevel — sets the warning level at which a player is automatically muted

Synopsis

g_warnMuteLevel [level]

Default

g_warnMuteLevel 50

Description

g_warnMuteLevel sets the warning level at which a player is automatically muted.


Name

g_watermark — set server watermark used for client display

Synopsis

g_watermark [ "image" | "shader" ]

Default

g_watermark "xmod"

Description

g_watermark sets the sever watermark used for client display. An empty value "" will disable watermarking.

Watermarks can be either an image or a shader.

An image is either in .tga or .jpg format. A .tga file is useful when alpha-channels for transparency effects are desired, (as long as you save them as 32-bit targa format).

[Important]Important
The image pixel dimensions must be a power-of-2. Square images of { 32x32, 64x64 or 128x128 } pixels are good for watermarking. Images such as { 30x30, 20x20, 128x100 } are all bad and will not be loaded by ET.

A shader gives many more advanced options. An example shader:

// shader name
watermark/bluecherry/bc
{
    nocompress
    nomipmaps
    nopicmip
    {
        // image filename
        map watermark/bluecherry/bc.tga
        blendFunc blend
        rgbGen vertex
        alphaGen vertex
    }
}

Of course, replace bluecherry/bc.tga with your actual file name. When you set a watermark, the game will requires that it be placed in the watermark/ subdirectory. For example, g_watermark “mylogo.jpg” will attempt to load watermark/mylogo.jpg. Make sure you remember this when you make your .pk3.


Name

g_watermarkFadeAfter — set amount of time before watermark begins to fade

Synopsis

g_watermarkFadeAfter [period]

Default

g_watermarkFadeAfter 60

Description

g_watermarkFadeAfter sets the amount of time in seconds before the watermark begins to fade. Specify -1 to disable fading.


Name

g_watermarkFadeTime — set amount of time to fade watermark

Synopsis

g_watermarkFadeTime [period]

Default

g_watermarkFadeTime 60

Description

g_watermarkFadeTime sets the amount of time in seconds which it takes to fade a watermark.


Name

g_weaponScriptsDir — sets the directory for custom weapon script files

Synopsis

g_weaponScriptsDir [path]

Default

g_weaponScriptsDir

Description

g_weaponScriptsDir sets the directory for custom weapon script files. An empty value uses the default weapon scripts.


Name

g_weapons — set bitflags for various weapons behavior

Synopsis

g_weapons [flags]

Table 13.37. g_weapons Flags

FLAGDESCRIPTION
1Disable Sten overheating
2Disable Mobile MG42 overheating
4Allow headshots with Mobile MG42
8Allow players to fire while leaning (1st person view and 3rd person animation are modified if this option is enabled)
16Allow Medics and Engineers to pick Sten in limbo
32Fire underwater (except flamers, panzers, rifle grenades, mortars and MG42)
64Field-Ops with level 0 battle-sense do not spawn with binoculars
128syringes function underwater
256pliers function underwater
512Level 5 Engineers will spawn with a Bomb. - Looks like a red smoke bomb, but does as much damage as a dynamite and explodes in 4 seconds. Only 1 per life
1024Level 5 Engineers' landmines inflict +15% damage
2048Allow Engineer's "Bomb" to damage movers (trucks, tanks, etc.)
4096"Too many air strikes requested" will restore used charge bar
8192"Too many air strikes requested" will restore half of used charge bar
16384ammo packs restore a lost helmet
32768players with binoculars drop them upon death
65536allies reload rifles mid-clip to match corresponding axis ability
131072Enable fast shooting for MP40, Thompson and Sten (delay between rounds lowered from 150ms to 110ms)
262144Knife can get headshots
524288Throwing knife can get headshots
1048576enable poison throwing knives
2097152disable adrenaline

Default

g_weapons 0

Description

g_weapons sets bitflags for various weapons behavior.


Name

g_weaponsenable — enable/disable special weapons

Synopsis

g_weaponsenable [flags]

Table 13.38. g_weaponsenable Flags

FLAGDESCRIPTION
1Enable Molotov-Cocktails
2Enable poison gas canisters
4Enable poison gas landmines
8Enable tripmines
16Enable Winchester M97 (shotgun)
32Enable throwing knives

Default

g_weaponsenable 0

Description

g_weaponsenable sets bitflags to enable or disable special weapons that are not available by default.


Name

g_wolfrof — enable/disable Return to Castle Wolfenstein rate of fire

Synopsis

g_wolfrof [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

g_wolfrof 0

Description

g_wolfrof enables or disables Return to Castle Wolfenstein rate of fire. MP40, Thompson and Sten rates of automatic-fire are adjusted to approximate that of Return to Castle Wolfenstein. In absolute terms, the delay between automatic-rounds is lowered from 150ms to 110ms.


Name

g_xpCap — set XP-limit action

Synopsis

g_xpCap [action]

Table 13.39. g_xpCap Actions

ACTIONDESCRIPTION
0allow the player to continue gaining XP for skills which are not maxed out
1disallow any further XP gain but keep it at max amount
2automatically reset player's XP to 0

Default

g_xpCap 0

Description

g_xpCap sets the action to take when g_xpMax(cvar) is exceeded.


Name

g_xpMax — set XP-limit amount

Synopsis

g_xpMax [0..999999]

Default

g_xpMax 0

Description

g_xpMax sets the XP-limit amount. A value of 0 will disable limiting. If a positive value, the server will take action when the limit is exceeded. The action is specified by g_xpCap(cvar).


Name

g_xpSave — enable/disable XP-save feature

Synopsis

g_xpSave [mode]

Table 13.40. g_xpSave Modes

MODEDESCRIPTION
0disabled
1enabled
2enabled and clear all XP in campaign mode when a new campaign begins

Default

g_xpSave 0

Description

g_xpSave enables or disables XP-save functionality. If enabled, the server will save XP for up to the amount of time specified by g_xpSaveTimeout(cvar).


Name

g_xpSaveTimeout — set XP-save duration

Synopsis

g_xpSaveTimeout [duration]

Default

g_xpSaveTimeout 1h

Description

g_xpSaveTimeout sets the XP-save duration in seconds. A value of 0 specifies XP-save will never timeout.

For convenience you may specify duration { days, hours, minutes, seconds } using their respective suffixes { d, h, m, s }. For example, to specify 10 days plus 4 hours, the following are all equivalent:

  • 10d4h
  • 10d4h0m0s
  • 878400s
  • 878400


Name

jxac_antiTamper — enables JXAC anti-tamper protection to detect modifications to the client game module

Synopsis

jxac_antiTamper [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

jxac_antiTamper 1

Description

jxac_antiTamper enables JXAC anti-tamper protection to detect modifications to the client game module.


Name

jxac_autoBan — enables automatic banning of players detected cheating by JXAC

Synopsis

jxac_autoBan [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

jxac_autoBan 0

Description

jxac_autoBan enables automatic banning of players detected cheating by JXAC.


Name

jxac_autoKick — enables automatic kicking of players detected cheating by JXAC

Synopsis

jxac_autoKick [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

jxac_autoKick 1

Description

jxac_autoKick enables automatic kicking of players detected cheating by JXAC.


Name

jxac_cheatCvarFile — sets the configuration file containing CVAR names to scan for on clients during CVAR scan cycles

Synopsis

jxac_cheatCvarFile ["filename"]

Default

jxac_cheatCvarFile jxac/jxac_cvarscan.cfg

Description

jxac_cheatCvarFile sets the configuration file containing CVAR names to scan for on clients during CVAR scan cycles.


Name

jxac_cheatDbFile — sets the configuration file containing the cheat signature database for JXAC module scanning

Synopsis

jxac_cheatDbFile ["filename"]

Default

jxac_cheatDbFile jxac/jxac_cheats.cfg

Description

jxac_cheatDbFile sets the configuration file containing the cheat signature database for JXAC module scanning.


Name

jxac_cheatFile — sets the configuration file containing cheat signature definitions for JXAC detection

Synopsis

jxac_cheatFile ["filename"]

Default

jxac_cheatFile jxac/jxac_cheats.cfg

Description

jxac_cheatFile sets the configuration file containing cheat signature definitions for JXAC detection.


Name

jxac_checkCvars — enables JXAC CVAR checking to detect known cheat CVARs on clients

Synopsis

jxac_checkCvars [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

jxac_checkCvars 1

Description

jxac_checkCvars enables JXAC CVAR checking to detect known cheat CVARs on clients.


Name

jxac_checkSpeedhack — enables JXAC speedhack detection

Synopsis

jxac_checkSpeedhack [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

jxac_checkSpeedhack 0

Description

jxac_checkSpeedhack enables JXAC speedhack detection.


Name

jxac_checkWallhack — enables JXAC wallhack detection

Synopsis

jxac_checkWallhack [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

jxac_checkWallhack 1

Description

jxac_checkWallhack enables JXAC wallhack detection.


Name

jxac_cvarFile — sets the configuration file containing CVAR definitions for JXAC anticheat checks

Synopsis

jxac_cvarFile ["filename"]

Default

jxac_cvarFile jxac/jxac_cvars.cfg

Description

jxac_cvarFile sets the configuration file containing CVAR definitions for JXAC anticheat checks.


Name

jxac_cvarScan — enables JXAC CVAR scanning to detect cheat CVARs injected by external programs

Synopsis

jxac_cvarScan [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

jxac_cvarScan 0

Description

jxac_cvarScan enables JXAC CVAR scanning to detect cheat CVARs injected by external programs.


Name

jxac_cvarScanDelay — sets the delay in milliseconds between individual CVAR scan requests sent to the client

Synopsis

jxac_cvarScanDelay [milliseconds]

Default

jxac_cvarScanDelay 750

Description

jxac_cvarScanDelay sets the delay in milliseconds between individual CVAR scan requests sent to the client.


Name

jxac_cvarScanInterval — sets the interval in milliseconds between complete CVAR scan cycles

Synopsis

jxac_cvarScanInterval [milliseconds]

Default

jxac_cvarScanInterval 300000

Description

jxac_cvarScanInterval sets the interval in milliseconds between complete CVAR scan cycles.


Name

jxac_cvarScanMaxWarnings — sets the maximum number of CVAR scan warnings before a player is kicked or banned

Synopsis

jxac_cvarScanMaxWarnings [count]

Default

jxac_cvarScanMaxWarnings 1

Description

jxac_cvarScanMaxWarnings sets the maximum number of CVAR scan warnings before a player is kicked or banned.


Name

jxac_cvarScanWait — sets the initial wait time in milliseconds before JXAC begins CVAR scanning after a client connects

Synopsis

jxac_cvarScanWait [milliseconds]

Default

jxac_cvarScanWait 10000

Description

jxac_cvarScanWait sets the initial wait time in milliseconds before JXAC begins CVAR scanning after a client connects.


Name

jxac_enable — enables the JXAC anticheat system

Synopsis

jxac_enable [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

jxac_enable 1

Description

jxac_enable enables the JXAC anticheat system.


Name

jxac_forceCvarFile — sets the configuration file containing CVARs that are forced on connected clients

Synopsis

jxac_forceCvarFile ["filename"]

Default

jxac_forceCvarFile jxac/jxac_forcecvar.cfg

Description

jxac_forceCvarFile sets the configuration file containing CVARs that are forced on connected clients.


Name

jxac_heartbeatTimeout — sets the timeout in milliseconds for JXAC client heartbeats

Synopsis

jxac_heartbeatTimeout [milliseconds]

Default

jxac_heartbeatTimeout 60000

Description

jxac_heartbeatTimeout sets the timeout in milliseconds for JXAC client heartbeats. Clients that fail to respond within this time are flagged.


Name

jxac_logFile — sets the filename for the JXAC anticheat log

Synopsis

jxac_logFile ["filename"]

Default

jxac_logFile jxac.log

Description

jxac_logFile sets the filename for the JXAC anticheat log.


Name

jxac_moduleScan — enables JXAC module scanning to detect known cheat modules loaded by clients

Synopsis

jxac_moduleScan [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

jxac_moduleScan 1

Description

jxac_moduleScan enables JXAC module scanning to detect known cheat modules loaded by clients.


Name

jxac_screenshotPath — sets the directory where JXAC anticheat screenshots are saved

Synopsis

jxac_screenshotPath ["path"]

Default

jxac_screenshotPath jxac/screenshots/

Description

jxac_screenshotPath sets the directory where JXAC anticheat screenshots are saved.


Name

jxac_screenshotQuality — sets the JPEG quality for anticheat screenshots

Synopsis

jxac_screenshotQuality [quality]

Default

jxac_screenshotQuality 85

Description

jxac_screenshotQuality sets the JPEG quality for anticheat screenshots. Higher values produce better quality but larger files.


Name

match_latejoin — enable/disable allowing players to join a match in progress

Synopsis

match_latejoin [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

match_latejoin 1

Description

match_latejoin enables or disables allowing players to join a match in progress.


Name

match_minplayers — set minimum number of players required for match to begin

Synopsis

match_minplayers [num]

Default

match_minplayers 0

Description

match_minplayers sets the minimum number of players required for match to begin.


Name

match_mutespecs — enable/disable muting of spectators

Synopsis

match_mutespecs [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

match_mutespecs 0

Description

match_mutespecs enables or disables muting of spectators.


Name

match_readypercent — set percentage of players required to be ready

Synopsis

match_readypercent [percent]

Default

match_readypercent 100

Description

match_readypercent sets percentage of players required to be ready before match begins.


Name

match_timeoutcount — set maximum number of times non-referees can pause the match

Synopsis

match_timeoutcount [num]

Default

match_timeoutcount 3

Description

match_timeoutcount sets the maximum number of times non-referees can pause the match.


Name

match_timeoutlength — set duration of player-timeout

Synopsis

match_timeoutlength [duration]

Default

match_timeoutlength 180

Description

match_timeoutlength sets duration of a player-timeout in seconds.


Name

match_warmupDamage — enable/disable damage during warmup

Synopsis

match_warmupDamage [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

match_warmupDamage 1

Description

match_warmupDamage enables or disables damage during warmup period.


Name

omnibot_enable — enable/disable Omni-bot module

Synopsis

omnibot_enable [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

omnibot_enable 1

Description

omnibot_enable enables or disables Omni-bot module loading at game init time. When enabled, xmod will attempt to load the Omni-bot module. If the module is not found, a small error message will be logged indicating such, and xmod will continue to operate as if Omni-bot was disabled. If you do not wish to operate Omni-bot but wish to supress a loading attempt and subsequent error message, then disable this feature.

[Note]Note
This CVAR should be set on the server command-line and not in a .cfg file.


Name

rconpassword — set password to enable remote console commands

Synopsis

rconpassword ["secret"]

Default

rconpassword ""

Description

rconpassword sets the password required for remote console commands. An empty value "" will disable remote console.


Name

refereePassword — set password for client referee promotion

Synopsis

refereePassword ["secret"]

Default

refereePassword ""

Description

refereePassword sets the password required for clients to become match referees.


Name

server_motd0 — set server message-of-the-day

Synopsis

server_motd0 ["text"]

Default

server_motd0 ""

Description

server_motd0 sets the server message-of-the-day (line 0) for display in bottom-right corner of connecting splash-screen.


Name

server_motd1 — set server message-of-the-day

Synopsis

server_motd1 ["text"]

Default

server_motd1 ""

Description

server_motd1 sets the server message-of-the-day (line 1) for display in bottom-right corner of connecting splash-screen.


Name

server_motd2 — set server message-of-the-day

Synopsis

server_motd2 ["text"]

Default

server_motd2 ""

Description

server_motd2 sets the server message-of-the-day (line 2) for display in bottom-right corner of connecting splash-screen.


Name

server_motd3 — set server message-of-the-day

Synopsis

server_motd3 ["text"]

Default

server_motd3 ""

Description

server_motd3 sets the server message-of-the-day (line 3) for display in bottom-right corner of connecting splash-screen.


Name

server_motd4 — set server message-of-the-day

Synopsis

server_motd4 ["text"]

Default

server_motd4 ""

Description

server_motd4 sets the server message-of-the-day (line 4) for display in bottom-right corner of connecting splash-screen.


Name

server_motd5 — set server message-of-the-day

Synopsis

server_motd5 ["text"]

Default

server_motd5 ""

Description

server_motd5 sets the server message-of-the-day (line 5) for display in bottom-right corner of connecting splash-screen.


Name

sv_allowDownload — enable/disable direct client download

Synopsis

sv_allowDownload [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

sv_allowDownload 1

Description

sv_allowDownload enables or disables direct client downloads from server.


Name

sv_dl_maxRate — set max rate for direct client downloads

Synopsis

sv_dl_maxRate [rate]

Default

sv_dl_maxRate 42000

Description

sv_dl_maxRate sets the max rate in bytes/s for direct client downloads.


Name

sv_floodProtect — enable/disable client commands flood protection

Synopsis

sv_floodProtect [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

sv_floodProtect 1

Description

sv_floodProtect enables or disables client commands flood protection. Malicious users may try using too many string commands to lag other players. When enabled, this feature causes flooders to lag themselves but not other players.


Name

sv_fps — set server frequency

Synopsis

sv_fps [frequency]

Default

sv_fps 20

Description

sv_fps sets the server frequency in frames per second (fps). The ET SDK has some sections of code which assume 20 fps and at this time it is not recommended this value be changed.


Name

sv_fullmsg — set server-full message

Synopsis

sv_fullmsg ["text"]

Default

sv_fullmsg "Server is full."

Description

sv_fullmsg sets the message displayed to clients when server is full.


Name

sv_hostname — set name of server shown in browse lists

Synopsis

sv_hostname ["name"]

Default

sv_hostname "ETHost"

Description

sv_hostname sets the name of the server as shown in browse lists. In order for this value to have effect, the appropriate setting for dedicated(cvar) must be in effect.


Name

sv_lanForceRate — enable/disable automatic network settings for LAN clients

Synopsis

sv_lanForceRate [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

sv_lanForceRate 1

Description

sv_lanForceRate enables or disables automatic network settings for LAN clients. Some reports indicate clients can be incorrectly identified as a LAN client and in those cases this can be a serious issue to client performance. Use /players on client console to see rate for each client.


Name

sv_master1 — set master server for browse-list registration

Synopsis

sv_master1 ["hostname"]

Default

sv_master1 "etmaster.idsoftware.com"

Description

sv_master1 sets the master server for browse-list registration.


Name

sv_master2 — set supplemental master server for browse-list registration

Synopsis

sv_master2 ["hostname"]

Default

sv_master2 ""

Description

sv_master2 sets a supplemental master server for browse-list registration.


Name

sv_master3 — set supplemental master server for browse-list registration

Synopsis

sv_master3 ["hostname"]

Default

sv_master3 ""

Description

sv_master3 sets a supplemental master server for browse-list registration.


Name

sv_master4 — set supplemental master server for browse-list registration

Synopsis

sv_master4 ["hostname"]

Default

sv_master4 ""

Description

sv_master4 sets a supplemental master server for browse-list registration.


Name

sv_master5 — set supplemental master server for browse-list registration

Synopsis

sv_master5 ["hostname"]

Default

sv_master5 ""

Description

sv_master5 sets a supplemental master server for browse-list registration.


Name

sv_maxPing — set maximum allowable client ping

Synopsis

sv_maxPing [ping]

Default

sv_maxPing 0

Description

sv_maxPing sets the maximum ping in milliseconds allowable for a client, checked at time of connecting. At connecting time the client ping is usually significantly worse than at normal gameplay, therefore this setting might need to be inflated to compensate. The server enforces this limit by rejecting client connections exceeding ping. A value of 0 disables this functionality.


Name

sv_maxRate — set maximum network bandwidth per client

Synopsis

sv_maxRate [rate]

Default

sv_maxRate 13000

Description

sv_maxRate sets the maximum network bandwidth in bytes/s per client. This value applies to data sent in the server -> client direction.


Name

sv_maxclients — set maximum number of connected clients

Synopsis

sv_maxclients [num]

Default

sv_maxclients 20

Description

sv_maxclients sets the maximum number of connected clients. Clients exceeding num will typically get a server-full message.


Name

sv_minPing — set minimum required client ping

Synopsis

sv_minPing [ping]

Default

sv_minPing 0

Description

sv_minPing sets the minimum ping in milliseconds required for client connectivity, checked at time of connecting. At connecting time the client ping is usually significantly worse than at normal gameplay, therefore this setting might need to be inflated to compensate. The server enforces this limit by rejecting client connections with a lower ping. A value of 0 disables this functionality. This feature is probably only useful for dial-up and other high-latency/low-bandiwdth connections.


Name

sv_packetdelay — set simulated server latency

Synopsis

sv_packetdelay [delay]

Default

sv_packetdelay 0

Description

sv_packetdelay sets the simulated server latency in milliseconds. The server can be coaxed into simulated network latency by artificially delaying transmission of packets in direction of server -> client. A value of 0 will disable this functionality.


Name

sv_packetloss — set simulated server packet loss

Synopsis

sv_packetloss [loss]

Default

sv_packetloss 0

Description

sv_packetloss sets the simulated server packet loss as a percentage. The server can be coaxed into simulated network loss by artificially losing packets in direction of server -> client. A value of 0 disables this functionality. For example, a value of 30 would simulate 30% packet loss.


Name

sv_padPackets — set packet padding amount

Synopsis

sv_padPackets [num]

Default

sv_padPackets 0

Description

sv_padPackets sets the num of NOP (no-operation) messages added to packets. This is primarily a debugging feature and is used to fill packets from server -> client with NOPs. A value of 0 disables this functionality.


Name

sv_privateClients — set number of reserved client slots

Synopsis

sv_privateClients [num]

Default

sv_privateClients 4

Description

sv_privateClients sets the number of reserved client slots. Reserved client slots require users to connect with private password set. A value of 0 disables this functionality.


Name

sv_privatePassword — set password for reserved private player slots

Synopsis

sv_privatePassword ["secret"]

Default

sv_privatePassword ""

Description

sv_privatePassword sets the password for reserved private player slots. An empty value "" will disable private slot access.


Name

sv_pure — enable/disable client purity check

Synopsis

sv_pure [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

sv_pure 1

Description

sv_pure enables or disables client file purity checks. When enabled the server will drop clients with files (pk3) which have mismatching checksums (digital signatures).


Name

sv_reconnectlimit — set minimum period required between client reconnections

Synopsis

sv_reconnectlimit [period]

Default

sv_reconnectlimit 3

Description

sv_reconnectlimit sets the minimum period in seconds required between client reconnections. Clients reconecting before waiting at least period seconds will be disconnected. A value of 0 will dissable.


Name

sv_showAverageBPS — UNKNOWN

Synopsis

sv_showAverageBPS [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

sv_showAverageBPS 0

Description

sv_showAverageBPS UNKNOWN


Name

sv_showloss — enable/disable lost usercmd logging

Synopsis

sv_showloss [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

sv_showloss 0

Description

sv_showloss enables or disables lost usercmd logging.


Name

sv_timeout — set client network connection timeout

Synopsis

sv_timeout [period]

Default

sv_timeout 240

Description

sv_timeout sets the client network connection timeout in seconds. Clients connections are dropped after period seconds of unreachability.


Name

sv_wwwBaseURL — set URL download prefix for WWW downloads of server files

Synopsis

sv_wwwBaseURL ["URL"]

Default

sv_wwwBaseURL ""

Description

sv_wwwBaseURL sets the URL download prefix for server files which the client uses to download pk3 files. For example, specifying URL as "http://www.nowhere.com/et/" will result in the client attempting to download http://www.nowhere.com/et/xmod/xmod-2.0.1.pk3 .


Name

sv_wwwDlDisconnected — enable/disable client disconect while downloading

Synopsis

sv_wwwDlDisconnected [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

sv_wwwDlDisconnected 0

Description

sv_wwwDlDisconnected enables or disables client disconection from server while downloading. This disconnects a client from game server to free up slots while download is in progress.


Name

sv_wwwDownload — enable/disable HTTP download

Synopsis

sv_wwwDownload [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

sv_wwwDownload 0

Description

sv_wwwDownload enables or disables HTTP downloads. If enabled takes precedence over sv_allowDownload(cvar).


Name

sv_wwwFallbackURL — set URL for failed WWW downloads

Synopsis

sv_wwwFallbackURL ["URL"]

Default

sv_wwwFallbackURL ""

Description

sv_wwwFallbackURL sets the URL for failed WWW downloads. Clients will attempt to open the page specified by URL upon failing a download. If an empty "" is specified and the download fails, then the client will fallback to the standard download mechanism controlled via sv_allowDownload(cvar).


Name

sv_zombietime — set zombie period

Synopsis

sv_zombietime [period]

Default

sv_zombietime 2

Description

sv_zombietime sets the zombie period in seconds. When a client is normally dropped, the client goes into a zombie state for period seconds to give a reasonable chance for reliable messages retransmission, if necessary. A value of 0 disables this functionality.


Name

team_maxArtillery — sets the maximum number of artillery or airstrikes per minute

Synopsis

team_maxArtillery [num]

Default

team_maxArtillery 6

Description

team_maxArtillery sets the maximum number of artillery or airstrikes each team can have per minute. Setting num to 0 disables artillery and airstrikes altogether, and 1 through to 6 specifies the maximum number of concurrent airstrikes per minute allowed. Anything above 6 will have no effect.


Name

team_maxCovertOps — sets the maximum number of covert-ops per team

Synopsis

team_maxCovertOps [num]

team_maxCovertOps [num%]

Default

team_maxCovertOps -1

Description

team_maxCovertOps sets the maximum number of covert-ops each team can have at once. Setting num to -1 allows for unlimited covert-ops. Setting num to 0 disables the class altogether, and 1 or higher specifies the maximum number of covert-ops per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxEngineers — sets the maximum number of engineers per team

Synopsis

team_maxEngineers [num]

team_maxEngineers [num%]

Default

team_maxEngineers -1

Description

team_maxEngineers sets the maximum number of engineers each team can have at once. Setting num to -1 allows for unlimited engineers. Setting num to 0 disables the class altogether, and 1 or higher specifies the maximum number of engineers per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxFieldOps — sets the maximum number of field-ops per team

Synopsis

team_maxFieldOps [num]

team_maxFieldOps [num%]

Default

team_maxFieldOps -1

Description

team_maxFieldOps sets the maximum number of field-ops each team can have at once. Setting num to -1 allows for unlimited field-ops. Setting num to 0 disables the class altogether, and 1 or higher specifies the maximum number of field-ops per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxFlamers — sets the maximum number of flamethrowers per team

Synopsis

team_maxFlamers [num]

team_maxFlamers [num%]

Default

team_maxFlamers -1

Description

team_maxFlamers sets the maximum number of flamethrowers each team can have at once. Setting num to -1 allows for unlimited flamethrowers. Setting num to 0 disables the weapon altogether, and 1 or higher specifies the maximum number of flamethrowers per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxGrenLaunchers — sets the maximum number of grenade launchers per team

Synopsis

team_maxGrenLaunchers [num]

team_maxGrenLaunchers [num%]

Default

team_maxGrenLaunchers -1

Description

team_maxGrenLaunchers sets the maximum number of grenade launchers each team can have at once. Setting num to -1 allows for unlimited grenade launchers. Setting num to 0 disables the weapon altogether, and 1 or higher specifies the maximum number of grenade launchers per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxLandMines — sets the maximum numbers or landmines per team

Synopsis

team_maxLandMines [num]

Default

team_maxLandMines 10

Description

team_maxLandMines sets the maximum number of landmines each team can have planted at once. Setting num to 0 disables the landmines altogether, and 1 or higher specifies the maximum number of landmines per team.


Name

team_maxM97s — sets the maximum number of M97s per team

Synopsis

team_maxM97s [num]

team_maxM97s [num%]

Default

team_maxM97s -1

Description

team_maxM97s sets the maximum number of M97s each team can have at once. Setting num to -1 allows for unlimited M97s. Setting num to 0 disables the weapon altogether, and 1 or higher specifies the maximum number of M97s per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxMG42s — sets the maximum number of MG42s per team

Synopsis

team_maxMG42s [num]

team_maxMG42s [num%]

Default

team_maxMG42s -1

Description

team_maxMG42s sets the maximum number of MG42s each team can have at once. Setting num to -1 allows for allows for unlimited MG42s. Setting num to 0 disables the weapon altogether, and 1 or higher specifies the maximum number of MG42s per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxMedics — sets the maximum number of medics per team

Synopsis

team_maxMedics [num]

team_maxMedics [num%]

Default

team_maxMedics -1

Description

team_maxMedics sets the maximum number of medics each team can have at once. Setting num to -1 allows for unlimited medics. Setting num to 0 disables the class altogether, and 1 or higher specifies the maximum number of medics per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxMortars — sets the maximum number of mortars per team

Synopsis

team_maxMortars [num]

team_maxMortars [num%]

Default

team_maxMortars -1

Description

team_maxMortars sets the maximum number of mortars each team can have at once. Setting num to -1 allows for unlimited mortars. Setting num to 0 disables the weapon altogether, and 1 or higher specifies the maximum number of mortars per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxPanzers — sets maximum number of panzerfausts per team

Synopsis

team_maxPanzers [num]

team_maxPanzers [num%]

Default

team_maxPanzers -1

Description

team_maxPanzers sets the maximum number of panzerfausts each team can have at once. Setting num to -1 allows for unlimited panzerfausts. Setting num to 0 disables the weapon altogether, and 1 or higher specifies the maximum number of panzerfausts per team. If desired, the maximum can be specified as a percentage of team players by suffixing num with a percent-symbol.


Name

team_maxplayers — sets maximum number of players per team

Synopsis

team_maxplayers [num]

Default

team_maxplayers 0

Description

team_maxplayers sets the maximum number of players that can be on a team at one time. Setting num to 0 allows for unlimited players on each time, while 1 or higher specifies the maximum number of players per team.


Name

team_nocontrols — enable/disable arbitrary control of teams

Synopsis

team_nocontrols [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

team_nocontrols 1

Description

team_nocontrols controls whether any player on a team can lock, unlock, or speclock their team. Given that for normal play you usually do not want any player on a team to be able to lock a team, it is recommended that you leave this enabled.


Name

vote_allow_balancedteams — enable/disable balanced teams

Synopsis

vote_allow_balancedteams [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_balancedteams 1

Description

vote_allow_balancedteams enables or disables balanced teams.


Name

vote_allow_comp — enable/disable competition settings

Synopsis

vote_allow_comp [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_comp 1

Description

vote_allow_comp enables or disables competition settings.


Name

vote_allow_friendlyfire — enable/disable friendly-fire

Synopsis

vote_allow_friendlyfire [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_friendlyfire 1

Description

vote_allow_friendlyfire enables or disables friendly-fire.


Name

vote_allow_gametype — enable/disable gametype

Synopsis

vote_allow_gametype [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_gametype 1

Description

vote_allow_gametype enables or disables gametype.


Name

vote_allow_generic — enable/disable generic

Synopsis

vote_allow_generic [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_generic 1

Description

vote_allow_generic enables or disables generic.


Name

vote_allow_kick — enable/disable kick

Synopsis

vote_allow_kick [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_kick 1

Description

vote_allow_kick enables or disables kick.


Name

vote_allow_map — enable/disable map

Synopsis

vote_allow_map [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_map 1

Description

vote_allow_map enables or disables map.


Name

vote_allow_matchreset — enable/disable matchreset

Synopsis

vote_allow_matchreset [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_matchreset 1

Description

vote_allow_matchreset enables or disables matchreset.


Name

vote_allow_matchrestart — enable/disable matchrestart

Synopsis

vote_allow_matchrestart [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_matchrestart 1

Description

vote_allow_matchrestart enables or disables matchrestart.


Name

vote_allow_mutespecs — enable/disable mutespecs

Synopsis

vote_allow_mutespecs [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_mutespecs 1

Description

vote_allow_mutespecs enables or disables mutespecs.


Name

vote_allow_muting — enable/disable muting

Synopsis

vote_allow_muting [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_muting 1

Description

vote_allow_muting enables or disables muting.


Name

vote_allow_nextmap — enable/disable nextmap

Synopsis

vote_allow_nextmap [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_nextmap 1

Description

vote_allow_nextmap enables or disables nextmap.


Name

vote_allow_pub — enable/disable pub

Synopsis

vote_allow_pub [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_pub 1

Description

vote_allow_pub enables or disables pub.


Name

vote_allow_referee — enable/disable referee

Synopsis

vote_allow_referee [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_referee 0

Description

vote_allow_referee enables or disables referee.


Name

vote_allow_shuffleteamsxp — enable/disable shuffleteamsxp

Synopsis

vote_allow_shuffleteamsxp [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_shuffleteamsxp 1

Description

vote_allow_shuffleteamsxp enables or disables shuffleteamsxp.


Name

vote_allow_startmatch — allows players to call a vote to start the match

Synopsis

vote_allow_startmatch [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_startmatch 1

Description

vote_allow_startmatch allows players to call a vote to start the match.


Name

vote_allow_swapteams — enable/disable swapteams

Synopsis

vote_allow_swapteams [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_swapteams 1

Description

vote_allow_swapteams enables or disables swapteams.


Name

vote_allow_timelimit — enable/disable timelimit

Synopsis

vote_allow_timelimit [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_timelimit 0

Description

vote_allow_timelimit enables or disables timelimit.


Name

vote_allow_warmupdamage — enable/disable warmupdamage

Synopsis

vote_allow_warmupdamage [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_allow_warmupdamage 1

Description

vote_allow_warmupdamage enables or disables warmupdamage.


Name

vote_limit — set maximum number of times a vote may be called

Synopsis

vote_limit [max]

Default

vote_limit 5

Description

vote_limit sets the maximum number of times any particular vote may be called in a match. The counter is reset at the start of every map load/init.


Name

vote_minPercent — sets the minimum percentage of eligible voters that must vote for a vote to be valid

Synopsis

vote_minPercent [percent]

Default

vote_minPercent 0

Description

vote_minPercent sets the minimum percentage of eligible voters that must vote for a vote to be valid. A value of 0 disables this requirement.


Name

vote_percent — set percentage of votes required for it to pass

Synopsis

vote_percent [pass]

Default

vote_percent 50

Description

vote_percent sets the percentage of votes required for a vote-in-progress to pass.


Name

vote_voteBased — enables vote-based voting where votes are counted based on the total number of voters rather than total eligible players

Synopsis

vote_voteBased [mode]

MODEDESCRIPTION
0disabled
1enabled

Default

vote_voteBased 0

Description

vote_voteBased enables vote-based voting where votes are counted based on the total number of voters rather than total eligible players.

Appendix A. Changelog

Table of Contents

2.0.1
2.0.0

2.0.1

  1. Added: Network Config Strings (NCS) system to overcome engine gamestate size limits on large servers.
  2. Added: deferred command system with per-client throttling to prevent reliable command buffer overflow during map changes and client connections.
  3. Added: XCS phased sending for incremental delivery of mod data to connecting clients.
  4. Added: g_oss CVAR for advertising supported platforms and architectures in the server browser.
  5. Added: suppression of false skill and rank upgrade announcements during map changes using deferred CS_PLAYERS sending.
  6. Improved: JXAC forced CVAR enforcement now re-sends corrections silently without flagging as violations.
  7. Improved: JXAC CVAR scanning uses configurable batch sizes and rotating offsets for efficient checking of forced CVARs.
  8. Improved: server stability on large servers by throttling configstring broadcasts and deferred sends.
  9. Improved: documentation updated with all missing CVAR references for xmod-specific and JXAC anticheat settings.

2.0.0

  1. Added: forked from jaymod and rebranded to xmod.
  2. Added: 64-bit support for Linux and Windows platforms.
  3. Added: SQLite database backend for user data (g_userConfig).
  4. Added: JXAC anticheat system with CVAR checking, wallhack detection, module scanning, anti-tamper, speedhack detection, CVAR scanning, and forced CVAR enforcement.
  5. Added: Lua 5.4.7 scripting support with up to 64 VMs for server-side game logic extensions.
  6. Added: country flag display for players (g_countryflags).
  7. Added: canister kicking feature for health and ammo packs (g_canisterKick, g_canisterKickOwner, g_canisterKickDistance).
  8. Added: dual SMG akimbo weapons (g_dualSMG).
  9. Added: instant spawn feature (g_instantSpawn).
  10. Added: warning system with automatic muting and banning (g_warnDecay, g_warnMuteLevel, g_warnBanLevel).
  11. Added: revenge announcements (g_revenge).
  12. Added: revive spree tracking and multi-revive time window (g_reviveSpreeOptions, g_multiReviveTime).
  13. Added: kill assistance tracking (g_killAssistances).
  14. Added: no-attack during spawn invulnerability (g_noAttackInvul).
  15. Added: no-charge and no-reload modes (g_noCharge, g_noReload).
  16. Added: spawn invulnerability noclip (g_spawnInvulNoClip).
  17. Added: spectator name visibility control (g_spectatorNames).
  18. Added: team change delay (g_teamChangeDelay).
  19. Added: custom weapon scripts directory (g_weaponScriptsDir).
  20. Added: vote-based voting and minimum vote percent (vote_voteBased, vote_minPercent).
  21. Added: admin chat visibility control (g_adminChat).
  22. Added: weapon damage modifications (g_damageweapons).

Appendix B. Thanks and Credits

 

First and foremost, the most humble and sincere thanks go to everyone at Clan FU for their help and participation in the development and testing of this mod. Without their generous support, this mod would not be in existence.

My utmost, sincere thanks and appreciation go to Zinx Verituse, Bani, and Forty for their contributions.

Many, many thanks to Mr.Mxyzptlk for his cross-platform build/release system, C++ conversion, generated document system and continued work on the mod.

Thanks to Meyerinchains for his contribution of the M97 model and animations.

Thanks to Jeremy “Dr. Evil” Swigart and the magic of the Omni-bot team for their continued help with the implementation and debugging support of Omni-bot in xmod.

Thanks at Lazyphreak at the xmod forums for taking the time to get all the original Shrub flags.

Thanks to ETPub for the contribution to the ET community in general. xmod incorporates modified bits of code from their project.

There are several server admins that frequent the xmod forums assisting those that require it without hesitation or commission. They simply choose to contribute, and for that I thank all of you and hope you will continue what you do.

Thanks to SplashDamage® for taking the time to develop and release an incredible free id Software® based game. They have made a good many fan because of their generosity and dedication to the gaming community. Thanks to the SplashDamage forums community for the help they provide to everyone wanting to mod for ET.

 
 --Jaybird