logotype
24 -May -2013 - 06:41
Magic Cialis Online

Articles

Fallout New Vegas Modding Guides

Fallout NV Recipes Tutorial

User Rating:  / 0

 

Fallout NV Recipes Tutorial

 

Introduction

 

Recipes mods are nice and easy things to make but have advanced features other areas of modding make use of. So at their simplest they are easy to make, at their worst, they can be an advanced modding topic. So they make a good introduction to modding for those wanting to do something with the Geck NV editor. In this tutorial we will be simply going over the basics so you can see what is involved and I will explain your advanced options as I go. This way you learn the basics and you also see where the advanced stuff comes in to play and can choose to use it or NOT as the case may be. Learning the advanced stuff here will make it easier for you later when you take on more ambitious modding projects. So I do recommend you try the advanced stuff in this tutorial.

 

The Recipe

 

A recipe is a special item found in the Object Window of the Geck NV editor under Miscellaneous. If you go and look at it you will see it contains Food, Chem and even Ammo recipes. All of them are created the same way. You have the ID which must be unique, you have the Name which is what the player sees in the game. The Required Skill needed to use it and the Level of that skill. You have the Category which basically names where the recipe will work, e.g. at a campfire, workbench etc and the subcategory which helps define what it actually is and makes it easier to find the item in the editor later.

 

Below those are the important parts such as Requirements, Ingredients and Output which we will deal with now

 

Setting up the Requirements:

 

After you have chosen the ID and set all the data at the top of the form, you have to do create the actual recipe in the area below. How there are a number of ways to add a recipe to the game. First is to leave Requirements blank and allow it to simply appear in the game by default without any further effort being needed for the requirements, in which case, skip to the next section.

 

Optional Advanced Topic:

 

The other way to add something to the game includes giving the player something such as a piece of paper with the recipe on it or checking for perk before the player can use the recipe. I will assume you want the player to have a note given to them or allow the player to find it some place and we will introduce our Recipe that way.

 

Creating our note.

 

Go to the Object Window and find the Misc Item list, I'll show you the sort of thing you need for this to work.

 

Find books and look for "VRRCLegionSlaveLedger", that is more or less the sort of item we need to create, so select it and select edit. Now change the ID to myrecipe and the name to My Recipe or what ever name you wish to use but remember it because we need to know the name later. Then in scripts, select the black down arrow and scroll all the way up to the top of the scripts list and select NONE, we do not want a script for this, so get rid of the existing one. Leave Quest Item ticked and the weight at 0 because we want this to remain on the player and not get removed. Quest Item makes sure it stays on the player for us.

 

Now Okay it and say YES to the question "Create New Form", if you say NO it will edit the "VRRCLegionSlaveLedger" form which would be very bad.

 

Now you have the book that contains the recipe, put it somewhere in the game word for the player to find. You can even add it to a merchant but you might want to adjust the value of it first so the price feels right.

 

The best way to give an item to a merchant is to make a brand new chest and assign its owner as the merchant you want to sell your recipe. Then place your recipe in that container. But is a tutorial in its own right and will not be covered here. It is enough for this tutorial to simply leave the recipe on some desk some place, possibly next to a cooker or work bench, depending on what it is you are making, food or ammo etc etc.

 

Advanced Requirement options.

 

Go back to the Recipe window, click on Requirements and in the box named Visibility Requirements, right click and select new, a standard "condition item" window will appear, this window is used all over Geck so lets explain this properly so you learn how to use it. What we are going to do is have the recipe check if the player has the note with the recipe written on it before allowing the player to use it. The recipe is not actually written on the note, it just just there to stop the player magically knowing the recipe before it is given to them.

 

Let me explain what each area does, then I'll tell you how to set them up. So read, understand, then we will do the work.

 

The Condition Function is actually where script commands are selected, this is simply the GUI version of that command. E.G. meaning window version of a script that does a similar job.

 

The Function Parameters are only needed by some commands, in our case we need to select our myrecipe note in it, you may have called yours something else.

 

The Comparison == thing is very important and usually you have to chose between == meaning equal too, >= meaning greater than or equal too, <= meaning less than or equal too or my favorite, != meaning not equal too. The ! is the NOT part. They are all very useful and you will find them used in many programming languages so learning these means your learning how to read scripts and source code, cool stuff :)

 

Run on subject determines who this applies too, in previous versions of Geck this was a simple tick box and "Run on Target" meant the player, now it is a pull down box. So I am going to assume Run on Target still means the player and the Subject is what ever the player is interacting with. I have not actually checked this out yet so if the recipe fails to appear on the player, try using Subject instead.

 

Value can be any number but if we use it as a simple (meaning, lets invent a brand new word that means choose yes or no, just to confuse the noobies), then we use 0 for NO and 1 for Yes. This too is standard practice and found in many programming languages. Though they do not always say "this is a boolean", often they just ask for 0 or 1, but it is still a Boolean.

 

Time to get to work, now I have explained it to you, set up your "Condition Item" window like this.

 

Condition Function = getitemcount
Function Parameters = myrecipe (or what ever your note was called)
Comparison = "=="<br /> Value = 1<br /> Run on "target" (change this to subject if the recipe does not appear on the player once he has the note above)

 

That basically gets the item count of myrecipe fron the players inventory and make sure it equals 1 item. So if it is 2 items it will not work, if it is 0 items it will not work, it has to be exactly 1 item for this check to work. >= is the comparison to use if you think more than 1 item of the same time may be added in the future. Btw, you could use this as a way of adding improved versions of the same item. E.g. 2 items means 10% stronger, you just add a new effect to the item you produce and set a condition that is very much similar to that above but change the value to something else such as 2. So if the player has 2 items, the new effect also applies. The same recipe will auto update it self this way. But that is an even more advanced topic, I just wanted to throw that out there as an idea for you recipe makers :)

 

Setting up the Ingredients

 

These are is needed to make up the recipe, if you want a health boosting stake, you might use some form of meet and a stimpak or healing powered here. If you want ammo, then ammo cases and powder would probably be what you want here. It is entirely up to you, you could use 5mm ammo + scrap and make it produce a simpak, nobody said it has to make sense but it is probably best that it does :)

 

Simply select the Ingredients tab of your recipe and select the category then the component. Category helps filter the components and makes them easier to find. Then change the quantity to match the number you want the player to need for this recipe.

 

When your done, quickly look up each item in Geck and add up their cost, getting a rough total for the value of the recipe. Now add a little bit more to it for profit and make note of the cost of the items this recipe will make, you will to know that for the next part when we set up the item that gets produced because this will be what it is worth when purchased. The selling price is effected by the barter skill remember, as is buying price. So do not be surprised if the player does not get the exact amount you typed in.

 

Tip:

 

To quickly find an item, simply type the name in to the Filter box in the top left corner of the Object Window. Then click on the item when it appears make note of the value, then just add up all the values to get you new items cost.

 

Setting up the Outputted Item

 

First decide if the item created is something new or something that already exists in the game. If it already exists then the cost of the item will already been determined and you will have to adjust your ingredients so the cost to make it is less than the cost of the item they produce, after all, who makes something when it loses them money to do so. If you want to make your own, then you can give it any price you want.

 

Lets assume you want to make a new chempak or some sort.

 

Ammo is found under the Item menu if your recipe is an Ammo based one, this example will be a chemical so lets go to Game Effects and look for Ingestibles. Some items are not food or chems even though they sound like they should be, e.g. scorpion poison is one of those odd things, they care usually found under Misc Item. Since we want to produce a Chemical, our item will be in Ingestibles so go there now and click on the name.

 

Lets say for the sake of argument that we want the player to become develop Vampire like senses when they drink a modified Blood Pack. Click on Bloodpack and change the ID to Bloodpackvamp, change the name to Vampire Blood.

 

Then go to results where Restore Health is listed twice, you can make your own, this is just an example to explain it to you.

 

Optional Advanced Topic

 

Right click on the first one and select Edit, notice there is a condition attached to it, it checks for the MS09Hematophage Perk before it allows the player to get that juicy +4 health bonus. You can tell it is a +4 bonus because of the Magnitude column in the Bloodback results list. This means those with the perk get a total of +5 health bonus. 4 for this and 1 for the default health listed next.

 

Required Normal Topic

 

Now right click on the second one health item and take a look at that. Notice this has no conditions and will apply automatically.

 

Okay, now go back to the Bloodpack results list and select New so the Effect Item window appears, then select Effect and look for IncreasePerception, we want our players senses to be heightened by drinking our modified bloodback. Now set the range to Self, The duration to 1 minute and the magnitude to 2. Duration is as the name suggests how long it lasts, the magnitude is how many points to add to perception. We chose to add 2 points to it. If we selected "make the players legs longer" than the 2 would be how much longer the players legs where, see how it works ?

 

That is just an example, do not go looking for some lanky leg mode, none exists lol :)

 

Now okay that and close the Effect Item Window.

 

At this point you have to make the new item worth the cost of the material and if you recall, you made a note of the cost earlier. So using that cost, we look at the Ingestible windows result box, under that you will see Auto Calculate, untick that if it is ticked and enter your cost in the Potion Value or in the "Value" box is its ammo you are making. That will be how much this item is worth when produced.

 

Now OK the Ingestible window and say YES to the question "Create new form".

 

Now if we go back to the Recipe and look at the output area, you will see the recipe yield box, right click in that and select new, then use the Dialog box that appears to find your new Ingestible and add it to the window.

 

Now you are done, you have created a new Recipe and have optionally added it to the game so the player can find it and use it.

 

Final thoughts

 

Learning what can be done in Geck is all part of modding and the recipe feature has a lot of uses so it is worth taking time to explore this area properly. Only by knowing what can be done, will you get good modding ideas and as you will noticed from the available effects for the indigestible, there are a lot of options. You may even invent a cure for Deathclaw attacks, e.g. a 155mm howitzer fired from extreme range with a Deathclaw homing shell :)

 

It all starts here in Recipes :)

 

Fallout New Vegas: Quest Making Tutorial Part 2

User Rating:  / 0

 

Fallout New Vegas: Quest Making Tutorial Part 2

 

Introduction

 

In the first part of this tutorial I showed you how to create an empty quest and add a script and some dialog to it. We then recorded the dialog and converted it for use in the game. Our quest is fully functional but rather limited. In Part 2 I will be showing you how to add and control objectives in your quest so they appear in the game and I will be explaining how to start and end quests as needed.

 

In this tutorial your best friend is the Geck Wiki and the scripting functions since those functions are what you will be using the most as a quest maker. So book mark that link, then find Scripting and take a look at the Functions link under Scripting when you get some time. Everything I am about to tell you uses those functions, so that is the source of commands being used here.

 

Oh and one more thing.

 

That wiki's function descriptions confuses me too. You see programmers make poor tutorial writers, so you have to learn to translate from programese in to english, then you will be fine.

 

The Starting and Stopping Quest.

 

Assuming your made the quest as outlined in Part 1, lets talk about the different ways of starting a quest. We will stick to "Start game Enabled" for our quest so leave that ticked but read these alternative ways of starting a quest so you know how to do it.

 

In Geck, go to the Object Window, under Actor Data look for Quests. Find your quest in that list (or do part 1 of this tutorial to create one) and open it. Now notice how says Start Game Enabled under Priority. If you did not want to start this quest when the game starts you would untick that.

 

If your quest ID was MyExampleQuest then you could untick Start game Enabled to stop it running until we tell it to run and by using this command.

 

"Startquest MyExampleQuest"

 

That line can be added to any other working quests scripts or result box in the Quest window. This way you can use another quest to start your new quest, more on that at the end of this tutorial.

 

Typically this is done when you want part 2 of a quest to start after part 1 ends, so you would add your own "startquest" command right before the other quest is told to stop using the "stopquest" command. For example if I wanted to stop my quest, I would use.....

 

stopquest MyExampleQuest

 

So you see, we can Start and Stop quests that are not running yet or are running already via those commands.

 

Lets look at this a little closer shall well. Go the Quest Data tab in the quest window and where it says index, right click and select new, then click on the first number and change it to zero. Now do it again and make the second number 10 (assuming you have not done that previously). You have just created Stage 0 and Stage 10 of your quest. Now select Zero and where it says Log Entry, right click and select new. Notice how the second Log Entry box and the Results Script that where greyed out are now both usable.

 

Log Entry is simply a log of what that stage does, so you can type in something that reminds you what stage zero does and you can do the same for stage 10. But all 10 does is end the quest and all zero does is everything else.

 

In previous editors the stages where far more important, now they are just a means of shutting down the quest so click on Stage 10, and where it says Complete Quest, tick the box because the last thing we will do is SetStage MyExampleQuest 10 and that will move the quest to stage 10 and end close it down for us. The rest of the time it will be in stage zero. Do not forget to replace your quest name with my "MyExampleQuest" quest.

 

Lets talk about the Result Script box for abit next.

 

That box can actually contain most of the commands found in between the Begin Gamemode and End commands of a normal script. The script it self has to have the variables declared e.g. all those "Short myvar" lines, and the result box must calle them by Questname.varname or it gives an error but the rest of the script can go in this Result box. The difference is how the result box executes. This result box runs once when the stage is first loaded. If this was stage 10, it would execute the moment we SetStage MyExampleQuest 10 and then stop. So it is a one shot deal and what ever you add here only runs once.

 

But it runs once straight away, the GUI comments all happen instantly but a script command runs when the script runs so there is sometimes a delay of up 5 seconds.

 

Typically the command "stopquest MyExampleQuest" (change MyExampleQuest for your quest name) would be the last command in the Result box and would end our quest for us instantly, if it was in the script, it would take about 5 seconds to do the same job. So go a head and add Stopquest MyExampleQuest to the end of Stage 10s result box. It does the same thing as the Complete Quest box and we will be stopping the quest there anyway.

 

Remember the MyExampleQuest is the ID of your quest and needs to be changed to what ever your quest is called in the Quest Data tab.

 

Setting up Objectives.

 

Now click on the Quest Objectives Tab and where it says Objective Index, right click in the box below and select new. Notice the Quest Objective Data box below has an index number of 0, just change it to 99 for a quick test. Notice how your own new Objective index number just changed too (assuming you have it selected still). Thats because the selected objective is the one the boxes below all edit or affect. Change it back to zero now.

 

In Display Text add something like "Ask George about his rifle tweak", this is the text the player sees pop up when the objective is enabled. George is just a name I made up, replace it with the name of your own NPC made for the previous tutorial and then right click on Target Ref and select new, then go to "Quest Target Data", click on it and find your NPC and click on him to set him as the target for this quest. That is how you set the quest arrow to point at your NPC when this quest starts or when the player selects the quest.

 

We will only have 1 objective in our quest and the sole reason for this quest will be to get something from our NPC.

 

Setting up a Topic

 

I need you to add a topic to the Topics tab of the Quest window now just as I explained in part 1. This topic is for our NPC who I am calling George. It is the response George gives to the player when he player "Ask's George about his rifle tweak" as the Objective suggests.

 

So lets say something like "All I did was oil that spring there, here try my rifle."

 

Conditions & Result Scripts

 

Now comes the fun part for any quest maker, best get comfortable doing this because this is where the magic happens. With your line selected, right click in Conditions and add a condition like this to the line.

 

GetIsID YourNPC == 1.0

 

Place YourNPC with the ID of your actual NPC.

 

Remember, we covered adding lines to NPCs in part 1, so you can use that as a guide of you need help.
That will tell the game the line above is for George and only George can speak it.

 

After setting that, it is safe to record the line if you wish but not before.

 

Now we want 2 things to happen in the result box.

 

1) We want George to give the player something
2) We want to change the stage to 10 so the quest ends

 

So we do this....

 

player.additem nameofyouritem 1
setstage MyExampleQuest 10

 

Remember the MyExampleQuest is the ID of your quest and needs to be changed to what ever your quest is called in the Quest Data tab.

 

For the sake or argument I'll give you a real example that will work for an item and tell you where to get it.

 

Go to the Object Window and scroll down until you see Items, then scroll down further to Weapons and click on that. Now find WeapHuntingRifle, select it and right click and select Edit. The ID says WeapHuntingRifle, that is the name of the item we give to the player. So if we where to give the player a hunting rifle, it we would use this example.

 

player.additem WeapHuntingRifle 1

 

If you wanted to give the player caps you would look for caps under Misc Item, the object name we want for caps is Caps001 and so the same line would look like this.

 

player.additem cap001 1

 

That would give the player 1 cap, if you changed that 1 to 50, it would give the player 50 caps.

 

Which ever way you do it, it will either be....a weapon the player gets...

 

player.additem WeapHuntingRifle 1
setstage MyExampleQuest 10

 

or money....

 

player.additem cap001 1
setstage MyExampleQuest 10

 

One of those would need to be entered in to the topics result script box for it to work.

 

Optional: Lets have the player give the NPC a Hunting Rifle instead.

 

If we where to have the player give the NPC a hunting rifle we would have to add an extra condition to the check. So where you added your "GetIsID YourNPC == 1.0" right click and select new and then find GetItemCount and select it. Double Click on it and change Function info to the ID of the item we are giving to the NPC, in this case its our Hunting Rifle "WeapHuntingRifle", we need the player to have 1 or more on him, so we use the comparison >= which means greater than or equal to and then we simply give it a value of 1.

 

Now to run that check on the player rather than the NPC we need to change the Run On Subject to Run On Target. That means this check applies to the players inventory, not the NPC.

 

Now our new line will only appear if the player has a hunting rifle on him. Then we remove the Rifle using this line in the result script box.

 

Player.removeitem WeapHuntingRifle 1

 

Normally we would add a second topic and use similar conditions to the first but instead of having it say

 

GetItemCount WeapHuntingRifle >= 1

 

We would say

 

GetItemCount WeapHuntingRifle < 1

 

So when the player speaks to the NPC, the last Getitemcount command would run if the player had no hunting rifles in his inventory and the first would run if he had one or more hunting rifles on him. The Line would need to say something else of course like "I want a hunting rifle, come back when you have one". But it which line gets shown would change according to whether the player has a hunting rifle on him of or not.

 

Assuming he does and he gives it to the NPC, you could add "player.additem cap001 100" to the result script box (end) and have the NPC pay the player for the rifle.

 

Our Result script box would look like this

 

player.additem cap001 100
Player.removeitem WeapHuntingRifle 1
NPCID.additem WeapHuntingRifle 1
setstage MyExampleQuest 10

 

NPCID would be the ID of your NPC receiving the rifle.

 

See how it works, we give the player 100 caps, take away 1 hunting rifle and adds one to the player, then set the quest to stage 10 which would end it. Technically, we usually do not bother giving the NPC anything unless we want the NPC to use it so the "NPCID.additem WeapHuntingRifle 1" would not really be used. We usually just take it from the player and let the player assume the NPC has it.

 

Starting and stopping our Objective.

 

Time to clean things up, go to the Quest Data Tab and find Script, click on the 3 dots to open your script.

 

Now we need a script that looks something like this.

 

Scn MyExampleQuestscript

 

Begin GameMode

 

End

 

If yours already has other commands in it, do not worry, you can still use it but you will have to adapt my instructions a little. Now we want a standard "DoOnce" var to add our topics once. So to make a point about var names can be almost anything lets call our doonce var bob.

 

So under "Scn MyExampleQuestscript" type "short bob" without the quotes.

 

So the script looks like this...

 

Scn MyExampleQuestscript

 

short bob

 

Begin GameMode

 

End

 

Now between Begin Gamemode and End we need to have our script add our topic so lets do that know.

 

First lets make sure bob is worth zero

 

if (bob == 0)
Since all new vars are worth zero before we use them, Bob should be worth zero in our quest unless this has run already, in which case the above line will not allow this next part to run again. EG this is our Do Once check.

 

Now after that put

 

addtopic yourtopicname

 

Go back to the Topic tab and get the name of your Topic and replace yourtopicname with your own topic name.

 

Mine would be this for example.

 

addtopic TNCRJoining00

 

Finally we have to end the IF command with an Endif so the whole thing will look something like this.

 

if (bob == 0)
addtopic yourtopicname
endif

 

.... Brain hurting... replace reboot to continue.... muhaaa... yes it will feel that way but its all question of learning how to read this stuff back in plain english so lets try that show we :)

 

Now what is wrong with that example above ?
... lets look at the script logically....

 

Does Bob = 0, well yes, its a virgin var, never been used before, so of course it is equal to zero.
Fine, add our topic then
End the IF function.

 

It all seens fine except 5 seconds later, that Gamemode script will run again and it will do this again

 

Does Bob = 0, well yes, its a virgin var, never been used before, so of course it is equal to zero.
Fine, add our topic then
End the IF function.

 

Opps.... we forgot to change Bob to 1 to stop that so lets do that now.

 

If (bob == 0)
addtopic yourtopicname
set bob to 1
endif

 

And it fits in our script like this

 

Scn MyExampleQuestscript

 

short bob

 

Begin GameMode

 

if (bob == 0)
addtopic yourtopicname
set bob to 1
endif

 

End

 

Now Bob will be worth 1 not zero and it will stop it endlessly adding topics to the game.
Which is not harmful to your quest btw, it is just good practice to do this when a function (thats what that is) only needs to run once. I would not use a dangerous example of how to use bob here anyway, not with new quest makers. But it is much better that you learn this trick on something safe. I do this my self as standard to save a little CPU time. So there are benefits.

 

Everything between the Begin Gamemode and End runs once every 5 seconds, other "Begin" options exist but Gamemode tends to be heavily used by Quests. Begin OnDeath is also a useful one for NPCs used in quests too, so make a note of that. As is Begin OnActivate.

 

Now your topic is added to your NPC but not the Objective, that is something else we only need to do once so it could go in our little script too.

 

I would use the SetObjectiveDisplayed command which will add my quest for me and display it, so lets do that. Change your script to look something like this.

 

Scn MyExampleQuestscript

 

short bob

 

Begin GameMode

 

if (bob == 0)
addtopic yourtopicname
SetObjectiveDisplayed yourquestname 0 1
set bob to 1
endif

 

End

 

Mine would look like this....

 

SetObjectiveDisplayed MyExampleQuest 0 1

 

What it means is this...

 

SetObjectiveDisplayed "Name of your Quest" "Objective Index" "0 turn off or 1 display objective"

 

So the 0 means "Ask George about his rifle tweak" which we created in "Setting up Objectives" above and 1 means "display it". Since this is also the first time this quest has had any objectives displayed. The Quest Added Message will appear when we add our new objective and the quest will appear on the players quest list.

 

Now Stop for a moment and just FART or something.... your brains going burst with all these options.... go back read this again, get a feel for it, absorb what I am telling you to do then continue with the next section. If you do not understand it, feel free to ask on my forums for help. I'll be there for you if you need me.

 

Finishing off our Quest.

 

Go back to Topics and in the result script (end) box for your topic where you give the player something, add this line.

 

SetObjectiveCompleted NameOfYourTopic 0 1

 

Mine would look like this

 

SetObjectiveCompleted MyExampleQuest 0 1

 

Your finished Result Script box should look like this now.... changing the quest name of course to match your own....

 

player.additem cap001 1
SetObjectiveCompleted MyExampleQuest 0 1
setstage MyExampleQuest 10

 

Looking at how our script works.

 

First the game loads and our quest uses the Start Game Enabled tick box to run straight away. The script attached to it adds our topic to our NPC and then we see an Quest Added message in game as it sets our objective to "Ask George about his rifle tweak". The player then goes to speak with George by following our quest arrows and when he gets to see him, and asks the question, he gets the hunting rifle as a gift and the result script box closes down the objective marking it completed and sets our quest to stage 10 which is marked complete quest in the Quest Stages.

 

So our quest closes down for good, having been completed by the player.

 

Why did I explain this Quest logic to you ?

 

Because all quest designs start by thinking about quests in those terms.

 

Learn to think about problems in english first and generalize, then get in to the nitty gritty when your general overview seems okay to you.
Things are simplar that way, trust me.

 

Optional Reading: Tricks and Tips

 

How to start a quest from another quest without editing the other quest first.

 

The GetQuestVariable is an excellent command for reading another quests variable and many quests set variables for important events such as the end, you just need to find one in those quests that you can read in your own quest and use that as a signal to start your own quest. Other commands such as getstage where useful in previous editors but their use is slowly becoming obselete these days.

 

Your quest needs the Start Game Enabled Ticked and needs to have the code to stop it running written in the quests script instead. So no topics or objectives get displayed until your ready.

 

For example in a fake quest called BOS1 that has a var called Blownup thats set to 1 when the brotherhood of steel bunker goes boom, we would check for the explosion using the Blownup var like this.

 

GetQuestVariable BOS1.Blownup == 1
Which means
GetQuestVariable QUESTNAME.VARNAME == 1

 

Try and read it as English not Programmerese, its easier when you can translate what you see quickly.

 

In that way you can check vars from other quests and link your quests to them, so they communicate with each other. In this case the Brotherhoods bunker goes boom, Blownup gets set to 1 and our quest notices this and says, "hay the brotherhoods bunker just went bye byes, time for us to start work.

 

Our quest above for example could easily be adapted to run only after our fake Brotherhood Bunker goes boom by making some very minor changes to your script.

 

EG

 

Scn MyExampleQuestScript

 

short bob

 

Begin GameMode

 

if (bob == 0) && (GetQuestVariable BOS1.Blownup == 1)
addtopic yourtopicname
SetObjectiveDisplayed yourquestname 0 1
set bob to 1
endif

 

End

 

Neither the topic nor the objective will be added or displayed until our fake BOS1 quest's variable Blownup equals 1 and Bob equals 0. And that would only ever happen after the Brotherhood bunker blows up.

 

That is one way to link your custom quests to official quests without needing to edit those official quests first.

 

How to start your quests from another quest you created.

 

If you do not want to use the "start game enabled" method to start your own quests and want them to appear as a result of a player speaking to somebody, try using what I often call a Jobs Quest.

 

A Jobs Quest is a real quest but it handles all the little jobs I want done that are too small to deserve their own quest. A jobs quest never ends, never tells the player what to do, it just starts with the game and cleans house in the background. So it is ideal for adding Topics to NPCs designed to start new quests.

 

For example, you create a quest as described in Part 1 of this tutorial and call it Jobs Quest. Next create a Topic called "Gold Rush" and add a line of dialog about it EG "I saw the gold in them there hills" and make sure the "Say Once" box is ticked for that topic. Then in the result script box of the topic you add startquest goldrushquest (or what ever quest you want to start, I am using gold as theme for this example). As the old haggard miner tells his story of Golden Nuggets the size of his head, in the background your jobs quest has started the Gold Rush Quest and a new objective will appear on screen to tell the player what to do next.

 

How to count bodies accurately for a quest.

 

What if you place 5 NPCs and want your quest to do something when they are all dead, you could either use reference names to check if they are alive or you could let an ondeath script do the work for you and keep it nice and simple.

 

Lets assume your quest is called BodycountQuest, first we would need a var to count bodies. So lets use "bodycount" as our var, then we need an "If" command to check if "bodycount" equals "5" then we want it to do something. Out basic script would look like this.

 

Scn BodycountQuestScript

 

short bodycount

 

Begin GameMode

 

if (bodycount == 5)

 

endif

 

End

 

In between the If and the Endif is where our cool stuff happens, we could start a new quest there or perhaps do something like this...

 

setstage bodycount 10
So the quest skips to stage 10 and if thats our shut down stage, the quest would be marked completed.

 

or we might do this
SetObjectiveCompleted BodycountQuest 0 1
Which would mark objective zero as completed once bodycount equals 5.

 

or perhaps
player.additem caps001 500
So the player gets a reward for killing the 5 NPCS.

 

All you need to do is add an ondeath script to the NPCs that needs killing that increases the Bodycount var value by 1 each time one of them dies. A script like this would do it.

 

scn NPCDeathSCRIPT

 

begin onDeath

 

set BodycountQuest.bodycount to BodycountQuest.bodycount + 1

 

end

 

The part that does the work is this...........
set BodycountQuest.bodycount to BodycountQuest.bodycount + 1

 

It takes a look at the BodycountQuest and checks the value of the bodycount var, and then adds 1 to it. So it always counts upwards. You can change the number of deaths required to trigger the quest easily by simply editing the quest scripts line that says if (bodycount == 5) to what ever you want, eg 10 would be if (bodycount == 10).

 

This has huge advantages over other methods of counting the dead, for example you do not need to know any reference names using this method, which is another popular way of counting dead bodies, just add that script to all your NPCs and your done. You could have a script to endlessly spawn new NPCs if less than 5 are alive and active in the game by adding or subtracting 1 from the total as they die and respawn. So if the player kills 1, then their would be only 4, so your script would add another one to make the numbers up to 5 again. This system has many uses and is the least complicated and most reliable method of counting dead bodies in quest.

 

The Hover Dam Quest of Fallout New Vegas uses the Reference and so as about 500 references placed manually, this system would have a simple "if (bodycount < 500)" spawn away....
500 NPCs on the screen at once is NOT recommended btw.... best keep it below 40.

 

Want a NPC to Build the Player a House ?

 

This is trick I used to rebuild an entire city in Oblivion & Fallout 3, it is a simple trick and involves a marker and several items placed in the game world and disabled. What you do is you find one of those Red Xs in the game, select it and press CTRL C to copy it, then Press CTRL V to paste it and give it a name like Myhouseref. Its faster than finding them in Geck.

 

The Ref part means REFERENCE, you do not need have to add it but everything dropped in the gaming world is a reference, so it is good practice to name them that way.

 

Now you build your house, city, fortress or what ever you want and click on every object you placed 1 at a time so it opens up its Reference window. You will see 3D Data and a bunch of other stuff in a row which changes depending on what you clicked on. For example if it was an NPC then Leveled Actor would appear after 3D Data, if its a light then its ownership thats after 3D Data. Either way, look at the 2 arrows pointing left and right at the end of that line and click on the one pointing right until you see Enable Parent, then click on Enable Parent.

 

Notice where it says Copy "enable state from", well, click on "Select reference in render window" and click on that X marker you pasted back, if you selected it correctly the X's reference name should appear next to the word Reference under the Copy enable state. And if you want that item to be disabled initially, also click on "initially disabled" too. Do this for everything you placed.

 

If you want to have something appear as the marker disappears, click on "Set Enable State to Opposite of Parent", this is good for making a rock vanish and a house appear on the same spot. Eg It swaps them over.

 

Now you have everything assigned to your X marker, you can make them disappear and reappear when ever you want by simply enabling or disabling the marker from a quest script.

 

Lets assume the quest I explained above was not about Rifles but about getting a house built for the player.... What I hear you say..... it is a completely different quest idea, I do not want another 800 lines of tutorial,....... moan moan moan.... Relax..... remember your breathing excersizes, remember, Wax on, Wax Off (thats the karate kid movie btw if nobody gets it). This is easier than it sounds.

 

All we would do to change it from a quest about rifles to a quest about house building is change the dialog to "build me a house please" and change the result script box for the topic from this......

 

player.additem WeapHuntingRifle 1
setstage MyExampleQuest 10

 

to this....

 

Myhouseref.enable
setstage MyExampleQuest 10

 

Which makes everything appear that was disabled, assuming you did not set the "Set Enable State to Opposite of Parent" tick box, in which case it will vanish. In this case a new house for the player would magically appear as a result of speaking to the NPC.

 

See how the Wax On Wax Off tutorial method opens up more doors than you can possibly imagine.... today a rifle, tomorrow the world.... muhaaaaaaaaaaaaaaaaaaa!!!!!!!

 

Final Thoughts.

 

As you can see the basic quest formula is very powerful and flexible but in the end your own imagination and scripting abilities will hold your back. So its worth learning what commands are available and learning how to use them by visiting the wiki. As always, if you have any questions about this, just ask on my forums and I'll see what I can do :)

 

Fallout New Vegas Reputation System Explained.

User Rating:  / 2

 

Fallout New Vegas Reputation System Explained.

 

Introduction.

 

The new fallout new vegas reputation system works along side the faction system but is entirely separate. You can have a bad reputation and get booted out of faction via a script or you can have a bad reputation and not get booted out. The two work together but do not affect each other unless you want them too. This feature is also poorly documented so I am going to document it here for everybody.

 

Quick Note: The Rep system does appear to be using old Fame and Infamy feature of previous editors, so this basically my old legion feature from The Elder Council mod for Oblivion reworked. So if you have seen that working. You have seen the rep system in action too. It is powerful stuff, worth exploring for certain. Having said that, lets not use old names for the new feature, so I'll be sticking with the new names and new ways of working here.

 

About Reputations

 

The Reputation system is merely a way of keeping track of how much the player is liked or hated in the game on a per faction basis, though there is no direct link for example between RepNVNCR and the real NCR faction, it could have been called the RepGeorgeBush or "MyThatIsABigOne" or just Bob. How it works is various scripts through out the game read those REP vars set by the reputation commands before deciding if the player is a friend or foe and change the out come based on what they find.

 

So they are basically fancy vars and you could make your own and use the getquestvar command to do more or less the same thing except this is implemented to make it easier to track reputations between scripts so best learn this system and use it.

 

For example RepNVNCR is used in the NCR scripts to decide what to do about the player and what dialog to display.

 

The VStreetReputationQuestScript script controls what happens on the Strip according to the players reputation and VDialogueGoodspringsGeneric controls the Good springs dialog based on your reputation with them.

 

If you made a faction of BlobbyMen from the BlobbyCave Kingdom and went to the Object window in Geck for New Vegas, then under Actor Data, found reputation, finally clicking in the window and selecting new, you could add your own RepBloddyMen for use in your own scripts. Setting the blue to something low if you wanted the player to get a quick reputation for good in your Blobby Kingdom or high if you wanted him to work hard for that reputation. For example the Legion has a value of 100, where as Goodsprings as a value of 15.

 

You then try and get your rep up to that figure before they will really love you, or hate you, the commands below are used for that purpose and I assume the game it self divides the various hated, liked, adored ranks across the value set in your Bloddy Rep. But check this for your self because the documentation for this is none existent and I have had to make "educated guesses" to fill in the blanks here.

 

After setting up your Blobby Rep, you would use your new RepBloddyMen to check if the player was liked or hated by your Blobby Faction just like Obsidian did with their factions.

 

The Reputation system tracks Liked, Hates and Neutral settings for each of the REP supported so you have them love and hate the player at the same time without attacking him, or have them hate him completely without reservation or loved utterly as a saint. How you set the Reps in your scripts determines all this and you decide how the factions respond via your own scripts to those settings.

 

But if you changes the rep for the NCR, it would affect all scripts that used the NCR rep, not just yours. So you can update the entire game using this system if you wished.

 

The Commands.

 

Time to explain the commands and give some examples.

 

GetReputationThreshold

 

GetReputationThreshold RepFaction, A B
A = 0 means mixed views, 1 means liked, 2 means hate,
B = 0 to 2 neutral, 3 to 5 Mixed response, 5+ Positively love or hate response

 

Example of use

 

if GetReputationThreshold RepNVCaesarsLegion 2 == 6
Which means if the reputation is 2 (hates) and is equal 6 (really really hates) then do something.

 

Another example

 

if GetReputationThreshold RepNVCaesarsLegion 1 == 1
Which means if the reputation is 1 (likes) and is equal 1 (not really bothered, they are okay I suppose) then do something.

 

Another example
if GetReputationThreshold RepNVCaesarsLegion 0 == 3
Which means if the reputation is 0 (neutral) and is equal 3 (watch your self, they may kiss our or shoot you) then do something.

 

So the key here is the first figure states whether they like, hate or are neutral towards something and the second number gives the degree of it, either 0 not bothered or really bothered = 5 and over, If the first letter equals 0, they are really neutral at 5+, if first letter equals 1 they really like you at 5+, if first letter equals 2 then they really hate you at 5+.

 

Addreputation
Uses the same system as GetReputationThreshold so I'll explain the differences here only.

 

addreputation RepFaction A B
A = 0 means mixed views, 1 means liked, 2 means hate,
B = amount to add. 1 or 2 is low, 3 to 5 males a big impression, 5+ is pure love or hate.

 

Example of a pure Neutral position with the NCR
addreputation RepNVNCR 1 5

The example above adds 5 points to Rep 1, which is the LIKED reputation. If the LIKED reputation of RepNVNCR was worth 2 points already, adding 5 to it would make it worth 7 points.

 

setreputation
A = 0 means mixed views, 1 means liked, 2 means hate,
B = amount to add. 1 or 2 is low, 3 to 5 makes a big impression, 5+ is pure love or hate.

 

This example is probably pure hate that will never ever be corrected via quests without a setreputation command to fix it first. Lets face it, removing 5 points from this will not make the this group like the player :)

 

setreputation RepNVNCR 2 9999

 

But if you also did this then the player would become what is known as a Wild Child and be loved and loathed in equal measure.

 

setreputation RepNVNCR 1 9999

 

You can also use it to set it to more reasonable levels after it has been changed, for example, suppose the NCR pardon the player for crimes, you would do this.
setreputation RepNVNCR 2 0

 

IF you wanted them to like the player, you would do this.
setreputation RepNVNCR 1 5

 

The uniform scripts for various factions actually uses this exact trick to make the player blend in with his enemies by adding the player or removing the player from the factions enemyfaction list temporally. But it also has spotter code on some NPCs that allow them to see the real reputation value and attack the player if necessary.

 

GetReputation

 

Used in the Factions armour scripts.

 

Example
GetReputation RepNVBrotherhood 0

 

Would tell us what the RepNVBrotherhood 0 reputation was worth, e.g. is it work 1 or is it worth 5, we can find out using that.
Typically a command like this would be used to do it.

 

If (GetReputation RepNVBrotherhood 0 < 5)
Your okay Mr Player
endif

 

If (GetReputation RepNVBrotherhood 0 >= 5)
your dead meat you pig or I want your babies mr player because your so nice
Endif

 

More Examples of use

 

The commands them selves are basically Anger Management code but you determine how they respond in your scripts, the game it self does nothing if you set something to 5 or 999 or what ever.

 

Here is an example of how we might use the commands after a quest to keep the White Glove Society happy is successfully completed.

 

If (getstage done my_quest_to_please_WhiteGloveSociety == 100)
setreputation RepNVWhiteGloveSociety 1 5
setreputation RepNVWhiteGloveSociety 2 0
Endif

 

If (GetReputation RepNVWhiteGloveSociety 1 == 5) && (GetReputation RepNVWhiteGloveSociety 2 == 0)
Add the player to the White Glove Society faction so he can be real good friends with them.
endif

 

If (GetReputation RepNVWhiteGloveSociety 1 < 5) && (GetReputation RepNVWhiteGloveSociety 2 >= 1)
Remove the player to the White Glove Society faction because they do not like him anymore
endif

 

That is a real example modified for this tutorial. I actually use something like that for my NCR mod to add or remove the player from the NCR.

 

You can also use these commands as conditions for dialog, so lines of dialog appear or disappear according to the players reputation with a group. For example using the GetReputationThreshold command you could only display dialog if the player had a "liked" reputation of 3 or more and hide it if they had a hated reputation of 1 or more. Meaning the faction would have to like them and not have any mixed opinions about the player to show that line which might say "Hello my very good friend Mr Player". Where as a completely different line would replace it if they hated him. So you see, its good for filtering dialog based on how much a faction likes a player.

 

But you have to tell it REPBlobby is for Faction Blobby, it will not do it for you. That means you use getinfaction command for the dialog conditions and point it at your Blobby faction so the dialog only appears on your Blobby Men NPCs and you add your rep condition to that too so it determines when your Blobbymen get it or not.

 

 

 

 

 

Fallout New Vegas: Quest Making Tutorial Part 1

User Rating:  / 1

 

Fallout New Vegas: Quest Making Tutorial Part 1

 

NPCs and Basic Dialog

 

Introduction

 

Quests can be very complicated beasts or very simple beasts, but the complicated ones are often a combination of simple features. If you learn how to make a simple quest mod and practice a bit, the complicated ones become possible too. Simply adding Dialog to an NPC requires basic quest making knowledge which is covered in this tutorial.

 

For most quests to work, you have a few "must have" components. Usually it is an NPC, a Quest, A Script and some dialog. Then you add what ever you want the quest to achieve when completed to some result box and once the quest ends, what ever is in that result box happens. We will be doing the NPC, Quest, Script thing in this tutorial and dealing with the Result Box thing in the next tutorial.

 

So you will learn all about adding dialog to your brand new NPCs in this tutorial, which is a vital first step and a complicated one.

 

Part 1: Choosing your New NPC

 

NOTE: If you have your own NCP prepared, skip this section.

 

We need an NPC so load up GECK NV (the Fallout New Vegas Editor) and go to the Object Window (you can turn it on from the View menu if you closed it) and then find Actors and look for NPCs. Now select NPCs and lets have a look for some we can make our NPC out of.

 

Now, I could tell you all about NPCs right here but it is a big topic and best dealt with in it's own tutorial. So I'll assume you know how to make NPCs and set one up and just give you some hints about it.

 

I want my NPC to be a training officer in the NCR and I think a Desert Ranger is perfect for that. Also since I have a female voice actor in mind for the part (waves at Jez) so I am going to make this Training officer a Cowgirl. So I'll be looking for a female ranger and then editing the equipment to make her look like a Cowgirl. Which is your basic Desert Ranger look in the default game.

 

So my NPC is going to be based on NCRRangerCivilianAAMTemplate.

 

First though, I change the ID to something more unique, e.g. TNCRTrainingOfficer and then click OK and say YES to the question Create new Form. That creates a brand new NPC called TNCRTrainingOfficer and means I have not had to edit the original NPC and there for have not broken thousands of mods by doing so. Now I all I need to do is find the TNCRTrainingOfficer NPC again, open it up and continue editing it.

 

Before we continue on with how to make the quests, lets cover how some of the important NPC window tick boxes work since they are heavily used in quests.

 

No Low Level Processing:
This box is interesting because it means when you leave the cell, the game forgets about this NPC. Which effectively unloads it from the game when you leave the cell and reloads it when you enter again. Giving it all its original equipment back in the process. Sometimes this option can be very useful to a modder and other times it can make an important NPC vanish from the game and break your quests. So we never use this tick box when dealing with important Quest NPCs, this box is always unticked for those vital NPCs. Use it for NPCs and Creatures that are of little importance and do not need to be remembered. Or NPCs like shop keepers that never leave their store.

 

Essential:
Essential means NPC cannot die, which is very good for quest mods but sometimes gives the player indestructible allies in battles. So I recommend using the Respawn option instead of this one. It is more realistic when the NPC can die too. Even if they do respawn after 3 or 4 days.

 

Quest Item:
Quest Items never disappear from the gaming world, even if they die, their bodies remain there forever. This is useful if you want the player to recover something from a body and do not want the body to disappear after 3 or 4 days as would happen if this box was not ticked. You can also turn this off using the SetQuestObject command after the Questitem has served its purpose. Its as a simple as adding SetQuestObject MyNPC 0 and after 3 or 4 days the body will vanish. You can add such a command to the result box right before the quest is marked finished as clean up code. Then you can tell Betheseda how it is done because they never clean up their quest objects.

 

Respawn:
The NPC appears good as new after 3 or 4 days if it dies.

 

The Dialog Button will be used later to add our greeting to our NPC, so remember where you saw it. All the rest can be ignored for now.

 

Finish setting up your NPC and we will continue with this tutorial.

 

Part 2 Creating a Quest.

 

Creating an empty Quest

 

I find it useful to make an empty quest that works but does nothing, then add my cool quest code to it. It is good practice and since simply adding dialog to the game also requires you know how to make quests. This is the first thing you have to do anyway.

 

Go the Object Window in Geck and find Actor Data and look below it for Quest, select Quest so a list of quests appears in the window on the right. Right Click and select new to create a new Quest of your own in that window with the list of other quests. Now where it says ID below Quest name, give your quest an ID, mine is called TNCRTrainingOfficerQuest since it is for my training officer in my NCR mod.

 

Before you Okay the window to close it and create the quest, take notice that there are no Quest Conditions visible, some items only appear after you okay the window and reopen it. So lets OK the Quest window and close it. Now find your quest again and open it. Notice the Quest conditions and other things are now available to use. So make a note of that, some things need you to close the window after you create them in order to finish off the creation process and make them available to other things. Quest Scripts are another thing that needs you to do that but more on that later.

 

Now give you quest a good name, since mine is about Training, I'll call mine NCR Training.

 

Making a Script

 

Now lets make an empty script for our quest for use later. This script will do cool things for our quest but it will also add our topics to the game too so we need it.

 

I'll show you a little trick here to make a script without needing to remember the commands, so pay attention.

 

Go to the Script Box in the quest window and select the 3 dots to open up the script window. Right under edit is 2 red arrows pointing left and right. Hit the Right one a few times until you find a script that has the command "Begin GameMode" in it somewhere. A script with "Begin GameMode" runs once every 5 seconds until the quest ends, most quests use it.

 

Once you have found one, click once in the script window, then press your CTRL + A keys to select everything and then Press CTRL + C to copy everything to the clipboard on your computer.

 

NOTE: If you do not know what the Clipboard is, do not worry, you will use it even though you know nothing about it. But if you really want to know what a Clipboard is, Its a big blue Smurf that scribbles down everything you tell it to when you use using CTRL C and pastes it back when you press CTRL X. It is a very hard working Smurf. Sometimes it is good to break the tension in tutorials with a joke. I find learning new stuff often makes me tense and that is bad for the learning process :)

 

Now you have copied the script to the clipboard, go to the Script Menu in the Script window and select new, then click in the empty text area that you see and press CTRL X to paste that script in to your new script window but do not save it. If you did what I told you to do, you probably have the 1EWatchControlScript script in your script window or something else with GameMode in it. Either is fine.

 

First lets change the scn line which is the name of the script, I'll call mine TNCRTrainingscript but you can call yours anything. But it is good practice to add the word "script" at the end since it helps identify it as a script if you ever find your self bug fixing in strange programs in the future. Now lets remove everything below our name but above Begin GameMode and finally lets remove everything between Begin GameMode and End. When your done your new empty script will look like this but with your Scn line listing your scripts name.

 

Scn TNCRTrainingscript

 

Begin GameMode

 

End

 

Now go to script type in the script window and change it to Quest, then save the script and close the window.

 

If you get asked if you want to save the script when you attempt to close the window and you know you have saved it already, it means there is an error in the script and your script has not actually been saved at all. So go back and check the script. When you make new quests, editing an existing script and renaming it saves you having to remember the exact commands such as Gamemode etc. So it is quicker when your learning and becomes a bit of a habit when you are not :)

 

Now we need to close the quest window and script window and reopen the quest window before it will find our new quest script. So close the quest window, reopen it and then find your script in the quests script box and select it so it is assigned to that quest and being used by your quest.

 

Once your quest window is back open and you have the script sorted, set the priority for the quest. Lets assume it is a side quest of low importance and give it a priority of 30. 50 would be an average priority, 80 a high priority. Also tick Start Game Enabled because we want this to run right from the start of the game. In Fallout 3 the priority of other scripts was a lot lower so the priority for our scripts could be lower too, but in Fallout New Vegas they use the full 0 to 100 priority so we must too.

 

NOTE: What you just created is a bare bones do nothing script, I use such a script to add my control code to my own mods. By adding the code to the script you just created. So you just learned how to set up a basic JOBS Quest. Which is term I invented to describe a quest that does all kinds of mixed jobs for my mod. Try and remember not all quests need dialog or pop up with quests for the player to do. Some work silently in the background.

 

Well, that is your totally useless quest set, now the fun begins making it do something. You can close the quest window and save your mod now if you want to keep the progress made so far safe.

 

Part 3: Making your Quest do something.

 

The Fallout New Vegas Way.

 

Fallout 3 introduced a new way to make quests but kept the old Elder Scrolls 4 system. Fallout New Vegas has dropped the old Elder Scrolls system and now uses mostly a GUI which is more messing around, is harder to teach you but more powerful for new quest makers in the long run. I will be sticking to using the new Fallout New Vegas system here even when I know there are alternative ways to do it because I want you to learn the new system, not the old one.

 

That means the Quest Stages Tab in the Quest window will be avoided at all costs, the setstage command will be used as little as possible and we will focus of objective commands instead.

 

Adding our first Topic

 

Go to the Topics tab in our quest window and right click under Top Level Only (Do not tick Top Level Only) and select new, a topics window will appear called Select Topic . Right click in the Select Topic window and select new, then type in the name of your topic without spaces. I called mine TNCRTrainingofficer01. I recommend adding 01 to the end so when you make a second topic, you can keep the same name and change the 01 to a 02, then a 03. It also makes it easier to remember the topic names later when only the number at the end has changed :)

 

So choose a topic name and stick to it but add a number at the end that you can change when you add more topics to your character.

 

Remember mine was TNCRTrainingofficer01, so if your making a mod about brain farts, your might be Brainfart01.

 

Now we have our first topic lets add some text.

 

Select your topic and then go to the Topic Text and change it to the text you want the player to select when he talks to your NPC. Since this is the first topic we have made, lets make it a simple "Who are you ?" and add a little background story to our NPC. We will deal with the fancy code for quest makers in the next tutorial. So add "Who are you ?" as the Topic Text. When your done, right click in the box under "info" and select new, this will open the "New Response" window.

 

We are limited to 149 characters per line here, yes I know it says 150 but just try using 150. I have use a free programmers text editor called ConTEXT for years to deal with all my scripting needs and it counts lines and characters so let me paste in 150 characters below for you to test it with.

 

Select everything between the quotes below, then press CTRL C to copy it, the select the New Response Window and press CTRL X to paste it. You will see the Response Text say 150/149 meaning you have gone one over by 1 character.

 

"This is 150 Characters long and may be used to test the response windows character limit so you can see how many characters you can actually use......"

 

Previously the maximum number of characters changed according to the size of the characters so it was impossible to know how many characters could be used. But now we seem to have it fixed at 149. Which is good news for my voice actors who can now make some small adjustments to their voice lines if need be providing the characters stays below the 149 character limit.

 

Now that's over with, lets tell the player who our NPC is and lets do it over 3 lines because your learning this stuff and you might as well learn it all right :)

 

Click on the area under info, then right click and select new so the word EMPTY appears. With the word Empty selected go down to the Response Text box and right click and select new and write your first line of text. Do it again to write your second line of text and again to write your third line of text.

 

The word Empty will change to your first line and the next 2 lines will be grouped with it and played after it. Empty was 1 speech, the 3 lines in the Responsse Text Box make up that 1 speech but had you added 3 lines in the same box as the word EMPTY, that would have been 3 totally different speechs requiring 3 sets of conditions setting before they would work. But because our 3 lines are in the Response Text Box that Empty uses, they are effectively 3 lines of the same speech. Hope you understand that. You can experienment without saving your mod to see how it works if you wish.

 

These are my lines.

 

"I am the training officer, I handle matters related to training here at Camp Golf".

 

"Given the state of some of these recruits, I usually pass on some advice of my own to ensure they get off to a good start."

 

"After all, a dead trooper is no good to anybody."

 

If Lipsync worked, you would use the Generate Lip File after recording the lines but it does not so ignore that option, we are not recording the lines yet anyway, thats the last thing we do because quest makers often need to adjust the text a little due to code changes.

 

Now for each line you have added, change the Emotion Type to something, since we have no lip sync, the least we can do is change the facial expressions when the NPC uses his telepathy skill to communicate without moving his lips lol. So click on your lines one at a time so the Edit Response Dialog window appears and change the emotions. I recommend changing from happy to sad and using a setting of around 70 to have the most dramatic face changes but still look natural. I use 50 to 80 most of the time.

 

Now we need to tell it which NPC is going to speak these lines and we use the conditions box under the Response Text box to do it. These conditions apply only to the formally EMPTY line at the top of the Topics window. New lines would need new conditions entering here.

 

Tip: When you set a condition you know you will need again, right click on the condition to get the copy and paste options up.

 

Right click in the conditions window and select new, a condition item window will appear and the Condition Function will already have GetIsID selected, which is handy since we need it right away. Now click on Function Parameters and find your NPC by looking for it in the ObjectID list (a big big long list ARGH).

 

Tip: After selecting Function Parameters and then clicking on the Object ID list, if you type the first letter of the name of your NPC in the window that appears, it will jump to that part of the list that starts with that letter. Since my NPCs name was TNCRTrainingOfficer, I am going to hit T and jump to the Ts instantly.

 

Now we need to change the Comparison to == and the value to 1 (ignoring the .0000) and OK that to close the window.

 

Optional Extra information:

 

Optional: Quick word on the Comparison setting.

 

== means =
!= means Not equal
<= means Less than or Equal too
>= Means Greater than or Equal too.
< Means Less than
> Means Greater than.

 

As a quest maker you will be using those a lot. Also notice how the = sign always goes last. If you use those in scripts in any editor, failing to put the = sign last will cause an error that the editor will not understand. Preventing you from saving your script. This has caught me out many times. Since Fallout NV error checking is broken anyway, all errors cause the same effect. But in older GECKS, you will usually get the error named except for this one.

Optional: How to make the NPC check the players inventory.

Also another thing that is handy to know, if you click on your condition again to open up the Condition Item Window, take a look at the Run On box. The Run On "Subject" means do this on the NPC the player is speaking too. Where as Run on "target" means do this on the Player who is the target of the NPC.

 

Why tell you this ?

 

Well suppose you where selling something and wanted to sell it to the player, how would know if the player had enough money to pay for it unless you checked it first ? Well you would use the GetItemCount command and the run on target to check if the player had enough money to buy something and if they did not, the line would not appear at all. The < comparison could then be used to display an alternative line if the player did not have enough money.

 

For example something like this is used as a condition for the line

 

T Getitemcount Itemname >= 100

 

If the player has 100 of that item or more, the dialog is played, if not, it never shows up at all. Where as the line below would show up if the player has less than 100 of an item, so this line would replace the above line.

 

T Getitemcount Itemname < 100

 

That's how you handle checks to see if the player has an item your NPC needs or not but it caps, ammo or something else, its all handled the same way. You use 2 lines, one for when they have the item and one for when they do not.

 

See how easy it is................. well do not worry if you did not understand, this is optional right now and will be more important in the next tutorial than for this one.

 

Getting the NPC to open its dialog box for you.

 

One of the things Fallout New Vegas does is it adds "Good Bye" topics to everything that has no dialog, a trick i used in my old new factions dialog for Oblivion. Fallout New Vegas makes heavy use of the same trick to great effect but it means we have a little extra work to do. It also means you have less work to do when creating your NPC in the first place, so you gain a little, and lose alittle.

 

This is why you get lots of greetings as you pass NPCs but cannot actually speak to them.

 

Our NPC will be using one of those "Good Bye" messages that stops it from showing the player our topic. So we must make our own greeting and have it run before the default one so our NPC can speak to the player.

 

Go to the Object Window again, find NPCs, and find your NPC and select it.

 

Mine was called TNCRTrainingOfficer so I am going to select that. When you have your NPC open and ready for editing, look for that Dialog Button and click on it. This is all the Dialog this NPC speaks, and the first on my list is GREETINGS which just happens to be what we are after first. So select GREETING and when the list of greetings appears in the right part of the window. Select the top one, right click and select new so our new greeting becomes the first one our NCR speaks.

 

Now the New Response Dialog opens again, this time for greetings, and we want to add our "hello" message to our NPC. You can simple have the NPC say hello but lets be a little more inventive and have it say "What a lovely hot day here in the desert." or anything you feel is appropriate for your mod. Now set the emotion as before and press OK.

 

Notice how our line is at the top of the Greetings List, that means it plays first and out NPC will there for not use the others unless we place conditions on our greeting that limits its use. Such as a time of day or if the player is carrying an item etc etc.

 

Now we need to copy the condition that we created and paste it in to our greeting so only our NPC uses that line. In the list under Greeting look for your Topic, when you find it, select it and look for the condition GetIsID and select that once with the right mouse button then choose Copy Condition. Now go back to greetings, select your greeting and go to it's conditions and right click and select Paste Condition to copy the GetIsID entry to our greeting. That assignes that new Greeting to your NPC and prevents all other NPCs from speaking it.

 

Now we have the NPC assigned to a greeting and a topic, so it should have something to say but there is one more tweak to make for the greeting. Under the response text is a bunch of tick boxes. One of them says Goodbye. Make sure that is not ticked. If you quickly look at the other greetings, you will see Goodbye is ticked, that is why I say all NPCs have a GOOD BYE topic that prevents you from speaking to them. That's where the greetings that stop you speaking are and its that box that does the stopping.

 

Using the conditions you could make several greeting for your NPC and have the greetings play according to the conditions, such as "Good Evening", "Good Morning" etc etc depending on the time of day. You just need to find a command to do the job and use it as a condition. Learning the commands is part of what it takes to be a good quest maker.

 

Adding our first Topic to the Script.

 

We must now tell the game to add our topic to our NPC and we do that via the script we created earlier. So go to your quest, select it, open the quest window and go to the Quest Data Tab and click on the 3 dots after the script name to edit it.

 

If you remember our script looked something like this with the Scn line being changed to suit your own needs, but if you used my script name, then that is fine, do not worry. This is the script we had and Scn means script name remember, so the name after is was the name of your script. Best always make your own scripts unique by giving them new names because you really do not want to edit default scripts unless you know what you are doing.

 

Here is the old empty script we made.

 

Scn TNCRTrainingscript

 

Begin GameMode

 

End

 

We need it to look more like the script below in order to add our first topic to it and we do not want it to endlessly keep adding topics because it is a waste of CPU time and its good practice to tie off lose ends when they are finished with them and addtopics is always a lose end.

 

So we use a var to make sure it only adds our topics once and in my script I use the line "Short domytopics" to achieve that. I invented the name domytopics, so you can replace it with any name you like but notice domytopics is used again in the IF statement and in the SET command too. So if you change it, be sure to change it else where in the script too. You then insert your own "addtopic" after the if (domytopics == 0) part but before the endif part. IF starts a block of code and Endif ends it. So all your stuff needs to go between IF and Endif basically.

 

The "addtopic TNCRTrainingofficer01" will add my topic, you just need to change the TNCRTrainingofficer01 part to the name of your topic that you created in the Topics tab of your quest. It should look something like this when your done.

 

Scn TNCRTrainingscript

 

Short domytopics

 

Begin GameMode

 

if (domytopics == 0)
addtopic TNCRTrainingofficer01
set domytopics to 1
endif

 

End

 

The above script will add the new topic once and then never allow it to be added again.
So it only works once.

 

Optional: Sharing a little secret with you all :)

 

If you change Short domytopics to Short domytopics01 you make it very very easy to change the var name so the IF block of code can run again. For example domytopics01 is one var, domytopics02 is a completely different var totally unrelated to the first. They might as well be called Bob and Mary, they have nothing in common. But it is very easy to just change that 01 in to a 02 to fool the game in to thinking the new var has never been uses and allow it to run that IF/Endif block of code a second time.

 

Very handy if you add another topic later and your code has already run once and shut down during your tests of your mod. If you look at my older mods and see some of my vars have numbers as high as 06, you know I edited them 6 times before release. I use this trick when I add new dialog to old quests and wish to reuse the same IF block like those above to add more later. Running the same Addtopic twice just uses cpu time, it is harmless, so whilst we do not want it running all the time, you can let it run twice safely.

 

I also use this system for "patching my own mod" in the fly. Quests save data in to players saves so sometimes a var that is set to 1 will break an update and as quest maker needs to change it to 2 in order to let a mod continue to work with the players existing saved games. You can either tell them to reset the mod, or just add a "set myvar to 2" command in a block like that and auto update their saves without them ever knowing you did it :)

 

Now for the cunning part.

 

Suppose I added in some future update something like this.

 

If myvar == 2

 

Deleted all these NPCs, and replace them with my new cooler NPCs, kill those deathclaws and replace them with my megas deathclaws and tell the player he is now superman and give him a bigger gun.

 

Set myvar to 3

 

endif.

 

Our patch would update myvar from 1 to 2, trigger the code above, then set it to 3 to stop it running again and the player would receive a massive update to his game automatically. So you see that little trick is a very very powerful little trick for maintaining backwards compatibility and implimenting new features in old mods. I usually add that kind of code to my Jobs Quest which I mentioned ealier :)

 

Part 4: Recording the Dialog.

 

Time to record the dialog so lets deal with that greeting first shall we before we forget about it. Go the Object Window and then find NPC and look for your NPC, when you find it, right click, select edit and then click on Dialog to open up your NPCs Dialog Window. All that NPCs lines will be listed but only Greeting and the topics you created concern us. So select Greeting and find your greeting in the text box under the Topics Text. Double click on it to open the Edit Response window.

 

Now lets just make sure your Mic works, right down the bottom of the Edit Response window there is a button called Configure. The Fallout New Vegas Geck is a little glitchy so make sure your mic is plugged in and select it by clicking on Configure. If your Primary Sound Driver is already setup to use your mic, then it work fine right away. If not you need to select your mic from the list. It will then open a "Select Audio for" window. If it is blank, then there is some wrong. Just Okay it and try again. If there's a lot of input formats listed, choose 44100hz 16bit mono.

 

Then click record on the Edit Response window and do a quick "Testing Testing 1 2 3" and then okay it and preview the results. If you hear your voice and the volume is about right, your all set to go. If it is too low you will have to adjust the record levels from windows and run this test again. Fortunately the changes are in real time so you can leave Geck up whilst you make the adjustments.

 

Note: The Engineering Guilds "Voice Actor Guild" gives lots of good advice about setting up your mic, so if your are stuck, head to our forums and ask for help. They will take care of you.

 

Now your mic is tested and working, simply record the line you typed in for the greeting and then hit save to save it off. Ignore the error about a missing file, that is needed to make the lipsync files and it was not released with the editor. So there is nothing you can do about it.

 

The last recording is stored in a temp file and can be played by via the preview any time, now OK the Edit Response and close that window.

 

Since we are in the Dialog window and it lists all our NPC lines, lets finish this tutorial from here because it makes things a little easier. Find your other topic on the list on the left and this time remember the Response text has 3 lines not 1, so you have to record all 3 lines. So double click on each line in Response Text and record it. Preview the recording to make sure it sounds okay and then save it.

 

Part 5: Converting GECK NV Wave files in to usable Audio files.

 

Before we begin, the lines you just recorded will appear in the folder "fallout new vegas\Data\Sound\Voice". For steam it is "Steam\SteamApps\common\fallout new vegas\Data\Sound\Voice". A folder named after your mod will be in there and in it will be a lot of other folders named after male and female voices. Your wave files will be in those folders. So that is where you go get your recordings ready for converting.

 

You can use the wave files generated by GECK in your mod if you wish, the 44100hz 16bit mono setting mentioned above will work fine if you used it but wave files are huge compared to mp3s and mp3s are big compared to OGG files which is what Fallout 3 and Fallout New Vegas both use. HTML 5 also supports OGG files by default so most browsers at the time of writing, with the exception of Internet explore support OGG files too.

 

Based on the tests I ran, OGG Vorbis files of 44100Hz and any Kbps in stereo or mono all work with Fallout New Vegas.

 

But higher Kbps may raise the quality of the recordings, but it makes the files bigger and unless the recording where first class to start with, you are not going to see the benefit. So stick with my recommended setting for your Audio files which is...............

 

OGG Vorbis 44100Hz 60 to 80 Kbps Mono.

 

Mono is important because voice work produces a bit of an echo in stereo.

 

To convert files to OGG best use one of the free or shareware Audio editing packages like Audacity . For my files I use a shareware program called Goldwave who's batch functions make short work of lots of audio files so it is a real time saver for me.

 

When your done put the new files in to the folder containing your original wave files, making sure the name remains the same except for the .wav at the end which should now be .ogg and delete your waves if you are not going to use them. If you have OGG files, you would not want large waves... so deleting them is recommended.

 

Finishing up.

 

Getting an NPC set up for voice work is getting harder with each new GECK that gets released. So if you managed it, pat your self on the back and understand that is the hard part over. In the next tutorial you will need to understand this tutorial fully because you will be asked to add even more topics to your NPC and add even more vars to your scripts in order to do things. But you should find the optional parts of this tutorial are very good preparation for the next tutorial. Especially since the optional reading in this tutorial will be mandatory reading in the next.

 

Good luck

 

2013  The Engineering Guild   globbersthemes joomla templates

EU law requires we tell you that this website uses cookies and requires we reveal what our cookies are used for. Our cookies are used to store your login details and preferences you set on this website. So you can log back in quickly and allow you to set up how the site appears to you. They are not used for anything else. The "remember me" button you see at login is used to tell the website if cookies should web used or not, tick it if you want cookies, ignore it of you do not.

To find out more about the cookies we use and how to delete them, see our privacy policy.

continue

EU Cookie Directive Module Information