Probably, yes (assuming there are some scripts from Ordinator still in Vokriinator that are also optimised by my files). At worst, nothing will change and you wasted a few kilobytes of hard drive space by installing my files.
You'd probably also want to look at the Optimised Scripts for Vokrii then, since Vokriinator presumably also uses some Vokrii scripts: https://www.nexusmods.com/skyrimspecialedition/mods/77356
Highly doubt they changed anything meaningful to that script, but just in case, probably safest to let their file overwrite mine then (but very likely it won't matter)
Technically, no. So you could just download only that file (without the main file), and you'd have some tiny optimisations in those 3 scripts without affecting the rest, and without requiring PAPER. There are really only tiny improvements in those 3 files though, so it'd hardly be worth the effort... but you could if you want to.
I took a very quick look in the Apocalypse scripts / plugin, but I see nothing obvious there that could be fixed. While Precision certainly looks like a very impressive mod, it seems like a rather safe bet that it is simply a bug caused by Precision where it somehow breaks a part of the game's engine that this spell (and who knows what else) relies on to function correctly.
Precision seems to do a lot of injecting of code directly into the engine, and overwriting/replacing normal engine code that has been (likely only partially) reverse engineered. This has the potential of all kinds of weird and unpredictable side effects if it interacts with any engine code that was only partially or incorrectly reverse-engineered. And, if I look at the short timespan in which that mod's Bugs tab on the site has collected a huge number of entries, it makes me a bit suspicious.
The types of optimisations I've done (as I said in description, all really micro-optimisations) are as follows:
1) ModAV / GetAV / DamageAV / other similar functions --> ModActorValue / GetActorValue / DamageActorValue (avoiding 1 function call every time) 2) Replaced lots of int constants where floats were expected (and therefore cast into Floats at runtime) by float constants (0 --> 0.0, 1 --> 1.0, 100 --> 100.0, etc.) 3) Removed some variables in some scripts that were being set and stored, but never used (usually Caster and/or Target, sometimes floats) 4) In some cases where variables were only subsequently used as ObjectReference, stored them as type ObjectReference instead of Actor (because, when passing them as arguments into functions that expect ObjectReferences, the compiler otherwise actually inserts an explicit cast from Actor to ObjectReference that gets executed at runtime) 5) In some cases where an Actor (typically Caster or Target) was stored as Actor variable only to be subsequently used in repeated (Caster == Game.GetPlayer()) comparisons, instead changed it to only compute (Caster == Game.GetPlayer()) once in OnEffectStart(), and store that as a Bool 6) Replaced some instances of "if A == true" by just "if A"
Should be. To be 100% safe, try to make sure that you don't have any Apocalypse spells actively running while you make the saved game that you will load.
23 comments
You'd probably also want to look at the Optimised Scripts for Vokrii then, since Vokriinator presumably also uses some Vokrii scripts: https://www.nexusmods.com/skyrimspecialedition/mods/77356
Does the "Optimised Scripts for Apocalypse-Ordinator Patch" require PAPER?
Precision seems to do a lot of injecting of code directly into the engine, and overwriting/replacing normal engine code that has been (likely only partially) reverse engineered. This has the potential of all kinds of weird and unpredictable side effects if it interacts with any engine code that was only partially or incorrectly reverse-engineered. And, if I look at the short timespan in which that mod's Bugs tab on the site has collected a huge number of entries, it makes me a bit suspicious.
1) ModAV / GetAV / DamageAV / other similar functions --> ModActorValue / GetActorValue / DamageActorValue (avoiding 1 function call every time)
2) Replaced lots of int constants where floats were expected (and therefore cast into Floats at runtime) by float constants (0 --> 0.0, 1 --> 1.0, 100 --> 100.0, etc.)
3) Removed some variables in some scripts that were being set and stored, but never used (usually Caster and/or Target, sometimes floats)
4) In some cases where variables were only subsequently used as ObjectReference, stored them as type ObjectReference instead of Actor (because, when passing them as arguments into functions that expect ObjectReferences, the compiler otherwise actually inserts an explicit cast from Actor to ObjectReference that gets executed at runtime)
5) In some cases where an Actor (typically Caster or Target) was stored as Actor variable only to be subsequently used in repeated (Caster == Game.GetPlayer()) comparisons, instead changed it to only compute (Caster == Game.GetPlayer()) once in OnEffectStart(), and store that as a Bool
6) Replaced some instances of "if A == true" by just "if A"