Note for server admins:
Many features (general player management, pm’s, features known by ETPro or other common mods) are moved into WolfAdmin we are shipping with our install.
Read WolfAdmin documentation

Set up features

This page gives an overview of the important settings and their related cvars to set up for a server or for pimping up your client.

See also the comments in the default config files provided in the etmain directory:

General information

ET: Legacy has new, additional or changed CVARs and slightly different path structures. Read the following for reference:


There is a sqlite3 dbms built in.

  • db_status
  • db_url

Server engine

Heartbeat and tracking

  • dedicated
  • sv_advert

Logging and security

  • logfile
  • sv_protect
  • sv_protectLog

Server side demo recording

Avaliable commands:

  • demo_record
  • demo_play
  • demo_stop

Wallhack prediction

Avaliable CVARSs:

  • sv_wh_active
  • sv_wh_bbox_horz
  • sv_wh_bbox_vert
  • sv_wh_add_xy
  • sv_wh_check_fov
The default values of the anti-wallhack bounding box (60/100) are considerably larger than the normal player bounding box values of 36 and 72 used by ET. The reason for this is that it’s better to predict a player as visible when he is not than the contrary. This may give a slight advantage to wallhackers, but this should not be significant. If you change these cvars, pay attention: if set to smaller values, players may not become immediately visible when players go around corners.

Server legacy mod

Country flags

  • g_countryflags

You also need to ensure the GeopIP.dat file is into your etmain (or legacy) folder.

Lua - set up Lua scripts

Copy your Lua scripts into the legacy mod folder. In order to set up these Lua files you have to set 2 cvars:

  • lua_modules

Space-separated list of lua modules to load. Modules will be run in the order listed. Changing this cvar will cause all currently loaded modules to quit and be unloaded until maprestart/nextmap.

  • lua_allowedModules

If set only lua modules with the matching sha1 signatures listed in this cvar will be allowed to load. Changing this cvar will cause all currently loaded modules to quit and be unloaded until maprestart/nextmap.


lua_modules xpsafe.lua dc.lua
For listen server users ONLY: Status command lua_status (see List of Commands) is only available when the server and a map are started. To load Lua scripts you have to put the scripts into a pk3 file.

Visit our Lua Scripting page for more info about scripting in Lua.

Map rotations

Map voting gametype 6

  • g_gametype
  • g_excludedMaps
  • g_mapVoteFlags
  • g_maxMapsVotedFor
  • g_minMapAge
  • g_resetXPMapCount

Multi view

Multi view is controlled by the server. See

  • g_multiview


You have to adjust these 2 cvars

  • omnibot_enable
  • omnibot_path (points to the path of Omni-bot library - not to omnibot mod!)

Use a relative path, or try an absolute path if the engine still can’t load the Omni-bot framework

Loading the framework

On windows, there are links in menu to start ET:Legacy with bots.
To start them on Linux, use the following parameters:

./etlded +set omnibot_enable 1 +set omnibot_path "./legacy/omni-bot" 

Ensure omni-bot is loaded by starting a local/listen server and checking for initialization messages in the console:

Omni-bot: Looking for ./legacy/omni-bot/, 
Omni-bot: Found Omni-bot: ./legacy/omni-bot/, Attempting to Initialize
Omni-bot: Omni-bot Loaded Successfully
ET autoexec script executed. 
Loaded Waypoints.
Bot Initialized in 0.16 seconds.
Omni-Bot Initialization completed in 0.17 seconds.

Configure Omni-Bot

Open console and enter

/bot minbots -1
/bot maxbots 16

Set the difficulty (1-6, default is 6) and move skill (1-4, default is 3)

/bot difficulty 4
/bot moveskill 3

Enable team balancing

/bot balanceteams 1

When bots are connecting, you may start to configure the bots as you like with the omnibot_flags cvar. See documentation.

Omni-Bot links

For more information, refer to:

Omni-Bot & ET: Legacy related notes

  • Currently the bot framework is installed in fs_basepath/legacy/omni-bot. This may cause issues when there is no write permission set for <fs_basepath>/legacy/omni-bot/et/user/omni-bot.cfg and SaveConfigChanges is set to 1 in that file. See #217
  • We would like to add more Omni-Bot control options to the menus. Any help is much appreciated - see #183
  • You can share the Omni-Bot install of ET:L with other mods. Just set the same value for the omnibot_path cvar in the mod config
  • If bots are connected but don’t leave the spawn area the navigation file (<map>.nav - see <fs_basepath>/legacy/omni-bot/et/nav) of map is missing. This shouldn’t occure on stock maps and many other maps

Downloads and external http server downloads

under construction

Client engine


To use the new renderer:

./etl +set cl_renderer opengl2

Note this is still work in progress. Use opengl1 to revert back to the default renderer.
Optionally set the renderers via GUI In menu OPTION→SYSTEM→Graphics→Renderer.


If you have hardware sound acceleration available, you might want to use openAL instead of the default DirectSound (Windows) or ALSA (Linux) for better positional audio information:

./etl +set s_initsound 2



Recording system

While watching a demo the user can output the demo to a more system acceptable format, such as an avi video file. The basic output command is cl_avidemo which will start the recording process with the given frames per second output and 0 value stops the recording. The cl_avidemotype value sets the output type that will be used, 0 = tga, 1 = jpeg and 2 being avi output. By default the type is set to tga(0). If the user wants to output an avi video file then there is also the /video command that starts the recording with the default file name and 30 FPS, but it does take in 2 arguments optionally in which the first is a file name and the second is the FPS of the output. /stopvideo stops the video output.
The outputted image files are found in the screenshots folders inside the mod folder while the avi video files are outputted in the videos folder.

Client legacy mod

HUD customization

Players can change their HUD "look and feel" by modifying the cg_altHud value (0 being the default). 1-3 are available by default and more can be added thru by hud scripts. There is also the cg_altHudFlags cvar that will, in the future change the current HUDs minor component locations relative to the customizable components. Minor components include the spawn counter, round counter and the FPS counter.

You can also load the supplied alternative huds or your own built hud using the loadhud command. loadhud ? to list huds available.

Clean command

Useful client & server command to remove incomplete downloads and other garbage. Get rid of custom menus, custom loading screens and unwanted behaviour when running own listen servers.


clean <mod> <pattern[1]> <pattern[n]


clean all *tmp */z*.pk3 *~*.pk3


Specify a single mod path to clean fs_homepath partially or 'all’ ('*' should work too) to clean up fs_homepath completely.

Patterns are quite similar to file search arguments on a common operating systems to match files. You can use wildcards '*' which make the clean command flexible.

Important note (the difference to file searches): If you are looking for files which start by a specific letter you have to add a wildcard (*) and a slash (/) before.

Example deleting all pk3 files starting with a 'z’ - it removes files like z_menu.pk3, zzz_mycustom.pk3:

clean all */z*.pk3


Whitelist entries have to match a part of a file name. You don’t have to use wildcards. Examples to keep MLB maps, baserace, v2_base etc. when you call 'clean all *.pk3’ (full pk3 clean up):

set com_whitelist "hdet mlb_ base" 


  • The clean command is only executed if the client isn’t connected to a server and a server isn’t running (no map loaded)
  • /clean won’t delete any files with the following extensions: .txt .cfg .dat .gm .way
  • /clean isn’t case sensitive


Clean does also remove old log files on server side f.e:

clean all *omnibot_*.log

We do recommend to create own config files for customized clean ups. Simply start with the above example. Put it into a *.cfg file and execute your config.