Jump to content

Creating My First Companion Mod - Help!


JohntheHero

Recommended Posts

So, this has to do with Quests. I'm using the CK.

 

I only have two Quest stages: Recruit the NPC (Index 10) and Fire the NPC (Index 20). They do as their name implies. Here are their Papyrus Fragments:

 

Recruit the NPC (Index 10): FollowersScript.GetScript().SetCompanion(BoxComp.GetActorReference())

Fire the NPC (Index 20): FollowersScript.GetScript().DismissCompanion(BoxComp.GetActorReference())

 

I have four scenes. In the first scene, you can recruit my NPC which ends on Index 10 because, obviously, you've recruited them. In my second scene, you can say "I don't need you anymore" which moves the conversation to the third scene, where you confirm their firing, ending on Index 20. In the fourth and final scene, you can rehire my NPC which is supposed to end on Index 10. This is supposed to be a continuous cycle.

 

HERE IS THE PROBLEM:

 

The Quest doesn't move to Index 10. You get hung on up Index 20. Yes, they're rehired BUT when you speak to them, and choose the TALK option, the option to rehire them is still there. The dialogue didn't change to what I'd set if you were on Index 10 initially. Basically, I'm able to continuously rehire my NPC and not talk about the things I had previously set to talk about if you were on Index 10.

 

I can provide more information if necessary.

 

Link to comment
Share on other sites

Do you have added conditions on the first greeting in your scenes?

 

You should go to the rehire scene, and open the first greeting. There add a condition like this aprox:

 

getstage ; quest ; value == 20

 

So this way this dialog is only availble when you have fired your npc.

 

See pic attached, let me know if this helps

Link to comment
Share on other sites

Do you have added conditions on the first greeting in your scenes?

 

You should go to the rehire scene, and open the first greeting. There add a condition like this aprox:

 

getstage ; quest ; value == 20

 

So this way this dialog is only availble when you have fired your npc.

 

See pic attached, let me know if this helps

I got it! Thanks, all is working now!

Link to comment
Share on other sites

I have a different approach for the conditionals of companions. I think using stages can result in bugs. For example if you "hire" another former companion like Cait your custom companion will be dismissed without updating the stage after all the vanilla script handels this differently. Instead of stages I check for the faction of the companion: hasbeencompanionfaction, currentcompanionfaction. Use GetInFaction to check for them.

 

recruit condition would be hasbeencompanionfaction == 0, currentcompanionfaction == 0

follow/companion: currentcompanionfaction == 1 Here I don't check for hasbeencompanionfaction

fired/rerecruit: hasbeencompanionfaction == 1, currentcompanionfaction == 0

 

 

you can use scripts also with conversation options so instead of adding scripts to the stages of the quest add FollowersScript.GetScript().SetCompanion(BoxComp.GetActorReference()) and FollowersScript.GetScript().DismissCompanion(BoxComp.GetActorReference()) them to the papyrus/script snippet box of the conversation option.

Edited by patcazzo
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...