Skip to content

Mods

How to install and manage mods on your CoD1 dedicated server.

How CoD1 Mods Work

CoD1 mods use .pk3 files, standard ZIP archives with a .pk3 extension. They contain maps, textures, sounds, models, and game scripts.

The engine loads .pk3 files in alphabetical order, with later-alphabetically-named files taking priority. This is why many mods prefix their files with z_, which ensures they override base game assets.

Simple Asset Mods

Small mods that only add or replace assets (custom maps, skins, sounds) can be placed directly in main/. The engine loads them automatically on startup with no fs_game change needed.

Full Mods (Separate Game Directory)

Larger mods that replace gameplay logic use the fs_game CVar to point the engine at a subdirectory:

ini
set fs_game "mods/mymod"

When active, the engine loads assets from mods/mymod/ first, then falls back to main/.

Installing a Mod

Simple Asset Mods (PK3 Files)

  1. Upload the .pk3 file to the main/ directory via SFTP.
  2. Restart the server. The assets are loaded automatically.

Full Mods (Custom fs_game)

  1. Connect via SFTP and create the directory mods/<modname>/.
  2. Upload all mod files into this directory.
  3. Set the mod in your server.cfg:
    ini
    set fs_game "mods/<modname>"
  4. Restart the server from the dashboard.

Mod Directory Structure

A typical full mod directory looks like this:

mods/mymod/
  z_mymod.pk3      -- Mod assets and scripts
  server.cfg       -- Mod-specific server config (optional)

Unlike CoD2, CoD1 mods do not require a compiled mod.ff fast file. The .pk3 files contain everything the engine needs.

Removing a Mod

Clear the fs_game CVar in server.cfg:

ini
set fs_game ""

Restart the server to return to vanilla.

File Downloads and FastDL

When players connect to a server running a mod, they need to download the mod files. CoD1 supports two download methods:

UDP Download (Default, Slow)

The game server sends files directly over UDP. This is extremely slow, often limited to 12–25 KB/s. Not practical for large mods.

Files are served from an HTTP web server at full speed. uHost configures FastDL automatically using a built-in HTTP server. No setup is required.

To enable downloads, make sure this is in your server.cfg:

ini
set sv_allowDownload "1"

If you need to use a custom download server instead of the built-in one:

ini
set sv_wwwDownload "1"
set sv_wwwBaseURL "http://your-download-server.com/cod/"
set sv_wwwDlDisconnected "0"

Setting sv_wwwDlDisconnected "1" disconnects the player from the server while downloading, then reconnects them automatically. Set to "0" to keep players connected during download.

The HTTP server directory must mirror your game server's file structure:

server/
  mods/
    mymod/
      z_mymod.pk3

File Purity (sv_pure)

The sv_pure setting controls whether the server validates client files:

ValueBehaviour
1Clients must have matching .pk3 files. Modified or extra files cause a kick.
0No file validation. Clients can have modified files.

For competitive environments, keep sv_pure "1". For casual servers where players use custom skins or textures, set it to "0".

WARNING

With sv_pure "1", any .pk3 file on the server that isn't also on the client will trigger a kick. Avoid leaving stray .pk3 files in your main/ directory.

ModDescription
AWEAdditional Weapons & Equipment — adds new weapon variants and equipment.
MercilessCompetitive mod with admin tools and match support.
ZmodZombie mode conversion for CoD1.
CoD Realism ModRealistic damage and movement changes for a more authentic experience.

Troubleshooting

"Extra PK3 Files Detected" / Client Kicked on Connect

Stray .pk3 files exist on the server that clients don't have (common with sv_pure "1"):

  1. Check main/ for unexpected .pk3 files.
  2. Remove anything that isn't part of the stock game or your active mod.
  3. Restart the server.

Mod Fails to Load

  • Verify the fs_game path matches the directory name exactly (case-sensitive on Linux).
  • Ensure the .pk3 files are inside the mod directory, not nested in a subdirectory.
  • Check the server console logs for error messages.

Players Stuck Downloading

  • Confirm sv_allowDownload "1" is set.
  • FastDL should be working automatically on uHost. If you've overridden sv_wwwBaseURL, verify the URL is reachable and the directory structure matches.
  • Very large mod files may take a while even with FastDL.

Stop Paying for Empty Servers.