=============================== LIST OF THINGS I TWEAKED ============================ iMaxDecalsPerFrame=10 - This value determines the maximum number of decals (blood marks) visible on screen at any time. Note that decals can have a noticeable impact on performance, so raising this value can reduce FPS during combat. fDecalLifetime=10.0000 - This value determines the time in seconds before decals (blood marks) disappear. The higher the value, the longer the blood marks will take to fade away. Note again that decals can have a noticeable impact on performance. bAllow30Shaders=0 - If set to 1, this option allows (but does not force) the use of Shader Model 3.0 on graphics cards which support it, namely Nvidia GeForce 6600 or newer, or ATI X1000 series or newer. This can potentially improve performance when using HDR rendering for example. Check your RendererInfo.txt file in your \Documents and Settings\User\Documents\My Games\Oblivion directory to see if your card supports SM3.0 next to the option '3.0 Shaders'. Note however that even by enabling this option, Oblivion still appears to use 2.0 shaders (check the 'PSTarget' and 'VSTarget' lines in Rendererinfo.txt). In any case, if you have one of the cards mentioned above, it cannot hurt to enable this option. ----- All users should implement the Memory and Loading tweaks (with appropriate values) below, but the Multithreading tweaks are best used on Dual Core or HyperThreading CPUs. Memory Tweaks: uInterior Cell Buffer=3 uExterior Cell Buffer=36 The above values determine how many cells (whether for interior or exterior areas) are buffered into RAM. Note that usually the value of the Exterior Cell Buffer variable is automatically set by the engine based on the size of the uGridstoLoad variable. The higher that variable is, the higher the engine will raise this value. However if you want to smooth out your FPS, try manually setting a higher value for both of these, depending on how much RAM you have. For 1GB I recommend doubling the values (6 and 72 respectively). For 2GB of RAM, I use 16 and 102 respectively. For higher amounts of RAM, try raising them higher, however note that you should also raise the iPreloadSizeLimit value below. iPreloadSizeLimit=26214400 - This setting appears to determine the maximum amount (in bytes) of RAM allowed for preloading game data. The higher the value, the more chance you have of reducing stuttering. The default value equates to around 25MB (divide the setting by 1024 to get KB, then by 1024 again to get MB). For those with 1GB of system RAM, try doubling the variable to 52428800. For those with 2GB, try double again at 104857600 (100MB). You can raise these values even further to experiment, however note that raising this to a large amount doesn't force all the game data to sit in RAM, and can actually cause crashes. I suggest the maximum anyone should set this to should be around 262144000 (250MB), even for 2GB of RAM. Make sure to raise your Cell Buffer values accordingly (see above). bPreemptivelyUnloadCells=0 - If set to 1, this setting attempts to unload cell data it thinks you won't need. This can help those with less than 1GB of RAM, however with 1GB or more of RAM, I recommend leaving it at 0 for greatly reduced stuttering. Importantly: As you raise the values of iPreloadSizeLimit and the Cell Buffer variables further above, you should make sure bPreemptivelyUnloadCells is set to 0 to take advantage of such additional memory allocation, otherwise it will actively work against the benefits brought about by the other tweaks. ---- Multithreading Tweaks: bUseThreadedBlood=1 bUseThreadedMorpher=1 bUseThreadedTempEffects=1 bUseThreadedParticleSystem=1 bUseMultiThreadedTrees=1 bUseMultiThreadedFaceGen=1 iNumHavokThreads=5 iThreads=9 iOpenMPLevel=10 All of the above settings seem to relate to the use of the GameBryo engine's multithreading capability (See Neat Stuff & Conclusion section). Multithreading splits tasks into 'threads' where possible, and runs them in parallel across both cores of Dual Core or HyperThreading (virtual dual core) CPUs to improve performance. Note that raising the values of the iThreads, iNumHavokThreads and iOpenMPLevel settings very high doesn't automatically mean it uses that many threads - it all depends on how many threads are actually possible based on the information being processed. ---------------------- uGridDistantTreeRange=15 uGridDistantCount=25 The above settings when combined can be used to increase the visibility of distant trees. Increasing the uGridDistantTreeRange setting by itself has no visible impact. Yet if you also increase the uGridDistantCount value as well, you will start to see trees further out towards the horizon, on mountain ranges for example. Very high values will reduce performance and dramatically increase level loading times. For example experiment with a value of 200 for both to see the image quality and performance impact on your system, though I would recommend you leave these at their default for the best performance/image quality balance. uGridDistantTreeRangeCity=4 uGridDistantCountCity=4 The above settings work in much the same way as uGridDistantTreeRange and uGridDistantCount except they apply to tree visibility within cities. ---------------------- iMinGrassSize=120 - This setting controls the density of grass clumps. The higher the value, the less tightly packed grassy areas will be, resulting in more empty spaces in grassland, and thus noticeably higher FPS in heavily grassed areas. I suggest a value of 120 to improve FPS without overly thinning out grass. -------------------- fGrassEndDistance=8000.0000 fGrassStartFadeDistance=7000.0000 The above settings control the distance at which grass ends, and the distance shortly before that which it starts to fade away. You can lower these values to increase performance, and also by reducing the difference between the FadeDistance and EndDistance. ------------------------ bForceFullLOD=0 - If set to 1 uses full Level of Detail (LOD) for trees, making them appear slightly better at the cost of a small FPS drop. ------- bUseWaterReflectionsMisc=1 bUseWaterReflectionsStatics=1 bUseWaterReflectionsTrees=1 bUseWaterReflectionsActors=1 The above settings control the additional reflections possible on the surface of water areas. When set to 1, they allow nearby trees, objects, and other characters to reflect in the water. Note that this reduces FPS in busy areas, and that the additional reflections are only visible when you and the objects are closer to the water.