Etlegacy
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license.
Install / Use
/learn @etlegacy/EtlegacyREADME
ET: Legacy


A second breath of life for Wolfenstein: Enemy Territory
- Website: https://www.etlegacy.com
- Downloads: https://www.etlegacy.com/download
- Wiki/FAQ: https://github.com/etlegacy/etlegacy/wiki
- Development: https://github.com/etlegacy/etlegacy
- Assets Repository: https://drive.google.com
- Documentation: https://etlegacy.readthedocs.io/
- Lua API: https://etlegacy-lua-docs.readthedocs.io
- Translation: https://app.transifex.com/etlegacy/etlegacy
- Contact: #etlegacy on irc.libera.chat and etlegacy/#etlegacy on Discord.
- SignPath: etlegacy on SignPath
INTRODUCTION
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3.
There are two aspects to this project:
- An updated game engine, ET: Legacy, which aims to fix bugs and security exploits, remove old dependencies, add useful features and modernize its graphics while still remaining compatible with ET 2.60b and as many of its mods as possible.
- A new mod, Legacy, which aims to add many useful features and improvements while staying close to the original gameplay, as well as being lightweight and extensible through Lua scripts.
For more information consult our wiki.
CONTRIBUTING
See CONTRIBUTING.
SECURITY POLICY
See SECURITY.
CERTIFICATE SIGNING
ET: Legacy Windows installers are now signed thanks to SignPath Foundation
GENERAL NOTES
Game data
Wolfenstein: Enemy Territory is a free release, and can be downloaded from Splash Damage.
This source release contains only the engine and mod code but not any game data, which is still covered by the original EULA and must be obeyed as usual.
In order to run ET: Legacy you will need to copy the original pak0.pk3 assets file to the etmain folder. In addition, third party mods might also require the pak1.pk3 and pak2.pk3 assets files.
Compatibility with Enemy Territory 2.60b
ET: Legacy remains compatible with the ET 2.60b version as much as possible.
Please note that ET: Legacy is not compatible with PunkBuster enabled servers. ET: Legacy clients also cannot connect to servers running the ETPro mod.
Linux 64 bit
Please remember that 64 bit ET: Legacy clients can only connect to servers running mods providing a 64 bit version. You will be able to play 32 bit-only mods only if you compile ET: Legacy on a 32 bit system or cross-compile it for 32 bit architecture on a 64 bit system.
At the moment, only the ETrun, ETJump, N!tmod and Legacy mods are available in 64 bit version, while all other existing mods are available in 32 bit only version. Read more on the Compatible mods wiki page.
In case you are a running a 64 bit system, you probably might want to use the
bundled libraries which are located in a separate etlegacy-libs repository and
can be automatically downloaded using the git submodule command. See the next
section for more details.
DEPENDENCIES
Required:
- CMake (compile-time only)
- OpenGL
- GLEW
- SDL
- ZLib
- MiniZip
- libjpeg-turbo or libjpeg
Optional, enabled by default:
- libcurl
- WolfSSL or OpenSSL
- Lua
- Ogg Vorbis
- Theora
- Freetype
- libpng
- SQLite
- OpenAL
Grab info about current lib versions from our Libs Changelog wiki page.
To get the latest source code install git and clone our repository hosted at Github.com:
$ git clone git@github.com:etlegacy/etlegacy.git
If the required dependencies are not installed on your system run:
$ git submodule init
$ git submodule update
This downloads the essential dependencies into the libs/directory. You can choose
whether to use bundled libraries instead of the system ones by changing the
BUNDLED_LIBS variable in the CMakeList.txt configuration file. You can then select
which bundled libraries to use by toggling the respective BUNDLED_XXX variable.
COMPILE AND INSTALL
To install the binaries system-wide, you need to compile ET: Legacy with hardcoded
fs_basepath.
The following variables can be adjusted in CMake:
-
INSTALL_DEFAULT_BASEDIR: sets defaultfs_basepath, i.e. where etl and etlded executables look for data files. In most cases it isCMAKE_INSTALL_PREFIX+INSTALL_DEFAULT_MODDIR. Defaults to empty value, because we wantfs_basepathto be the current working directory when not installing the game system-wide. -
(optional)
INSTALL_DEFAULT_BINDIR: Location for executables. Appended toCMAKE_INSTALL_PREFIX. Defaults tobin. -
(optional)
INSTALL_DEFAULT_SHAREDIR: Location for shared data. Appended toCMAKE_INSTALL_PREFIX. Defaults toshare. -
(optional)
INSTALL_DEFAULT_MODDIR: Location for libraries and paks. Appended toCMAKE_INSTALL_PREFIX. Defaults tolib/etlegacyand thenlegacyis appended to it. -
(optional)
DOCDIR: Location for documentation. Defaults toINSTALL_DEFAULT_SHAREDIR/doc/etlegacy.
Linux
Install required dependencies.
- option A: easybuild
In terminal, run one of the following:
$ ./easybuild.sh # for compiling a 32 bit version or
$ ./easybuild.sh -64 # for compiling a 64 bit version
ET: Legacy will be installed in ~/etlegacy.
- option B: command line
In terminal, run:
$ mkdir build && cd build && cmake ..
To compile, run:
$ make
If you wish to install ET: Legacy system-wide, run:
$ make install
Be sure to set the CMake variables (see above) beforehand.
NOTES:
-
Even if you have a 64 bit linux distribution which provides 32 bit versions of all the required libraries, you might also need the development libraries (-devel packages) installed on your system.
-
In order to compile the jpeg-turbo library properly you will need the nasm assembler.
-
On some systems, CMake might have trouble locating 32-bit libraries and tries to use 64-bit ones when building 32-bit. This can be fixed by setting the following enviromental variables before running CMake (note: running easybuild takes care of this for you)
$ export CC="gcc -m32"
$ export CXX="g++ -m32"
# or simply run cmake with
$ CC="gcc -m32" CXX="g++ -m32" cmake ..
- If you are using X11 and experience:
- missing sound (
SDL_Init( SDL_INIT_AUDIO )... FAILED (dsp: No such audio device)in console):- install
libpulse-dev(PulseAudio) orlibasound2-dev(ALSA) package and rebuild the project.
- install
- weird mouse acceleration input:
- install
libxi-devpackage and rebuild the project.
- install
- missing sound (
Crosscompiling on Linux with MinGW-w64
In terminal, run:
$ mkdir build && cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-cross-mingw-linux.cmake ..
$ make
By default, MinGW name is set to i686-w64-mingw32. You may have to change it in
cmake/Toolchain-cross-mingw-linux.cmake depending on how it is called on your system.
Windows
Install:
- Visual Studio Community with the Desktop Development with C++ workload
- CMake and make sure it is added to your system PATH
-
option A: easybuild
- run easybuild.bat
ET: Legacy will be installed in My Documents\ETLegacy-Build.
-
option B: Visual Studio
- create a
builddirectory inside the directory which contains ET: Legacy sources - open Visual Studio Command Prompt in the Start menu
- change directory with
cdto the newly created build directory
- create a
In the command prompt, run:
$ cmake -G "NMake Makefiles" -DBUNDLED_LIBS=YES .. && nmake
or
$ cmake -G "Visual Studio 16" -A Win32 -DBUNDLED_LIBS=YES .. # Visual Studio 2019
# or "Visual Studio 17" for Visual Studio 2022
and open the resulting project in Visual Studio.
NOTES:
-
If compilation of bundled libraries is aborted for any reason, you will probably need to clean the libs directory and start over. This can be done by executing
git clean -df && git reset --hard HEADinsidelibs/directory. -
If the build fails during libcurl compilation because of missing sed utility, download it from [GnuWin](http://gnuwin32.source
Related Skills
node-connect
339.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
