Jump to content

Photo

How to add a Companion Wheel to a Custom NPC Companion


  • Please log in to reply
12 replies to this topic

#1
Deter32

Deter32

    Journeyman

  • Members
  • Pip
  • 21 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, 10 January 2012 - 07:55 PM.


#2
Quetzlsacatanango

Quetzlsacatanango

    40% Dolemite

  • Members
  • PipPipPipPipPip
  • 4,553 posts
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.

#3
Deter32

Deter32

    Journeyman

  • Members
  • Pip
  • 21 posts
Thanks, but it is not really any help...

Edited by Deter32, 21 January 2012 - 07:07 PM.


#4
Quetzlsacatanango

Quetzlsacatanango

    40% Dolemite

  • Members
  • PipPipPipPipPip
  • 4,553 posts
For that you should create a custom class with the stats you want, and then make them part of that class.

#5
Deter32

Deter32

    Journeyman

  • Members
  • Pip
  • 21 posts
PLEASE HELP, I AM SURE SOMEBODY AROUND UNDERSTANDS HOW TO DO THIS......

Edited by Deter32, 21 January 2012 - 07:07 PM.


#6
Deter32

Deter32

    Journeyman

  • Members
  • Pip
  • 21 posts
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.



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, 21 January 2012 - 08:45 PM.


#7
devilrejected

devilrejected

    Enthusiast

  • Members
  • PipPip
  • 151 posts
Hey, if your still looking for a tutorial check this out: http://newvegas.nexu...le.php?id=45278

its called "Advanced Companion creation guide with Companion Wheel" it provides you with screenshots to help out. Its not confusing to understand.

#8
Deter32

Deter32

    Journeyman

  • Members
  • Pip
  • 21 posts
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, 03 February 2012 - 07:23 AM.


#9
christian7west

christian7west

    Journeyman

  • Members
  • Pip
  • 28 posts
So...how do you add the companion wheel and make it function? I have found a few tutorials, but I am still not seeing how to edit an existing mod to use the wheel. I've almost got it but not quite.

#10
pintocat

pintocat

    the Big Iron on your hip

  • Premium Member
  • 905 posts
Like the first reply said .... setplayerteammate 1

The vanilla companions do this in a dialog script when you "hire" them, under the vnpcfollowers quest.




Page loaded in: 1.132 seconds