Report article RSS Feed Killing Floor Mapping Guide

Killing Floors tutorial for getting started making custom maps for the FPS Horror Survival game.

Posted by Henley on May 17th, 2009
Basic Mapping/Technical.

1) Introduction

Killing Floor is powered by Unreal Engine 2.5, and maps are created in Unreal Editor 3.0. Prior experience with UED will be useful if you plan to start a Killing Floor map as this guide is intended for people with intermediate/advanced knowledge of the Unreal Editor. If you are a complete newcomer to Unreal Engine editing, you should check out some beginner resources before you launch into anything specific to KF. The following are some good places to start understanding Killing Floor's tools.

Single player story mode isn't officially supported but you are free to use it as you wish. These single player parts of the game are not covered in this guide.

2) Concepts

Designing a map for Killing Floor requires a slightly different sort of thought to say - a Deathmatch level in Unreal. The main things to keep in mind when planning a KF map are:

1. Where will the players be able to set up their defenses?
2. Where will enemies spawn?
3. Where will the trader shops be located?

Q: Where will the players be able to set up their defenses?
A: Killing Floor is a sandbox style game, and players will often gravitate towards defensive points that they feel comfortable with. It's your job as a mapper, to give them as much choice as possible, and to make sure that these locations are each as balanced as possible.

For example, if I decide to create an enormous tower in the middle of an open area, players are probably going to spend all of their time up there, and never come down. This might be fun for a while, but it will have the effect of giving the map a static and eventually boring feel. The most important aspect of any killing floor map is that it be constantly tense when the wave is underway. And this means presenting players with defensible, but not impenetrable areas.

For example: A small shack with only one entrance, and multiple windows to fire out of is probably being a little too kind to the players! If you add a back door to the shack, the scenario becomes more interesting, because now the players are forced to watch two directions at once, and this increases the tension!

Q: Where will enemies spawn?
A: Killing Floor makes use of "ZombieVolume" actors, to determine what is a good place for a mob of enemies to spawn at. This will be discussed in more detail, in a later section. As a rule of thumb however, you should keep in mind that the more speciman spawns a map has, and the more interesting and sneaky the places they are, the more exciting the gameplay will feel. Vent shafts, roof tops, windows. All of these are better places to spawn specimens than just right there on the ground!

Q: Where will the trader shops be located?

A: The "Trader" in Killing Floor provides players the opportunity to upgrade their arsenal or get rid of junk they no longer need. Because of this, she is a hugely important character, and critical to winning a match. Every killing floor map should contain more than one trader! If a mapper places only a single trader area, it's pretty clear where the players are going to be camping when they play the map! This creates stale, boring gameplay; and we don't want that! Typical KF maps have anywhere between 3 and 5 trader zones, but the actual number is largely determined by the size of the map. So if you plan on creating some massive area, maybe you will want to place five or more spots. The actual process of setting up trader shops will be discussed in a later section of this document.

3) Trader Rooms

As discussed earlier, trader rooms play a pivotal role in any Killing Floor map. When placing them, you should be make sure they are evenly spaced from one another, so that there is one trader room in each major area of the map.

Now that we've covered the rules of trader placement, we can look at the actual creation of these areas. It doesn't matter where a trader is situated (in a room, behind a fence, etc) so long as there is some way of establishing distance between the shoppers and her. It's recommened that you look the TraderExample map which you can download from here. If you copy and paste the trader and all the objects around her into your map it will allow you to keep an consistent feel with the official maps provided with Killing Floor.

When you have set apart your trader area, you will want to block it off with a mover called TraderDoor. The inside of the trader area will now need a ShopVolume. It needs to take up the space inside so people can shop and it should not extend outside of the room. If it does then players will be able to shop at that trader location even if it isn't active.

The tag of the TraderDoor needs to be the same name as the ShopVolume's event. For example: TraderLocation1. Next you will need to add six Teleporters so people still in the shop can be warped outside when the trading time has run out. These Teleporters need to be placed just outside of the TraderDoor.

Actor NavigationPoint SmallNavigationPoint Teleporter

In the ShopVolume's properties under ShopVolume set the URL to the same name as the tag of the teleporters. For example: TraderTeleport1.

For the players to be able to navigate easily to the trader locations you will need to set the pivot of the ShopVolume to near or exactly where the trader is standing. You will also want to make sure there are path nodes leading up to the TraderDoor.

4) Spawning Specimans

To spawn specimens in Killing Floor we use a volume called ZombieVolume. ZombieVolumes are placed in maps in the same way you would any other sort of volume. They should not be sunk into walls or floors, and the bounds of each volume should be made to fit whatever area it inhabits. You should have the pivot of the volume in the center near the floor and it should not be inside an object or near one. It should be okay to place the pivot offset from the center if there is an object in the way.

bDebugZombieSpawning - If true it will attempt to spawn green cylinders in the spawn volume in-game to show where specimens will spawn. If the cylinder is red that means no specimen will spawn there. Ideally you want at least 6 green cylinders so a full squad of specimens can spawn together. If you are not seeing any cylinders after setting this to true then no specimens will spawn you will need to make sure the pivot of the volume is at the center towards the bottom and is not in inside or too close to an object. Because this is a debug variable, you should make sure that all volumes in your map has this set false, before you distribute your work.

bNoZAxisDistPenalty - This determines if the ZombieVolume should be weighted for spawning specimens based on its z axis location. This should be set to true if you have a map where specimen spawns are on one level but at different heights such as on an outdoor level with gentle rolling hills.

CanRespawnTime - This value sets the minimum time between spawns on your ZombieVolume. For example, if you set this value to 6, your volume could only potentially spawn a squad of specimens once every six seconds.

TouchDisableTime - When a player comes in contact with a ZombieVolume, he disables it temporarily. This is done so that specimens don't spawn in the immediate area a player is defending. This value simply determines how long a volume should remain disabled for once a player has touched it, before it is able to resume spawning enemies.

OnlyAllowedZeds - This is an array for spawning specific specimens only. By default, the array is empty and each ZombieVolume can spawn any kind of enemy, as determined by the server settings and wave configuration. But let's say you wanted a certain area where only Stalkers spawned. You could add an array entry and select ZombieStalker from the dropdown list. You have now created a Stalkers-only spawning area.

MinDistanceToPlayer - This is a very important value and probably the one you will want to adjust carefully for each of your volumes. It determines how far, in units, players must be from your volume, before it is allowed to spawn any specimens. The default value is 600, which means that specimens can spawn around corners or moderately close to a player's location. In special cases however, such as a hidden air duct above players' heads where you want to spawn specimens, you should set this to a value of "1", and otherwise players who are walking underneath the duct will prevent it from spawning. In another situation, maybe you are creating a style of map where specimens spawn in the distance, and move in on players. In such a case you might set this value to something like 1500 or more.

RoomDoorsList - If you are creating a map with open/closable doors, this is a variable you should consider. In a few cases, you will have a room or area that is completely contained when the doors are shut and welded. It really wouldn't make sense to have specimens spawning inside of this area with you, when it has been barricaded. So to prevent this, you can add entries to this array, for each perimeter door of the containable area. When a door is added to the array, its parent Volume will not spawn enemies while that door is closed or welded. If bOnlyWhenWelded is true then no specimens will spawn inside only if the door is welded. A final caveat: Do not go overboard adding doors to this array! If you associate every door in the map with a volume's door list, it will make it difficult to spawn specimens near the player.

5) Blocking only Players

KFZombieZoneVolume - This volume is used to block only players. Specimens will be able to walk through it. It is recommended to place this near one way barricades that specimens can climb/walk out of.

6) Usable/weldable Doors

Usable doors are movers called KFDoorMover. These are movers that act normal but that can be opened outward from either direction. They have three key frames. The 0 key frame is set to a closed position and 1 and 2 are set to a open position for both directions.

Actor Triggers UseTrigger KFUseTrigger

There needs to be a corresponding trigger for opening the door called KFUseTrigger. It's event needs to the same name as the door's tag. For example: Door1. This links the door and the trigger together. The KFUseTrigger needs to be placed in the center of door with it's arrow pointing the same direction as the 2nd key frame. In the trigger's properties under KFUseTrigger, "bDirectionalOpen" needs to be set to True.

7) KFLevelRules

Actor Info ReplicationInfo KFLevelRules

WaveSpawnPeriod - This is the rate at which new squads of specimens spawn after one squad dies. Small changes in this number can make a significant difference in the difficulty and intensity of gameplay on a level. A general rule is that smaller levels should have lower times and large maps have shorter time length.

8) Ammo/Item Pickups

Ammo/item pickups should be evenly spread out within he level so they don't spawn in clusters. The ammo/item pickups are spawned randomly throughout the level based on percentages determined by the difficulty setting. Most official Killing Floor levels have 14 ammo and item pickups.

xPickUpBase KFRandomSpawn KFRandomItemSpawn

Item pickups have chance to spawn based on the difficulty:

  • Beginner: 50%
  • Normal: 30%
  • Hard: 20%
  • Suicidal: 10%

Pickup Ammo KFAmmoPickup

Ammo pickups have chance to spawn based on the difficulty:

  • Beginner: 65%
  • Normal: 50%
  • Hard: 35%
  • Suicidal: 10%

9) Dynamic Music

Actor Trigger MusicTrigger KFMusicTrigger

A KFMusicTrigger will control the music being played during combat and during the trader downtime. Within the actor's properties there is a section called KFMusicTrigger and another section called WaveBasedSongs. This is an array of songs that you can add. CalmSong is the song played when the trader is active and CombatSong is the song played with fighting specimens. Each time you add a set of songs it will associate with a wave number. List 0 is wave 1 and list number 9 is wave 10. It is recommended that you make 10 sets of songs to support KF's Long setting.

Under MusicTrigger in the KFMusicTrigger properties there is a field called Song. There field is for specifying the song played when fighting the Patriarch.

10) Aesthetics

Killing Floor has a fairly distinct grungy look, and if you are planning to create a map which honors that, there are a few things you can do to keep your work consistent.

Textures - Many of Killing Floor's environmental textures have been created to look as though they have a bump map effect, even though this rendering technique is not actually possible in the KF engine. There are a few different ways to achieve this, but one method that is very simple and effective is to create an emboss filtered grayscale copy of your base texture, and overlay it on top of itself, before saving. If the result looks too severe, try lowering the opacity or blurring the embossed copy to make it look more natural.

In general, the KF textures are high contrast and each one uses one or more detail layers to suggest added grit/grime. If you are working in Photoshop, try adding soft light or overlay blended textures on top of your base texture to experiment. This can also be done in UE by adding high contrast detail texture to your material.

Finally, Killing Floor makes use of some complex shaders to simulate things like bump mapping and normal mapping. While I won't bring up the specific techniques in this document, if you are interested in how to recreate some of these effects for your own map try looking in the following packages for examples.

"Normal map" - KF_Specimens_Trip_T.clot_cmb
"Bump map" - "KillingFloorManorTextures.Statics.BumpSpecRockShader"

Color Correction - A feature distinct to Killing Floor is per-zone color correction overlays which have the power to tint the player's world a certain color, (typically as a mood enhancer). This effect is determined by the color of the fog with a ZoneInfo. Within a ZoneInfo's properties under ZoneLight you can set bNoKFColorCorrection to false if this effect is unwanted. In most cases if your level appears too dark in-game but looks correct in the editor, it's because the fog color is too dark and is causing the overlay to darken the player's view.

Post comment Comments
smokeythebear May 17 2009, 11:04am says:

Now to port every red orchestra map into KF.

+1 vote     reply to comment
doppl3r May 17 2009, 12:14pm says:

I got really good a creating valve related .bsp's over the years, and I haven't fiddled with the unreal editor 3.0 Is this going to be a big transition?

+1 vote     reply to comment
myles May 17 2009, 12:25pm replied:

It certainly will be a big transition, as UE2 is a subtractive world, making it very much different to the addictive BSP on Hammer.

+1 vote     reply to comment
stenchy May 17 2009, 3:49pm replied:

I'm sure he means additive.

+2 votes     reply to comment
Relto May 17 2009, 8:42pm replied:

Or does he?

+1 vote     reply to comment
myles Jul 17 2009, 7:08am replied:

I do :P

+1 vote     reply to comment
pWEN May 18 2009, 12:25pm replied:

Unreal Ed is both subtractive and additive, just not as good at additive as Hammer

+1 vote     reply to comment
eliasr Nov 4 2009, 12:07pm replied:

Yeah, it really turns your head upside down. where you in hammer used to make a cube and say it should be hollow, mark it as sky and change the bottom to something else; at the end you would of course optimize it.

now you kinda have to include that from the start, cause its better to dig out a room, than adding it inside an enormous subtracted room.

I haven't got used to it yet... its like, you make the houses, the side walk, the road, then you make the ground....

+1 vote     reply to comment
Instant_Mix Nov 21 2009, 8:22am replied:

Basically , in Valve hammer , you create a space within a void. But , In Unreal , You create a void within a space.

+1 vote     reply to comment
AJ_Quick May 17 2009, 5:12pm says:

Rawr go make custom maps my minions! Or Patriarch will bumrape you from cloak. :P

+1 vote     reply to comment
Tex1090 May 17 2009, 7:09pm replied:

To late... was playing earlier, we had 5 LAWs on the patriarch and there was so much smoke we didn't see him cloak. We were sitting there waiting, and not 5 seconds later he appears in front of me and 1 hits me. I guess i'll go make maps now. :(

+2 votes     reply to comment
AJ_Quick May 18 2009, 2:26am replied:


+2 votes     reply to comment
Mr.John May 19 2009, 8:38am replied:


+1 vote     reply to comment
Squeebo May 20 2009, 2:08pm replied:

I'll make custom maps-- But he'll still bumrape me. =( In my OWN maps! He has no manners, damn Patriarch.

+1 vote     reply to comment
©orporatefilth™ May 18 2009, 4:11am says:

i already know, if the map editor is anything like unreal 2004's, im making COD5 Nazi Zombie map :D.

+1 vote     reply to comment
©orporatefilth™ May 25 2009, 1:10pm says:

dammit they explain nothing!! they tell us about zombie volumes and zombie zone **** but nothing about creating them! :(

+1 vote     reply to comment
lich120 May 28 2009, 3:38am replied:

Its unreal 2k4's editor except for a few new objects that are killing floor specific. they didn't explain much in the way of editing because the unreal developer network has that covered. So if you're interested in making some sweet Killing floor stuff just check up on making Unreal Ed 2.5 levels and content and you'll know how to do it in Killing floor. Good luck!

+1 vote     reply to comment
purplephantom Jun 27 2011, 2:50am replied:
The above page has been very helpful although somewhat confusing if youre new to doing a mod. Re-read it over again to see something you missed. g.l.

+1 vote     reply to comment
NessDan Jun 30 2009, 2:11am says:

What I would like to know is how to add a specimen spawn point. Are there actors for it? How do they know where to walk?

+1 vote     reply to comment
yahodahan Jul 1 2009, 1:38am says:

does anyone know if this is possible to make maps for, with the UE3 editor? or is it just UT2004? I noticed the author says "Unreal Ed 3 engine", but everything else seems to show UT2004...I hate UT2004!!

0 votes     reply to comment
Justin112358 Jul 10 2009, 8:59am replied:

No. It's confusing but Unreal 2k4 is made in the unreal 2/2.5 engine and it uses unrealED 3.0. GOW and UT3 were made in the unreal 3 engine, but the editor has no official name or number.

+3 votes     reply to comment
KON_Air Nov 15 2009, 11:16am says:

My respect to Unreal mappers have been trippled. The editor is more "user-enemy" then anything I have ever tried.

0 votes     reply to comment
TheTruthDude Jun 6 2010, 4:24pm says:


0 votes     reply to comment
ILOVEZOMBIESIDO Jul 21 2010, 9:50am says:

hi all, i learnt how to map with unreal ed yesterday... IM ADDICTED
best map editor ever.. but it hit a glitch. when i make a red box the size is only three thirds of what i wanted it to be (in other worlds it is a quarter smaller)... help would be apreciated,
thanks in advance.

+2 votes     reply to comment
Zoncosn1p3r Jul 23 2010, 7:40am replied:

To make the red box smaller you right click the icon and then put in your values in the pop-up screen... if that's what you need

+2 votes     reply to comment
ILOVEZOMBIESIDO Jul 23 2010, 6:43am says:

hi me again, how does one make a briefing for a map? thanks

+2 votes     reply to comment
Zoncosn1p3r Jul 23 2010, 7:38am replied:

By brief do you mean map description?
If so then press f6 or go to view then level properties then level summery, you cam name it wright a description and other things there

+2 votes     reply to comment
Zoncosn1p3r Jul 23 2010, 8:19am says:

I think it is a great program but i agree its a bit confusing... but once you know the basics the advanced stuff sort of falls into place:)

+2 votes     reply to comment
ILOVEZOMBIESIDO Jul 23 2010, 8:51am says:

thanks a lot Zoncosn1p3r :) i have been trying to figure it out for days :D

+2 votes     reply to comment
MrBlorx Jun 19 2011, 1:41am says:

What about Cutscenes? KFEd crashes when I use them.

0 votes     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Report Abuse
Report article
Related Games
Killing Floor
Killing Floor Single & Multiplayer First Person Shooter
Related Engines
Unreal Engine 2
Unreal Engine 2 Commercial Released Dec 1, 2000
Related Groups
Tripwire Interactive
Tripwire Interactive Developer & Publisher
Valve Developer & Publisher