The Fetch Quest, Game: TES IV: Oblivion. So this tutorial will be about how to make one of the most basic types of quests we can find in any Bethesda game: the Fetch Quest. We've got an NPC whose valuable item was stolen, and now it's our character's job to fetch it back.
The very first quest I ever wrote, way back in 2016, was a fetch, and it's because it was one of the only quests which included
a video I could watch.* I knew absolutely nothing about using the Oblivion Construction Set folks, absolutely nothing beyond renaming an item, or making a chest not respawn anymore. I mean, I'm a dummy gamer who used to put tape on my TV to simulate the compass being removed. Yet here I was, with this grand idea to start adding content to one of my character's games.
*
Note: that video features a "kill" quest, not a fetch quest, but a lot of the same steps still apply. Only real difference is the main script which gets associated with the actor-to-kill, and also the fact that the guy in the vid creates two NPCs instead of one. I will eventually write up a kill quest, for those who want it.This tutorial assumes you have used the CS before, and have some basic knowledge about how to get around: how to use the Object, Render, and Cell windows, and how Beth has their main toolbar set up. If you've never used the Construction Set before yet want to learn,
here's a video you can watch about the basics of making an NPC. It was made by a teenager, but believe me, this is one of the better ones I've found.
Bethesda also provides their own starting classes, and there are also classes over at
TES Alliance. So if you've never used the CS before, I encourage you to watch and read those first, because I'm going to just jump right in, here.

Still, this tutorial does start with a few basic instructions, just because it's the very first one in this thread.
--------------------------------------
1). Open the TES4 Construction Set. Several windows should pop up: the Object window, Cell window and Render window. There is also a main window, which will be beneath all the others, and it's the one with the typical "File", "Edit", "View" (etc.).
Go ahead and organize the Object, Cell, and Render windows to your liking. These three windows can be pulled and stretched this way and that, so that they are nicely laid out side-by-side or above/below each other, while the main toolbar window always stays beneath the others.
Left-click on File and then move your mouse pointer over where it says Data. Left-click on Data. A panel will pop up, listing Oblivion.esm (which is the vanilla game, basically), any DLC you've got, and any mods you've installed in your Data folder. Go ahead and double left-click on Oblivion.esm, and then click OK.
Now, if you've got some mod you're already working with, this process is different. In such case, you're going to double left-click on that mod (so an X shows up next to it), and then move down to the button which allows us to Activate that mod. Once the mod you're working with is Active, click OK. You can also simply double right-click upon that mod. The X should show up, and then you press OK.
It can take awhile for the Construction Set to load up. As it does so, occasional error messages usually show up. These are usually harmless, so click Yes or "Yes to All" as they do pop up.
2). OBJECT windowFirst thing we're going to do is make an NPC, a chest, a key, and an object to fetch.
For my first fetch quest, the object to fetch was an amulet. Go ahead and make all of these things. If you need to, you can dance around some of the steps found in either of those videos linked above, or you can delve into Bethesda's site, also linked above, to get these objects made.
In most cases it's best to simply edit something Bethesda has already made, rather than starting from scratch. Editing something pre-made will make sure all the content Bethesda has already added (such as icons, animations, generic dialog, etc.) also gets added to your key, your chest, your NPC, and your object-to-fetch, which means less work overall.
As you create all these objects, editing from stuff already in the game, the CS will ask if you'd like to save each each object as a New Form? Always click "Yes." This will create these objects as unique items, rather than overwriting stuff already in the game. You definitely DON'T want to be overwriting things which are already in the game.
In a moment, I'm going to go into more details about the items we're going to need.
NOTE: and this is very important. When editing a Bethesda NPC, make sure to edit someone found in the base game, NOT Shivering Isles. Editing a Shivering Isles NPC will confuse the game's engine, making any text written for that NPC not show up in the game! If there's any confusion about whether an NPC is from the base game or not, go to www.UESP.net and find that NPC. Make sure he or she is not from SI. Some NPCs from Shivering Isles start their ID names with "SE", when viewed in the Object window.
... It is also important to edit a named NPC, such as Samuel Bantien, rather generic one, such as a marauder or a bandit. Editing generic people is okay if making another generic, but if you're making somebody who is named (and therefore unique) it's less work to begin with somebody who is named.
Get rid of any AI, Factions, or scripts associated with your edited NPC. For instance, if you've edited a guy whose everyday life has him walking, sleeping, and eating in the Imperial City, that's exactly what the edited NPC will try to do if you don't get rid of his/her AI. When you find the guy in-game, he'll probably be walking out of the cell he's been placed into!
... So, click on the edited NPC's AI button, then right-click on any AI packages found in the AI Package List. Delete all of these. Also, look at the NPC's Aggression rating. For most ordinary town-dwelling people, this rating is going to be set at 5. If, for some reason, Aggression is set much higher than this, if it is over 40 for instance, change this to 5.
... To get rid of Factions, click on the Factions tab (which is right between Stats and Inventory). Right-click and Delete any factions listed. We can also add factions, if we want our NPC to be allowed into certain restricted areas, but that's for another tutorial.
....Getting rid of scripts will be discussed later during step 10b, assuming the NPC (or any other object being edited) actually has a script. Not all NPCs or other objects do.
Tip: When making items, NPCs, and so on, it's a good idea to put "aaa" in front of any name being typed for ID names or Reference ID names. So if a key gets made it can be called aaaDungeonKey, for instance. This will cause the key, or most any object or quest, to get placed at (or near) the very top of any list in the Construction Set, GECK, or Creation Kit. Makes stuff easy to find.
Conversely, some folks prefer to start ID names with ZZ, which automatically puts these items towards the bottom of most lists. Well truthfully, everyone's got their own methods. When tearing into other peoples' mods though, sometimes it can be challenging to find any content they've modified or added, if this content isn't located at the top or the bottom.
Anyway, for this tutorial, I am making aaaDungeonKey, aaaDungeonChest, aaaLostAmulet, and aaaBob. aaaBob will be my starring NPC quest-giver. These names don't have to be used exactly by anyone reading this, but those are the ID names I am going to use.
2a).
CELL + RENDER windowsSelect a dangerous cell where the chest shall get placed. Or, you can opt to choose a non-dangerous cell, if you'd just like to see the quest work, without needing to deal with combat & exploration. Either way, choose a cell in the Cell window's left panel, so that it shows up in the Render window. The cell being chosen will probably be too far away to see. To get a closer look, double left-click on any item in the right side of the Cell window, a barrel or a wall or whatever.
2b). Left-click anywhere into the Render window, then tap A on the keyboard to see better!
For anyone who's not sure how to navigate around the Render window, a good description of mouse & keyboard commands can be found here, in the box right under "Introduction." 2b). Drag the edited chest into the Render window. Find a spot where you'd like the chest to be, then press F so that it falls to the floor, or some other surface like a table. >> Though it might seem like this chest is going to be easy to find, since we're the one putting it in some dungeon, oftentimes once we're back in-game we might be surprised how often our own content might take some searching for!
Note:
Working in the Render window can take lots of practice. For those who're having trouble selecting the chest, rather than a wall or some other dungeon feature, sometimes it helps to get really close to the chest (or any object you'd like to move) with the cursor. Use the mouse wheel to do this. Double-click on the item until its Reference panel pop up.
...Once the chest selected, this panel will list the chest's name in its Base Object slot. Use the mouse wheel to zoom in and out, to get closer or farther. To move the entire cell, hold down the mouse wheel while moving the mouse. This will to cause the entire dungeon to move. Do this until finding the correct cursor position, where it can grab the chest properly. Once you've got the chest selected, the cursor will turn into a + sign, with pointers on it. Left-click on the chest and hold the left mosue button down to move the chest around by itself.
The set of mouse & key commands I just linked to really helps with object movement; here is that link again. When accidentally moving something you shouldn't move (like an entire wall or floor!), click ctrl + Z. This will get whichever object back to where it should be. Note 2:
If you've got any mod in your game which change dungeons (such as Snu's Dungeons), there's always a chance that any content being added or changed won't necessarily conflict with others such as Snu's, but it's possible to find some odd things happening back in the game, and in that dungeon. I once modified a cave, added my own enemy into this cave, only to find that enemy was dead by the time we got there. Why? Because a plug-in I've got called Fighters Guild Quests added about fifty mudcrabs into that same cave! 3). Once the chest is in its proper cell, double left-click on it in the Render window. This will open up the chest's Reference panel. Now click on the Edit Base button, and drag the object to fetch, whether its's an amulet or something else, from the Object window into the chest's inventory window. Make sure the darn thing (the chest) doesn't respawn, by making sure Respawn is not toggled.
Click OK.
4). Now we're back to looking at the Reference panel for the chest. There should be four visible tabs on this panel: 3D Data, Enable Parent, Ownership, and Lock. Go to the Lock tab, and toggle 'Locked' on. Make the lock's Level whatever is desired, from "Very Easy" (one tumbler) to "Needs a Key." We can have the NPC we made give us the key we made, and make it so that it will fit this chest (optional)*. Toggle the Key bar, and search for the Key that just made, aaaDungeonKey, or whatever. THIS KEY will open this chest.
* All of this key stuff is optional, because sometimes it doesn't make sense for the quest-giver to magically have the exact key that opens some chest far away! But not everything needs to make sense in the world of Tamriel, right? .... we're just learning here.
5).
CELL windowPlace the NPC in a friendly cell, such as Bravil's Silverhome-on-the-Water (which will be called BravilSilverhomeOnTheWater in the Cell window).
> An optional step is to give him or her appropriate AI packages, Faction, Class, etc,
following steps found in this Beth tutorial. We don't absolutely need to add AI, but if we don't, the NPC will simply stand wherever he or she was placed, hardly able to move. This might be okay for our purposes now of course, but in the future, all these things can be added to make people more dynamic.
Go to the CS's main toolbar and click on the SAVE icon. Keep saving, too. If editing Oblivion.esm instead of a pre-existing mod, the CS will ask to save any work as an .esp file. And the cool thing is, you'll now get to name your own .esp!
6). Click on the Q button (on the Construction Set main toolbar). This is the Quest window, where quests get made. Since most of these tutorials deal with quests, I'll be clicking on this button a lot!
7a).
QUEST DATA tab Right-click on the Editor window, and give the Quest a unique name. For this tutorial I am calling my quest aaaFetchQuest1, though you can call yours whatever you'd like. Also, give the quest an
actual name in its Quest Name slot. This name is what will appear in the game's quest journals.
7b). Priority can be medium-high. 60 is good for now, though for other quests this number can vary quite a lot. Those with higher priority (such as the quest which causes arrest) are going to take precedence over those with lower priority, such as Generic Dialog-type quests.
Toggle "Start Game Enabled" on, if it's not already toggled.
7c). Now, look toward the center of the Quest Data page, where the Quest Conditions box is. Right-click > New into the main white portion of this box, or click the New button at the bottom-left. By default, the CS will display the GetDisposition function, but we don't need GetDisposition.
7d). Go to the scroll-bar next to the New button, and search for (or type in) GetIsPlayableRace. As you type, the CS will fill in what it thinks you're looking for, saving some time.
7e). Ignore Function Parameters, but make sure Comparison is ==, and Value is 1. So altogether, in the Quest Conditions window it will say
GetIsPlayableRace NONE == 1. This is what the game uses to make sure only
playable races (wood elves, Khajiit, Redguards, etc.) can receive this quest in the first place.
7f). Follow all the steps from 7c to 7e, except this time add
GetPlayerInSEWorld NONE == 0. This function makes sure the player/character is not in Shivering Isles, which the CS refers to as SE World for some reason.
Again, here is what you should see in the Quest Conditions box...
GetPlayerInSEWorld NONE == 0.00 AND
GetIsPlayableRace NONE == 1.00 8a).
QUEST STAGES tab.
Right-click in the Index window, and select New. The number 0 will show up. Just leave it like that.
8b). Now right-click > New four more times, but type numbers for each of these four. Altogether, I am choosing 0, 10, 20, 30, and 100. These numbers don't have to be exactly 0, 10, 20, 30, and 100, you can use whatever numbers you'd like, but always make sure there is some numerical space between whatever numbers being added. Don't just put 1, 2, 3, 4, etc.. Doing this makes it impossible to add content in between these stages, which can get problematic at times. Because sometimes when writing quests, all the sudden we'll think of more content which should go
between any two stages, see?
Anyway, three of these five indexes will include text which will show up in our Current Quests journal as the quest updates, making that drum sound. *
Doooon!*
8c). Don't touch Stage 0 at all. It is more like a pre-stage, which exists as soon as the game starts up.
8d). Click on Stage 10, and right-click > New into the top Log Entry box. Doing so will open up the box below it (which is also called Log Entry). This is where all those nifty in-game quest updates get written. But don't do anything else. There should be the word EMPTY in the top Log Entry box. Just leave it like this.
> During Stage 10, the NPC greets our character, and will be telling us about his/her missing item, laying it all out there. If the player decides they don't want to hear the NPC's speil (in other words, if the player backs out of conversation during, or just right after the NPC greets us), it would be silly for the quest to update. We should be able to back out of greetings without quest updates, otherwise it feels like the quest is railroading us.
Note:
(Better Cities quests are famous for railroading!) 8e). The next stage (which I'm calling 20) will be a true quest update that will put information into the in-game Current Quests journal. This update pops up only if the player clicks on the NPC's Lost Item topic though, after we have listened to the NPC's initial greeting, and decided to help him or her. We haven't written this topic yet, but we will.
So go ahead and right-click into the top Log Entry box. Now left-click into the central Log Entry box, and start typing the update. "I have met a desperate man who seems to have lost his amulet"... etc.
8f). The next index (30 in this case) will need some text explaining that the lost item has been found. "I have found the item that was stolen from Bob"... etc.
8g). The final Index (100) can have text stating what has happened altogether, now that the entire quest is over. "I have found the magic amulet stolen from Bob, and have returned it to him," or whatever. Make sure to toggle Complete Quest on for this one.
8h). Add a script into Stage 100's Result Script box, which says ...
StopQuest aaaFetchQuest1 If this doesn't get added, the game's engine will try to read any scripts associated with this quest over and over forever, which causes unnecessary bloat.
9a).
TOPICS tab.
The Topics tab is where the bulk of PC/NPC dialog gets written. Other tabs (Conversation, Service, Detection, etc.) only get used for specific types of dialog. Anyway, right-clik into the Editor ID window and select Add Topic. Look for and left-click GREETING, and press OK. The slot for Topic Text will now also say GREETING. Do not change this.
...Notice I skipped over the Quest Targets tab. This is the tab in which we can add (guess) Quest Targets, which show up
green or
red on the magical compass back in game. I never use targets, personally. I'd rather search around and not be hand-held, when it comes to missing items and such. Map markers can also be added too, which I use more often. But for now let's skip this tab.
9b). Now, make a second Topic, give this one a unique name, such as aaaLostItem. Right-click into the Editor ID window, select Add Topic. Next, right-click > New into the Select Topic panel. Type in a unique ID name .. aaaLostItem,* or whatever. Click OK.
In the Topic Text slot it will now say whatever's been typed. So if you did type aaaLostItem, this is what it will say in the Topic Text slot. Go ahead and change this to plain English: Lost Item instead of aaaLostItem. The reason is, the words in this slot are what we're going to see in-game, alongside other topics such as Bravil, Rumors, etc.
*
If you've already named an amulet, or ring, or any other item "aaaLostItem", the CS will inform that we can't make multiple objects have the same name. It'll then automatically rename the topic aaaLostItemDUPLICATE, instead. This is fine. The topic will still work, its ID name will just be not very aesthetically-pleasing, here in the Construction Set. 9c). Click on GREETING in the Editor ID. Now, in the Info window (right beside the Editor ID window), right-click, and select New. A dialog panel will pop with a bunch of features on it, but we're only going to use the very top box for now, which is called Response Text. This box is where we can type an NPC's dialog. So now's the time to get creative, and add some text.
Something like "Hey, you look like a capable adventurer. I need your help to find my missing item," or whatever.
9d). Optional: change the Emotion Type scroll-bar from Neutral to any of six other emotions. And there's also Emotion Value, which defaults on the number 50. This is what changes the look on the NPC's face as he/she is speaking. Zero means there is no real difference from Neutral, while 100 will make his/her face look extremely sad, extremely happy, and so on. Numbers in between 0 and 100 can be chosen so that the NPC looks somewhat happy, sort of fearful, etc.
9e). Click OK. The panel will close, making any typed dialog appear in the central box, which is called Response Text.
>> The cool thing about adding our own words? Us modders can go into as much, or as little, detail as we'd like. We can eventually add our character's name directly into dialog, too.

If we run out of space while adding text, just Click OK, and then right-click > New into the Response Text box (where our first block of text has now been added). An empty Dialogue panel will pop up, so more dialog can be added.
9f). Look to the middle-right of the Topics page, where the Add Topics window is. Should be right above Choices. Right-click into the Add Topics window, and find aaaLostItem, or whatever unique ID got added before. Select this, and click OK.
9g). Now we're going to use the Conditions window, located near the bottom of the Topics page. Conditions get used a LOT while making quests and dialog. Right-click > New into this window.
By default, GetDisposition shows up in the Condition Function scroll-bar. Click onto this scroll-bar and search for GetIsID. This is probably the most popular function of all, because it's what the game uses to search out of thousands of people. GetIsID will narrow this search down to just one NPC, so that
only this unique NPC will say the things he/she's supposed to say.
Left-click on the Function Parameters button, which currently says INVALID. A panel will pop up. Find the name of the NPC who was created earlier in this tutorial. For me, this was aaaBob (ha ha). Click OK.
Comparison should be
== and Value should be
1. So altogether, this condition will be
GetIsID "aaaNPCname" == 1, with aaaNPCname being the name of your quest-giver.
9h). Right-click > New into the Conditions window again, follow all the steps in 9g, but this time, search for GetStage in the Condition Function scroll-bar. Left-click on the Function Parameters button again, and look for the ID name of the quest itself, aaaFetchQuest1, or whatever. Comparison should be
< and Value should be
10. We'll need to type in that value of 10. So overall, it will say
GetStage "aaaFetchQuest1" < 10.
So there should be two conditions now....
GetIsID "aaaNPCName" == 1 AND
GetStage "aaaFetchQuest1" < 10...and these conditions will ensure that only the quest-giver can deliver the opening greeting, and he/she can ONLY do this if the quest's stage is below 10.
9i). Time to type the second script (yaah fun!) into the Result Script box. Left-click into this box, then type ...
Player.SetStage aaaFetchQuest1 10 What this means: once our character is greeted by the quest-giver, the game's engine will be commanded to move the entire quest from Stage 0 to Stage 10. By doing this, it means the NPC won't keep giving us the same "Hey you look like an adventurer" greeting over and over, every time we initiate a new conversation with him or her.
Tip: It's now a good idea to click OK (closing the quest window) and save. Don't close the Construction Set itself, though. Go into the game, and make sure JUST THIS part of the quest is working. Though it can get tedious to keep going back and forth into the game like this, this is the best way to ensure everything works as it should.
9j). Reopen the Quest window if it was closed eariler, and select the Topics tab. Go back to the tall, rectangular Editor ID box, and click on GREETING. Let's add a couple more GREETINGS: one which will show up if we go back to this NPC, but don't have his / her lost item yet ("You're back, but where is my amulet?"), and one which will show up after the item has been found ("I knew you could do it! Huzzah!"). Both responses should have the same GetIsID as the first GREETING, but the second GREETING should have
GetStage "aaaFetchQuest1" == 20, and the third should be
GetStage "aaaFetchQuest1" == 30.
The third greeting (when the lost item has been found, and returned to the NPC) should also have a Result Script which says ...
player.SetStage aaaFetchQuest1 100 ... which is the final stage of the Fetch. Type that into the Result Script box.
9k). Now go to the unique topic created earlier, highlight it, and then right-click > New into its Info box. Type in something like "Yes, I lost my valuable amulet, and I have reason to believe it is in X location..." Use the Emotion toggles to make the NPC look ultra sad or disgusted when this gets said!
9l) In the Result Script box, add
Player.SetStage aaaFetchQuest1 20. If we want to have the NPC give a key at this moment, press Enter after adding the SetStage script, and then type
player.AddItem aaaDungeonKey 1 right below the SetStage script. (This assumes the key was named aaaDungeonKey of course. If it was cnamed something else, this ID should be typed exactly.)
The number
1 denotes the number of keys the quest-starter gives at this moment. So one key get get added, five keys, ten keys....and so on. Only one is needed though, of course.

It's never good to bloat the game with unnecessary content.
9m). Again, the Conditions for aaaLostItem's dialog should be the same GetIsID used before, but also add
GetStage "aaaFetchQuest1" == 10.
Tip: In the future to make this process simpler, go back to the very first GREETING, right-click anywhere in its Conditions box, and then select Copy All Conditions. Now go to the aaaLostItem topic, right-click into its Conditions box, and select Paste. All that's needed now is make sure to change the GetStage comparison, which is
<, to
== so we've got
GetStage "aaaFetchQuest1" == 10 instead of GetStage "aaaFetchQuest1" < 10.
It's possible to keep pasting those same conditions over and over again, which is mighty convenient, but don't get into the habit of rushing. It's important to go slow. Pay attention to which stage you're trying to match dialog for, and make sure Comparison matches up with what you're trying to accomplish. Once you're back in the game, let's say you KNOW your NPC should say certain things at certain times, but he or she is not saying them. Oftentimes it'll be a simple mistake made with Conditions, Comparisons, and so on. The dialog will be in the CS for instance, but the NPC is being commanded to say this dialog before Stage 10, when he should say it
during Stage 10.
9n). Now go back to the second GREETING. This is the greeting the NPC says if we return to him or her, before finding his/her amulet, yet. The Conditions here will be
GetIsID "aaaNPCname" == 1 AND
GetStage "aaaFetchQuest1" == 20 If we want our NPC to be extra pissed during this moment, make his Emotion Angry or Disgusted. Toggle Goodbye and Say Once on, so that he or she won't say anything further, until we've got that stupid amulet back!
9o). Now to the final GREETING, which the NPC says after we have fetched the item, and returned to him or her. "Oh, you've got my amulet! You are so wonderful!!!..... bla bla bla." The Stage is 30 when this happens in my example above.
Type
Player.SetStage aaaFetchQuest1 100 into the Result Script box, so the quest moves from Stage 30 to the final stage of 100. It's also possible to add or remove whatever's desired at this point. An example: you can add gold, and remove the lost item at this moment. Here's what goes into the Result Script box for Stage 30, if so.
Player.SetStage aaaFetchQuest1 100
Player.RemoveItem aaaLostAmulet 1
Player.AddItem Gold001 1000Those scripts will bump the quest to Stage 100, remove the amulet (or other lost item), and award the character with a thousand gold. Neat, eh? Another option: those last two scripts (the RemoveItem and AddItem) can instead be placed into the Quest Stages tab's final Stage of 100, in its Result Script box. Cut those two scripts from the Topics tab, swap to the Quest Stages tab, and paste them into Stage 100's Result Script box. Doing it this way is actually better, because the item being removed and gold being added will get removed and added
after the NPC finishes this final dialog, rather than during this dialog. The whole scene is less distracting this way.
9q). Click OK, closing out the Quest window, and save all work.
...So, we've bumped from Stage 0 to Stage 10 via dialog. We've also bumped from Stage 10 to Stage 20 using the NPC's words, and from 30 to 100. But.... how do we get from Stage 20 (where dialog left off) to Stage 30 (when the NPC gets his treasure back)?
10a).
OBJECT window > ItemsFind the lost item made during step 2, whether it was an amulet or a ring or whatever. Right-click > Edit on it, so its information panel opens up.
10b). Three selections down on the left side of this panel is Script. When editing an item which does not have a script, it should say NONE in the script's scroll-bar, which is perfect. Go to Step 10d if this is so. If the item has a script, go ahead and move the scroll-bar all the way upwards, so that it says NONE. Continue to 10c, which is the very next step.
10c). Click OK, closing the item's panel. Now, reopen the item. If the item previousy had a script, now it should be gone.
10d). So now let's have some fun, and add our own script.

Click on the
[...] button. Literally, this is a button with three dots on it, which is right next to the Script scroll-bar. The script editor opens. Like most windows, this one's got its own little tool bar.
Left-click on Script, and select New.. This allows us to type into the script editor box, opening up all kinds of scripting fun. Anyway, type in the following...
scriptname aaaFetchQuest1Script
Begin OnAdd Player
End10e). From this point, you can either click on the script editor's Save icon, or try to close the script by pressing X in the script window's upper-right corner. If you try to close it out without saving, the CS will then ask
Do you want to save your script? .... And of course the answer is usually Yes.
If any odd messages show up, the script will not save or close. Usually this is due to something not being spelled correctly, or not being written in a proper way. "Begin On Add" for instance, instead of "Begin OnAdd". Don't get frustrated; mistakes like this happen all the time. Correct this, and try saving (or closing) again.
10f). Click OK, closing the item's panel. Next, reopen it. Find the script just created in the Script scroll-bar, and click OK again. Reopen the item. Make sure the script is now attached to the item.
All of this closing and reopening can seem redundant, but this process is necessary to make sure the script gets added to the item properly, without annoying error messages!
10g). Now it's time to flesh out the rest of the script, by adding...
if (player.GetStage aaaFetchQuest1 == 20)
SetStage aaaFetchQuest1 30
Endif
... between the OnAdd and End functions. Overall, the script should look like this....
scriptname aaaFetchQuest1Script
Begin OnAdd Player
if (player.GetStage aaaFetchQuest1 == 20)
SetStage aaaFetchQuest1 30
Endif
EndAgain, if everything got typed okay, there should be no problem / the script panel will close. If something did
not typed propertly, there will then be some weird message, screaming any mistakes.

I've been there, zillions of times. If this happens, something in the script is obviously wrong. The script editor will try to point us in the correct direction, by pointing which line has some erroneous data. It's often something small and easy to miss: a missing parenthesis bracket, or a period (full stop for your Brits) missing between Player and GetStage. Or a space between Set and Stage.

Or an If statement, without a corresponding EndIf.
For anyone who wants to know more about Ifs, EndIfs, OnAdds, and zillions of other checks and functions work, the Construction Set wiki linked above explains all this stuff in great detail, in its gigantic Scripts tutorials.
Once the script is saved and ready to go, THIS collection of words, symbols, and numbers is what will wind up moving the quest from Stage 20 to Stage 30, when we fetch that lost item.
One final thing can get added to this Fetch quest. This is entirely optional, and has to do with our character getting a point of Fame for delivering that amulet. This is a little silly of course, but necessary for learning. And maybe it's not so silly. Maybe Bob tells all his friends, half the population of Bravil, about our character's exploits. Sir Bob of Bravil makes our character a little more famous.
Just open up the Quest window again, go to Quest Stages, and in the final stage of 100. Type the following into the Result Script box...
ModPCFame 1... right above the StopQuest script. Altogether, you might be seeing all of these scripts in Stage 100's Result Script box by now, assuming you've removed that lost item, added some gold, and added a point of Fame...
Player.RemoveItem aaaLostAmulet 1
Player.AddItem Gold001 X
ModPCFame 1
StopQuest aaaFetchQuest112). Click OK, closing the Quest window, and then close the Construction Set, choosing Yes if you want to save.
13). A good idea now is to go into the game's Data folder. Find the .esp file just made, and
immediately make a copy of it. Paste this copy in a safe place, maybe a separate hard drive if you've got one. This is a really good habit to get into, for obvious reasons.
14). Get in the game, and play! If anything is wrong, just be patient. Go back into the CS, and fix it. You're alpha-testing your own material now, which in my opinion can be the most aggravating part of quest-making. I usually turn my TV all the way down (so that I'm not actually roleplaying anymore) if I begin to get frustrated.
But I almost always figure it out, whatever it is I'm trying to accomplish, and so can you.
Conclusion: You may notice that this fetch quest boils down to maybe a minute or two of actual gameplay in total (not including travel, exploration of lairs, battles with enemies, etc.). And maybe you've spent hours designing it with this guide. This may seem like a heck of a lot of work for not much playtime. Eventually though, all of the steps mentioned in this first tutorial will become second-nature for those who decide to keep at it. You'll be able to fly through these steps much more quickly.