First of all we are looking for a file called WillowEngine.ini and it is located in:
Documents\My Games\Borderlands 2\WillowGame\Config
Open up this ini file in your document editor of choice.
To get started press control + f and search for the
Now change the lines you would like to disable to
FALSE in all caps.
Short descriptions of some of the settings above.
bUseMaxQualityMode - BL2 sometimes sets this to true, even if the machine clearly can't handle it.
StaticDecals - removes stuff like marks on walls etc.
DynamicDecals - removes textures added on top of other textures in real time, like bullet holes, footprints etc.
DynamicLights - some objects generate light that's independent from the whole scene and moves along with the object. Setting this to false disables that.
DynamicShadows - that's one major performance killer; setting this to false entirely removes shadows and massively boosts framerate, but has some unlpeasant consequences in the form of snow blindness.
LightEnvironmentShadows - some areas have different lightning than the others. Setting this to off makes everything appear as if it were in broad daylight, even inside caves.
CompositeDynamicLights - a less memory-intensive version of Dynamic Lights, but a performance killer nonetheless.
MotionBlur - an absolutely disgusting and unncecessary effect, it blurs the image if you travel at high speed or turn around quickly. Set it to false.
DepthOfField - meant to simulate eye accomodation. Objects in focus will stay sharp, objects out of focus will become blurry. Setting this to false causes the image to look more crisp.
AmbientOcclusion - kind of difficult to explain, but according to Wikipedia, ambient occlusion is used to represent how exposed each point in a scene is to ambient lighting. So, basically, another shadow-related performance killer. Set it to false.
Bloom - supposed to simulate fringes of light extending from the borders of bright areas in an image. Nicely looking, fps draining. Set it to false.
bAllowLightShafts - this is supposed to simulate crepuscular rays, or rays of sunlight that appear to radiate from the point in the sky where the sun is located. If you're looking at the sun and there's something partially blocking your vision, crepscular rays will appear. Set this to false for an fps boost.
Distortion - distorts the screen, ie. when something explodes. Needless to say it lowers your framerate.
SpeedTreeLeaves - turns off leaves on trees, increases fps and visibility, as there's no foliage to obscur your vision.
SpeedTreeFronds does the same thing as above, except with grass.
OnlyStreamInTextures - if set to true, this will cause any texture that hasn't been rendered in the last 5 minutes to fully load in at highest resolution, which uses a humongous amount of video memory.
LensFlares - meant to simulate light getting in your eyes when you look directly at the sun without anything blocking your view. Set to false.
FogVolumes - disables fog.
AllowImageReflections - disables reflections.
AllowImageReflectionShadowing - disables reflection shadowing (duh).
Now find these lines under the [SystemSettings] section:
Those will have some numbers assigned to it.
SkeletalMeshLODBias determines the quality of in-game character models. -1 is the highest quality, while 10 is the lowest.
ParticleLODBias - controls the quality of particles, with -1 being the highest and 10 being the lowest.
DetailMode - overall quality of the game. By default set to 2, the other settings are 1 and 0.
SkeletalMeshLODBias Default settings
SkeletalMeshLODBias lowest value which is
Black Outlines and Cel Shaders
This is the setting that enables the cel shading and black outlines on objects and landscape. This is the setting that will basically make-or-break your performance problems. Disable this setting to end your performance woes. After disabling this setting, the black outlines will disappear but give the game richer colors and better contrast. I HIGHLY RECOMMEND YOU DISABLE THIS!!
To Change This Setting:
Find the line under [Engine.Engine]
DefaultPostProcessName=WillowEngineMaterials.WillowScenePostProcess and change it to
With black outlines and cel shadings:
Without black outlines and cel shadings:
Amount of particles on screen
MaxParticleResize=0 under the [Engine.Engine] section.
and set the value of 0 to between 100 and 10000. 0 Means Unlimited, so giving it limited parameters helps with performance a lot. In the file I have included, I set the Particle Effects to 5000 as a middle of the road balance between performance, and visual style.
Anyway, search for these lines under the [SystemSettings] section:
The above settings will have some values assigned to them. I modified these such a long time ago, I forgot what the original values were like - 512, 1024, 2048? Anyway, it was a power of 2. Set these to whatever you want, as long as it's not a negative number and a power of 2 - so 2, 4, 8, 16, 32, 64 etc. I set them to as low as 4 and 8.
You might also want to search for
and set it to 0.
This time we will be editing a different file, called WillowGame.ini. It's located in the same directory as WillowEngine, so you shouldn't have any trouble finding it.
Once opened, search for the following section:
Below you'll find settings responsible for ragdoll behaviour:
SecondsBeforeConsideringRagdollRemoval - this settings determines how many seconds have to pass before the game considers removing a ragdoll after it's been created. By default it's set to 500 or 600. I set it to 10, so I can still see my enemies flying around, but their bodies don't linger around for too long.
SecondsBeforeVisibleRagdollRemoval - this one determines how many seconds have to pass before the game actually removes the ragdoll. Also set to 10.
SecondsBetweenRagdollRemovalAttempts - the lower value, the more frequently ragdolls will disappear. If set to 0, one removal attempt will remove all existing ragdolls.
SecondsBeforePhysicsShutsDown - determines how long ragdolls stay "active", ie. shooting them causes them to move. By default set to 64, which is way too long - when a ragdoll is active, your machine has to perform additional calculations to properly simulate its behaviour and movement. When a ragdoll becomes inactive, it stops moving and no longer reacts to stimuli such as explosions or gunfire. I set it to 5.
Why not just disable them altogether? Well, there's two reasons, and one of them is pretty important.
Firstly, it affects your experience. Seeing your enemies simply vanish into thin air after obliterating them with a rocket launcher is not a fun thing to do, same with incineration, electrocution etc.
Secondly, it makes one particular quest impossible to finish - Cult Following: Eternal Flame. This quest relies on ragdolls - after you kill a bandit with a fire weapon, he will play his "death by flame' animation, fall to the ground, and his ragdoll will turn into ash. Disabling ragdolls prevents this from happening and you won't be able to collect the ashes.
This isn't even the worst part - if you decide to abandon this quest, Lilith will pop up in your ECHO and remind you to switch to a fire weapon every time you kill someone - doesn't matter if he's not a member of the Bloodshots or if you're in an entirely different area. She will even haunt you in DLCs and while being held hostage by Handsome Jack - so do yourself a favor and don't disable ragdolls.
The settings responsible for particles are located just below ragdoll settings.
Find these lines under [FullScreenMovie]:
Then, add a ; in front of each “StartupMovie” line. The result will be this:
Find these lines under the[WillowGame.WillowProjectile] section inside WillowGame.ini:
Those are the default settings. I suggest setting
SecondsBeforeConsideringRemoval to 1 and
SecondsBetweenRemovalAttempts to 0.25.