Is there any tool that can track the changes made by any mod?

This is because my speedmult value keeps randomly changing to 31 and 175. I have over 60 mods installed.


There are two ways mods change things, and a tool for one of them: statically, by setting the data values directly in the .esp/.esm plugin file(s), and dynamically through scripts packaged in the plugin.

Static values that a mod sets can be viewed with TES5Edit, a relatively powerful program for viewing, modifying, and cleaning plugins. It allows you to browse every data record that a plugin adds or changes, and to compare it against every other plugin (including the official ones) that touch that record.

To view dynamic changes is much harder. Because scripts can change anything anytime, it could be any script among your mods doing this. There's no easy way to find every script that is changing a value either – you can only look through every single mod to see if it has a script, then open it in the Construction Set to see the code of the script and see what it does. This at all isn't feasible with 60 mods.

Since the value is randomly changing, it's due to a script. So, there's no tool that can help with this.

There is an alternative to tools though. It's annoying, but it's often the only way to track down bugs, crashes, or misbehaviour like this to the mod responsible. We're going to do a binary search:

  1. Mentally divide your mods into two blocks.
  2. Disable every mod in the block at the bottom if your load order.
  3. Run the game. If you still have the changing speedmult, the mod(s) responsible are in the active set. If not, the mods responsible are in the inactive set.
  4. Divide the block responsible in two, activate half and deactivate the other half. Leave any mod in the block that isn't responsible active or inactive as it was before, so you're only changing the status of mods in the block responsible for the change. You should now have either 3/4 or 1/4 of your mods active, depending on which block it was in before.
  5. Repeat 1–4, until you divide your search block down to a single mod. You've found the culprit.

The SkyTweak mod can keep track of actor values, including SpeedMult (among other game variables and settings), modified by other mods. It can also set those values:

SkyTweak

The code will scan for changes to game settings at key moments to ensure this compatibility.
It is designed to detect changes made by virtually anything such as:

  • Hardcoded Changes (The majority of mods use this)
  • Scripts (MCM menus for example, are scripts)
  • Even Console Commands

Compatibility Measures

1 - SkyTweak menus will never show you incorrect information. SkyTweak menus rescan game settings before you open them, so they're always up to date with accurate information.

2 - SkyTweak will import the game setting information into the default button of every slider. That way if you make a change with SkyTweak, but you want things back to normal, it's just a button click away.

3 - SkyTweak scans at several key points to prevent your game settings from undergoing a "rollback" during a save.

SkyTweak in action: SkyTweak in action