Skyrim
Help us shape the future of the Vortex mod manager by taking our survey

I am going to list all of the .ini tweaks that I use in my game, with credits and links to the original posts/sites that i found them. Like so many other people, I spend more time modding and fine-tuning my game than actually playing it. What follows is a list of helpful tweaks, sorted by effect.

You can find your Skyrim.ini and SkyrimPrefs.ini in your Documents/My Games/Skyrim Folder. As a rule of thumb, its a great idea to back up these two ini files before editing them, so you can revert back if you cause any errors.

Also, if you change any options through the Skyrim Launcher after manually editing your ini files, your changes may be overwritten.

Performance:

Multi-Core CPUs - These tweaks increase the power of a multi-core rig by multi-threading processes

In Skyrim.ini Add/Edit:

[BackgroundLoad]
bBackgroundLoadLipFiles=1
bLoadBackgroundFaceGen=1
bUseMultiThreadedFaceGen=1
bBackgroundCellLoads=1
bLoadHelmetsInBackground=1
bUseMultiThreadedTrees=1
bUseBackgroundFileLoader=1

[Animation]
bMultiThreadBoneUpdate=1

[HAVOK]
iNumThreads=XX

[General]
bUseThreadedTempEffects=1
bUseThreadedParticleSystem=1
bMultiThreadMovement=1
bUseThreadedMorpher=1

[Decals]
bDecalMultithreaded=1

In SkyrimPrefs.ini Add/Edit:

[Navmesh]
bUseThreadedMeshes=1

[Trees]
bUseMultiThreadedTrees=1
bShadowMaskZPrePass=1

[BackgroundLoad]
bBackgroundLoadLipFiles=1
bLoadBackgroundFaceGen=1
bUseMultiThreadedFaceGen=1
bBackgroundCellLoads=1
bLoadHelmetsInBackground=1
bUseMultiThreadedTrees=1

[General]
bUseThreadedParticleSystem=1
bUseThreadedBlood=1
bUseThreadedMorpher=1
bUseThreadedTempEffects=1
bUseThreadedTextures=1
bUseThreadedMeshes=1
bUseThreadedLOD=1
bUseThreadedAI=1
bUseThreadedMorpher=1

[Decals]
bDecalMultithreaded=1

For "iNumThreads" ( the XX value above) set this to the number of CPU cores your PC has. If you have 4 or more leave this as 5 (maximum).

(source: Skyrim Tweak Guide 2.2)

Decreasing Script Lag - The scripting language used in Skyrim, Papyrus, is not the speediest of languages. Script queues can become lagged, and even halted, in a game using script-heavy mods. Using this tweak in my game even seemed to fix the lip synch problem that reared its ugly head again in the 1.9 update for Skyrim.

In Skyrim.ini add/edit:

[Papyrus]
fUpdateBudgetMS=800
fExtraTaskletBudgetMS=800
fPostLoadUpdateTimeMS=2000
iMinMemoryPageSize=256
iMaxMemoryPageSize=512
iMaxAllocatedMemoryBytes=2457600

(Source: Skyrim Script Lag)

Gameplay:

Better Aiming - These tweaks will help improve aim and range with bows and crossbows.

Add/edit in Skyrim.ini:

[Combat]
fMagnetismStrafeHeadingMult=0.0
fMagnetismLookingMult=0.0
f1PArrowTiltUpAngle=0.7
f3PArrowTiltUpAngle=0.7
f1PBoltTiltUpAngle=0.7
f3PBoltTiltUpAngle=0.7

[Actor]
fVisibleNavmeshMoveDist=12288.0000

(Source: Skyrim Archery Tweak)

Visuals:

Whether you have an Nvidia or ATI/AMD video card, the best resource for tweaking Skyrim's visuals is here. I couldn't improve on the content, or splice together a better guide from different sources. You will probably spend a lot of time fine-tuning these settings to balance performance and quality.


Article information

Added on

Edited on

Written by

HoleyGrail

104 comments

  1. Apogee777
    Apogee777
    • member
    • 2,438 posts
    • 138 kudos
    there was a time when these settings caused wreckage with my older quad core system
    strangely enough, after i7/R9 390 upgrade this is running extremely well with all these added multi-thread lines.
    i had this in my favourites and just revisited it now
    i have a good load order but an awful time loading the saves and getting into the damn game after the latest win10 upgrade, then the win10 1511 mega update (no compatibility modes would fix it)
    AND THEN i added all these lines in desperation and weird enough my 1st main save loaded fine straight away..HUH? lol
    thanks for posting these references
    1. Apogee777
      Apogee777
      • member
      • 2,438 posts
      • 138 kudos
      update,
      it was bad saves not the ini's
      however my CPU threads (i7 HT off) are firing like never before with these ini add-ins
      complete stability, but i recommend to people to add ALL of them - NOT partial as all is the best result.
    2. GuerillaTech
      GuerillaTech
      • premium
      • 596 posts
      • 16 kudos
      so, you recommend setting inumthreads=5 to 8 for a quad core cpu? I never really understood the 5 threads limit anyway.
    3. Apogee777
      Apogee777
      • member
      • 2,438 posts
      • 138 kudos
      5-8 threads on a 4 thread cpu?
      that does not make sense, 4 of course

      EDIT:
      [HAVOK]
      iNumThreads=XX
      should be 4 maximum, i don't agree with 5-8, even with an i7 etc
      issues with loading saves.
      Stable @ values of 2 or 4. (or delete it to use default)
    4. TerraKitsune
      TerraKitsune
      • supporter
      • 289 posts
      • 12 kudos
      I'm not saying straight 'right' or 'wrong', just that it's not as simple as 'of course 4'. In most cases 5 would be a good rule of thumb for 4-core system, but a lot depends on the way the game actually utilizes the threads, and how much other resources (memory, graphics, disk I/O etc) is available.

      Overall having 4 threads doesn't necessarily mean that all 4 are utilized 100% all the time. CPU on the other hand at maximum load times could and should be used for all it's worth. Usually adding one extra thread is a good way to streamline the use of resources - e.g. even when 1 thread is idling to wait for other resources (f.ex. disk activity), another can be given for CPU to process.

      There's other factors to account for, but in practice the best way is to test how many threads work for you. If you use CPU with hyperthreading on, then I'd start with number of threads equal to 'virtual cores' of the system (often 8). With no hyperthreading, I'd start with cores + 1, then try adding a couple more and see how it changes performance over a few hours of playing.

      Anyway if Skyrim's HAVOK supports 5 threads at most, then that should be a good value for most modern rigs. What I wrote above is more generic for any multi-threaded application.
    5. Apogee777
      Apogee777
      • member
      • 2,438 posts
      • 138 kudos
      only reason i say max 4 is i personally had instability above these values on 2 different rigs.
      cpu's released after Sandybridge definitively have better features, my aging 2600 just may not be able to do so.
      but i'm happy at my current setting, Skyrim is running better than ever.
      and while i'm here FO4 is running very smooth with similar tweaks
      http://pastebin.com/3eJJWWXc
    6. xChampions
      xChampions
      • supporter
      • 11 posts
      • 0 kudos
      Don't most Quad-Cores from 2008 and onwards have 4- cores with 8 threads? I got an i7 6700K, should I stick to 4 threads or use the described limit of 5, or push to 8? Playing a heavily modded playthrough and have gotten far, don't want to mess anything up majorly.
    7. Drift91
      Drift91
      • member
      • 23 posts
      • 0 kudos
      I tried a value of 6, since my i5-9600KF has 6 cores and no hyperthreading. I started experiencing all sorts of wonkiness and corruption in my game. Everything from missing textures to corrupted autosaves. I'm using a value of 4 now and so far it seems stable.

      Also, I suspect "If you have 4 or more leave this as 5 (maximum)." was a typo and should read "If you have 4 or more leave this as 4 (maximum)." as there's little point to having 5 threads on a 4 thread CPU and I've read one claim that 5 still causes instability.
  2. Drift91
    Drift91
    • member
    • 23 posts
    • 0 kudos
    Although I'm sure a lot of these do help, you might want to give these a read over:
    https://www.reddit.com/r/skyrimmods/comments/2gwvwl/guide_papyrus_ini_settings_and_why_you_shouldnt/ckosfmo/
    https://www.reddit.com/r/skyrimmods/comments/2gwvwl/guide_papyrus_ini_settings_and_why_you_shouldnt/

    The papyrus section is a complete mess. In particular "fUpdateBudgetMS" and "fExtraTaskletBudgetMS" should be left at "1.2" unless you know they need to be raised, and even then they shouldn't go much above "2.2". 800 is an absurd value that could result in random lag spikes or freezes that appear out of nowhere. You're literally allowing a single frame to take 800ms to run scripts, potentially resulting in a frame rate dip below 2 fps in a worst case scenario. The Reddit post above explains how those two settings work a lot better if you want to know the exact details.

    Edit:
    For "iNumThreads" do NOT go above 4. I set mine to 6 and all sorts of crazy corruption and wonkiness started happening with my game. Everything from disappearing textures to corrupted autosaves. One person also claimed that a value of 5 did the same thing to them. I suspect "If you have 4 or more leave this as 5 (maximum)." was a typo and should read "If you have 4 or more leave this as 4 (maximum)."
  3. Nocturniquette
    Nocturniquette
    • supporter
    • 250 posts
    • 2 kudos
    These little tricks have saved my game. I can now play with enhanced textures and details and actually see how pretty my game is. No more random memory related CTD's for me! I have endorsed this even though it's old because you have saved my skyrim. Thank you so much for doing this.
  4. modal1
    modal1
    • member
    • 79 posts
    • 1 kudos
    Thanks for this guide, for the most part it appears to be good advice, except the [Papyrus] section (timings and memory are best left alone or just minor tweaks for heavily modded games).
     
    Some of the settings appear to be invalid.
     
    BethINI removes the following entries from SkyrimPrefs.ini:
     
    [General]
    bUseThreadedAI was removed due to it being an invalid setting (not recognized by the game).
    bUseThreadedBlood was removed due to it being an invalid setting (not recognized by the game).
    bUseThreadedLOD was removed due to it being an invalid setting (not recognized by the game).
    bUseThreadedMeshes was removed due to it being an invalid setting (not recognized by the game).
    bUseThreadedTextures was removed due to it being an invalid setting (not recognized by the game).

    [Navmesh]
    bUseThreadedMeshes was removed due to it being an invalid setting (not recognized by the game).

    [Trees]
    bShadowMaskZPrePass was removed due to it being an invalid setting (not recognized by the game).
    bUseMultiThreadedTrees was removed due to it being an invalid setting (not recognized by the game).
  5. HjalmaarE
    HjalmaarE
    • member
    • 2 posts
    • 0 kudos
    Wow I had 25fps in Riften and Whiterun before installing this, now I have 60 almost everywhere. Thanks so much!
  6. xrayy
    xrayy
    • premium
    • 5,447 posts
    • 182 kudos
    [Actor]
    fVisibleNavmeshMoveDist=12288.0000

    seems to be a litte low for a capable rig. it means you cannot do do a long distance hunt exceeding this given range.
    i'm using 16384. seems to be a good compromise
  7. ThatSpartacusGuy
    ThatSpartacusGuy
    • premium
    • 2,145 posts
    • 115 kudos
    I am going to test this with Special Edition (minus the Papyrus edits). I am only registering 50-60% GPU usage on my 1070 FTW2 with iCX and i7 4790 but I still get FPS dips despite the sub-100 graphic usage.
    1. Angsaar
      Angsaar
      • member
      • 387 posts
      • 2 kudos
      Sadly, the worst dips seem to be draw-call-related, engine/directx/whatever just cant process so many objects at once, even in vanilla.

      Modded, cities and other object-heavy locations are the worst for me, always stuck in the 40s fps with items/objects at medium draw range, 50s fps with items/objects at lowest draw range. 10~20 fps loss just out of API limitations...
    2. AiriannaWW
      AiriannaWW
      • member
      • 197 posts
      • 1 kudos
      First off, all except the papyrus section is decent.

      [Papyrus]
      fUpdateBudgetMS=1.25
      fExtraTaskletBudgetMS=1.25
      fPostLoadUpdateTimeMS=2000.0
      iMinMemoryPageSize=128
      iMaxMemoryPageSize=512
      iMaxAllocatedMemoryBytes=15000000
      bEnableLogging=0
      bEnableTrace=0
      bLoadDebugInformation=0
      bEnableProfiling=0

      MS = Millaseconds, 1000ms = 1 second.
      fUpdateBudgetMS= and fExtraTaskletBudgetMS= For every processess you have trying to happen, Their setting of 800ms per process WILL generate lag and LOW frame rates if your papyrus hangs up. For me, if the process can not be completed in 1.25 milliseconds it gets passed on to keep frame rates at 40+ with a very large papyrus file.
      fPostLoadUpdateTimeMS= Is loading screens, where it will take up to 2 seconds (limited by papyrus it's self) to complete any and all tasks it could not complete before, this will also extend loading times as things are cleared up as you transfer cells.
      min and max memory page file sizes, are just that, memory cache chunks, too small or too large, depending on your system will cause issues, and should not be modified except in cache size portions, 64, 128, 256, 512, 1024. Also if you are running a 32 bit machine, 64 for the first and 256 for the second are recommended.
      iMaxAllocatedMemoryBytes= Is really dependent on how many script heavy mods you are running. (Las count, I have well over 8,000 scripts in my loose script folder, not counting the scripts in my .bsa files.)
      The others I list are only set to 1, to try to find errors and generate logs, which the papyrus has to amend to and save for every line, and should remain off unless otherwise specified by a mod author.
  8. IceTater
    IceTater
    • supporter
    • 148 posts
    • 0 kudos
    Why 2 different sections for [Background Load]. Doesn't the second section get ignored?

    edit -- my bad, didn't see that one section was for SkyrimPrefs.ini
  9. DominatorLegend
    DominatorLegend
    • premium
    • 491 posts
    • 4 kudos
    It's me or most of these features don't appear in my ini file?

    Edit: Nevermind, I'm just stupid
    1. Nitrate55
      Nitrate55
      • member
      • 66 posts
      • 0 kudos
      Are they supposed to not show up in the ini file? I think I might be stupid too, but I just wanna make sure
    2. dragonzz909
      dragonzz909
      • member
      • 330 posts
      • 2 kudos
      No,youre supposed to add them.
  10. WHITELION1284
    WHITELION1284
    • supporter
    • 1,653 posts
    • 11 kudos
    Okay, I'm not trying to start a flame war or be a jerk or anything, but those papyrus settings are way off. This is from the Creation Kit wiki:
    ---------------
    fUpdateBudgetMS

    This setting controls how much time the main Papyrus update loop gets. This loop mainly controls function dispatch. If a lot of function calls are being made and a lot of scripts are running, increasing this value may improve script performance at the cost of reduced game framerate. However most of the time the VM won't take this entire time slice and increasing the value will have no effect.
    ---------------
    Setting this to 667 times the default value is not going to provide any benefit and will probably just slow your setup down and kill framerate. Same for the next setting:
    ---------------
    fExtraTaskletBudgetMS

    This setting controls how much time taken out of another game thread is taken up by running script tasklets (the code that runs the raw script byte code). This time is on top of the time that the tasklets normally get in their own thread, but because that thread is shared they may end up being starved if other systems are highly stressed. If the game is not stressed, this time will not be used. Increasing this value may improve script performance in high-stress situations at the expense of framerate.

    Default: 1.2
    -------------
    Again, setting this to nearly 700 times the default value is of no benefit and will likely only kill your framerate. If you're experiencing script lag increase the default setting to 1.6 or 2 at the very most. 800 is... hell, I don't even have an appropriate metaphor. It's not necessary.

    Seriously check this site out: http://www.creationkit.com/index.php?title=INI_Settings_(Papyrus)