Running a Server

Killing Floor Fast Download: Fix Slow Map Downloading

Nothing is worse than joining a server and staring at a "Downloading package..." screen that moves at 10KB/s. This guide explains why this happens and how to fix it.

Why is it so slow? (The Technical Reason)

By default, Unreal Engine 2 games download files directly from the game server process (UDP channel). This is incredibly slow and caps out at very low speeds (~10-15KB/s).

The Solution: HTTP Redirect (FastDL)

Good servers (like ours) use HTTP Redirect.

  1. When you connect, the server tells your game: "Don't download from me. Go to this URL."
  2. Your game connects to a high-speed web server (Nginx/Apache).
  3. You download the map at full speed (100MB/s+).
  • Check your firewall. It might be blocking the HTTP connection from the game.
  • Check your KillingFloor.ini. Ensure AllowDownloads=True.

Download progress goes past 100%

From the killingfloor.ru forum "File compression" thread (2012). After moving to compressed files on a redirect host, the download percentage kept climbing past 100% (49588% and up). The explanations from the thread:

  • The files differ. The client checks the file on the game server first and only then on the fast download host. If the percentage goes past 100%, the client sees the file on the redirect host but considers it a mismatch: for example, ServerPerks was changed on the server, but a new compressed copy was never uploaded (warpel, Flame).
  • Letter case on Linux. If the file is on the FTP but the client stubbornly ignores it and downloads from the server up to 100%, and the FTP or the server runs Linux, check the case of the names: both the file names and how the mutator file is spelled versus its class (for example, the file kfmutator and the class KFMutator).

How it should be set up (Flame): the mutator file, for example KFMutator.u (plus KFMutator.ucl), stays on the server; an archive KFMutator.u.uz2 is made from KFMutator.u and uploaded to the FTP, and the path to it goes into KillingFloor.ini:

[IpDrv.HTTPDownload]
RedirectToURL=http://ftp.*****.org/KillingFloor/

http:// or ftp:// in RedirectToURL. From the killingfloor.ru forum thread "Проблема подключения. Хостинг виноват?": an admin uploaded .uz2 files to a free web host and set RedirectToURL=ftp://kf.besaba.com/kf/; the advice was to use RedirectToURL=http://kf.besaba.com/kf/. The rule from the thread: write the protocol under which the folder actually opens in a browser. In the end both variants worked for the author; over FTP the browser asked for a login and password, while over HTTP the file list opened right away.

https:// in RedirectToURL. From the "Проблемы с Dropbox" (Problems with Dropbox) thread on the killingfloor.ru forum: a redirect to https://dl.dropboxusercontent.com/... used to work, then stopped, although the link opened in a browser. The client log showed that the game adds port 80 to the address:

Log: Download redirection to: https://dl.dropboxusercontent.com:80/u/187890151/killingfloor/DZMonsterPack.u.uz2

Writing :443 in by hand did not help; the redirect still went to port 80. That :80 address gave an SSL error in a browser, while with http instead of https the link opened. The thread found no fix; the author was pointed to a thread offering free FTP/HTTP hosting for redirects.

What to put on the redirect besides maps

From the killingfloor.ru forum "Быстрая закачка" thread (2012). Other files are no different from maps and go on the fast download the same way:

  • Upload the resources from the Animations, Maps, Sounds, StaticMeshes, Textures and System folders (from System, only the .u files).
  • Always compress them to .uz2, otherwise clients will download from the game server "at a snail's pace".
  • kf_gore_trip_sm.usx is a stock game file and does not need to go on the redirect: it is only downloaded when the client version differs from the server version.
  • A check that the game sees the redirect: if a package is 1 MB and its .uz2 is 300 KB, the download should show 300 KB. If it shows 300 KB but downloads slowly, the web server is the problem; if it shows the full size, the game does not see the redirect.

How to Install Maps Manually

If downloading ingame fails or is stuck, you can install files manually.

  1. Find the Map: Search for the map name on Google (e.g., "KF-Defence-B2 download").
  2. Download it: You usually get a .rom file (Map), .utx (Textures), or .ukx (Animations).
  3. Place it in the folder:
    • Maps (.rom) -> KillingFloor/Maps
    • Textures (.utx) -> KillingFloor/Textures
    • Sounds (.uax) -> KillingFloor/Sounds
    • Music (.ogg) -> KillingFloor/Music
    • Static Meshes (.usx) -> KillingFloor/StaticMeshes
    • System (.u, .int) -> KillingFloor/System (Be careful overwriting System files!)

Cache Folder Tip

When you download from a server, files go into the Cache folder, not Maps.

  • Location: KillingFloor/Cache/
  • Index: The file cache.ini links the weird filenames (e.g., 45A2C...) to real names.
  • Tool: You can use "KF Cache Extractor" tools to convert these cached files into real files if you want to play them offline in Solo.