Binds & Console

KF2 Useful INI Tweaks: Uncapped FPS, More Gore, Better Textures

Killing Floor 2 has several useful settings that the in-game menu does not expose. This guide collects stable, tested tweaks for FPS, textures and shadows, texture streaming, gore, input and audio. An .ini file is just a hidden collection of detailed settings; changing the wrong thing can crash the game, so edit carefully. If anything goes wrong, delete the ini files and the game regenerates defaults. Related reading: the full Tweaks and Improvements guide.

Where the files are

Launch the game at least once so the files exist. They are in:

C:\Users\<user>\Documents\My Games\KillingFloor2\KFGame\Config

Open the file named in each section with Notepad, use Ctrl+F to find each entry, change it, then choose File, Save.

Uncapping the FPS

By default the game is capped at 60 FPS. The Variable Framerate option lets it reach 150 but does not fully uncap it. Some guides say to set bSmoothFrameRate to FALSE, but then multiplayer remains capped at 150, so keep it TRUE.

First turn Variable Framerate OFF in the game settings, then edit:

KFEngine.ini

bSmoothFrameRate=TRUE
MinSmoothedFrameRate=1
MaxSmoothedFrameRate=999

(each entry appears twice in KFEngine.ini; change both instances)

KFGame.ini

bSmoothFrameRate=True
MinSmoothedFrameRate=1
MaxSmoothedFrameRate=999

(bSmoothFrameRate appears twice here as well)

Textures, shadows and reflections

KFSystemSettings.ini, section [SystemSettings]:

DetailMode=5
MinShadowResolution=2048
MinPreShadowResolution=4096
MaxShadowResolution=4096
MaxWholeSceneDominantShadowResolution=4096
ShadowFadeResolution=1024
PreShadowFadeResolution=4096
bEnableForegroundSelfShadowing=True

In the same file, change every TEXTUREGROUP_... line so that it uses MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Linear (or Point on the lines that already use Point),MipGenSettings=TMGS_Sharpen5. For example:

TEXTUREGROUP_World=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Linear,MipGenSettings=TMGS_Sharpen5)

The same pattern applies to the Character, Weapon, Vehicle, Cinematic, Effects, Skybox, UI, Lightmap, Shadowmap, Creature, Weapon3rd, Cosmetic and other groups, including their NormalMap and Specular variants. Keep the MipFilter that each line already has. The author's special cases: TEXTUREGROUP_Shadowmap keeps NumStreamedMips=3, TEXTUREGROUP_ImageBasedReflection uses MinLODSize=256, and TEXTUREGROUP_Bokeh uses MinMagFilter=Linear. Also set InstancedRendering=False.

KFEngine.ini, section [Engine.Engine]:

MaxProcBuildingLODColorTextureSize=4096
MaxProcBuildingLODLightingTextureSize=4096
ImageReflectionTextureSize=4096

Disabling texture streaming

Texture streaming can cause stutter and pop-in. With a GPU that has at least 6 GB of VRAM it is better to disable it so everything loads into VRAM at level start. Most guides only change bUseTextureStreaming, but that does not disable streaming fully; change all of these:

KFEngine.ini

bUseTextureStreaming=False
bUseBackgroundLevelStreaming=False
AllowStreamingLightmaps=False
UsePriorityStreaming=False
UseDynamicStreaming=False

KFGame.ini

bUseBackgroundLevelStreaming=False

More gore and dead bodies

In KFGame.ini, section [KFGame.KFGoreManager], the default values are:

GoreFXLifetimeMultiplier=1.200000
BodyWoundDecalLifetime=30.000000
BloodSplatterLifetime=10.000000
BloodPoolLifetime=20.000000
GibletLifetime=10.000000
MaxBodyWoundDecals=5
MaxBloodSplatterDecals=20
MaxBloodPoolDecals=20
BloodSplatSize=100.000000
BloodPoolSize=125.000000
MaxDeadBodies=15
MaxBloodEffects=40
MaxGoreEffects=15

Recommended values from the author (change to taste, but too high can cause stutter or crashes):

SettingDefaultRecommended
MaxBodyWoundDecals520
MaxBloodSplatterDecals2080
MaxBloodPoolDecals2080
MaxDeadBodies1580
MaxBloodEffects4080
MaxGoreEffects1580

Other entries (lifetimes, sizes, AllowBloodSplatterDecals=True, PersistentSplatTraceLength=1000, MaxPersistentSplatsPerFrame=100) stay as they were.

Extra tweaks

  • KFSystemSettings.ini: FlexRigidBodiesCollisionAtHighLevel=True makes dead bodies collide, so they pile up instead of clipping through each other.
  • KFInput.ini: bEnableMouseSmoothing=false and bViewAccelerationEnabled=False disable mouse smoothing and acceleration for more responsive aiming.
  • KFEngine.ini: AllowNvidiaStereo3d=True and MaxChannels=128 give more spatially accurate audio and allow many more simultaneous sounds.
  • Launch option -nostartupmovies (Steam library, cogwheel, Properties, General, Launch Options) skips the intro videos.

FAQ

How do I fully uncap FPS in KF2?
Turn Variable Framerate OFF in the settings, then in KFEngine.ini and KFGame.ini set bSmoothFrameRate=TRUE, MinSmoothedFrameRate=1 and MaxSmoothedFrameRate=999 (change every instance).
Why keep bSmoothFrameRate TRUE instead of FALSE?
The author says FALSE uncaps FPS only in singleplayer; in multiplayer it stays capped at 150, whereas TRUE with the values above works in both.
What if I set gore values too high?
You may get stuttering or crashes. The guide lists the default values so you can revert, or delete the ini files to regenerate them.