How to host a Call of Duty: United Offensive dedicated server

Call of Duty: United Offensivecoduo_lnxdedUDP 28960Updated 2026-07-25

United Offensive is an expansion, not a standalone game, and that single fact causes most UO server problems: the UO server needs the base Call of Duty paks as well as its own. Copy only the uo/ directory across and the server starts, loads nothing, and drops every connecting client.

What you need

Item Notes
CoD1 paks pak0.pk3pakb.pk3 in main/
UO paks uo_pak0.pk3 … in uo/
Dedicated binary coduo_lnxded (Linux) or CoDUOMP.exe +set dedicated 2
Patch 1.51
Map pack Official UO map pack
Ports UDP 28960 inbound

Both the 1.51 patch and the official map pack are on the war24.net downloads page.

Directory layout

/opt/coduo/
├── coduo_lnxded
├── main/                    # base Call of Duty paks, REQUIRED
│   ├── pak0.pk3 … pakb.pk3
│   └── localized_english_pak0.pk3 …
└── uo/                      # United Offensive content
    ├── uo_pak0.pk3 …
    └── server.cfg

The fs_game requirement

UO content lives in the uo gamedir, and the server only mounts it if you say so:

./coduo_lnxded \
  +set fs_game uo \
  +set fs_basepath /opt/coduo \
  +set fs_homepath /opt/coduo \
  +set dedicated 2 \
  +set net_port 28960 \
  +set rconpassword "change-me" \
  +exec server.cfg \
  +map mp_arnhem

Without +set fs_game uo you get a server running the base CoD1 content under the UO binary, which no UO client will join cleanly.

32-bit libraries

Same as CoD1, since it is the same engine generation:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y libc6:i386 libgcc-s1:i386 lib32stdc++6 libstdc++5:i386

server.cfg

Place it in uo/server.cfg:

seta sv_hostname "^3My ^7CoD:UO Server"
set rconpassword "change-me"
set g_gametype "tdm"
set sv_maxclients 32

set sv_pure 1
set sv_allowDownload 1
set sv_maxRate 25000
set sv_fps 20
set sv_timeout 60

set g_allowVote 1
set g_antilag 1
set scr_friendlyfire 0
set scr_killcam 1
set g_deadChat 1

set scr_tdm_timelimit 15
set scr_tdm_scorelimit 500

// vehicles are controlled per map, inside the rotation
set sv_mapRotation "gametype tdm map mp_arnhem allow_tanks 1 map mp_ponyri gametype dm map mp_berlin"
map_rotate

Like CoD1, the rcon cvar is rconpassword as one word, not rcon_password.

Vehicles in the rotation

UO added jeeps and tanks, and sv_mapRotation gained two tokens to control them per map:

set sv_mapRotation "gametype tdm map mp_ponyri allow_tanks 1 allow_jeeps 1 map mp_berlin allow_tanks 0"

The tokens apply to every map after them until changed. Details in the map rotation guide.

Gametypes

UO keeps the CoD1 set and adds three:

Code Gametype
dm Deathmatch
tdm Team Deathmatch
sd Search and Destroy
bel Behind Enemy Lines
re Retrieval
hq Headquarters
ctf Capture the Flag
dom Domination
bas Base Assault

Maps

UO ships 12 new maps plus mp_uo_* remakes of the CoD1 maps. Note the remakes have their own codes: Carentan is mp_uo_carentan, not mp_carentan. Full list on the United Offensive map list.

Getting listed

coduomaster.activision.com:20610 is the original master. As with the other classic titles, do not rely on it alone; publish your IP and verify reachability directly:

printf '\xff\xff\xff\xffgetstatus' | nc -u -w2 YOUR.IP 28960 | head -c 400

Common problems

Frequently asked

Does a United Offensive server need the base Call of Duty files?

Yes. UO is an expansion. The server needs the CoD1 paks in main/ as well as the UO paks in uo/, and must be started with +set fs_game uo.

How do I enable tanks and jeeps on specific UO maps?

Use the allow_tanks and allow_jeeps tokens inside sv_mapRotation. They apply to every map listed after them until changed.