Jump to content

SkyTweak and other tools


GrimyBunyip

Recommended Posts

I was hoping you guys might consider reviewing SkyTweak and some of the smaller mods I keep on this SkyTweak page. https://www.nexusmods.com/skyrim/mods/33395 I made SkyTweak because I knew I'd never be completely satisfied with the balance of other mods. So I made a mod that lets me "plug the leaks". It's designed to be as compatible as possible, and I don't know of any mods that SkyTweak has issues with, even several months after release. It also has a few small fixes/tweaks that I wanted but never found in other mods. Notably Critical Damage, Bleed Damage, and illusion scaling. The latter boosts illusion magnitude high enough to work on any enemy, but scales the duration down based on enemy level. Critical Damage Scaling makes critical hit damage scale with the base AV, the AVMod, and AVPowerMod, and perks. That way critical damage still makes a difference in the end game. Bleed damage scaling does the same thing for the bleed damage from axe perks. And of course there's a few other smaller mods on the SkyTweak page but I won't mention them for now. And I'll be around if you guys want any more additional information.

Link to comment
Share on other sites

  • Replies 48
  • Created
  • Last Reply

Top Posters In This Topic

I've looked at SkyTweak before and thought it looked impressive, but if I remember right, at the time it wasn't factoring in changes made by other mods. It looks like you've solved that issue, and I think the current version looks really nice.

 

I would like to clear up a few questions, though, because something that touches on so many different settings does tend to make me rather cautious. I already use a number of mods that change the game settings in one way or another, and obviously I use them because I like most of the changes they make. If I install SkyTweak along with another mod, say Trade & Barter (which uses scripts to alter a few of the game settings) or Stealth Skills Rebalanced (which alters settings both directly and by script), then from the mod description, it sounds as though the default values that appear in SkyTweak's menu will be the values from these mods.

 

Am I correct in assuming that as long as I don't try to adjust those particular settings in SkyTweak, then they will maintain the values set by the other mods (regardless of whether the changes are made directly or via script)? And if I change the settings using SkyTweak then SkyTweak will override the values from the other mods?

 

How does this resolve itself if both mods are making the changes via scripts? What happens, for instance, if someone changed fBarterMin in SkyTweak, then forgot about it and sometime later changed the same value using Trade & Barter? Or if they were using SkyTweak to adjust certain settings and later installed another mod that also changed those settings...does the game retain the SkyTweak changes or adjust the settings to reflect the values from the new mod?

Link to comment
Share on other sites

alright, @ the first question about defaults:

 

SkyTweak collects the data for defaults upon loading.

So assuming SkyTweak runs first, the defaults will be whatever is hardcoded into the game by the esp's.

If a script based mod such as T&B manages to run their gamesetting edits before SkyTweak collects data for the defaults,

 

So either the setting from the script based mods is recorded, or the hardcoded settings are recorded depending on script priority.

I'm not sure how exactly sure how priority is determined for scripts.

 

Only meaningful information I can give you on priority is that SkyTweak utilizes OnPlayerLoadGame and OnConfigInit to run the data collection on the defaults.

And that while testing with other mods, SkyTweak seems to run last.

Meaning it will grab the settings made by T&B, but at the same time, there exists a possibility of SkyTweak overriding T&B since SkyTweak runs second.

 

@ second question, about maintaining values set by other mods.

 

SkyTweak stores data on what value to maintain a gamesetting at.

This data is updated whenever a setting is changed obviously, but is also updated on each page reset.

 

So what this means is:

Lets say Someone changes fbartermax from 10 to 20 on Trade & Barter.

Then they immediately exit Skyrim.

 

When they load Skyrim again, trade and barter will run first

(IDK why T&B runs first, my testing just shows that it always does. I don't have detailed info on script priority at this time.)

T&B sets fbartermax to 20.

Then SkyTweak will scan for defaults.

SkyTweak will set fbartermax to 20 as the new default.

SkyTweak will then set its settings, changing fbartermax to 10 since an onpagereset event was never triggered.

The player immediately exited so no opportunity was given for SkyTweak to account for Trade & Barter's changes.

 

Here is the other alternative scenario:

A player changes fbartermax from 10 to 20 in Trade & barter

Then he opens SkyTweak, just to look around, doesn't change anything.

This has triggered the OnPageReset event, so SkyTweak has now re-evaluated its settings.

 

The player loads the game.

Trade & Barter runs first, sets fbartermax to 20

SkyTweak scans for defaults, sets the default to 20

SkyTweak now adjusts settings again, setting fbartermax to 20.

 

That's as far as my testing goes so far.

 

PS: I noticed something in regards to the fbartermin and max sliders in trade & barter.

They update their values OnPageReset.

But not OnOptionSliderOpen

so the value seen when you open the barter sliders, and what is shown on the MCM menu can be different values.

Link to comment
Share on other sites

So I'm assuming that SkyTweak will stack on anything added in any type of INI like Community Uncapper. It basically lets everything else load first then uses that as it's default?

Yes that is what happens so long as they load before SkyTweak runs data collection for its defaults.

In theory some mods could load after SkyTweak, and bypass the data collection.

But I'm not aware of any that do that except sneak skills rebalanced, since that one edits pickpocket min and max chance periodically during gameplay I believe.

 

So SSR aside, All other mods, even scripted ones seem to load before SkyTweak.

And then SkyTweak runs data collection for its defaults and uses those as defaults.

 

To further elaborate.

SkyTweak also has a second form of setting, called "stacker settings".

The one we were just talking about were scanner settings.

 

Stacker settings are just custom tweaks I made (the vast majority of them are perks).

They will stack additively or multiplicatively ontop of all existing settings, and are fully independent from all other mods.

Link to comment
Share on other sites

You know what, I'm going to add another scan event for OnConfigClose() in the next version release.

That'll seal up the last, albeit minor issue I'm having with Trade & barter I mentioned in the 3rd post.

 

Derp, OnConfigClose() event is unique for each menu.

So it won't work.

 

Unless someone releases an event for the opening of menu mode, I don't see how I can add any other compatibility measures.

Link to comment
Share on other sites

I like the sound of it but will wait on more testing and verification before commenting further ;)

Alright, sounds good :p

 

Anyways I've made another update with another layer of compatibility checks.

 

Allow me to summarize:

 

So the concern is that mod A makes a change to a setting, and SkyTweak does not detect it.

Because if SkyTweak doesn't detect it, the next time the player loads the save, it might load with the wrong setting.

 

In order for this to happen, Mod A needs to change a gamesetting with a script, then the player must save the game before SkyTweak performs a compatibility scan.

 

Compatibility Scans are performed during the 3 following events:

- The SkyTweak MCM menu is openned

- The System Menu is openned

- The System Menu is closed

 

For a mod like Stealth Skills Rebalanced, that edits gamesettings several times during gameplay,

So all that needs to happen is the player needs to save the game without opening the System Menu.

IE it needs to be an autosave, a quicksave, or a console command save.

 

But in the case of a mod like SSR, this is a trivial problem since SSR edits gamesettings periodically.

So the disparity would only last for a few seconds right after the player loads his game.

 

For a mod like Trade and Barter, that edits gamesettings exclusively through an MCM menu and immediately after the game loads:

We can ignore the initial game load since SkyTweak will scan upon game load.

 

For the case of the MCM menu: the player must open Trade and barter

make a change then immediately save the game without exiting the System menu and without opening SkyTweak.

Link to comment
Share on other sites

Thank you for your answer. I've been wondering about script priority in cases like this but haven't been able to find any information on it. It sounds like you've done a fair bit of testing with it. I wonder if there would be any value to putting a tiny delay in the script where SkyTweak runs OnPlayerLoadGame, as a way of ensuring that other scripts are making their changes first? Though, if the results of your tests are consistent, then perhaps this isn't really needed.

 

So if I understand correctly, in order to properly change settings via other mods (versus just changing the setting using SkyTweak), you need to at least open SkyTweak's MCM to force SkyTweak to reevaluate the settings. Otherwise whatever settings SkyTweak currently has will overwrite changes made using another mod. I assume this would also apply when installing a new mod...that when adding another mod that makes changes to the game settings, it's best to open SkyTweak's MCM to force the settings to update?

 

SSR edits the PickpocketMaxChance when the mod is first installed, OnPlayerLoadGame, and when specific Pickpocket perks are chosen. So would SkyTweak override these changes with the value it has stored as default? I'm pretty sure I've seen other mods that also alter game settings during the course of gameplay (though, I admit, I can't really name any at the moment).

 

It looks as if you've answered my questions before I could finish typing them. :D  Thank you for the clarification.  It sounds like you've done a really good job accounting for some tricky compatibility issues.

Link to comment
Share on other sites

Glad I could help answer any questions.

 

I get so many questions about compatibility, I hope I can build SkyTweak up to the point that people can just trust it.

 

One thing worth noting for testing which I haven't mentioned is that SkyTweak is generated systematically through a java compiler.

So any errors are systematic, and each function in my java library only needs to be tested once.

 

if you test SkyTweak's fBarterMin, then you can assume the same results for fBarterMax.

 

Of the all the functions in the library, only 5 reload on save:

gamesetting integers

gamesetting floats

global variable integers that are constants

global variable floats that are constants (none are used in SkyTweak as of V3.4)

and actor values that reset upon loading a new save.

 

so if any brave soul is willing to test SkyTweak, rest assured that you would only need to test a handful of options, and not the whole 200+ available in SkyTweak.

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.