About this mod
Frequently flit through fluctuating facts.
- Requirements
- Permissions and credits
- Changelogs
- Donations
How's the private detective career? - V
If you're like me, you're a mod author that's curious about the "facts" that the game uses to record various actions taken or not taken as you play the game. Perhaps you have other mods you want to make based on those facts. Perhaps you have wondered exactly what choices have what results. Well, now there's a fix for that.
With this mod, every time a fact changes, you will be notified with an onscreen message and a log to the console.
This mod is mainly meant for other mod authors and the average player probably won't find it useful.
How to use:
This mod requires redscript. In addition, unless you want to run with the default settings, then you also need Mod Settings. Mod Settings itself requires ArchiveXL and RED4ext. To more easily review all the facts that have changed, use CET.
Once all that's installed, go into Mod Settings and adjust your settings. There's only three:
Show all references: By default, this is turned off, to help prevent spam. If you turn this on, then when a fact changes, every quest, questphase, and scene, which refers to that fact, is also reported. This can be extremely spammy. Some facts are listed in hundreds of different places. However, turning this option on (especially if you have filtered out a lot of the fact list) can help you more easily refer to which quest/questphase/scene uses the fact.
Even if you don't use this setting, you can find all the quests, questphases, and scenes that refer to a fact by going in the source code and using Ctrl-F to find all mentions of that fact. This setting just spams your log with it in-game if you don't want to go in the source code. Your choice.
Times Changed Per Session: To help reduce spam from facts that change very frequently, you can set how many times the same fact will get reported when changes happen. Even if the fact keeps changing after that point, it won't be counted/reported anymore (until you adjust the setting or start another session from loading a save.) By default I set this to 3, but I personally use a setting of 1. Setting this to 0 effectively turns the mod off.
Note that for the purposes of this setting, the 'all references' doesn't count as 'times changed' and so if a fact has 800 references, then all 800 references will be reported each time it changes, up to 3 times, before that fact stops getting logged.
When you load a save, the mod will start to loop through all the facts. The first loop, it is storing the current values of the facts. Every loop after that, it reports if any changes have happened, both on screen, and to the console log (which you can view with CET easily in-game).
Include Timestamp: If you enable this, then in the CET log, the gametime at the moment the fact change was detected will be included. (We can't get the exact time that it actually changed but it should be very close.)
Important Note about onscreen message limitation:
The on screen message reports the very last fact that changed, only. If many facts change in a small amount of time, only the last one gets reported on screen. The rest you'll have to see in the log (using CET). Also, if another fact changes soon after, it will overwrite the one currently being reported.
Important Note about a slight performance hit:
When you load a save, if you have the 'show all references' setting turned off (which is the default), the game will suffer a performance hit for about 5-6 seconds. After those 5-6 seconds, there should be no performance impact until you load a save again.
If you had 'show all references' on, but then turned it off, you'll get the 5-6 seconds of performance impact then, too. After that you should be able to swap back and forth freely with no performance impact until you load a save again.
This is just the mod building a list of all the unique facts and removing duplicates. It only has to do this once per load, and does it on the first loop. If you have filtered out a lot of the facts in the list, the first loop and the performance hit from it will finish even faster. Which leads to the next section:
How to filter out facts you don't want reported:
There is not an in-game way to do this. Since you're a mod author, you should be familiar with how to comment out lines in the source code, which is how to do this. Since facts are listed multiple times for each quest, questphase, and scene that references them, to completely filter out a fact, you have to filter out every mention of that fact. I recommend using the "use regular expression" feature of the find/replace function in VS Code. Instructions can be found in the source code.
You can also use comment block tags like /* this */ to put a beginning/end comment block tag before and after as many facts as you want to filter (such as to comment out entire quests, phases, or scenes, or even entire categories if you want). Or you can just delete lines entirely.
As a mod author you should know what you're doing here. Comment or delete the facts you don't want and they won't get checked or reported. The more you prune the fact list, the faster it can run and the more quickly a change will be detected and reported (though it's still pretty quick even if you don't filter a single fact).
In Conclusion:
Hope you find this useful. I had issues with the previously existing fact-related mod so I made this one for my own use and am sharing in case any others want/like it, too.
Let me know any issues you come across or features/functions you want it to have and I'll see what I can do.
Since you're here, be sure to check out my other mods:
Random Vehicle Summon - Variety for V's vast virtual vehicle vault.
Random Radio - Randomly rotate your radio's repertoire and reduce repetition.
Butt Dial - Chaotically call a contact with your keister.
Random Destination - Decide your destination with a dice roll.
Clairvoyance - See the secrets that surround you.
Random Vehicle Summon - Variety for V's vast virtual vehicle vault.
Random Radio - Randomly rotate your radio's repertoire and reduce repetition.
Butt Dial - Chaotically call a contact with your keister.
Random Destination - Decide your destination with a dice roll.
Clairvoyance - See the secrets that surround you.