Jump to content

M4RK3X

Recommended Posts

~M4RK3X's Custom-Voiced Follower Method~

 

Hello, this is my tutorial on how to create a custom-voiced follower.

 

I have found that the majority of tutorials on how to create custom-voiced followers always tell you to create the follower dialogue via a generic quest that the game uses for vanilla followers. Most people claim that this never works. They set it up properly and the dialogue is just flat-out broken.

 

I personally, have my own way of creating custom-voiced followers that is straight to the point and simple. It also allows you to add as many extra scripted functions to the follower as you want (e.g. "Equip this." - and the follower equips it), and you can even make those custom-voiced.

 

Step 1 - Base Quest: Create a quest. Give it an ID, then close it and re-open it, the usual junk. The priority of this quest will be 60. Make sure it is start game enabled. "Step 1 - Base Quest" is done.

 

Step 2 - Quest Stages: Navigate to quest stages. Create 2 stages, "0" and "20". Tick stage "0" as the startup stage. "Step 2 - Quest Stages" is done.

 

Step 3 - Base NPC: Create the follower. If you already have an NPC you want to use, obviously just skip this step.

 

Important Note: No factions need to be added to your NPC for this method, just create a relationship between the NPC and the player and set the type to a "Friend".

 

Step 4 - NPC Data: Navigate to AI Packages on your follower NPC, and create a new package. Find the “Package Template“ field. Open the dropdown menu and find “FollowPlayer“. Select that template and close and then re-open the package. Navigate over to the “Conditions“ tab. Add a new condition.

 

Set the condition to “GetStage“, then open the center box and find the quest that we created. Select it, hit OK, and then change the equal to (=) value at the end of the box from “0“ to "20". "Step 4 - NPC Data" is done.

 

Step 5 - Dialogue: Open the quest that we made and head over to dialogue views or player dialogue (whichever one you prefer to use) and create a new view. Create a new branch. Then create the topic. The prompt text will be “Follow me.“ or something of that sort. Navigate to the conditions box on this topic and add a new condition.

 

It should be set to “GetIsID“ by default, and this is fine. For the target, select your follower, then click OK. Add another condition, change it to “GetStage“. Then select the quest that we made again, and change the equal sign (=) to a less-than sign (<), then change the value to "20". This states that this dialogue option will only be available if the follower is not following you, which is what we want.

 

We just created the dialogue that makes the NPC follow you. Now we must create the dialogue where you dismiss them. Create another branch in your dialogue view. Create the topic as usual. The prompt should be something like "Go home." Next, add the "GetIsID" condition again and select your NPC. We have to make sure the dialogue is only available for our NPC.

 

After you add that condition, add another one that is similar to the one from the last dialogue option. It is "GetStage", then select our quest, but this time, we want to leave the equation to equal to (=) and set the value to "20" again.

 

This states that you can only tell the follower to go home if he is already following you. Once again, we want this, because it wouldn't make sense if you could tell him to go home when he is not following you.

 

Step 6 (Final Step) - Scripting:

 

This is the final step. We will now script the events which enable the follower to follow you and stop following you. Let's start by opening our "Follow me." (or whatever you made it) dialogue option.

Once it is open you should see a box in the bottom middle of the window that says "End: Papyrus Fragment". Click into the box and type or paste the script below:

GetOwningQuest().SetStage(20); Sets our quest stage to 20 after you say "Follow me."

After you have entered that into the box, hit compile. It should compile with no problems, if it doesn't, just drop a comment down below. Now we will script the event where the follower will stop following and leave the player. Don't worry, this is the last essential step. Open your "Go home." dialogue option and find that "End: Papyrus Fragment" box again. Now you will type or paste the code below into the box:

GetOwningQuest().Reset(); Resets our quest stage to the initial stage (0) after you say "Go home."

Hit compile. Once again, it should compile successfully, but if it doesn't, leave a comment below containing the error info. "Step 6 (Final Step) - Scripting" is done.

 

Congratulations! If you followed all of the steps correctly you should have a working custom voiced follower in Skyrim. Report any problems below.

 

How does all of this work?

 

An AI Package called "FollowPlayer" is attached to the follower NPC, making it follow the player wherever they go. A quest is created which is start game enabled, and two quest stages are created which are "0" and "20". Since the quest is start game enabled, and stage "0" is marked as the startup stage, the quest is on stage "0" initially. A condition is then added to the AI package.

 

The condition is "GetStage", and the target is the quest that was created, while the equation is equal to (=), and the value is "20". This implies that when you say "Follow me.", the script runs to set the quest to stage "20", and the AI package will run on the NPC causing it to follow the player.

 

This whole function works backward to make the follower leave. Whenever you say, "Go home.", the script that is attached to that dialogue will run and reset the quest stages, meaning the quest will now be on stage "0", and since it is now on stage "0", the AI Package will stop running - causing the NPC to stop following.

Edited by M4RK3X
Link to comment
Share on other sites

  • Recently Browsing   0 members

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