Sairion350 / ORomance

ORomance expansion for OStim
5 stars 2 forks source link

Potential Saving Corrupting Bug due to suspended stacks. #4

Open BullOnMars opened 2 years ago

BullOnMars commented 2 years ago

So I was using Resaver to look at my active scripts and noticed increased suspended stacks from ORomance with each save, the more hour the save has, the higher count of suspended stacks it has.

Particularly the ORomancePlayerAliasScript.OnPlayerLoadGame() function has 51 occurrences in the latest save with suspended stacks, it has increased to the point Resaver starts warning me about suspended stacks in my save.

It seems to me each suspended stack is attached to a FormID with 0 frames. Here are some examples:

ActiveScript: ORomancePlayerAliasScript.OnPlayerLoadGame(0004d40e) 0 frames (SUSPENDED)
Function: ORomancePlayerAliasScript.OnPlayerLoadGame
ActiveScript: ORomancePlayerAliasScript.OnPlayerLoadGame(00008c68) 0 frames (SUSPENDED)
Function: ORomancePlayerAliasScript.OnPlayerLoadGame
ActiveScript: ORomancePlayerAliasScript.OnPlayerLoadGame(00009801) 0 frames (SUSPENDED)
Function: ORomancePlayerAliasScript.OnPlayerLoadGame

Here is a screenshot of Resaver:

image

Load order in MO2 left panel (Pretty sure nothing is wrong here, I just put it here so you can safely assume this is not user error)

image

BullOnMars commented 2 years ago

PS: I searched discord about this issue and found some others have similar issue, though most people would not notice since there isn't any warning about this in-game.

If needed I can send the save file to you so you can inspect the issues in Resaver.

BullOnMars commented 2 years ago

PS2: with these error presents, I noticed that ORomance widgets and functions won't start when pressing the hotkey either.

Sairion350 commented 2 years ago

need steps to reproduce before anyone can consider looking at it

BullOnMars commented 2 years ago

I will try to reproduce this on a brand new save later, and post here if reliable steps are found.

BullOnMars commented 2 years ago

After further testing on a new save and the old save with uninstall and reinstall ORomance alone, the issue was gone, from my guess, it maybe related to iWant Widget, when users have many mods installed, ORomance maybe trying to initialize first time install before iWant Widget script initializing was able to complete, causing the script to hang and stuck forever trying to initialize.

With the problem save, MCM indicated ORomance was installed was able to fully configure the options, but ORomance itself was not working, pressing hotkey didn't work, UI never shows up. After uninstalling ORomance, cleaned the save and reinstall, ORomance was able to fully initialize and functions are working again.

Anyway, here are some script errors related to arrays that both shows up in a brand new save and cleaned save after pressing the hotkey to bring up ORomance interface:

[10/19/2021 - 03:34:09AM] Error: Array index 1 is out of range (0-0)
stack:
    [ORomanceQuest (60000800)].OUIScript.DeselectElement() - "cvmzgetifevel" Line 1159
    [ORomanceQuest (60000800)].OUIScript.showpage() - "cvmzgetifevel" Line 982
    [ORomanceQuest (60000800)].OUIScript.EnterDialogueWith() - "cvmzgetifevel" Line 121
    [ORomanceQuest (60000800)].ORomanceScript.OnKeyDown() - "pjpspownxlpgwrmfnu" Line 840
[10/19/2021 - 03:34:09AM] Error: Array index 1 is out of range (0-0)
stack:
    [ORomanceQuest (60000800)].OUIScript.DeselectElement() - "cvmzgetifevel" Line 1163
    [ORomanceQuest (60000800)].OUIScript.showpage() - "cvmzgetifevel" Line 982
    [ORomanceQuest (60000800)].OUIScript.EnterDialogueWith() - "cvmzgetifevel" Line 121
    [ORomanceQuest (60000800)].ORomanceScript.OnKeyDown() - "pjpspownxlpgwrmfnu" Line 840
[10/19/2021 - 03:34:09AM] Error: Array index 2 is out of range (0-0)
stack:
    [ORomanceQuest (60000800)].OUIScript.DeselectElement() - "cvmzgetifevel" Line 1165
    [ORomanceQuest (60000800)].OUIScript.showpage() - "cvmzgetifevel" Line 982
    [ORomanceQuest (60000800)].OUIScript.EnterDialogueWith() - "cvmzgetifevel" Line 121
    [ORomanceQuest (60000800)].ORomanceScript.OnKeyDown() - "pjpspownxlpgwrmfnu" Line 840
[10/19/2021 - 03:34:09AM] Error: Array index 3 is out of range (0-0)
stack:
    [ORomanceQuest (60000800)].OUIScript.DeselectElement() - "cvmzgetifevel" Line 1165
    [ORomanceQuest (60000800)].OUIScript.showpage() - "cvmzgetifevel" Line 982
    [ORomanceQuest (60000800)].OUIScript.EnterDialogueWith() - "cvmzgetifevel" Line 121
    [ORomanceQuest (60000800)].ORomanceScript.OnKeyDown() - "pjpspownxlpgwrmfnu" Line 840
[10/19/2021 - 03:34:09AM] Error: Array index 1 is out of range (0-0)
stack:
    [ORomanceQuest (60000800)].OUIScript.DeselectElement() - "cvmzgetifevel" Line 1159
    [ORomanceQuest (60000800)].OUIScript.showpage() - "cvmzgetifevel" Line 982
    [ORomanceQuest (60000800)].OUIScript.EnterDialogueWith() - "cvmzgetifevel" Line 121
    [ORomanceQuest (60000800)].ORomanceScript.OnKeyDown() - "pjpspownxlpgwrmfnu" Line 840
[10/19/2021 - 03:34:09AM] Error: Array index 1 is out of range (0-0)
stack:
    [ORomanceQuest (60000800)].OUIScript.DeselectElement() - "cvmzgetifevel" Line 1163
    [ORomanceQuest (60000800)].OUIScript.showpage() - "cvmzgetifevel" Line 982
    [ORomanceQuest (60000800)].OUIScript.EnterDialogueWith() - "cvmzgetifevel" Line 121
    [ORomanceQuest (60000800)].ORomanceScript.OnKeyDown() - "pjpspownxlpgwrmfnu" Line 840
[10/19/2021 - 03:34:09AM] Error: Array index 2 is out of range (0-0)
stack:
    [ORomanceQuest (60000800)].OUIScript.DeselectElement() - "cvmzgetifevel" Line 1164
    [ORomanceQuest (60000800)].OUIScript.showpage() - "cvmzgetifevel" Line 982
    [ORomanceQuest (60000800)].OUIScript.EnterDialogueWith() - "cvmzgetifevel" Line 121
    [ORomanceQuest (60000800)].ORomanceScript.OnKeyDown() - "pjpspownxlpgwrmfnu" Line 840
[10/19/2021 - 03:34:09AM] Error: Array index 3 is out of range (0-0)
stack:
    [ORomanceQuest (60000800)].OUIScript.DeselectElement() - "cvmzgetifevel" Line 1165
    [ORomanceQuest (60000800)].OUIScript.showpage() - "cvmzgetifevel" Line 982
    [ORomanceQuest (60000800)].OUIScript.EnterDialogueWith() - "cvmzgetifevel" Line 121
    [ORomanceQuest (60000800)].ORomanceScript.OnKeyDown() - "pjpspownxlpgwrmfnu" Line 840

Errors related to other OSA and ORomance functions:

[10/19/2021 - 03:33:33AM] Error: Cannot call Console() on a None object, aborting function call
stack:
    [ORomanceQuest (60000800)].ORomanceOStimScript.Console() - "rqepkcfqeofroxcqphrnszt" Line 461
    [ORomanceQuest (60000800)].ORomanceOStimScript.startUp() - "rqepkcfqeofroxcqphrnszt" Line 13
    [ORomanceQuest (60000800)].ORomanceScript.OnInit() - "pjpspownxlpgwrmfnu" Line 112
[10/19/2021 - 03:33:34AM] error: Native static function DeleteObject could find no matching static function on linked type OSANative. Function will not be bound.
[10/19/2021 - 03:33:34AM] error: Native static function NewObject could find no matching static function on linked type OSANative. Function will not be bound.
Osmosis-Wrench commented 2 years ago

I looked at three or four peoples saves from Licentia, all of them with 5-10 hours of gameplay and none of them had this issue present. So it either starts much later in a save file, or possibly requires a specfic error to trigger the issue. Maybe save/loading at a bad time or something.

Sairion350 commented 2 years ago

Papyrus errors like that are pretty normal, they're more like warnings then errors

Going to consider this an isolated issue until we can get some better info and testing