Starfield-Community-Patch / Starfield-Community-Patch

The Community Patch project for Starfield.
MIT License
189 stars 19 forks source link

Ship tutorial message fails to display #273

Open Bobbyclue opened 12 months ago

Bobbyclue commented 12 months ago

Tutorial_ShipMenu_MSGBox is set to appear the first time "SpaceshipInfoMenu" is opened, however said menu is not a valid one for registration. This results instead in an error being printed to the papyrus log and the message never displays.

mq_tutorialquestscript attached to MQ_TutorialQuest is the script that handles the registration and displaying the message.

I'm unsure of which menu this message should be switched to, if any at all. "SpaceshipInfoMenu" is a valid swf, specifically it is what appears when selecting "Ship" from the pause menu. It just isn't a valid menu for registration. I don't see a valid menu name that corresponds to this menu. I'm also not familiar with a way to do this from within the swf though I may be missing something there. A script extender plugin would of course be able to fix the issue, but that may be out of scope for this patch?

Game Version 1.7.33

Reproduction Steps Start a new game with papyrus logging enabled. Sometime before leaving Vectera an error about failing to register for "SpaceshipInfoMenu" should be printed. Opening the ship menu will fail to display the tutorial message. Log error should appear similar to [12:44:19] error: "SpaceshipInfoMenu" is not a valid menu name. stack: [MQ_TutorialQuest (00045640)].mq_tutorialquestscript.RegisterForMenuOpenCloseEvent() - "<native>" Line ? [MQ_TutorialQuest (00045640)].mq_tutorialquestscript.OnQuestInit() - "E:\BuildAgent\work\4c7f7506a0fb268b\Source\Scripts\MQ_TutorialQuestScript.psc" Line 57

Bobbyclue commented 12 months ago

Thinking on it, we could probably get this working via the swf. At the least sending a console command is feasible via the ui. That could be pretty direct and just have a standard if/else statement in the command to condition the message to only play once, or maybe interface with papyrus more and send a custom event out when opening the menu. Not an ideal solution but if nothing more straightforward materializes it's an option.

Pickysaurus commented 12 months ago

Do you know which script is trying to call this? Can you provide an example log?

Bobbyclue commented 12 months ago

Oops managed to forget the most important part! I'll add that info @Pickysaurus

TESWartortle commented 9 months ago

Called by mq_tutorialquestscript.psc. Debug line 57. There is no other script that registers for this menu.

Self.RegisterForMenuOpenCloseEvent("SpaceshipInfoMenu") ; #DEBUG_LINE_NO:57

Papyrus.0.log

Constellation-VASCO commented 9 months ago

I'm not sure if this is something we should fix, or if Bethesda need to make that menu registerable.