How to Host an ET: Legacy Server (etlded Setup Guide 2026)
Run an ET: Legacy dedicated server with etlded: game files, etl_server.cfg, UDP port 27960, the legacy mod, Omni-bot bots and how players connect.
Updated Oct 7, 2026 · 7 min read
On this page
To host an ET: Legacy server, download the ET: Legacy server files from etlegacy.com, put the original pak0.pk3, pak1.pk3 and pak2.pk3 in etmain, and start the dedicated binary with ./etlded +exec etl_server.cfg (etlded.exe on Windows). Open UDP port 27960, set a name and passwords in etmain/etl_server.cfg, and players join with /connect your.ip:27960 from the console. Add +set omnibot_enable 1 +set omnibot_path "./legacy/omni-bot" if you want bots to fill empty slots.
The current release is 2.86.1, and the rest of this guide walks through each part with the real file names and commands.
What an ET: Legacy server needs
ET: Legacy is the open source engine and mod that keeps Wolfenstein: Enemy Territory alive. The server side is tiny by modern standards. The pieces are:
| Piece | What it is | Where it goes |
|---|---|---|
etlded / etlded.exe |
The dedicated server binary | Install folder (fs_basepath) |
pak0.pk3, pak1.pk3, pak2.pk3 |
Original 2003 game data, free but not bundled | etmain/ |
legacy/ folder |
The legacy mod: game code, Lua scripts, Omni-bot | Install folder |
etl_server.cfg |
Server and engine settings | etmain/ |
legacy.cfg |
Mod settings: voting, XP save, Lua, bots | etmain/ |
The pak files cannot ship with ET: Legacy because of the original game license. The Windows and Linux installers fetch them for you. If you use the plain archive on a server, copy them from any Enemy Territory 2.60b install or download the free game from Splash Damage. The ET: Legacy wiki notes that the legacy mod only strictly needs pak0.pk3, but some third party mods want all three.
One rule from the official FAQ saves a lot of pain: keep the pak files in the install folder only. If a copy also sits in the home path (~/.etlegacy on Linux), clients get ERROR: Connection aborted - corrupt/duplicate official pak file server installation.
Step 1: install the server files
On a Linux machine or VPS:
- Download the Linux 64 bit archive from the ET: Legacy download page.
- Unpack it to a folder of its own, for example
~/etlserver. Do not unpack over an old Enemy Territory install. - Copy
pak0.pk3,pak1.pk3andpak2.pk3into~/etlserver/etmain/. - Make the binary executable with
chmod +x etlded.
On Windows, run the installer and use etlded.exe from the install folder. Windows keeps your downloaded files and logs in Documents\ETLegacy, Linux keeps them in ~/.etlegacy.
Pick 64 bit unless you plan to run an old third party mod that only ships 32 bit files. A 64 bit client can only join servers running a mod with a 64 bit build, which the default legacy mod has.
Step 2: start it once
From the install folder:
./etlded +set dedicated 2 +exec etl_server.cfg
The shipped etl_server.cfg already sets dedicated "2" (internet server) and sv_advert "3", which sends heartbeats to the master server and statistics to Trackbase, so your server shows in the in game browser. It also runs exec legacy.cfg for the mod settings and exec mapvotecycle.cfg, which starts a map voting rotation on Oasis. If the console stops at an error about missing pak files, recheck step 1.
The archive also includes etlded_bot.sh, a wrapper that starts the server with Omni-bot switched on. Stop the server with quit in its console.
Step 3: edit etl_server.cfg
Open etmain/etl_server.cfg in a text editor. The settings most people change on day one:
set sv_hostname "^1Night ^7Shift ^1ET"
set sv_maxclients "24"
set g_password ""
set rconpassword "pick-a-long-secret"
set refereePassword "another-secret"
sv_hostname takes color codes like ^1 (red) and ^7 (white), with a limit of 26 visible characters. Leave g_password empty for a public server or fill it to make the server private. Values must be in quotes. Restart the server after every edit, because the file only loads at startup.
Every line of that file and of legacy.cfg is covered in ET: Legacy etl_server.cfg explained, including XP save, team balance and how the rotation files work.
Step 4: open UDP port 27960
ET: Legacy uses one UDP port, 27960 by default. At home, forward UDP 27960 on your router to the machine running the server; the general steps are in how to port forward a game server. On a Linux VPS with ufw:
sudo ufw allow 27960/udp
To run a second server on the same machine, give it its own port with +set net_port 27961 and open that one too. If your home connection is behind CGNAT, port forwarding will not work at all; these options cover what does.
Step 5: add Omni-bot
Omni-bot ships inside legacy/omni-bot. Start the server with:
./etlded +set omnibot_enable 1 +set omnibot_path "./legacy/omni-bot" +exec etl_server.cfg
The console should print Omni-bot Loaded Successfully and Loaded Waypoints. when a map loads. Then set the bot count from the server console (or with /rcon from the game):
bot minbots -1
bot maxbots 12
bot difficulty 4
bot balanceteams 1
Difficulty runs from 1 to 6 (6 is the default and plays rough), and maxbots is the total of humans plus bots the server aims for, so bots leave as people join. Custom maps only get bots if someone made waypoints for them. Note that the shipped legacy.cfg also contains set omnibot_enable "1", so if you want bots off for good, set it to 0 there as well.

Step 6: connect and test
Players install ET: Legacy for free from etlegacy.com (the installer fetches the original game data). To join:
- Start ET: Legacy and press the tilde key (
~) to open the console. - Type
/connect 203.0.113.10:27960with your server's address and press Enter. - If the server has a password, first type
/password yourpassword.
The server also appears under Play Online in the browser once its heartbeat reaches the master server, which can take a minute after startup. Log in as admin with /rconpassword pick-a-long-secret and then send commands like /rcon map goldrush, or become referee with /ref another-secret to pause, lock teams or swap sides during a scrim.
The legacy mod, Lua and WolfAdmin
Most ET: Legacy servers run the bundled legacy mod, and that is what loads when you do not pass +set fs_game. It adds Lua scripting, XP save, skill rating and modern fixes. The shipped legacy.cfg loads one Lua module by default:
set lua_modules "luascripts/wolfadmin/main.lua"
That is WolfAdmin, an admin suite with ! commands and greetings. Add more scripts from the official ET: Legacy lua_scripts repository by copying them into legacy/ and listing them in lua_modules, separated by spaces. Run lua_status in the console to check what loaded.
Older mods like ETPro can run on an ET: Legacy server, but the ETPro anti cheat blocks ET: Legacy clients, so stick with the legacy mod unless your community still plays on 2.60b clients.
How much server do you need
ET dates from 2003. A 24 slot server with bots uses well under a gigabyte of memory, and a steady single CPU core with good network routing matters more than RAM. Rough sizing:
| Server | RAM |
|---|---|
| Clan server for scrims | 1 GB |
| Public server with Omni-bot and a custom map list | 2 GB |
| Heavily scripted Lua setup with a big map pool | 4 GB |
The quicker way
Running etlded yourself is not hard, but you are on the hook for the PC staying on, the port forward and updates. A GamezServers ET: Legacy server is live with its own address within about a minute of paying. The panel has the Default Map, an Enable Omnibot switch and the 32 or 64 bit build, the file manager and SFTP give you etl_server.cfg and the legacy folder, and the live console takes bot and map commands directly. Backups are one click, DDoS protection is always on, and a clan can split the bill with up to 10 people.
When you start adding community maps, how to add custom maps to an ET: Legacy server covers pk3 placement and fast downloads.

FAQ
What port does ET: Legacy use?
UDP 27960 by default. Change it with +set net_port on the command line or set net_port in etl_server.cfg, and open the same port on your firewall.
Do players need to buy Wolfenstein: Enemy Territory?
No. Enemy Territory was released for free in 2003 and ET: Legacy is free and open source. The ET: Legacy installer downloads the original game data for players.
Can vanilla 2.60b players join an ET: Legacy server?
Yes. ET: Legacy stays compatible with Enemy Territory 2.60b clients, as long as the server runs a mod they can load. Version 2.55 clients are not supported.
Why does my server not show in the server browser?
Check that dedicated is 2, sv_advert is not 0, and UDP 27960 is open. Players can always join by address with /connect while you sort it out.
Should I use the 32 or 64 bit server?
64 bit for almost everyone. Pick 32 bit only for an old third party mod that ships nothing but 32 bit files.
Skip the setup. Your own ET Legacy server.
Then $2.99/mo. Just trying it? $0.75 for 3 days