Binds & Console

KF2 Config Optimization for Minimum Graphics (INI Guide)

This Russian-language guide focuses purely on game performance, not system or driver tuning. It is meant for running Killing Floor 2 at the lowest graphics settings; if you use higher settings, be careful when disabling features. The author updates it regularly and welcomes extra in-game performance tips, but not NVIDIA/AMD control panel advice or registry tweaks. Other pages cover related ground: low-end PC optimization and large-server FPS tweaks.

Config location

  • Windows: %USERPROFILE%\Documents\My Games\KillingFloor2\KFGame\Config
  • Linux: .../steamapps/compatdata/232090/pfx/drive_c/users/steamuser/My Documents/My Games/KillingFloor2/KFGame/Config

Initial setup

If you tuned the game before, delete everything in the Config folder to remove outdated or wrong settings. Then start the game, set everything through the in-game GUI, and make a backup copy of the files (for example on the desktop). On weak machines with old graphics cards, turn off all graphics options in the settings menu. Only then move on to the detailed file edits.

KFEngine.ini

[Engine.Engine]

  • Enable an FPS limit by setting bSmoothFrameRate=True and choosing MaxSmoothedFrameRate. For weak PCs use monitor Hz plus 1 (60+1=61); for powerful ones use Hz times 2 plus 1 (60x2+1=121). If you use RTSS Rivatuner or other software to limit FPS, set the same limit there.
  • Disable static and dynamic decals: bStaticDecalsEnabled=False, bDynamicDecalsEnabled=False.
  • Disable engine subtitles if you do not use them: bSubtitlesEnabled=False.
  • Disable on-screen Kismet warnings and debug messages: bOnScreenKismetWarnings=False, bEnableOnScreenDebugMessages=False.

[Engine.StartupPackages]

  • bFullyCompressStartupPackages=True: packages can be decompressed asynchronously during loading, which may speed it up.
  • Remove the line Package=EngineDebugMaterials (debug materials such as bone weight, mesh, normal, tangent, UV and wireframe).

[IpDrv.TcpNetDriver]

  • AllowPeerConnections=True and AllowPeerVoice=True allow direct client connections.
  • MaxClientRate=104857600 and MaxInternetClientRate=104857600 raise the data rate with the server to the maximum.

[TextureStreaming]

  • UseDynamicStreaming=False: dynamic map streaming loads details during play, which on a slow HDD can cause artifacts and stutter. With more than 8 GB RAM and more than 3 GB VRAM, disabling it lets the match load fully at the start.
  • bEnableAsyncDefrag=True and bEnableAsyncReallocation=True: background memory defragmentation and reallocation that do not block the main work.

[FullScreenMovie] bForceNoMovies=True skips the intro videos.

[LogFiles] PurgeLogsDays=0 and LogTimes=False stop log creation.

KFGame.ini

[KFGame.KFGoreManager]

For almost no blood (it makes play calmer and lightens the GPU) set all of these to zero or False:

GoreFXLifetimeMultiplier=0
BodyWoundDecalLifetime=0
BloodSplatterLifetime=0
BloodPoolLifetime=0
GibletLifetime=0
MaxBodyWoundDecals=0
MaxBloodSplatterDecals=0
MaxBloodPoolDecals=0
BloodSplatSize=0
BloodPoolSize=0
MaxBloodEffects=0
MaxGoreEffects=0
AllowBloodSplatterDecals=False
PersistentSplatTraceLength=0
MaxPersistentSplatsPerFrame=0

Fewer corpses also relieve RAM and VRAM: MaxDeadBodies=4.

KFSystemSettings.ini, section [SystemSettings]

SettingValueEffect
StaticDecals, DynamicDecals, UnbatchedDecalsFalseDisable decals (match the values in KFEngine.ini).
AllowRadialBlur, MotionBlur, MotionBlurPause, DropParticleDistortionFalseDisable blur effects.
MotionBlurSkinning, MotionBlurStaticScale, MotionBlurDynamicScale0Disable motion blur scales.
AllowImageReflections, AllowImageReflectionShadowingFalseDisable reflections.
FogVolumes, DistanceFogFalseOptimise fog: little visual loss, less CPU and some GPU cost.
bAllowFracturedDamageFalseDisable breakable glass.
bForceCPUAccessToGPUSkinVertsTrueShifts some load from a weak GPU to the CPU.
DynamicShadowsFalseCharacters may become very dark but performance improves on weak GPUs.
DecalCullDistanceScale0.1Minimum value; decals disappear sooner.
CompositeDynamicLightsFalseA dynamic lighting helper; disabling lowers CPU and GPU load with no visible change, according to the author.
SpeedTreeLeaves, SpeedTreeFrondsFalseFoliage optimisation.
FloatingPointRenderTargetsFalseDisable effects.
LightEnvironmentShadowsFalseDisable environment shadows.
DynamicLightsFalseDisables most light, shadows, decals, blood and effects; use only on very weak PCs, raise brightness to maximum and expect glitches.
bAllowSeparateTranslucencyFalseDisable translucency lighting for foliage.
bAllowHighQualityMaterialsFalseSkip high-quality materials; no visible loss when you are not on high graphics.

FAQ

Where is the KF2 config folder on Windows and Linux?
Windows: %USERPROFILE%\Documents\My Games\KillingFloor2\KFGame\Config. Linux: .../steamapps/compatdata/232090/pfx/drive_c/users/steamuser/My Documents/My Games/KillingFloor2/KFGame/Config.
What FPS limit should I set?
For weak PCs, monitor Hz plus 1 (for example 61). For stronger PCs, monitor Hz times 2 plus 1 (for example 121). Put the value into MaxSmoothedFrameRate.
Is this guide for high graphics settings too?
No. It targets the lowest graphics settings; if you play on higher settings, be careful with features you may need.