Jump to content

Photo

FNV Companion Tutorial


  • Please log in to reply
9 replies to this topic

#1
trilioth

trilioth

    Fan

  • Supporter
  • PipPipPip
  • 369 posts

FNV Companion Tutorial
with functioning companion wheel

Introduction:


This tutorial is for users that have a decent understanding of using the GECK. This will be a basic guide for creating companions. There is more advanced things that can be done, but my intent is to keep it pretty simple. Nothing in this tutorial relates to custom voices.

For a visual reference to this guide check out oGrayWolf's tutorial series on creating companions. I wrote this guide after watching his videos and creating my own companion mod.

This is not a setup to limit the number of followers you can have. I may write guide for that kind of setup later. As I have not actually tried and tested that kind of setup, I am sticking to the simple version.


Step 1: Create an NPC and put it in the world.



On the factions tab right click on the factions list and select new. Select DontTazeMeBroFaction. You may want to create a faction specifically for your new companion. The videos mention adding the player faction. Vanilla companions are not set with the player faction, instead they have other factions, but I have not noticed any problems with using the player faction.


To make this simpler, I will be referring to the NPC as Bob, his Editor ID will be BobComp, and he will be located in Goodsprings in the WastelandNV worldspace. I will go along using Editor IDs, Reference IDs, Script Names to match with the name of the NPC.

If you want your companion to have a special weapon that doesn't use ammo, like Boone's Sniper Rifle, you will need to create a new weapon, uncheck the playable option under flags and switch Ammunition to AmmoCompanion. If you do this, be sure to add it and 1 AmmoCompanion to the NPC's inventory.

When you put the NPC in the world, be sure to give the NPC a Reference ID, such as BobCompREF.

You will also want to create a home marker for Bob and give this marker a Reference ID, such as BobCompMarker.

Note: I had trouble creating an "African-American" NPC. The only way I was able to resolve the body skin color not matching the race is by making the file into an esm.


Step 2: Create an Object Script and an NPC script.



The Object Script:
 

Spoiler


Note: the additem and removeitem functions are there to make sure the NPC doesn't do something like this. I asked for help with this issue here.

The Quest Script:
 

Be sure that you set script type to Quest.
It is my understanding that the quest requires that you have a script set. The following script doesn't do anything, but set the DoOnce variable to 1. You could however set up some other variables related to topic conditions, but I won't get into that.

Spoiler

 


Step 3: Create AI Packages



In the Object Window under Actor Data is a section called Packages. This is where you will need to create the new forms.

I added some conditions to the AI Packages that the are not shown in the tutorial vidoes. These differences reflect what I see in the vanilla companions.

You will need five AI Packages for a basic setup.

Spoiler

BobCompFollowDefault:

Spoiler

 

BobCompFollowLong:


Spoiler

 

BobCompHome:


Spoiler

 

BobCompL38:


Spoiler

 

BobCompWait:


Spoiler

 

 

Add the New AI Packages to BobComp.

Step 4: Dialog



Create a new Quest with an ID such as: BobCompQuest

Quest Data:

Priority: 50
Check Start Game Enabled
Script Process Delay: Default
Note: You will have to click OK and then open the quest again, before being able to attach a quest script. If your quest script is set as a quest script, then you will be able to find it.
Set the Quest Script to BobCompQS


Quest Topics:


In the list pane on the left, right click and select Add Topic. Find and add the following topics:

Spoiler

 

For a basic setup I simply added one response for the top list pane. Take note of the Conditions list pane, the Choices list pane, the Goodbye checkbox and the Result Script (Begin) box. In the Choices list, the order they show up in the list is the order they will be displayed in dialog.

Note: Some of the lines I will be showing for the Result Script (Begin) box where not covered in the tutorial videos. I found them by looking through the VNPCFollowers quest. They will be denoted with *** in a comment at the end of each line. There is also a condition for FollowersFiredSuite that was not used in the tutorial videos. This condition checks the VNPCFollowers quest to see if you have gained access to the Lucky 38.

FollowersFired:

Spoiler

 

FollowersFiredNo:

Spoiler

 

FollowersFiredYes:

Spoiler

 

FollowersFiredYesSuite:

Spoiler

 

FollowersHired:

Spoiler

 

FollowersLetsGo:

Spoiler

 

FollowersTactics:

Spoiler

 

FollowersTacticsCombat:

Spoiler

 

FollowersTacticsCombatAggressive:

Spoiler

 

FollowersTacticsCombatEND:

Spoiler

 

FollowersTacticsCombatGOODBYE:

Spoiler

 

FollowersTacticsCombatMelee:

Spoiler

 

FollowersTacticsCombatPassive:

Spoiler

 

FollowersTacticsCombatRanged:

Spoiler

 

FollowersTacticsDistance:

Spoiler

 

FollowersTacticsDistanceDefault:

Spoiler

 

FollowersTacticsDistanceEND:

Spoiler

 

FollowersTacticsDistanceGOODBYE:

Spoiler

 

FollowersTacticsDistanceLong:

Spoiler

 

FollowersTacticsEnd:

Spoiler

 

FollowersTrade:

Spoiler

 

FollowersWait:

Spoiler

 

GREETING:

Spoiler

 

 

Afterward:


I was up all night working on this. Hopefully there are no mistakes. If you notice any discrepancies or anything missing, please let me know.
The spoiler sections are an attempt to reduce the display length of the post. The formatting is an attempt to make this easy to read and understand.
I recommend watching the videos mentioned at the beginning of this post. I also provided a link to my mod. It is very similar to this tutorial.
If you are not familiar with using the GECK, then I please take the time to work through the tutorials provided at the GECK website.


Edited by trilioth, 29 November 2015 - 02:46 AM.


#2
DizzasterJuice

DizzasterJuice

    Faithful poster

  • Supporter
  • PipPipPipPip
  • 2,431 posts

Note: the additem and removeitem functions are there to make sure the NPC doesn't do something like this. I asked for help with this issue here.

Thank you very much for this info....it has been driving me crazy especially since my follower is sportin' a gatling laser. :biggrin:

excellent tutorial.

#3
trilioth

trilioth

    Fan

  • Supporter
  • PipPipPip
  • 369 posts

Edits: (This is where I will make note of the changes I make to the original post.)


Spoiler

 

Other Notes: There are few issues that this tutorial does not address. (They are not necessarily problems.)


Spoiler

 


Please feel free to discuss, in general, how different things can be done for custom companions.


Edited by trilioth, 29 November 2015 - 03:11 AM.


#4
trilioth

trilioth

    Fan

  • Supporter
  • PipPipPip
  • 369 posts
Just a quick update here. When I get time I will edit the original post. Apparently using a reference for SetIngoreFriendlyHits (eg: BobCompREF.SetIngoreFriendlyHits 1) causes a problem. Just use SetIngoreFriendlyHits 1.

Edit: It looks like my indents where nixed by the new forum code.
Edit Again: New forum code will take some getting used to.

Edited by trilioth, 11 February 2013 - 09:23 PM.


#5
Rooker75

Rooker75

    Faithful poster

  • Supporter
  • PipPipPipPip
  • 1,035 posts

Thank you for this. I was worried it would be complicated and it turns out it's just enormously tedious.

 

Now if only Skyrim had the companion wheel...

 

I noticed a couple of mistakes.

 

 

FollowersFiredYesSuite:

 

Response:

Ok.

Conditions:

GetScriptVariable; Reference: 'VNPCFollowers', bSuiteAvailable == 1 AND

That should be "GetQuestVariable"

 

 

BobCompREF.SetIngoreFriendlyHits 1

Misspelling "ignore". I do the same thing with that word.

 

 

FollowersTacticsDistance:

Spoiler
Response:

Ok.

Conditions:

GetIsID; NPC: 'BobCompREF' == 1 AND

Choices:

FollowerTacticsDefault
FollowerTacticsLong
FollowerTacticsEND
FollowerTacticsGOODBYE

 

Should be

 

 

Choices:

FollowerTacticsDistanceDefault
FollowerTacticsDistanceLong
FollowerTacticsDistanceEND
FollowerTacticsDistanceGOODBYE



#6
Galcyon

Galcyon

    Regular

  • Members
  • PipPip
  • 55 posts

I followed this guide to the letter, and well... there's a tiny, itty-bitty problem.

 

I speak to the possible companion, get no choices (or even a voiceless text option,) and then the dialogue exits without my input. And thus, can't hire the companion.

 

What's the fix?



#7
trilioth

trilioth

    Fan

  • Supporter
  • PipPipPip
  • 369 posts

I followed this guide to the letter, and well... there's a tiny, itty-bitty problem.

 

I speak to the possible companion, get no choices (or even a voiceless text option,) and then the dialogue exits without my input. And thus, can't hire the companion.

 

What's the fix?

I don't know. I didn't have that problem. It's been a long time since I did this and I currently don't have access to FONV to review the procedure. 

 

It seems like there is an issue with the companion's dialogue. I recommend watching the videos, if you haven't and reviewing each step of my tutorial to see if you have missing something. 



#8
jet4571

jet4571

    Who? What? Where? Nope can't do it.

  • Supporter
  • PipPipPipPipPip
  • 5,845 posts
Galcyon, on 17 Jul 2014 - 01:10 AM, said:

I followed this guide to the letter, and well... there's a tiny, itty-bitty problem.

 

I speak to the possible companion, get no choices (or even a voiceless text option,) and then the dialogue exits without my input. And thus, can't hire the companion.

 

What's the fix?

 

You have to setup the GREETING dialogue. Add the getisid conditions and to right of that add all the top level dialogue to the choices box. There is no greeting in the vanilla companions quest because it is the individual dialogue quests.

 

Example open VDialogueCass quest and find the GREETING topic. select "{In Party, Random Opener from Wheel}Oh, you look like you got something else to say besides ordering me around." and you will see some of them there as an example.



#9
Galcyon

Galcyon

    Regular

  • Members
  • PipPip
  • 55 posts

 

Galcyon, on 17 Jul 2014 - 01:10 AM, said:

I followed this guide to the letter, and well... there's a tiny, itty-bitty problem.

 

I speak to the possible companion, get no choices (or even a voiceless text option,) and then the dialogue exits without my input. And thus, can't hire the companion.

 

What's the fix?

 

You have to setup the GREETING dialogue. Add the getisid conditions and to right of that add all the top level dialogue to the choices box. There is no greeting in the vanilla companions quest because it is the individual dialogue quests.

 

Example open VDialogueCass quest and find the GREETING topic. select "{In Party, Random Opener from Wheel}Oh, you look like you got something else to say besides ordering me around." and you will see some of them there as an example.

 

 

Did you read what I wrote? I put down that I followed the guide to the letter. That means I already set up the dialogue, according to what was in the OP.

 

I've compared the entire dialogue tree I made to the OP's Tara companion tree. And double-checked the dialogue portion of the guide. Hell, even tried setting mine up as a .esm to fix this. Everything looks like it works as it should, the Tara companion fires off like it should, mine doesn't. And I don't know why.

 

I'm about ready to hand the mod off to someone to see if they can't make heads or tails of this...



#10
Carosellrarity

Carosellrarity

    Newbie

  • Members
  • Pip
  • 15 posts

<EDITED> Sorry he had accidently unticked the Allow PC Dialog box when creating his Companion. He rectified the Problem. By the way this was an amazing Tutorial. Made it so easy to actually do this even I could follow it.


Edited by Carosellrarity, 16 September 2014 - 02:27 PM.





Page loaded in: 0.736 seconds