My update to the original script simply cleans up an object that was previously not getting cleaned up. I see no reason why the script as a whole should cause any kinds of lag spikes, except maybe if just in general your game is already unstable with excessive script load. But then you wouldn't observe it only with this power, you'd observe it in lots of different situations.
Which files are conflicting with the Optimised Scripts for EBT? There shouldn't be any conflicts there.
As for FEC, let overwrite mine (so put FEC below my file in e.g. Mod Organizer 2), as per the instructions from the description page:
- If you have other mods that patch/adjust/change/modify Ordinator's scripts, make sure to load them after and let them overwrite my files in your mod manager.
I'm not sure yet. I've contacted Simon about it some time ago. He indicated that he'd prefer if I didn't release such scripts, because "there's literally 0% possible chance that this change will be a meaningful improvement for anyone", and doing so could make some users believe that there's something wrong with his scripts. However, that's just his preference, he also indicated the permissions are still open and I can still go ahead if I want.
I don't personally agree with that "0% chance", especially because some of the mods do use OnHit() events in ways where PAPER's OnImpact() event could be used instead, and substantially reduce the number of events triggering when any NPC/player uses continuous-cast spells like Flames. So, I do still believe this would be worth doing. On the other hand, compared to most other mods I looked at, his scripts are already substantially more lightweight. So, from that point of view, it's a bit less pressing to do so, and maybe not worth upsetting him over.
There's also the additional consideration that he still appears to be actively updating all of his mods, whereas the mods for which I've uploaded optimised scripts are no longer really receiving updates. This increases the risk a bit of versioning problems if he substantially changes his scripts after I release optimised versions.
Hi, i made an optimized version of the overflowing cup script that fires only on restoration effects usins OnMagicEffectApplyEx from Po3 papyrus extender. was thinking about uploading it on nexus, but it might be a better fit here? Leaving the src just in case
spell property ORD_Res_OverflowingCup_Spell_Proc auto spell property ORD_Res_UnderMyWings_Spell_Proc auto keyword property MagicRestoreHealth auto perk property ORD_Res70_UnderMyWings_Perk_70 auto actor property PlayerRef auto
Event OnMagicEffectApplyEx(ObjectReference akCaster, MagicEffect akEffect, Form akSource, bool abApplied)
if akEffect.HasKeyword(MagicRestoreHealth) if PlayerRef.GetAVPercentage("Health") >= 1.00000 PlayerRef.DoCombatSpellApply(ORD_Res_OverflowingCup_Spell_Proc, PlayerRef as ObjectReference) endIf if PlayerRef.HasPerk(ORD_Res70_UnderMyWings_Perk_70) && PlayerRef.GetAnimationVariableBool("IsCastingDual") && PlayerRef.GetEquippedSpell(0).HasKeyword(MagicRestoreHealth) ORD_Res_UnderMyWings_Spell_Proc.Cast(PlayerRef as ObjectReference, none) endIf endIf
EndEvent
If you already have the perk in a save you need to remove and readd the perk for the changes to take effect, otherwise from my own testing it works
I would be very happy to include it in an update, except if you really prefer to upload it yourself?
I would suggest a couple of improvements though: 1) I'd use OnEffectStart() instead of OnInit() for the registering. Not actually 100% sure if OnInit always triggers as expected for magic effects? If your testing suggests it works fine, I guess it does. But normally, OnEffectStart would the the most natural entry point for ActiveMagicEffect scripts. 2) I'd additionally also register in OnPlayerLoadGame(), to avoid the need for players to remove and re-add the perk as you said. 3) As an additional tiny micro-optimisation, I'd use GetActorValuePerecentage instead of GetAVPercentage (which has one additional function call's overhead)
Youre cleary more skilled with papyrus than me lol include the script in your mod :) I just made this in an hour bc the overflowing cup script was killing my save and thought others might have the same problem.
That might work, but not sure. If in doubt, always let other mods overwrite my files (except, of course, the original Ordinator mod).
If you let them overwrite me, in the worst case, you just lose out on some minor optimisations from my scripts. If you let me overwrite them, you get optimisations, but in the worst case it might break something if that other mod made important changes to the original Ordinator scripts.
I found that the blocking perk "timing streak" (I'm not using the English version, I'm not sure if it's the name) has no effect. I thought this was because the trigger condition was too harsh, but after I changed the trigger condition from three timed blocks to one with sseedit, the timing stream still didn't take effect. This talent will take effect after I cancel this mod. I'm not sure if this is the only script that doesn't work in my game. I wonder if optimizing scripts may pose risks that exceed the author's expectations?The reason why I have this problem is that I have previously encountered script failures in mods that install other optimization scripts
Sorry, it's because of my stupidity. I used to use a mod collection compiled and translated by someone else, which includes paper. But I recently deleted it...
hi thankl you for your mod, btw would you know if ordinator can make werewolf race to just flee and howl and not attacking anymore? i dont know when this happend im just trying to narrow it down to what it can be.
71 comments
Safe to install / update mid-game.
Please note that this new version has an additional requirement: powerofthree's Papyrus Extender!
.
https://forums.nexusmods.com/index.php?/topic/4988140-ordinator-perks-of-skyrim/page-1174#entry114963098
Thanks.
As for FEC, let overwrite mine (so put FEC below my file in e.g. Mod Organizer 2), as per the instructions from the description page:
- If you have other mods that patch/adjust/change/modify Ordinator's scripts, make sure to load them after and let them overwrite my files in your mod manager.
I don't personally agree with that "0% chance", especially because some of the mods do use OnHit() events in ways where PAPER's OnImpact() event could be used instead, and substantially reduce the number of events triggering when any NPC/player uses continuous-cast spells like Flames. So, I do still believe this would be worth doing. On the other hand, compared to most other mods I looked at, his scripts are already substantially more lightweight. So, from that point of view, it's a bit less pressing to do so, and maybe not worth upsetting him over.
There's also the additional consideration that he still appears to be actively updating all of his mods, whereas the mods for which I've uploaded optimised scripts are no longer really receiving updates. This increases the risk a bit of versioning problems if he substantially changes his scripts after I release optimised versions.
Leaving the src just in case
scriptName ORD_RestorationAnyTime_Script extends ActiveMagicEffect
import PO3_Events_AME
spell property ORD_Res_OverflowingCup_Spell_Proc auto
spell property ORD_Res_UnderMyWings_Spell_Proc auto
keyword property MagicRestoreHealth auto
perk property ORD_Res70_UnderMyWings_Perk_70 auto
actor property PlayerRef auto
Event OnInit()
RegisterForMagicEffectApplyEx(self, MagicRestoreHealth, true)
EndEvent
Event OnMagicEffectApplyEx(ObjectReference akCaster, MagicEffect akEffect, Form akSource, bool abApplied)
if akEffect.HasKeyword(MagicRestoreHealth)
if PlayerRef.GetAVPercentage("Health") >= 1.00000
PlayerRef.DoCombatSpellApply(ORD_Res_OverflowingCup_Spell_Proc, PlayerRef as ObjectReference)
endIf
if PlayerRef.HasPerk(ORD_Res70_UnderMyWings_Perk_70) && PlayerRef.GetAnimationVariableBool("IsCastingDual") && PlayerRef.GetEquippedSpell(0).HasKeyword(MagicRestoreHealth)
ORD_Res_UnderMyWings_Spell_Proc.Cast(PlayerRef as ObjectReference, none)
endIf
endIf
EndEvent
If you already have the perk in a save you need to remove and readd the perk for the changes to take effect, otherwise from my own testing it works
I would be very happy to include it in an update, except if you really prefer to upload it yourself?
I would suggest a couple of improvements though:
1) I'd use OnEffectStart() instead of OnInit() for the registering. Not actually 100% sure if OnInit always triggers as expected for magic effects? If your testing suggests it works fine, I guess it does. But normally, OnEffectStart would the the most natural entry point for ActiveMagicEffect scripts.
2) I'd additionally also register in OnPlayerLoadGame(), to avoid the need for players to remove and re-add the perk as you said.
3) As an additional tiny micro-optimisation, I'd use GetActorValuePerecentage instead of GetAVPercentage (which has one additional function call's overhead)
I just made this in an hour bc the overflowing cup script was killing my save and thought others might have the same problem.
I have to overwrite Rogue-Like Encounters SSE - Savage North Overhaul ?
If you let them overwrite me, in the worst case, you just lose out on some minor optimisations from my scripts. If you let me overwrite them, you get optimisations, but in the worst case it might break something if that other mod made important changes to the original Ordinator scripts.