Christmas Patriarch

Killing Floor SDK: Complete Map Making Guide

Want to create your own Killing Floor map? The game uses Unreal Editor 2.5 (based on Unreal Tournament 2004 technology). This guide will take you from zero to a fully playable map.

Part 1: Installation & Setup

Installing the SDK

  1. Open Steam Library.
  2. In the dropdown menu (where it says “Games”), select Tools.
  3. Find Killing Floor SDK and install it (~2GB).
  4. Launch it from Steam or from KillingFloor/System/UnrealEd.exe.

First Launch

When you first open Unreal Editor, you will see:

Performance Tip

If the editor is slow, go to View -> Preferences and reduce the “Grid Size” to 16 or 8. Large grids can lag on old machines.


Part 2: Navigation Controls

The camera controls in Unreal Editor 2.5 feel unusual to modern users. Practice these in the 3D viewport:

ActionControl
Move Forward/Backward + TurnLeft Mouse Button + Drag
Look Around (Free Rotation)Right Mouse Button + Drag
Strafe (Move Up/Down/Left/Right)Both Mouse Buttons + Drag
Zoom In/OutMouse Scroll Wheel
Teleport Camera to SelectionHome key

Tip: Use the orthographic views (Top, Front, Side) for precise placement, and the 3D view for checking how it looks.


Part 3: Understanding Subtractive Geometry (BSP)

Unreal Engine 2 uses Subtractive BSP (Binary Space Partitioning). This is fundamentally different from modern engines like Unity or Unreal Engine 5.

The Concept

The Red Builder Brush

The red wireframe shape you see is the “Builder Brush” — your cookie cutter.


Part 4: Creating Your First Room

Step 1: Set the Builder Brush Size

  1. On the left toolbar, find the Cube icon.
  2. Right-click on it to open properties.
  3. Set Height, Width, Breadth to 1024 each (a 1024x1024x1024 room).
  4. Click Build.

Step 2: Subtract the Room

  1. Position the red Builder Brush where you want the room (use orthographic views).
  2. On the left toolbar, click the “Subtract” button (cube with a hole/minus sign).
  3. A blue-purple wireframe appears — this is your subtracted space (the room).

Step 3: Verify

Press F8 to rebuild geometry, or go to Build -> Build Geometry. Then check the 3D viewport — you should see a hollow cube.


Part 5: Adding Textures

A gray room is boring. Let’s add textures.

Opening the Texture Browser

  1. Go to View -> Texture Browser (or press the Texture icon on toolbar).
  2. Click File -> Open in the browser.
  3. Navigate to KillingFloor/Textures/ and open a .utx file (e.g., KF_Generic_textures.utx).

Applying Textures

  1. In the Texture Browser, click on a texture to select it.
  2. In the 3D viewport, click on a surface (wall, floor, ceiling) of your room.
  3. The texture is applied.

Adjusting Textures (Alignment)

If the texture looks stretched or misaligned:

  1. Select the surface (click on it in 3D view).
  2. Open Surface Properties (press F5 or right-click -> Surface Properties).
  3. Adjust Pan (offset), Scale (size), and Rotation.
  4. Use “Align to Floor” or “Align to Wall” for quick fixes.

Part 6: Lighting

A map without lights is pitch black.

Adding a Basic Light

  1. In the 3D viewport, right-click on a surface (inside the room).
  2. Select Add Light Here.
  3. A light bulb icon appears. Move it away from walls (lights too close to surfaces cause artifacts).

Adjusting Light Properties

  1. Double-click on the light actor to open its properties.
  2. Under LightColor, set LightBrightness (intensity) and LightHue/LightSaturation (color).
  3. Under Lighting, set LightRadius (how far the light reaches).

Rebuilding Lighting

Press F8 or go to Build -> Build Lighting. This calculates shadows and light maps. Do this every time you add/move lights.

Lighting Tips


Part 7: Player Spawn Points (PlayerStart)

Players need somewhere to spawn.

Adding PlayerStarts

  1. Right-click on the floor surface.
  2. Select Add PlayerStart Here.
  3. A joystick icon appears. This is where a player will spawn.
  4. Add 6 PlayerStarts for a full team (KF supports up to 6 players).

Placement Tips


Part 8: Navigation (PathNodes)

Zeds (and bots) need a navigation mesh to move around. In UE2, this is done with PathNodes.

Adding PathNodes

  1. Open the Actor Class Browser (View -> Actor Class Browser or the chess pawn icon).
  2. Navigate to: Actor -> NavigationPoint -> PathNode.
  3. Right-click on the floor in the 3D viewport -> Add PathNode Here.
  4. Place PathNodes every 256-512 units throughout your map like breadcrumbs.

Building Paths

After placing PathNodes:

  1. Press F8 or go to Build -> Build Paths.
  2. The editor will draw pink/cyan lines connecting nodes. These are the AI navigation routes.

Path Debugging

If lines are red, the path is blocked (something is in the way). If there are no lines, nodes are too far apart.


Part 9: Zombie Spawning (ZombieVolumes)

Zeds spawn from ZombieVolumes — invisible boxes you place in the map.

Creating a ZombieVolume

  1. Create a Builder Brush the size of the spawn area (e.g., 512x512x256).
  2. Position it where you want Zeds to spawn (a back room, a vent, off-screen).
  3. On the left toolbar, click Add Volume (or right-click the Subtract button).
  4. In the dialog, select ZombieVolume from the list.
  5. Click OK. A purple volume appears.

ZombieVolume Properties

Double-click the volume to open properties:

Tip: Place ZombieVolumes out of player sight. Spawning Zeds in front of players looks bad.


Part 10: The Trader (Shop)

Players need a Trader (shop) to buy weapons between waves.

Adding a Trader

  1. Open Actor Class Browser.
  2. Navigate to: Actor -> KFTraderActivator (or search “Trader”).
  3. Right-click on the floor -> Add KFTraderActivator Here.
  4. Place the associated ShopVolume around the trader area.

Trader Paths

Zeds should NOT be able to walk into the Trader area during trading time. This is handled by ShopVolume — a blocking volume.

  1. Create a Builder Brush around the Trader.
  2. Add it as a ShopVolume.
  3. Set its properties to block Zeds during Trader Time.

Part 11: Testing Your Map

Quick Test (PIE - Play In Editor)

  1. Click the Joystick icon on the top toolbar (or press Alt+P in some versions).
  2. You will spawn in the map. Walk around, check for errors.
  3. Press Escape to exit.

Full Test (Compiled Map)

  1. Save your map: File -> Save As -> KF-YourMapName.rom (must start with KF-).
  2. Save it to KillingFloor/Maps/.
  3. Go to Build -> Build All to compile geometry, lighting, and paths.
  4. Launch Killing Floor, start Solo, select your map.

Part 12: Common Errors & Fixes

ErrorCauseFix
Map is pitch blackNo lights or lighting not rebuiltAdd lights, press F8
Zeds don’t spawnNo ZombieVolumes or paths brokenAdd ZombieVolumes, rebuild paths
Player falls through floorBSP hole (bad geometry)Check for overlapping brushes, rebuild
”Ran out of BSP” errorToo many brushesSimplify geometry, use Static Meshes instead
Textures missingTexture package not loadedAdd the .utx to MyLevel or reference it in map properties

Part 13: Advanced Topics (Brief Overview)

Static Meshes

For complex objects (furniture, machines), use Static Meshes instead of BSP. They are more efficient.

  1. Open Static Mesh Browser.
  2. Load a package (e.g., KF_Generic_SM.usx).
  3. Right-click in viewport -> Add Static Mesh.

Movers (Doors)

Doors are Mover actors. They have keyframes (open/closed positions) and trigger events.

Scripted Events

For Objective Mode maps, you need KFStoryGameInfo and scripted triggers. This is advanced and requires UnrealScript knowledge.

Skyboxes

Outdoor maps use SkyZoneInfo actors to render a sky. Add a small skybox room with a SkyZoneInfo, then use a FakeSkyBox texture on ceilings.


Resources

This guide covers the fundamentals. Mastering mapping takes practice — start simple, iterate, and learn from official maps by opening them in the editor.

Discord