Okay, this should work. Try these steps:
1. Create a ReferenceAlias on Nate's dialogue quest. Fill this quest alias with the proper reference, not Abraham Finch

. You can use the Fill Type "Unique Actor".
2. Create a Keyword with Type: Dialogue Subtype. I used: playeractivatedoorchained_Custom. You shouldn't use the vanilla "playeractivatedoorchained". Instead, create a new one.
The Dialogue Part. (I used the quest "DialogueGenericPlayer" for Nate's dialogue stuffs but you should use your own quest).
3. So go to Nate's dialogue quest, then "Player Dialogue". Create a New Branch (they are on the left side). I used: NateChainedDoorLines_Branch.
4. Click on the Branch you created. Click on the "Keyword". From the dropdown menu, select your keyword. I selected: playeractivatedoorchained_Custom.
5. Create the dialogue lines. Optionally, you can create a Group for them. I used: NateChainedDoorLines_Group.
6. Don't forget to add this Condition to the group / dialogue lines: Run On: Subject -- GetIsAliasRef: NateAlias == 1.
After completing Step 3 - 6, Nate's dialogue branch, dialogue topic (and the optional dialogue group) should look like this:
The Script part:
The Script should be attached to the player's "Chained Door" dialogue lines. They are in this group: "ChainedDoorLines" in quest "DialogueGenericPlayer". Group's FormID is: 2B039. (Yes, use the vanilla player dialogue quest because this is where the player's lines can be found).
The Script should look like this. The script's name can be different (you can give another name to your script). The "Scriptname" and the "extends TopicInfo Const" should be there though.
Scriptname ChainedDoor:ChainedDoor_NateLine_Script extends TopicInfo Const
ReferenceAlias Property NateAlias Auto Const
Keyword Property playeractivatedoorchained_Custom Auto Const
Event OnBegin(ObjectReference akSpeakerRef, bool abHasBeenSaid)
(NateAlias.GetReference() as Actor).SayCustom(playeractivatedoorchained_Custom)
EndEvent
If you're using a "ReferenceAlas" for Nate instead of "Actor" property, you have retrieve the reference your alias is pointing at.
Just choose one of these:
NateAlias.GetActorRef()
NateAlias.GetActorReference()
(NateAlias.GetReference() as Actor)
I used the (GetReference() as Actor).
After you type this code, press Ctrl+S to compile an save it. It should write: 1 Compiled, 0 failed.
Don't forget to fill the Properties of the script. (I used the quest "DialogueGenericPlayer" as Nate's dialogue quest, but you should use your own quest. The alias property should look like this: alias NateAlias on quest "Nate's Dialogue Quest").
Edited by LarannKiar, 12 April 2021 - 05:54 AM.