Christmas Patriarch

Killing Floor Low-Memory Client Profile

This guide is for Killing Floor players whose client crashes with memory-related errors, especially on custom maps, during a map change, or after several maps in one session.

The goal is stability. The profile below reduces precaching, texture pressure, sound pressure, and heavy visual detail. The game will look simpler, but it should survive more map loads on older or memory-limited clients.

Symptoms This Profile Targets

Error or symptomWhat it usually means
CreateTexture failed(8007000E)The client failed to allocate texture memory
D3DERR_OUTOFVIDEOMEMORYDirect3D could not allocate enough video memory
IDirect3DVertexBuffer9::Lock failedThe renderer failed to lock or allocate a D3D buffer
CreateVertexBuffer failedMesh or render buffers could not be created
Virtual memory exhaustedThe 32-bit process ran out of address space
General protection fault during texture, sound, static mesh, or map loadingA package load failed while the client was under memory pressure

Killing Floor is an older 32-bit Unreal Engine 2 game. A server can reduce crashes by avoiding extremely heavy maps, but it cannot remove the client’s memory limit completely. The client configuration still matters.

Quick Checklist

  1. Close Killing Floor.
  2. Find your client KillingFloor.ini.
  3. Make a backup.
  4. Disable sound and renderer precaching.
  5. Lower texture detail to Normal.
  6. Enable bNeverPrecache=true.
  7. Save the file and test several map changes.

Where To Find KillingFloor.ini

Install typePath
SteamC:\Program Files (x86)\Steam\steamapps\common\KillingFloor\System\KillingFloor.ini
Non-Steam or portable client<Killing Floor folder>\System\KillingFloor.ini
Windows VirtualStore fallback%LOCALAPPDATA%\VirtualStore\Program Files (x86)\Steam\steamapps\common\KillingFloor\System\KillingFloor.ini

If Steam is installed somewhere else, open Steam, find Killing Floor, use the local files option, and go to the System folder.

Make A Backup First

Before editing, copy:

KillingFloor.ini

to:

KillingFloor.ini.backup

If the result is worse or the visuals become too poor, restore the backup and restart the game.

Open KillingFloor.ini, find each section, and change only the listed keys. If a key is missing, add it under the correct section.

1. Engine Cache

Section:

[Engine.GameEngine]

Recommended:

CacheSizeMegs=32

Do not raise this value to solve out-of-memory crashes. A larger cache can make the situation worse because the 32-bit client already has limited address space.

2. Audio Precache

Section:

[ALAudio.ALAudioSubsystem]

Recommended:

UsePrecache=False
LowQualitySound=True
Channels=24

What it does:

If too many sounds start cutting out, try:

Channels=32

3. Direct3D 9 Renderer

Most players use the D3D9 renderer. This is the most important section for texture and video memory crashes.

Section:

[D3D9Drv.D3D9RenderDevice]

Recommended:

DetailTextures=False
HighDetailActors=False
SuperHighDetailActors=False
UsePrecaching=False
UseTrilinear=False
ReduceMouseLag=False
UseCubemaps=False
UseCompressedLightmaps=True
UseVSync=False
LevelOfAnisotropy=0
DetailTexMipBias=0.0
DefaultTexMipBias=0.0

Most important lines:

UsePrecaching=False
HighDetailActors=False
SuperHighDetailActors=False
ReduceMouseLag=False

Notes:

4. OpenGL Renderer

Only edit this section if you know you are using OpenGL.

Section:

[OpenGLDrv.OpenGLRenderDevice]

Recommended:

DetailTextures=False
HighDetailActors=False
SuperHighDetailActors=False
UsePrecaching=False
UseCompressedLightmaps=True
UseTrilinear=False
ReduceMouseLag=False
LevelOfAnisotropy=0

If you are not sure, you are probably using D3D9 and can leave this section alone.

5. Visual Detail

Section:

[WinDrv.WindowsClient]

Recommended:

Decals=False
Coronas=False
DecoLayers=False
Projectors=False
NoDynamicLights=True
TextureDetailInterface=Normal
TextureDetailTerrain=Normal
TextureDetailWeaponSkin=Normal
TextureDetailPlayerSkin=Normal
TextureDetailWorld=Normal
TextureDetailRenderMap=Normal
TextureDetailLightmap=Normal
WeatherEffects=False
DrawDistanceLOD=0.700000

What it does:

If the image becomes too poor, try:

DrawDistanceLOD=0.850000

6. Level Loading And Preload

Section:

[Engine.LevelInfo]

Recommended:

PhysicsDetailLevel=PDL_Medium
MeshLODDetailLevel=MDL_Medium
bLowSoundDetail=True
DecalStayScale=0.0
bNeverPrecache=true
bShouldPreload=False
bDesireSkinPreload=False

The most important line is:

bNeverPrecache=true

This reduces the risk of out-of-memory crashes during level loading. The tradeoff is that you may see small stutters when some enemies, weapons, or effects appear for the first time.

Full Copy-Paste Profile

Do not delete your whole KillingFloor.ini. Find the existing sections and set these values inside them.

[Engine.GameEngine]
CacheSizeMegs=32

[ALAudio.ALAudioSubsystem]
UsePrecache=False
LowQualitySound=True
Channels=24

[D3D9Drv.D3D9RenderDevice]
DetailTextures=False
HighDetailActors=False
SuperHighDetailActors=False
UsePrecaching=False
UseTrilinear=False
ReduceMouseLag=False
UseCubemaps=False
UseCompressedLightmaps=True
UseVSync=False
LevelOfAnisotropy=0
DetailTexMipBias=0.0
DefaultTexMipBias=0.0

[WinDrv.WindowsClient]
Decals=False
Coronas=False
DecoLayers=False
Projectors=False
NoDynamicLights=True
TextureDetailInterface=Normal
TextureDetailTerrain=Normal
TextureDetailWeaponSkin=Normal
TextureDetailPlayerSkin=Normal
TextureDetailWorld=Normal
TextureDetailRenderMap=Normal
TextureDetailLightmap=Normal
WeatherEffects=False
DrawDistanceLOD=0.700000

[Engine.LevelInfo]
PhysicsDetailLevel=PDL_Medium
MeshLODDetailLevel=MDL_Medium
bLowSoundDetail=True
DecalStayScale=0.0
bNeverPrecache=true
bShouldPreload=False
bDesireSkinPreload=False

More Aggressive Profile

Use this only if the recommended profile helped but did not solve the crashes.

[WinDrv.WindowsClient]
TextureDetailInterface=Lower
TextureDetailTerrain=Lower
TextureDetailWeaponSkin=Lower
TextureDetailPlayerSkin=Lower
TextureDetailWorld=Lower
TextureDetailRenderMap=Lower
TextureDetailLightmap=Lower
DrawDistanceLOD=0.500000
MinDesiredFrameRate=45.000000

[D3D9Drv.D3D9RenderDevice]
DefaultTexMipBias=1.0
DetailTexMipBias=1.0

Tradeoffs:

Experimental NVIDIA And Video Memory Settings

This is optional. Try it only if:

Section:

[Engine.Engine]

Experimental:

NVidiaGPU=True
DetectedVideoMemory=1024

For older or weaker GPUs, use:

DetectedVideoMemory=512

Do not set a huge value just because your GPU has more VRAM. The 32-bit client can still hit the process memory limit.

Large Address Aware

Large Address Aware, or LAA, is a Windows executable flag that can let a 32-bit process use more virtual address space on 64-bit Windows.

For older Unreal Engine 2 games it can sometimes help, but it is not a server-side fix and it is not a normal INI setting. It modifies the client executable.

Consider LAA only if all of these are true:

Risks:

Rollback:

  1. Close the game.
  2. For Steam, verify game files.
  3. For Non-Steam clients, restore the backed-up executable or reinstall from the original installer/archive.

What This Profile Will Not Fix

This profile reduces memory pressure. It does not turn Killing Floor into a 64-bit game and it cannot guarantee a fix when the real problem is:

Additional Windows Checks

If crashes continue:

  1. Make sure the Windows pagefile is enabled.
  2. Keep several GB free on the system drive.
  3. Close browser tabs, Discord overlay, recording software, other games, and heavy background apps.
  4. Update the GPU driver.
  5. If a new driver is unstable, try an older stable driver version.
  6. Restart Killing Floor after several heavy custom maps.
  7. Avoid joining a heavy map immediately after the client has been running for hours.

How To Test

After editing:

  1. Start Killing Floor.
  2. Join a server on a normal map.
  3. Play one map.
  4. Change to a custom map.
  5. Change to one more map.
  6. If stable, test the server or map that used to crash.

A good result is several map changes without CreateTexture failed, D3DERR_OUTOFVIDEOMEMORY, or Virtual memory exhausted.

A bad result is a crash on the same map every time, especially when the crash log points to the same texture, sound, static mesh, or map package. In that case, the map or package may be the root cause.

Roll Back INI Changes

If the game looks too bad or becomes less stable:

  1. Close Killing Floor.
  2. Delete the modified KillingFloor.ini.
  3. Rename KillingFloor.ini.backup back to KillingFloor.ini.
  4. Start the game again.

If you did not make a backup:

Short Message For Players

Server admins can send this compact version to players:

If Killing Floor crashes with CreateTexture failed, D3DERR_OUTOFVIDEOMEMORY, or "Virtual memory exhausted":
1) Close the game
2) Back up System\KillingFloor.ini
3) Set UsePrecache=False and UsePrecaching=False
4) Set bNeverPrecache=true
5) Lower TextureDetail... values to Normal
6) Restart the client after several heavy custom maps