Jump to content

Custom Companion Issues


trilioth

Recommended Posts

Custom Companion Issues
What I have learned thus far.

Foreward:


Creating custom companions has been a boost to my understaning about the use of Quests to handle dialogue, AI Packages and how to use conditions in relation to those things. I highly recommend creating your own companion as way to familiarize yourself with these features of the GECK.

There are some issues involved with an attempt at setting up a companion with the same limitations of the vanilla companions. This is not a full explanation or tutorial, but merely an addendum to your understanding of setting up companions.


Follower Limiting:

It is simple enough to force a limit on the number of companions the player can have. You won't have edit any vanilla assets. There are three dialogue topics that relate to limiting the number of the companions: FollowersFiredYes, FollowersFiredYesSuite and FollowersHired. Changes are to be made within the results scripts.

(For: FollowersHired)


set VNPCFollowers.bPlayerHasFollower to 1
set VNPCFollowers.bHumanoidInParty to 1
set VNPCFollowers.nCurrentFollowers to (VNPCFollowers.nCurrentFollowers + 1)


(For: FollowersFiredYes and FollowersFiredYesSuite)


set VNPCFollowers.bHumanoidInParty to 0
set VNPCFollowers.nCurrentFollowers to (VNPCFollowers.nCurrentFollowers - 1)
if VNPCFollowers.nCurrentFollowers == 0

set VNPCFollowers.bPlayerHasFollower to 0

endif

 

Take note of the use of bHumanoidInParty. If you are working with a critter, replace that variable with bCritterInParty.

If you use this information to make custom companion correspond to the limit of the number of companions you can have, then you will also have to add the above lines pertaining to firing in an OnDeath block in the custom companion's object script.

 


Hiring and Firing Vanilla Companions:

The VNPCFollowers Quest holds dialogue and variables relating to the vanilla companions. When setting up a custom companion one can simply use a new quest, and as mentioned above, access the variables relating to limiting the number of companions. When it comes to limiting companion access to content such as DLC world spaces and casinos, there is another set of variables that are used. I will be referring to the following variables as "hired variables":

  • bBooneHired
  • bCassHired
  • bVeronicaHired
  • bLilyHired
  • bEDEHired
  • RaulHired
  • ArcadeHired
  • RexHired

 


Companion Access to Content:

As what I am about to present to you may be considered spoiler content, It is hidden in the spoiler below. I am not going into detail about how to make the changes, but I will be pointing out the related assets and why they would need to be changed.


Gomorrah, Tops and Ultra Lux:


These casinos use "frisking scripts" that use the Reference IDs and hired variables of each of the vanilla companions. They are designed to work for one humaniod companion and one critter companion only.

GomorrahCasinoEnterTriggerScript
GomorrahHotelDoorScript
TopsFriskingTriggerScript
TopsFriskingHoldoutTriggerScript
VUltraLuxeFriskingTriggerSCRIPT *
VUltraLuxeFriskingHoldoutTriggerScript *

VUltraLuxeInteriorDoorSCRIPT

* Denoted scripts also use VNPCFollowers.nCurrentFollowers to check if the player has followers.

 


Lucky 38 Casino:


The elevator scripts force vanilla companions to wait if certain options are chosen. This is done by checking which companions are hired (one humaniod and one critter) and setting the respective Waiting variables. They don't use bHumanoidInParty or bCritterInParty variables, but only one of of each type gets checked based on the structure of the if statements.

Lucky38ElevatorDoorScript
Lucky38VictorElevatorScript

In dialog with Victor at the entrance of the Lucky 38, you agree to go up to see Mr. House by yourself. In the quest there is a topic result script that forces vanilla companions to wait. Like the elevator scripts, the result script also only checks one humanion and one critter.

VDialogueLucky38Entrance (Quest)
VDialogueLucky38EntranceLucky38VictorEntranceTopic008 (Quest Topic)

 


Dead Money (NVDLC01):


Dead Money uses a quest script to fire vanilla companions. They do not go to the Lucky 38 and wait for you.

NVDLC01NewVegasFollowerFireQuestSCRIPT

Note: The above script sets VNPCFollowers.nCurrentFollowers to 0, but does not set VNPCFollowers.nCurrentFollowers to 0. I consider this a bug. This will affect firing result scripts by preventing them from setting VNPCFollowers.bPlayerHasFollower to 0 when firing the last companion. This can be resolved in game by going to the Big MT for the first time. This bug does not have any disasterous affects that I can find. The Ultra Lux frisking triggers will end up having null values for Companion1REF and Companion2REF, but this will not cause the scripts to fail in any way. The Ferocious Loyalty Perk (mentioned below) does use this variable but is not negatively affected by this bug.

 


Honest Hearts (NVDLC02):


Honest Hearts uses dialogue conditions in a quest to check two variables to see if you have followers. You are forced to manually fire your companions if you wish to proceed.

VNPCFollowers.bHumanoidInParty (Variable)
VNPCFollowers.bCritterInParty (Variable)
NVDLC02DialogueCaravanMaster (Quest)
NVDLC02DialogueCaravanMasterNVDLC02CaravanMasterTopic000 (Quest Topic)

 


Old World Blues (NVDLC03):


Old World Blues uses a quest script to fire vanilla companions. They do not go to the Lucky 38 and wait for you.

NVDLC03TeleportEffectTimerSCRIPT

Note: The above script sets both VNPCFollowers.nCurrentFollowers and VNPCFollowers.nCurrentFollowers to 0

 


Lonesome Road (NVDLC04):


Lonesome Road uses a script on the door to check the hired variables. You are forced to manually fire your companions.

NVDLC04WreckageDoorSCRIPT

 

 

 

 


Other Companion Related Features:

Aside from what is mentioned above, I am only aware of the Ferocious Loyalty Perk and the Spray and Pray Perk.

Spray and Pray Perk:

Since the Spray and Pray Perk uses entry point data, I don't see any way to make changes relating to companions. I am guessing that any NPC that is set as a teammate will be covered by the this perk. It could also be related to the functionality of the SetIgnoreFriendlyHits. There doesn't appear to be an article for SetIgnoreFriendlyHits on the GECK pages, but I see this being used in the hiring of vanilla companions. And since it is not used in the firing of vanilla companions, I am guessing that it is directly related to SetPlayerTeammate.


Ferocious Loyalty Perk:

The Ferocious Loyalty Perk uses a quest script checks the player's health and VNPCFollowers.nCurrentFollowers in order to apply and remove an actor effect on companions. Companions are affected by checking the hired variables.

FerociousLoyaltyQuest
FerociousLoyaltyScript
FerociousLoyaltyEffect

 

 


Afterward:

All of the compiled information presented here is based on my efforts. I personally looked at the all of data in the GECK, and drew my conclusions from what I have found. I have not studied any mods that add companions or alter the vanilla companions. If there is anything that you know that is not covered here, please let me know.
The process of digging through the data in the GECK was a valuable learning experience. It was like being a detective and searching for clues.

Edited by trilioth
Link to comment
Share on other sites

If I edit the original post, I will use this comment space to make note of any changes.

2/7/2013:

  • I corrected some minor typos.
  • I forgot mention the OnDeath block for the NPC's object script, so I added the detail.

3/13/2013:

  • I found another script related to Ultra Luxe casino frisking and added it a list where it was missing.

 

 

Edited by trilioth
Link to comment
Share on other sites

Adding the companion limit and DLC stuff is pretty pointless. People are just gonna manage that themselves, you don't really wanna be forcibly restricting them. It never made sense to me that ED-E couldn't come to Zion with me,

 

Same with custom companions. Let the players decide how many companions they want at once and whether lonesome road really has to be so lonesome.

Link to comment
Share on other sites

Adding the companion limit and DLC stuff is pretty pointless. People are just gonna manage that themselves, you don't really wanna be forcibly restricting them. It never made sense to me that ED-E couldn't come to Zion with me,

 

Same with custom companions. Let the players decide how many companions they want at once and whether lonesome road really has to be so lonesome.

 

I understand the sentiment. I am not proposing that mod author's should impose limits. I am merely explaining the limits involved with vanilla companions. This information could be used in understanding and preventing any issues with using custom companions.

Link to comment
Share on other sites

Adding the companion limit and DLC stuff is pretty pointless. People are just gonna manage that themselves, you don't really wanna be forcibly restricting them. It never made sense to me that ED-E couldn't come to Zion with me,

 

Same with custom companions. Let the players decide how many companions they want at once and whether lonesome road really has to be so lonesome.

 

It's something I find infuriating, if a DLC or mod fires any of my companions I recall them with console or whatever summoning device that may have come with them. It's an annoyance that's up there with taking all your stuff and thus undoing all your hotkeys.

Link to comment
Share on other sites

Edit: Apparently using a reference for SetIngoreFriendlyHits (eg: BobCompREF.SetIngoreFriendlyHits 1) causes a problem. Just use SetIngoreFriendlyHits 1.

Edit Again: I forgot to mention that you will need to set up the hired dialog with a condition to deny you if you have another companion. I will update the original post with the details later.

Edited by trilioth
Link to comment
Share on other sites

Adding the companion limit and DLC stuff is pretty pointless. People are just gonna manage that themselves, you don't really wanna be forcibly restricting them. It never made sense to me that ED-E couldn't come to Zion with me,

 

Same with custom companions. Let the players decide how many companions they want at once and whether lonesome road really has to be so lonesome.

 

It's something I find infuriating, if a DLC or mod fires any of my companions I recall them with console or whatever summoning device that may have come with them. It's an annoyance that's up there with taking all your stuff and thus undoing all your hotkeys.

 

This is simply a tutorial on how to make a custom companion respect the limits implemented in the vanilla game. Whether you find it annoying or not, it's the standard behavior that modders and players can deviate from if they choose.

 

On the opposite side of the fence, I find it annoying that custom companions don't respect the companion limits and DLC borders.

Edited by luthienanarion
Link to comment
Share on other sites

Adding the companion limit and DLC stuff is pretty pointless. People are just gonna manage that themselves, you don't really wanna be forcibly restricting them. It never made sense to me that ED-E couldn't come to Zion with me,

 

Same with custom companions. Let the players decide how many companions they want at once and whether lonesome road really has to be so lonesome.

 

It's something I find infuriating, if a DLC or mod fires any of my companions I recall them with console or whatever summoning device that may have come with them. It's an annoyance that's up there with taking all your stuff and thus undoing all your hotkeys.

 

This is simply a tutorial on how to make a custom companion respect the limits implemented in the vanilla game. Whether you find it annoying or not, it's the standard behavior that modders and players can deviate from if they choose.

 

On the opposite side of the fence, I find it annoying that custom companions don't respect the companion limits and DLC borders.

 

Why? It's more work for someone who wants to bypass those limits to do so with a companion that has them enforced, than it is for someone to manually enforce them with a companion who doesn't.

Link to comment
Share on other sites

This was not intended to be a discussion on how people feel about limiting companions. I do understand that it will take more work on the modder's behalf to enforce limits and also that editing vanilla assets would cause conflicts.

 

One can simply install a mod that changes the vanilla assets and put it lower in the load order. Companion DLC Access allows companions to access all DLC areas. There seems to be some issues with it based on user comments. Also, one could use Follower Cheat Menu - enhanced companion control (requires MCM, NVSE). From what I understand, this will edit the script variables I mentioned and thus allow for any custom companions that also use these variables. I have not used either of these mods personally.

Link to comment
Share on other sites

 

 

 

Adding the companion limit and DLC stuff is pretty pointless. People are just gonna manage that themselves, you don't really wanna be forcibly restricting them. It never made sense to me that ED-E couldn't come to Zion with me,

 

Same with custom companions. Let the players decide how many companions they want at once and whether lonesome road really has to be so lonesome.

It's something I find infuriating, if a DLC or mod fires any of my companions I recall them with console or whatever summoning device that may have come with them. It's an annoyance that's up there with taking all your stuff and thus undoing all your hotkeys.

 

This is simply a tutorial on how to make a custom companion respect the limits implemented in the vanilla game. Whether you find it annoying or not, it's the standard behavior that modders and players can deviate from if they choose.

 

On the opposite side of the fence, I find it annoying that custom companions don't respect the companion limits and DLC borders.

Why? you can dismiss them yourself, surely that is preferable to forcing things onto the player?

Link to comment
Share on other sites

  • Recently Browsing   0 members

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