Jump to content

Recommended Posts

Posted (edited)

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

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:

  Reveal hidden contents



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.

  Reveal hidden contents

 

 


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.

  Reveal hidden contents


BobCompFollowDefault:

  Reveal hidden contents

 

 

BobCompFollowLong:


  Reveal hidden contents

 

 

BobCompHome:


  Reveal hidden contents

 

 

BobCompL38:


  Reveal hidden contents

 

 

BobCompWait:


  Reveal hidden contents

 

 

 

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:

  Reveal hidden contents

 

 

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:

  Reveal hidden contents

 

 

FollowersFiredNo:

  Reveal hidden contents

 

 

FollowersFiredYes:

  Reveal hidden contents

 

 

FollowersFiredYesSuite:

  Reveal hidden contents

 

 

FollowersHired:

  Reveal hidden contents

 

 

FollowersLetsGo:

  Reveal hidden contents

 

 

FollowersTactics:

  Reveal hidden contents

 

 

FollowersTacticsCombat:

  Reveal hidden contents

 

 

FollowersTacticsCombatAggressive:

  Reveal hidden contents

 

 

FollowersTacticsCombatEND:

  Reveal hidden contents

 

 

FollowersTacticsCombatGOODBYE:

  Reveal hidden contents

 

 

FollowersTacticsCombatMelee:

  Reveal hidden contents

 

 

FollowersTacticsCombatPassive:

  Reveal hidden contents

 

 

FollowersTacticsCombatRanged:

  Reveal hidden contents

 

 

FollowersTacticsDistance:

  Reveal hidden contents

 

 

FollowersTacticsDistanceDefault:

  Reveal hidden contents

 

 

FollowersTacticsDistanceEND:

  Reveal hidden contents

 

 

FollowersTacticsDistanceGOODBYE:

  Reveal hidden contents

 

 

FollowersTacticsDistanceLong:

  Reveal hidden contents

 

 

FollowersTacticsEnd:

  Reveal hidden contents

 

 

FollowersTrade:

  Reveal hidden contents

 

 

FollowersWait:

  Reveal hidden contents

 

 

GREETING:

  Reveal hidden contents

 

 

 

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
Posted
  Quote
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.

Posted (edited)

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


  Reveal hidden contents

 

 

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


  Reveal hidden contents

 

 


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

Edited by trilioth
  • 2 weeks later...
Posted (edited)

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
  • 1 year later...
Posted

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.

 

  Quote

 

FollowersFiredYesSuite:

 

Response:

Ok.

Conditions:

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

That should be "GetQuestVariable"

 

  Quote

 

BobCompREF.SetIngoreFriendlyHits 1

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

 

  Quote

 

FollowersTacticsDistance:

Spoiler
Response:

Ok.

Conditions:

GetIsID; NPC: 'BobCompREF' == 1 AND

Choices:

FollowerTacticsDefault
FollowerTacticsLong
FollowerTacticsEND
FollowerTacticsGOODBYE

 

Should be

 

  Quote

 

Choices:

FollowerTacticsDistanceDefault
FollowerTacticsDistanceLong
FollowerTacticsDistanceEND
FollowerTacticsDistanceGOODBYE

  • 2 months later...
Posted

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?

Posted
  On 7/17/2014 at 8:10 AM, Galcyon 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?

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.

Posted
  On 7/17/2014 at 8:10 AM, Galcyon said:
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.

Posted
  On 7/17/2014 at 11:54 PM, jet4571 said:

 

  On 7/17/2014 at 8:10 AM, Galcyon said:
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...

  • 1 month later...
Posted (edited)

<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
  • Recently Browsing   0 members

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