Jump to content

How to add a Companion Wheel to a Custom NPC Companion


Deter32

Recommended Posts

Hi,

 

Trying to figure out how to add the "Companion Wheel", to a custom user created NPC Companion using the GECK tool.

 

What kind of scripts do you need to put in the GECK, and were do u place them.

 

Just want a generic Wheel to be able to command the NPC.

 

don't want to have to write up codes or dialog for this

 

for examaple:

 

Go in to the NPC's inventory

tell them to wait

go home or to the lucky 38

tell them to back up a bit

 

Thanks...

 

Have looked everywhere for this info and no luck as of yet finding it.

Edited by Deter32
Link to comment
Share on other sites

When they are added as player teammate, they get the wheel, so the wheel is added when you do

setplayerteammate 1

Look at an existing companion to see where this is done.

 

Just adding the wheel doesn't make all of its options work. They need infos added to the appropriate topics, such as followerswait, followerstrade, etc, with the appropriate, result script. They also need AI packages that correspond to wait, follow, etc. Again, look at an existing companion.

Link to comment
Share on other sites

Kind of disappointed in the community support in these forums, maybe people don't uses these forums, or understands how to make a companion.

 

Since I figured out the answers to many of my questions, edited them out from the above posts.

 

(Every companion I downloaded was different). You need to do a lot of different steps in different areas of the GECK. If you miss a step or forget to do something, a specific function will not work.

 

Was able to find the Blanca companion that actual helped but that companion model, still has some errors in the commands and she doesn't fully work.

 

This was the best video that I found on YouTube.

 

http://www.youtube.com/watch?v=KUxgKksIBTE&feature=related

 

This project was a royal pain to be honest. Had to go in an figure it out all on my own. Which made the process take longer than I wanted. Using two GECKS on two different computers and than drawing out the commands in an Excel spreadsheet was finally able to figure this out, it took a lot of hours !!!

 

It takes well over 24 hours to make a basic fully functional companion. Than to add all the goodies even longer. From start to finish it took me about 2 1/2 weeks to fully figure out, how to make a fully working companion.

 

Every person who make a companion, even the ones in the game, are all created a tad bit different.

 

For example Veronica was made different than Boone, than Arcade was created different than both of them. Which leads me to believe they were created by different people. In order to create a correct companion using the proper commands you have to use and learn how Boone, Arcade, Veronica and Cass were made. Than looking at some of the custom comapnions as well.

 

In order to make them work correct in the game a lot of things need to be done it is not as simple as setting the player to a follower. However as much time as it takes to make a companion setting them as a follower is easiest and quickest way of doing this.

 

Because my spelling and grammer is so bad I am not the one to write up a tutorial on how to make a companion. It is a hell of a lot of steps and they are basically not covered or posted anywhere on the internet.

Edited by Deter32
Link to comment
Share on other sites

  • 2 weeks later...

Thanks, but I have fully figured this out. It took a while. When you are going in blind....It is not easy.

 

(I did 4 companions and fully re-did the Sunny Smiles companion ---which I downloaded from this site---)

 

Sunny had scripting, scripting variable, AI package, waiting, hiring and going to a location problems.

 

It is pretty easy to mess up companions, since the ones that come with the game can be confusing.

 

 

 

The biggest things are getting the commands to work correct. Than finding the 5 or 6 different locations in the GECK to place things

 

aka Player Script than the VNPCFollowers aka your XXXXFollowers Script.

 

 

 

1) hiring

3) firing

3) waiting

4) go to a location & sandboxing

5) sandboxing

6) player messages

7) scripting variables

8- REF points

9) dialog working correct

10) last off you need to test each function and make changes when they don't function correct.

 

YOU NEED TO CREATE THE AI PACKAGE FOR EACH FUNCTION

 

 

For Sunny Smiles her VNPCFollower Script aka your XXXXFollower script would look like so

 

 

short bSunnyHired;

short bSunnyFired;

short bSunnyAvailable;

short bSunnyL38;

short bSunnyDead;

short bSunnyHiredOnce;

short bCheyenne;

short nRecruited;

 

 

Than her NPC Script (note I didn't give her a Perk)

 

scn GSSunnySmilesScript

 

short HasBeenHired

short WeaponOut

short CombatStyleRanged

short CombatStyleMelee

short IsFollowingDefault

short IsFollowingshort

short IsFollowingLong

short FollowerSwitchAggressive

short Waiting

short DoOnce

short bLoadedOnce;

short bTalking;

short bshortercomConversationActive;

 

Begin OnLoad

; set up base stats

if (bLoadedOnce == 0)

SetActorValue sneak 100;

set bLoadedOnce to 1;

evp

 

endif

 

;Script to make sure we set the right combat style on loading.

If (CombatStyleRanged == 1)

SunnyREF.SetCombatStyle FollowersCombatStyleRanged;

Else

SunnyREF.SetCombatStyle FollowersCombatStyleMelee;

EndIf

 

 

End

 

 

BEGIN OnActivate player

if (bTalking == 0)

Activate;

endif

END

 

BEGIN OnCombatEND

 

if ( GetPlayerTeammate == 1 )

resethealth

restoreav perceptioncondition 100

restoreav endurancecondition 100

restoreav leftattackcondition 100

restoreav leftmobilitycondition 100

restoreav rightattackcondition 100

restoreav rightmobilitycondition 100

endif

END

 

 

 

begin OnDeath

 

if ( GetPlayerTeammate == 1 )

set ExtraFollowers.bSunnyHired to 0

set ExtraFollowers.bSunnyDead to 1

endif

 

; Cheyenne will no longer help the player

SetEnemy SunnySmilesFaction PlayerFaction 1 1

 

; If showdown with Powder Gang hasn't started and Sunny dies, fail VMS16

if (GetStageDone VMS16 70 == 0)

SetStage VMS16 110

endif

 

if (GetQuestCompleted VCG02 == 0)

SetStage VCG02 100; fail

endif

 

if (GetQuestRunning VCG03 && GetQuestCompleted VCG03 == 0)

SetStage VCG03 255; fail

endif

 

set VFreeformGoodsprings.bAllowEnableTrudy to 1

 

end

 

 

 

 

What i did in excel was created a chart with all the commands & what each command does and than the correct setup for each command

 

Next you can alter it.

 

For example:

one of the companions has a fear of the Khans, so as a recon misson I sent him to the Khans were he hangs out and sandboxes.

 

Than instead of him going to the lucky 38, I send him to the casinos to gamble. Than when you pick him up he gives you his casino winngs.

 

(Granted i didn't cap his winning or set it to a variable amount as of yet, but still working on it.)

 

 

 

 

What helped the most was using 2 computers with 2 gecks opened next to each other.

 

That way u could copy the Quest data

 

for example:

 

 

FollowersTrade

Target Function Name Function Info Comp Value

s GetQuestVariable Quest:'vFreedomNovac, n SnipersRevengeStage = 30.00

s GetQuestVariable Quest: 'NPCFollowers',bBooneHired = 1.00

s GetlsID NPC: 'CraigBoone' = 1.00

 

Scripts Result Scripts Begin Result Scripts End

OpenTeammateContainer

 

so than mine would than look like

 

FollowersTrade

Target Function Name Function Info Comp Value

s GetQuestVariable Quest: 'ExtraFollowers',bClintHired = 1.00

s GetlsID NPC: 'Clint' = 1.00

 

Scripts Result Scripts Begin Result Scripts End

OpenTeammateContainer

 

Than on some of them you would need to create the dialog choices.

 

 

 

Last off we want to send Cheyenne to the Lucky 38

 

Keep in mind she is not following you but Sunny....

 

 

We need to create a variable for the dog.

 

 

short bCheyenne;

 

 

Next AI Package for the dog.....Using 1's and 0's....

 

 

So to ship them both off we use the following in Result Script's End

 

SunnyREF.MoveToMarkerWithFade L38SuiteCompanionMarker01REF

if ExtraFollowers.bCheyenne == 1

CheyenneREF.SetPlayerTeammate 0

CheyenneREF.MoveToMarkerWithFade L38SuiteCompanionMarker01REF

set ExtraFollowers.bCheyenne to 0

endif;

Edited by Deter32
Link to comment
Share on other sites

  • 3 months later...
  • Recently Browsing   0 members

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