Killing Floor Low-Memory Client Profile - Fix Texture and Video Memory Crashes

Killing Floor Low-Memory Client Profile - Fix Texture and Video Memory Crashes

  • Topic closed
  • You cannot reply to this topic

Killing Floor Low-Memory Client Profile - Fix Texture and Video Memory Crashes A practical Killing Floor client INI profile for CreateTexture failed, D3DERR_OUTOFVIDEOMEMORY, virtual memory exhausted, and map-change crashes.

Geekrainian #1

    • Group: Admin
    • Posts: 974

    Posted:

    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:

    • UsePrecache=False reduces up-front sound loading.
    • LowQualitySound=True lowers pressure from audio assets.
    • Channels=24 lowers the number of simultaneous sound channels.

    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:

    • UsePrecaching=False reduces up-front renderer resource loading.
    • ReduceMouseLag=False can reduce pressure on D3D buffers.
    • UseCompressedLightmaps=True is usually better for memory than uncompressed lightmaps.
    • DefaultTexMipBias=0.0 is the safe starting point. If the client still crashes, try 0.5 or 1.0; textures will become blurrier.

    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:

    • TextureDetail...=Normal lowers the size of loaded texture resources.
    • Projectors=False and Decals=False help on maps with many blood marks, bullet marks, and projected effects.
    • WeatherEffects=False helps on custom maps with heavy weather effects.
    • DrawDistanceLOD=0.700000 lowers far-distance detail.

    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:

    • textures become noticeably blurrier;
    • far objects look worse;
    • object pop-in can become more visible.

    Experimental NVIDIA And Video Memory Settings

    This is optional. Try it only if:

    • you use an NVIDIA GPU;
    • the main low-memory profile did not help enough;
    • you know how to roll back the change.

    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:

    • you use 64-bit Windows;
    • the low-memory profile reduced crashes but did not remove them;
    • you often crash on heavy custom maps;
    • you understand how to restore the original KillingFloor.exe.

    Risks:

    • Steam can restore the original executable during verify or update.
    • Some anti-cheat setups or server configurations may dislike modified executables.
    • Non-Steam builds differ, so there is no universal instruction for every client.
    • Keep a clean backup of the original executable.

    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:

    • a broken or poorly packed custom map;
    • missing redirect downloads;
    • a corrupted .utx, .uax, .usx, or .ukx package;
    • a disabled or tiny Windows pagefile;
    • an unstable GPU driver;
    • overheating or unstable overclocking;
    • a map that is too heavy for the client;
    • a long session without restarting the game.

    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:

    • Steam: verify game files.
    • Non-Steam: restore the file from the installer or archive.
    • Some builds can recreate KillingFloor.ini after you delete it and launch the game.

    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
    Back