Jump to content

SSE FPS Stabilizer (by Shizof)


DoubleYou

Recommended Posts

Discussion topic:
SSE FPS Stabilizer by Shizof
Wiki Link


I'm sure everyone has at least heard of this mod by now. The default settings mainly alter TerrainManager LOD settings higher/lower as FPS increases/decreases, but it can be configured to dynamically adjust any INI setting higher/lower as the FPS increases/decreases. Below is the customized INI file that I am using with this for testing, which is geared toward higher-end hardware.

Spoiler

################################################################################################
# This is the config file for SSE Fps Stabilizer mod - HIGH Quality
#
#
# # ->This is the comment character.
#
################################################################################################
[Settings]
EnableLog = 0					#This prints the current config change action in the log file. May be used for testing if the config setting is applied. Config file is located at: "My Documents\My Games\Skyrim Special Edition\SKSE\SSEFpsStabilizerPlugin.log"

FPSStabilizerEnabled = 1			#Set this to 0 if you only want to use console feature of this mod.

TargetFps = 60					#This is the target fps we are trying to achieve. Decimal value.

FPSChangeThreshold = 0.01				#This is the fps change required for checking if a different level setting is more suitable. Decimal value.

LevelChangeBackUpWait = 1			#This is the duration in terms of seconds to wait before changing the level back up.
LevelChangeBackDownWait = 0.1		    	#This is the duration in terms of seconds to wait before changing the level back down.
LevelChangeBackUpAngle = 0.1			#This is the player heading angle change required in degrees to change the level back down.

# Enter lines to be run on console in this area
[DataLoaded]    #Runs after the game opened and menu is loaded
taa hf 0.75
taa lf 0.5
taa ps 1.0
taa po 0.675

[PostLoadGame]  #Runs after a saved game is loaded
setgs fBumpReactionSmallDelayTime 0.5
setgs fBumpReactionSmallWaitTimer 0.5
setgs fBumpReactionMinMoveDist 150
setgs fBumpReactionIdealMoveDist 250
setgs iArrowInventoryChance 50
setgs fAIMinGreetingDistance 60
setgs fArrowSpeedMult 2100
setgs iCrimeAlarmRecDistance 1800
setgs fFastTravelSpeedMult 3.4
setgs fCombatDodgeChanceMax 0.75
set timescale to 15

###################################################################
# Enter the ini setting under each level from best to worst.

[Level0] #Config settings for good fps (Fps is above TargetFps)
fBlockLevel0Distance:TerrainManager=53248
fBlockLevel1Distance:TerrainManager=159744
fShadowDistance:Display=10860
iShadowMapResolution:Display=8192
fPoissonRadiusScale:Display=1
fFirstSliceDistance:Display=5430
fMeshLODLevel1FadeDist:Display=16384
fMeshLODLevel2FadeDist:Display=20272
fMeshLODLevel1FadeTreeDistance:Display=16384
fMeshLODLevel1FadeTreeDistance:Display=20272
fTreesMidLODSwitchDist:Display=20272
fLightLODStartFade:Display=6144
fLightLODRange:Display=57568
fLODFadeOutMultActors:LOD=15
fLODFadeOutMultItems:LOD=6
fLODFadeOutMultObjects:LOD=30
fDecalLODFadeStart:LightingShader=1.0
fDecalLODFadeEnd:LightingShader=1.0
fEnvmapLODFadeStart:LightingShader=1.0
fEnvmapLODFadeEnd:LightingShader=1.0

[Level1] #Config settings for just a little worse fps
fBlockLevel0Distance:TerrainManager=53248
fBlockLevel1Distance:TerrainManager=159744
fShadowDistance:Display=8145
iShadowMapResolution:Display=4096
fPoissonRadiusScale:Display=2
fFirstSliceDistance:Display=4072
fMeshLODLevel1FadeDist:Display=12288
fMeshLODLevel2FadeDist:Display=17376
fMeshLODLevel1FadeTreeDistance:Display=12288
fMeshLODLevel1FadeTreeDistance:Display=17376
fTreesMidLODSwitchDist:Display=17376
fLightLODStartFade:Display=6144
fLightLODRange:Display=45984
fLODFadeOutMultActors:LOD=12
fLODFadeOutMultItems:LOD=4.5
fLODFadeOutMultObjects:LOD=15
fDecalLODFadeStart:LightingShader=0.6
fDecalLODFadeEnd:LightingShader=0.7
fEnvmapLODFadeStart:LightingShader=0.6
fEnvmapLODFadeEnd:LightingShader=0.7

[Level2] #Config settings for a little worse fps
fBlockLevel0Distance:TerrainManager=53248
fBlockLevel1Distance:TerrainManager=159744
fShadowDistance:Display=8145
iShadowMapResolution:Display=2048
fPoissonRadiusScale:Display=2.5
fFirstSliceDistance:Display=2896
fMeshLODLevel1FadeDist:Display=10240
fMeshLODLevel2FadeDist:Display=14480
fMeshLODLevel1FadeTreeDistance:Display=10240
fMeshLODLevel1FadeTreeDistance:Display=14480
fTreesMidLODSwitchDist:Display=14480
fLightLODStartFade:Display=6144
fLightLODRange:Display=34400
fLODFadeOutMultActors:LOD=11
fLODFadeOutMultItems:LOD=4.5
fLODFadeOutMultObjects:LOD=14
fDecalLODFadeStart:LightingShader=0.55
fDecalLODFadeEnd:LightingShader=0.65
fEnvmapLODFadeStart:LightingShader=0.55
fEnvmapLODFadeEnd:LightingShader=0.65

[Level3] #Config settings for much worse fps
fBlockLevel0Distance:TerrainManager=53248
fBlockLevel1Distance:TerrainManager=159744
fShadowDistance:Display=8145
iShadowMapResolution:Display=2048
fPoissonRadiusScale:Display=2.5
fFirstSliceDistance:Display=2896
fMeshLODLevel1FadeDist:Display=8192
fMeshLODLevel2FadeDist:Display=14480
fMeshLODLevel1FadeTreeDistance:Display=8192
fMeshLODLevel1FadeTreeDistance:Display=14480
fTreesMidLODSwitchDist:Display=14480
fLightLODStartFade:Display=6144
fLightLODRange:Display=22816
fLODFadeOutMultActors:LOD=10
fLODFadeOutMultItems:LOD=4
fLODFadeOutMultObjects:LOD=13
fDecalLODFadeStart:LightingShader=0.5
fDecalLODFadeEnd:LightingShader=0.6
fEnvmapLODFadeStart:LightingShader=0.5
fEnvmapLODFadeEnd:LightingShader=0.6


[Level4] #Config settings for very much worse fps
fBlockLevel0Distance:TerrainManager=53248
fBlockLevel1Distance:TerrainManager=159744
fShadowDistance:Display=3620
iShadowMapResolution:Display=1024
fPoissonRadiusScale:Display=3
fFirstSliceDistance:Display=2896
fMeshLODLevel1FadeDist:Display=6144
fMeshLODLevel2FadeDist:Display=11584
fMeshLODLevel1FadeTreeDistance:Display=6144
fMeshLODLevel1FadeTreeDistance:Display=11584
fTreesMidLODSwitchDist:Display=14480
fLightLODStartFade:Display=6144
fLightLODRange:Display=19920
fLODFadeOutMultActors:LOD=9
fLODFadeOutMultItems:LOD=3
fLODFadeOutMultObjects:LOD=12
fDecalLODFadeStart:LightingShader=0.45
fDecalLODFadeEnd:LightingShader=0.55
fEnvmapLODFadeStart:LightingShader=0.45
fEnvmapLODFadeEnd:LightingShader=0.55

[Level5] #Config settings for too much worse fps
fBlockLevel0Distance:TerrainManager=53248
fBlockLevel1Distance:TerrainManager=159744
fShadowDistance:Display=3620
iShadowMapResolution:Display=1024
fPoissonRadiusScale:Display=3
fFirstSliceDistance:Display=2896
fMeshLODLevel1FadeDist:Display=6144
fMeshLODLevel2FadeDist:Display=8688
fMeshLODLevel1FadeTreeDistance:Display=6144
fMeshLODLevel1FadeTreeDistance:Display=8688
fTreesMidLODSwitchDist:Display=14480
fLightLODStartFade:Display=6144
fLightLODRange:Display=17024
fLODFadeOutMultActors:LOD=8
fLODFadeOutMultItems:LOD=3
fLODFadeOutMultObjects:LOD=11
fDecalLODFadeStart:LightingShader=0.4
fDecalLODFadeEnd:LightingShader=0.5
fEnvmapLODFadeStart:LightingShader=0.4
fEnvmapLODFadeEnd:LightingShader=0.5

[Level6] #Config settings for too too much worse fps
fBlockLevel0Distance:TerrainManager=53248
fBlockLevel1Distance:TerrainManager=159744
fShadowDistance:Display=3620
iShadowMapResolution:Display=1024
fPoissonRadiusScale:Display=3
fFirstSliceDistance:Display=2896
fMeshLODLevel1FadeDist:Display=6144
fMeshLODLevel2FadeDist:Display=8688
fMeshLODLevel1FadeTreeDistance:Display=6144
fMeshLODLevel1FadeTreeDistance:Display=8688
fTreesMidLODSwitchDist:Display=14480
fLightLODStartFade:Display=6144
fLightLODRange:Display=14128
fLODFadeOutMultActors:LOD=7
fLODFadeOutMultItems:LOD=3
fLODFadeOutMultObjects:LOD=10
fDecalLODFadeStart:LightingShader=0.35
fDecalLODFadeEnd:LightingShader=0.45
fEnvmapLODFadeStart:LightingShader=0.35
fEnvmapLODFadeEnd:LightingShader=0.45

[Level7] #Config settings for too too too much worse fps
fBlockLevel0Distance:TerrainManager=45056
fBlockLevel1Distance:TerrainManager=135168
fShadowDistance:Display=3620
iShadowMapResolution:Display=1024
fPoissonRadiusScale:Display=3
fFirstSliceDistance:Display=2896
fMeshLODLevel1FadeDist:Display=6144
fMeshLODLevel2FadeDist:Display=8688
fMeshLODLevel1FadeTreeDistance:Display=6144
fMeshLODLevel1FadeTreeDistance:Display=8688
fTreesMidLODSwitchDist:Display=14480
fLightLODStartFade:Display=4096
fLightLODRange:Display=13280
fLODFadeOutMultActors:LOD=6
fLODFadeOutMultItems:LOD=3
fLODFadeOutMultObjects:LOD=8.5
fDecalLODFadeStart:LightingShader=0.3
fDecalLODFadeEnd:LightingShader=0.4
fEnvmapLODFadeStart:LightingShader=0.3
fEnvmapLODFadeEnd:LightingShader=0.4

[Level8] #Config settings for too too too too much worse fps
fBlockLevel0Distance:TerrainManager=36864
fBlockLevel1Distance:TerrainManager=110592
fShadowDistance:Display=3620
iShadowMapResolution:Display=1024
fPoissonRadiusScale:Display=3
fFirstSliceDistance:Display=1810
fMeshLODLevel1FadeDist:Display=6144
fMeshLODLevel2FadeDist:Display=8688
fMeshLODLevel1FadeTreeDistance:Display=6144
fMeshLODLevel1FadeTreeDistance:Display=8688
fTreesMidLODSwitchDist:Display=14480
fLightLODStartFade:Display=3072
fLightLODRange:Display=11408
fLODFadeOutMultActors:LOD=6
fLODFadeOutMultItems:LOD=3
fLODFadeOutMultObjects:LOD=7
fDecalLODFadeStart:LightingShader=0.25
fDecalLODFadeEnd:LightingShader=0.35
fEnvmapLODFadeStart:LightingShader=0.25
fEnvmapLODFadeEnd:LightingShader=0.35

[Level9] #Config settings for worst fps
fBlockLevel0Distance:TerrainManager=28672
fBlockLevel1Distance:TerrainManager=86016
fShadowDistance:Display=3620
iShadowMapResolution:Display=1024
fPoissonRadiusScale:Display=3
fFirstSliceDistance:Display=1500
fMeshLODLevel1FadeDist:Display=6144
fMeshLODLevel2FadeDist:Display=8688
fMeshLODLevel1FadeTreeDistance:Display=6144
fMeshLODLevel1FadeTreeDistance:Display=8688
fTreesMidLODSwitchDist:Display=14480
fLightLODStartFade:Display=2560
fLightLODRange:Display=8688
fLODFadeOutMultActors:LOD=6
fLODFadeOutMultItems:LOD=3
fLODFadeOutMultObjects:LOD=5
fDecalLODFadeStart:LightingShader=0.2
fDecalLODFadeEnd:LightingShader=0.3
fEnvmapLODFadeStart:LightingShader=0.2
fEnvmapLODFadeEnd:LightingShader=0.3

 

z929669 --> I have been testing with the above config with the first section modified a bit more realistically and for my own FPS, which averages more around 55 FPS overall:

Spoiler

 


[Settings]
EnableLog = 0						#This prints the current config change action in the log file. May be used for testing if the config setting is applied. Config file is located at: "My Documents\My Games\Skyrim Special Edition\SKSE\SSEFpsStabilizerPlugin.log"

FPSStabilizerEnabled = 1			#Set this to 0 if you only want to use console feature of this mod.

TargetFps = 52						#This is the target fps we are trying to achieve. Decimal value.

FPSChangeThreshold = 1				#This is the fps change required for checking if a different level setting is more suitable. Decimal value.

LevelChangeBackUpWait = 3			#This is the duration in terms of seconds to wait before changing the level back up.
LevelChangeBackDownWait = 3		    #This is the duration in terms of seconds to wait before changing the level back down.
LevelChangeBackUpAngle = 45			#This is the player heading angle change required in degrees to change the level back down.

# Enter lines to be run on console in this area
[DataLoaded]    #Runs after the game opened and menu is loaded
#taa hf 0.100000
#taa ps 1.000000
#taa po 0.675000

 

 

 

 

Link to comment
Share on other sites

Interesting ... but further complicates display config, LOL. It could take us months to agree on optimal configs with this one in the mix. I don't want to offer every scenario or maintain those instructions in our guides. Maybe some suggestions is all or for the most common setup.

Remember, every time one of these mods is updated, we would need to spend a lot of time adjusting (and debating) the changes to our recommendations. PC envs are just too variable.

Link to comment
Share on other sites

  • 2 weeks later...

Check this out: https://forums.nexusmods.com/index.php?/topic/8925953-sse-fps-stabilizer/page-58#entry100904403

Quote

It will change the settings in-game, but the game will write those settings to the files, so you should set your ini files to read-only.

While not a deal-breaker, I'm thinking this could become a support nightmare for the STEP team.

Link to comment
Share on other sites

34 minutes ago, Mousetick said:

Check this out: https://forums.nexusmods.com/index.php?/topic/8925953-sse-fps-stabilizer/page-58#entry100904403

While not a deal-breaker, I'm thinking this could become a support nightmare for the STEP team.

I have noticed it does save SkyrimPrefs.ini settings. I don't really see any issue with this, however, as long as we use good settings. I think this is probably a good thing, as it will mean that when you reload an area, the settings will persist, and you won't need to wait for it to lower the settings upon reload.

Link to comment
Share on other sites

46 minutes ago, DoubleYou said:

I don't really see any issue with this, however, as long as we use good settings.

I don't have a problem with it either personally. I was thinking that with this mod your 'baseline' configuration will become meaningless, as it can't be used as a reference point anymore for supporting users with performance issues.

If you're confident you can find a good set of settings for each LevelN that provides adequate performance for everybody, then that's great and I'm all for it.

Link to comment
Share on other sites

On 11/6/2021 at 9:38 PM, DoubleYou said:

I have noticed it does save SkyrimPrefs.ini settings.

I don't know why but it doesn't touch mine, nor Skyrim.ini for that matter.

I tried your INI configuration. FYI, it looks like 'fBlockLevel2Distance:TerrainManager' is ignored. You can see it complain about 'setting not found' if you turn on logging in the mod's INI.

For example:

Switching to level 1 - Angle:324.719 - CurrentFPS:54.054
New setting (fBlockLevel0Distance:TerrainManager): 53248
New setting (fBlockLevel1Distance:TerrainManager): 159744
setting not found (fBlockLevel2Distance:TerrainManager) <----- HERE
New setting (fShadowDistance:Display): 8145
New setting (iShadowMapResolution:Display): 2048
New setting (fMeshLODLevel1FadeDist:Display): 10240
New setting (fMeshLODLevel2FadeDist:Display): 14480
New setting (fMeshLODLevel1FadeTreeDistance:Display): 10240
New setting (fMeshLODLevel1FadeTreeDistance:Display): 14480
New setting (fTreesMidLODSwitchDist:Display): 14480
New setting (fLODFadeOutMultActors:LOD): 11
New setting (fLODFadeOutMultItems:LOD): 4.5
New setting (fLODFadeOutMultObjects:LOD): 14

 

Link to comment
Share on other sites

2 hours ago, Mousetick said:

I don't know why but it doesn't touch mine, nor Skyrim.ini for that matter.

I tried your INI configuration. FYI, it looks like 'fBlockLevel2Distance:TerrainManager' is ignored. You can see it complain about 'setting not found' if you turn on logging in the mod's INI.

For example:


Switching to level 1 - Angle:324.719 - CurrentFPS:54.054
New setting (fBlockLevel0Distance:TerrainManager): 53248
New setting (fBlockLevel1Distance:TerrainManager): 159744
setting not found (fBlockLevel2Distance:TerrainManager) <----- HERE
New setting (fShadowDistance:Display): 8145
New setting (iShadowMapResolution:Display): 2048
New setting (fMeshLODLevel1FadeDist:Display): 10240
New setting (fMeshLODLevel2FadeDist:Display): 14480
New setting (fMeshLODLevel1FadeTreeDistance:Display): 10240
New setting (fMeshLODLevel1FadeTreeDistance:Display): 14480
New setting (fTreesMidLODSwitchDist:Display): 14480
New setting (fLODFadeOutMultActors:LOD): 11
New setting (fLODFadeOutMultItems:LOD): 4.5
New setting (fLODFadeOutMultObjects:LOD): 14

 

Interesting. It would seem that some settings may not be supported. I will have to make sure I enable the log as I test the different ones. 

Link to comment
Share on other sites

I think this mod is good for the console feature, but the dynamic INI settings seem to be only useful for testing purposes IMO. As a method of validating performance-impacting INI settings specifically. Using the log to verify what setting tweaks result in beneficial impact.

I would not run with this mod otherwise unless it is being used to resolve some nagging performance issues. And then it is likely still best to use it to seek out more appropriate INI values for key INI settings that impact performance. Maybe throttling this mod to only certain key settings to be dynamic would be best (e.g., terrainmanager), but I think it is highly experimental and would not recommend using it for Step as a blanket approach. The TargetFps setting should be set to a realistic value and NOT what you are using as a frame cap necessarily. My cap is set to 141, and I rarely get that outdoors but often indoors and always in menus. TargetFps for me would be something like 50-55, which is what I see often in game. I would rather have consistency of visuals than consistency of frames.

At the end of the day, I think it is best to set optimal static INI values as always. Seems like mileage will vary significantly, and troubleshooting/conflicts/obfuscation of legit issues will possibly be exacerbated by this mod.

Definitely a fun mod to use for testing/tweaking, but not as a blanket solution for Step, IMNSHO.

Link to comment
Share on other sites

I'm revising my opinion a bit on this mod. If DY's settings are used and I set TargetFps to a reasonable value (50) based upon my actual FPS in game where I struggle (40 FPS in places on the tundra), then this mod does a good job keeping me near 50 FPS. In these lower-performance areas, I spend most of my time switching among Level5-9. Indoors and in town, I spend most of my time in Level0-2, depending. I don't notice any real degradation while playing, so that's a plus. And shadows indoors and in town ARE very nice with DY's settings. I haven't notice shadows are bad outdoors, and tree skinning seems fine.

This mod does not write to my Skyrim.ini or SkyrimPrefs.ini files, so it must be setting these INI values in memory.

I have my 'blank' SkyrimCustom.ini set to read only, so it is never used (and MO doesn't care in the least about this, as I have mentioned. This file does nothing at all for me that I can notice). I will test with it at some point, but I'm not motivated to do so without good reason (i.e., something is not working).

Link to comment
Share on other sites

That has been the main goal I have had for this... make changes that are hardly perceptible but improve performance in bad areas. Plus, actually add extra detail that you otherwise couldn't enjoy. 

I think the only ini file that would be saved by the game would be SkyrimPrefs.ini and it would only happen on occasion. The mod itself doesn't save it; it merely is pointing out a vanilla game mechanic, mostly for saving Settings such as sound volume. 

Link to comment
Share on other sites

10 hours ago, z929669 said:

I have my 'blank' SkyrimCustom.ini set to read only, so it is never used (and MO doesn't care in the least about this, as I have mentioned. This file does nothing at all for me that I can notice). I will test with it at some point, but I'm not motivated to do so without good reason (i.e., something is not working).

OT: As DY pointed out elsewhere, MO needs to write to SkyrimCustom.ini if you configure your MO profile to 'Use profile-specific Save Games'.

4 hours ago, DoubleYou said:

I think the only ini file that would be saved by the game would be SkyrimPrefs.ini and it would only happen on occasion. The mod itself doesn't save it; it merely is pointing out a vanilla game mechanic, mostly for saving Settings such as sound volume.

That must be right. Changes made by the mod are saved to the INI if a save of settings is triggered by something else (such as the user changing game options), but the mod itself doesn't trigger the save.

  • +1 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.