Welcome to the AFK Mods bug tracker. In order to report an issue, you need to have a VALIDATED account to post one. Once you have followed the link the registration email sent you, please select a project from the drop down menu below. Select “Open New Issue” and fill out the form with as many details as possible.

Please also consider sending your bug report to Bethesda if you are reporting on an issue with Skyrim Special Edition, Fallout 4, or Starfield. Doing so will help everyone on all platforms.

Issue Data
Status: Closed
Issue Type: Bug Report
Project: Unofficial Fallout 4 Patch
Component: Fallout 4: Vanilla
Category: Quests & Dialogue
Assigned To: Sclerocephalus
Platform: All
Severity: Very Low
Votes: 0
Watching: N/A
Opened By MadCat221 on Dec 27, 2017 11:51 pm
Last Edited By Sclerocephalus on May 1, 2021 1:53 pm
Closed By Sclerocephalus on May 5, 2021 11:07 am
Resolution: Fixed
Comment: Fixed for UFO4P 2.1.3

Issue #23400: Some companions have contextually inappropriate cases for some of their dead actor loot reactions

 
And the context is a mechanoid dead actor being looted; a robot, synth, or turret. In this case, Curie, Deacon, and Strong have reaction commentary on the looting that refers to the target as if it were organic or even a dead human/Gen3 synth.

To get the story event data to the companion reaction dialogue quests, some alias relay needs to happen from the event trigger quest, CA_LootCorpse. That quest is the one plugged into the event manager, and it causes a dialogue keyword trigger that is received by the companion quests. However, the quest immediately does a self-shutdown in its one and only quest stage's script fragment. This does not allow enough time to check the actor type keywords on the relayed alias in the companion dialogue quest.

Originally, I used "utility.wait(8.0)" right before the ["stop()" in the script frag, but Arthmoor and Sclerocephalus do not think that is a good idea. I have tested extensively with Curie, who has three of her four reaction dialogues having the contextual inappropriateness, and without the self-shut-down delay, I have only once heard a reaction from her, and that was with the one contextually neutral reaction she has (which was not affected by the new conditions)

I believe that if there is a means to safely and cleanly delay the CA_LootCorpse self-shutdown, it is beyond my ability to script. I am uploading the module with the alias relay setup and the condition checks for those more adept at scripting to make CA_LootCorpse remain running long enough to keep that alias filled for the condition checks.



Attached Files:

RobotsAreNotCorpses.esp

Comments

2 comment(s) [Closed]
Sclerocephalus said:
 
I fixed it as follows:

(1) Added a hidden objectReference property on CA_QuestScript. This is 'none' by default.
(2) Added a reference alias to CA_LootCorpse that is filled with the original container's reference from the event data (just like in your plugin).
(3) Removed the Stop() call from the stage 0 fragment of CA_LootCorpse. This stage is now completely empty.
(4) Added a new stage 10, and added the Stop() call there.
(5) Modified the 'stage' property on CA_QuestScript (attached to CA_LootCorpse) to send its event on stage 10 instead of stage 0
(6) Added a custom script to the new alias that reacts to an OnAliasInit() event. This fires when the quest has finished its startup, pretty much at the same time as it would start running its startup fragment (if it still had one).
The script gets the reference from the alias and fills it in the new hidden property on CA_QuestScript. Then it sets stage 10 (and the quest will shut down).
(7) Modified the OnStageSet() event on CA_QuestScript to send the reference from the new property with the main event if it is not 'none', instead of Optional_Target (which was set to 'none' in the editor).

Thus, the quest will now shut down only a tad slower, due to the extra time needed to take the reference from the alias and write it in the new script property. When it shuts down, the reference is safely stored in a script property, so we don't have to keep the quest running for an extended period of time. Moreover though, we're also passing the reference to FollowersScript, in a variable that was intended to be used for conditioning dialogue anyway. Since the new script property is only ever anything else than 'none' on CA_LootCorpse (because only this quest has it filled by a script), the modifications on CA_QuestScript only affect that quest. All other quests running this script will still be doing what they always did.

Of course, I also added the condition checks to the various dialogue topics,

Thanks for your preliminary work, btw. This saved me much time of digging into the game files to find the records which I had to look at.

Sclerocephalus said:
 
Thinking about it, two of Curie comments (those about the police and the coroner) only ever make sense for humans and non-feral ghouls.

Showing Comments 1 - 2 of 2