Short answer. You can host an ET: Legacy server yourself for free: download the ET: Legacy Linux archive from etlegacy.com, copy pak0.pk3, pak1.pk3 and pak2.pk3 from Splash Damage's free Wolfenstein: Enemy Territory download into etmain, then start etlded.x86_64 on UDP port 27960. Or rent an ET: Legacy server and skip the downloads and the networking.
Players find your server in the in-game server browser, because a server set to dedicated "2" and sv_advert "3" sends heartbeats to the master server. The default config already has both.
Checked on 5 November 2026 against ET: Legacy 2.86.2, the newest stable release on etlegacy.com (published 11 October 2026).
This guide uses the ET: Legacy project's own wiki, its source code and the default config files in the 2.86.2 archive, plus the install and startup settings of the ET: Legacy servers we host. To skip to the rental route, go to Option 2.
What you need
The server software: the ET: Legacy Linux archive from etlegacy.com/download. It comes as a 64-bit (x86_64) or a 32-bit (i386) build. The project's wiki says the 64-bit client can only join servers running 64-bit mods, such as the default Legacy mod, so pick the 32-bit build only if you need a 32-bit-only mod.
The original game files:pak0.pk3, pak1.pk3 and pak2.pk3 from Wolfenstein: Enemy Territory. The ET: Legacy wiki says you can download them legally and for free from Splash Damage's Wolfenstein: Enemy Territory page. No Steam account is needed.
A machine that stays on: a spare PC, a home server or a cloud virtual machine. This guide uses Debian or Ubuntu Linux.
A player cap: the default etl_server.cfg sets sv_maxclients "24", the number of players including private slots, and reserves 4 of them with sv_privateclients "4".
Network: the game port, UDP 27960 by default (net_port), reachable from the internet.
Option 1: host it yourself
Install the server
Download and unpack the archive from etlegacy.com/download. For 2.86.2 the 64-bit file is etlegacy-v2.86.2-x86_64.tar.gz.
mkdir -p ~/etlegacy
cd ~/etlegacy
tar xvf etlegacy-v2.86.2-x86_64.tar.gz --strip-components=1
The --strip-components=1 puts the server program etlded.x86_64 and the etmain and legacy folders straight into ~/etlegacy.
Add the original game files. The archive does not contain them. On Splash Damage's Wolfenstein: Enemy Territory page, download the Linux file et260b.x86_full.zip into ~/etlegacy. It holds an installer, et260b.x86_keygen_V03.run, and the three pak files are inside it. From ~/etlegacy, this takes them out into etmain:
Edit the server config. The archive ships etmain/etl_server.cfg with a comment on each setting. Set at least these lines (the last two already have these values). The project's wiki says values must be in quotation marks.
set sv_hostname "My ET server"
set sv_maxclients "24"
set g_password ""
set rconpassword "choose-a-long-password"
set dedicated "2"
set sv_advert "3"
Leave rconpassword empty to keep remote console off. Set g_password for a private server. The config notes that sv_hostname is at most 26 characters without color codes.
Open the port
Game: 27960 is the default of net_port, and the engine's network code uses UDP. Allow UDP 27960 on the machine's firewall (on Ubuntu with ufw: sudo ufw allow 27960/udp) and forward it on your router.
A different port: uncomment //set net_port "27960" in the config and change the number, or pass +set net_port 27961 on the command line.
Start it and join
Start the server from ~/etlegacy. This is the start command from the project's wiki, with the archive's file name and the port added:
It is ready when the console prints Game Initialization completed in. Run it under a service manager such as systemd so it restarts after a crash.
Omni-bot:omnibot_enable 1 loads the bots that ship in the archive. If it loaded, the console shows Omni-bot Loaded Successfully. To add bots, open the console and enter /bot minbots -1 and /bot maxbots 16. Set omnibot_enable 0 if you want humans only.
Join it. Start ET: Legacy and look for your server name in the server browser.
Update by unpacking the new release into a new folder, copying your three pak files and your edited config files into its etmain, and starting the server from there. The project's FAQ says not to overwrite a previous ET: Legacy version.
Map rotation
The default config already has a rotation. Near its end, etl_server.cfg runs exec mapvotecycle.cfg, which sets g_gametype 6 (map voting) and starts on oasis. When nobody votes, the next map follows the list battery, goldrush, radar, railgun and fueldump; otherwise the map with the most votes is played. For campaigns instead, put // in front of that line and remove it from //exec campaigncycle.cfg, which uses g_gametype 4. Change the last line, set com_watchdog_cmd "exec mapvotecycle.cfg", to the same cycle file, because the server runs it to recover when it is left with no map. The cycle files are in etmain, so you can edit the map lists there.
Option 2: host it on PlayNHost
Renting removes the downloads, the pak files, the port forwarding and the update routine. You still choose a map, a password and your rules.
Pick a plan. Open the ET: Legacy server hosting page and compare the plans: MEDIC (16 players), FIELDOPS (24) and COVERT (32) at the time of writing. Press Create Server (on COVERT the button says Customize Plan) and finish the order. Prices change, so check them on that page.
Wait for the install. The server appears in the panel. Its Console prints Game Initialization completed in when it is ready.
Choose your settings. On the Settings tab you will find Default Map, Enable Omnibot and RCON Password. Change them and restart. RCON stays off until you set a password, and the panel's console box works either way.
Set the rotation. The server loads the Default Map and then runs etmain/etl_server.cfg, which as shipped runs exec mapvotecycle.cfg near its end and so moves to map voting from oasis. To change the rotation, or to stay on your own map, edit that line and the cycle files on the Files tab. Other cvars go in the same file.
Invite your players. The server lists itself on the public server browser as soon as it boots, with no token or extra step, so players can search for its name.
What the panel does for you:
It downloads the current ET: Legacy archive and the Splash Damage game files when the server is installed, unpacks the pak files into etmain and creates the .etlegacy folder.
It sets net_ip to 0.0.0.0 and net_port to the port assigned to your server in etmain/etl_server.cfg, and at every start it rewrites the sv_maxclients line to your plan's player number and the rconpassword line to the RCON Password you chose. A value you type into those two lines is replaced at the next start, so set the RCON password in the panel; the player number follows your plan. The port is never a thing you forward.
The ET Legacy Version setting chooses the 64-bit (the default) or the 32-bit build when the server is installed.
Self-hosting or renting: an honest comparison
Cost: the server software and the original game files are free. Self-hosting costs power, hardware and bandwidth, or a cloud machine. Renting is a monthly fee set by the plan.
Uptime: a home server is only up while your PC, power and internet are. A rented server runs on the host's hardware.
Exposure: at home, players connect to your public IP address and you look after the firewall and router. A rented server keeps your home IP out of it.
Setup: self-hosting needs the command line, two downloads from two sites, port forwarding and your own updates. Renting needs a map, a password and an RCON choice.
Control: self-hosting gives you every file. On our servers the panel manages the port and two config lines, and you still have the Files tab for everything else.
We use cookies to keep the site working, to understand how it is used, and to measure our marketing. You can accept all, accept essential cookies only, or choose per category.We use cookies to keep the site working, to understand how it is used, and to measure our marketing. They are on by default here. You can switch off anything you do not want.Read our privacy policy