I could (read as: 50/50 chance) be wrong, but could it be that the new script has more checks? Since Obliv runs scripts the full between frames, the more checks a script has, the more time it takes. From what you said, I take it that you combined all of the checks into one script. This means that the same number of checks are being performed, but the separate scripts (this is where I'm not sure) could possibly run between different frames. Therefore, the new script uses the same number of checks, but between one frame as opposed to the possibility of them instead running between sets of frames. PLEASE note that I am only drawing conclusions from what I know, and therefore could be completely wrong. But I think that would explain the stuttering... Does my logic have any supporters?
It does.
However, it is not fully applicable to my scripts. The checks before were all like
begin gamemodeif upperbody slot contains something like... then do following actionsif hand slot contains something like... then do thisif lowerbody slot contains... then this...if feet slot... then...end
In a worst case scenario all 4 slots' checks were executed and, when also all conditions met, even all 4 result blocks inside.
Now it is like
begin gamemodefor each slot of upper, hands, lower, feet do if it contains something like... then do following thingsloopend
But thanks to you making me recall the structure of my code, I think I got an idea now.
I ran into similar trouble before with the old approach. Checking 3 slots in succession didn't lead to any slowdowns or even stutter, but as soon as I added the check for the 4th, the script suddenly apparently was too long or whatever and it started to actually "hang" for quite noticable timespans until the checks were performed... even when nothing was changed in the slots or no other condition was met to make them actually "do" something. (I quite early added a condition to only perform checks and react accordingly when the slot's content has changed, to reduce impact on FPS yet more.)
That was also when I found out, a well-placed "return" instead of a simple "else" can in some situations triple your script's execution speed, by simply "skipping" the whole rest of the script. Even when it is only "if"-checks which ideally only rarely met, for the sake of example none of them do for this execution, so practically no code actually "doing" something gets executed, still the mere "presence" of those non-executed lines drastically slows down your script (guess because they're still all "processed").
I think I added in "return"-statements whenever the condition for 1 slot was met, to avoid this severe slowdown from processing all 4 slots each time.
However, now with the new approach I didn't do that, as it was now a "loop" structure and no longer a hard-coded monster of several checks and reactions, deadly close to script-size-limit already.
But of course it now still processes all 4 slots even when 1 slot already had its condition met!
It won't rid me of all troubles, but at least re-incorporating these breaks in case of the first met condition might speed it up a little bit. Maybe I missed more such performance-enhancing changes on rewriting my scripts from scratch? :shrug:
The only pop-up I got was the Arrays pop-up, no config pop-ups, and the console tells me the commands are invalid, but it seems to recognize the quest somewhat. If you need a shot of what it says specifically, let me know and I'll get you one. As of now, I can force the wings/tail on using the CS, and they use the correct animations, but I cannot force the hands or feet.
Alright, that's definitely not acting correctly. The initial config popup is not optional, it's mandatory.
What could help is the exact wording of the error message it gives you, be it via screenshots or simply writing it down on paper then reading it up while posting, really doesn't matter.
Maybe also the actual commands you tried to issue might be of interest here.