Short answer. You can host an Urban Terror server yourself for free: run the official UrTUpdater dedicated-server script on Linux to download version 4.3.4, copy server_example.cfg to server.cfg, start Quake3-UrT-Ded.x86_64 and open UDP port 27960. Or rent an Urban Terror server and skip the networking.
Players find your server by name in the in-game server list: with dedicated 2 the server reports itself to the master servers set in server.cfg.
Checked on 5 November 2026 against Urban Terror 4.3.4, the newest version the official updater offered.
This guide uses three sources: the official UrTUpdater and the files it downloads (server_example.cfg and mapcycle_example.txt), FrozenSand's own engine source (ioq3-for-UrbanTerror-4) for the default port and the master server behaviour, and the install our panel runs for every Urban Terror server. To skip to the rental route, go to Option 2.
What you need
The server software: Urban Terror 4.3.4 dedicated server files, downloaded by the official updater. The updater's version list shows 4.3.4 as the latest, dated 21 June 2018. Do not install 4.3 over an older version: the official download page recommends an empty folder.
A machine that stays on: a spare PC, a home server or a cloud virtual machine. This guide uses 64-bit Linux, which is what we run. We have not tested a Windows server.
Tools for the updater:curl and xmllint (the libxml2-utils package on Debian and Ubuntu). The updater refuses to start without either of them.
RAM and CPU: the developer does not publish server requirements, so treat any figure you read elsewhere as an estimate.
A player cap: set with sv_maxclients. The official example config says more than 16 is not advised and that going over 24 can cause nasty bugs.
Network: UDP 27960 for the game, reachable from the internet. That is the default server port in FrozenSand's engine source, the ioquake3 engine they maintain for Urban Terror 4.
Option 1: host it yourself
These steps are for Debian or Ubuntu. The updater script and the file names are the ones our own install uses.
The first run must be interactive: with -q the script stops with "Initial run must be interactive". It shows the licence and asks whether you accept it. It then asks you to choose a version (pick 4.3.4 (latest)), a download mirror, an engine (pick Quake3-UrT (default)), and whether to update automatically. If you answer n to automatic updates, it asks whether to download the update now: answer y. The download is about 1.5 GB. At the end it asks whether you would like to play now: answer n, because that starts the game client, not the server. Later, bash UrTUpdater-Ded.sh -q checks for and downloads updates without questions (the script's help says it is for cron use). Stop the server before you run it.
Make sure the server binary is executable (the updater normally does this already).
chmod +x Quake3-UrT-Ded.x86_64
Write the settings
Copy the example files the updater put in the q3ut4 folder:
Edit q3ut4/server.cfg. These are the lines you will change first, with the names the example file uses:
set sv_hostname "My Urban Terror server"
set sv_joinmessage "Welcome, have fun!"
set sv_maxclients "16"
set rconpassword "a-long-password"
set g_password ""
set g_gametype "7"
set g_friendlyfire "1"
set timelimit "20"
Leave g_password empty for a public server. The example file's comments list the game types: 0 Free For All, 1 Last Man Standing, 3 Team DeathMatch, 4 Team Survivor, 5 Follow The Leader, 6 Capture And Hold, 7 Capture The Flag, 8 Bomb Mode, 9 Jump, 10 Freeze Tag and 11 Gun Game. For g_friendlyfire, 0 is off, 1 is on with a kick after too many team kills, and 2 is on with no kicks.
Know what the maps do. The last line of server.cfg, map ut4_casa in the example, is the map the server starts with. The mapcycle.txt file lists the maps the server plays in turn after that. The example list starts with ut4_turnpike and ut4_paris.
Open the port
Game: allow UDP 27960 on the machine's firewall (for example sudo ufw allow 27960/udp) and forward it on your router.
Server list: the example config keeps sv_master2 and sv_master3 pointed at master.urbanterror.info and master2.urbanterror.info. Leave them as they are so the server can reach the master servers.
The server is up when the log prints ------- Game Initialization -------. Run it under a service manager such as systemd so it restarts after a crash. Keep dedicated 2: in the engine source, only a server started with dedicated 2 sends heartbeats to the master servers (dedicated 1 is for LAN play).
Join it. Open Urban Terror, go to the server list and look for the name you set in sv_hostname.
Update by stopping the server and running bash UrTUpdater-Ded.sh again.
Option 2: host it on PlayNHost
Renting removes the install, the updater script, the firewall and most of the config file editing. You still choose a name, a map, a game type and your rules.
Pick a plan. Open the Urban Terror server hosting page and compare the plans: RECON (16 players), ASSAULT (24) and SPECOPS (32) at the time of writing. Press Create Server (Customize Plan on SPECOPS) 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 ------- when it is ready.
Name it. On the Settings page, open Game Settings and set the Server Hostname and the Join Message. For a private server, set a Server Password. Then restart.
Choose your rules in the same card: Max Players, Gametype / Gamemode, Map Timelimit, Friendlyfire and Bots. Restart to apply them. Map is written into server.cfg only at the server's first start; to change the starting map later, edit the last line of q3ut4/server.cfg (map "ut4_casa" by default) in the Files tab and restart.
Add admin control. Set an RCON Password if you want to run rcon commands from the game or an outside tool.
What the panel does for you
Install and files: the server is installed with the same official updater, version 4.3.4, and server_example.cfg and mapcycle_example.txt are already renamed to server.cfg and mapcycle.txt. You never answer the updater's questions.
Port: your port is assigned and passed to the server as net_port at every start. You do not open anything.
Settings: the panel rewrites the hostname, join message, player cap, RCON password, server password, friendly fire, game type, time limit and bot minimum in server.cfg at every start. Change them in the panel, not in the file, or your edit to those lines is replaced. The starting map is written only at the first start, so after that the map line is yours to edit.
Bots: the install adds bot_enable 1 and bot_minplayers 0 to server.cfg. The Bots field sets bot_minplayers, and its default is 0. The Gametype / Gamemode field accepts 1 to 11, so Free For All (0) is not offered. Friendlyfire allows at most 1, so the no-kick mode (2) is not offered.
Maps:Map sets only the map the server boots into, and the panel writes it into server.cfg only at the first start. When each map ends (for example when the Map Timelimit runs out), the game moves to the next map in mapcycle.txt on its own, so edit that file in the Files tab to change the rotation.
Console and RCON: the console box on your server's page works without an RCON password. RCON itself stays off until you set one.
Self-hosting or renting: an honest comparison
Cost: the server software is 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, the updater, a hand-edited server.cfg and an open UDP port. Renting needs a name, a game type and a map.
Control: self-hosting gives you every cvar in the 26 KB example config. On our servers you change the main ones in the panel and still have the Files tab for server.cfg extras and mapcycle.txt.
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