Welcome Guest ( Log In | Register )

Reply to this topicStart new topic
> T.I.M.E. (The Interactive Modding Excursion), Mod-making tutorials
post Feb 25 2018, 01:30 PM
Post #1

Group Icon
Joined: 19-March 13

Hello. My name is Renee, and today I'd like to talk about TIME, which stands for The Interactive Modding Excursion.

What this is, is a place where any of us can come together, and share anything we've learned about modding our games. We've already got places to ask questions when we get stuck, such as T.K.'s Mod Questions, and my own RG's Modding Crisis Thread. T.I.M.E. is the polar opposite of these two. In T.I.M.E., there will be a more proactive approach.

For instance, I have mostly delved into the world of quest-making and basic scripting, and that is what the tutorials I add are mostly going to be about. I know absolutely nothing about working with meshes & textures, animation, world design, lighting, and so on. If somebody here knows something (anything, no matter how simple or complex) about modding, here's a place where we can make our own little teaching class. Because it's fun. And it'd also be cool to build up some sort of database of stuff we've learned. biggrin.gif

Sure, there are tutorials on YouTube we can watch, and occasionally we can find text-based tutorials. But I find that these classes only go so far. Eventually, we run out of things to read and watch. We can study some of Bethesda's ways of doing things, or tear into somebody's mod and hope we figure it out, but sometimes these sort of actions can take hours of study, with very little results. Wouldn't it be nice to have a place where everything is just explained?

Any ideas or tutorials people provide will get linked into the post below this one, for easier convenience, because I expect there will eventually be a lot of text here. smile.gif

This post has been edited by Renee: Feb 25 2018, 01:31 PM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Lady Saga
post Feb 25 2018, 01:35 PM
Post #2

Group Icon
Joined: 20-February 12

Tip: Always use Ely's Silent Voice when making silent-text dialog. Without this utility, dialog will stay on-screen for a fraction of a second. Of course, if you're recording your own voice, or someone else's you won't need this utility. wink.gif

1). How to make a Fetch Quest. Game: TES IV: Oblivion.

2). How to make a Kill Quest, Map Markers, and X Markers. Game: TES IV: Oblivion.

3). Construction Set Extended Primer, and some advice. Game: TES IV: Oblivion.

4). Repairing Bad Hair! Game: TES IV: Oblivion.

5). Making an NPC Vendor / Repair-person. Game: Fallout 3.

This post has been edited by Lady Saga: Today, 03:22 PM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Feb 25 2018, 01:51 PM
Post #3

Group Icon
Joined: 19-March 13

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 her 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. wink.gif 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.

2). OBJECT window
First 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 I linked above, or you can delve into Bethesda's site, also linked above, to get these objects made.

In most cases, you can 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 for us.

As you make all these objects, editing from stuff already in the game, the CS will ask you if you'd like to save each each object as a New Form? And you'll always click on "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 you edit a Bethesda NPC, you want to make sure to edit one found in the base game, NOT Shivering Isles. Editing a Shivering Isles NPC will confuse the game's engine, making any text you write 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 ahead to www.UESP.net and find that NPC. Make sure he or she is not from SI.

... 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 you're going to make your own generic, but if you're making somebody who is named (and therefore unique) it's less work if you begin with somebody who is named.

You'll want to 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 your 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 you put him in! ...

... So click on your edited NPC's AI button, then right-click on any AI packages you find 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, you'll want to 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 your object actually has a script. Not all objects do. So if you don't know how to do this yet, I will show you later.

Tip: When making items, NPCs, and so on, it's always a good idea to put "aaa" in front of any name you make, when you're giving these items ID names or Reference ID names. So if you make a key, you can call it aaaDungeonKey. This will cause your key, or any object or quest, to get placed at (or near) the very top of any list in the Construction Set, GECK, or Creation Kit.

For this tutorial, I am making aaaDungeonKey, aaaDungeonChest, aaaLostAmulet, and aaaBob. aaaBob will be my starring NPC quest-giver. You don't have to choose these names exactly, but those are the ID names I am going to use, and you can substitute your own ID names.

2a). CELL + RENDER windows
Place the chest into some dangerous cell, if you like. Or you can opt to choose a non-dangerous cell, if you'd just like to see your 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 you've chosen will probably be too far away to see. To get in there, you can double left-click on any item in the right side of the Cell window, a barrel or a wall or whatever, and this should get you closer into that cell.

2b). Left-click anywhere into the Render window, then tap A on your keyboard so you can see!

If you're 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). Find a spot where you'd like your chest, then press F so that it falls to the floor, or on some surface you'd like it to be. 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 you might be surprised how often your own content might take some searching for!

Note: Working in the Render window can take lots of practice. If you're having trouble selecting your chest, rather than a wall or some other dungeon feature, sometimes it helps to get really close to your chest (or any object you'd like to move) with your cursor. Double-click on it until you see its Reference panel pop up. If you've got your 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. If you need to move the entire cell, you can hold down your mouse wheel while moving your mouse. This will to cause the entire dungeon to move, until you can position the cursor where it can grab the chest properly. Once you've got your chest selected, your cursor will turn into a + sign, with pointers on it. Now you can left-click on your chest, hold this button down, and move your chest around by itself.

The set of mouse & key commands I just linked to really helps with object movement; here is that link again. If you accidentally move something you shouldn't move, clicking ctrl + Z is the way to get it back to where it should be.

Note 2: If you've got any mods in your game which change dungeons, there's always a chance that your mod won't necessarily conflict with the dungeon-changing ones, but you might find some odd things happening once you're 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-click on it in the Render window, or right-click > Edit on it in the Cell window. This will open up the chest's Reference panel. Now click on the Edit Base button, and drag the object to fetch, whether you've chosen an amulet or something else, from the Object window into the chest's inventory window. Make sure the damn thing (the chest) doesn't respawn, by making sure Respawn is not toggled. Click OK.

4). You should be seeing the Reference panel for the chest, again. There are four 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 you like, from "Very Easy" to "Needs a Key." We can have the NPC we made give us the key we made, and we can make it so that it will fit this chest (optional)*. Toggle the Key bar, and search for the Key that you made, aaaDungeonKey, or whatever. THIS KEY will open this chest.

* All of that key stuff is optional, because sometimes it doesn't make sense for the quest-giver to magically have the very key that opens some chest far away, but we're just learning here, right?

5). CELL window
Place 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, and never go anywhere. This might be okay for our purposes now of course, but in the future, we can add all these things to make our people more dynamic.

Go to the CS's main toolbar and click on the SAVE icon. Keep saving, too. If you're editing Oblivion.esm instead of a mod, the CS will want you to save your 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. We'll be clicking on this button a lot, of course. wink.gif

7a). QUEST DATA tab
Right-click on the Editor box, and give your Quest a unique name, starting with aaa if you want it to show at the top of the list. 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 right now, though for other quests this number can vary quite a lot. Toggle "Start Game Enabled" on, if it's not already toggled on.

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, so you won't have to type in that whole function.

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 get this entire quest.

7f). Follow all the steps from 7c to 7e, except this time we're going to 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 box, and select New. The number 0 will show up, and we're going to just leave it there.

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 you add. Don't just put 1, 2, 3, 4, etc.. Doing this makes it impossible to add content in between these stages, if you need to go back later on and add some more, you see? Sometimes you will have a couple stages, but then think of more content which should go between these 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). We're not going to 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) which is where all those nifty quest updates get written. But don't do anything else here. 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 spiel (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. (Better Cities quests are famous for railroading!)

8e). The next stage (20) will be a true quest update that will put information into your 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 your 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 we've found the lost item. "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 we don't add this, the game's engine will try to read any scripts associated with this quest over and over forever, which causes unnecessary bloat. cake.gif

9a). TOPICS tab.
So we're in the Topics tab, and here is where the bulk of PC/NPC dialog gets written. Right-clik in the Editor ID box and select Add Topic. Look for GREETING, and press OK once you've got it highlighted. The slot for Topic Text will now also say GREETING, and we don't want to change this.

...Notice we skipped over the Quest Targets tab. This is the tab in which we can add targets, which show up green and red on our compass once we're back in game. I rarely use targets, personally, I'd rather search around, and not be hand-held, when it comes to missing items and such. We can also add map markers too, which I use more often, but for now let's skip this tab.

9b). Now, make a second Topic, and we can give this one a unique name, such as aaaLostItem. You'll want to right-click into the Editor ID box, select Add Topic, and then right-click > New into the Select Topic panel. Type in your topic ID name .. aaaLostItem,* or whatever. Click OK.

In the Topic Text slot it will now say whatever you 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 called your amulet, or ring, or any other item "aaaLostItem" the CS will inform you that you can't make multiple objects have the same name, and it'll automatically name your topic aaaLostItemDUPLICATE, instead. This is fine. Your topic will still work, its ID name will just be not very aesthetically-pleasing to look at here in the Construction Set.

9c). Click on GREETING in the Editor ID. Now, in the Info box (right beside the Editor ID box), right-click, and select New. A dialog panel will pop up 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: If you like, you can 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, and you should see your text in the central box, which is called Response Text.

>> The cool thing about adding our own words is we 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. smile.gif If you run out of space to add 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 now you can add more dialog.

9f). Look to the middle-right of the Topics page; here you will find the Add Topics box, right above Choices. Right-click into the to the Add Topics box, and find aaaLostItem, or whatever unique ID you added before. Select this, and click OK.

9g). Now we're going to use the Conditions box, located near the bottom of the Topics page. Right-click > New into this. 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 your NPC will say the things you want him or her to say.

Click on the Function Parameters button, which currently says INVALID. A panel will pop up. Find the name of the NPC who you created earlier in the scroll-bar. For me, this was the silly name of aaaBob. Click OK.

Comparison should be == and Value should be 1. So altogether, we will wind up with GetIsID "aaaNPCname" == 1, with aaaNPCname being the name of your quest-giver.

9h). Right-click > New into the Conditions box again, follow all the steps in 9g, but this time, search for GetStage in the Condition Function scroll-bar. Clck on the Function Parameters button again, and Look for the ID name of your quest, aaaFetchQuest1, or whatever you called it. 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 again, you should have two conditions now....

GetIsID "aaaNPCName" == 1 AND
GetStage "aaaFetchQuest1" < 10

...and these will ensure that only your quest-giver can deliver the opening greeting, and he/she can ONLY do this if the quest's stage is below 10.

9i). In the Result Script box, we're going to type our second script (yaah fun!). 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 to Stage 10. By doing this, it means our 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.

9j). 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 we found this item ("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 we have found the lost item, and bring it back to the NPC) should also have a Result Script which says ...

player.SetStage aaaFetchQuest1 100

... which is the final stage of our Fetch. Type that into the Result Script box.

9k). Now go to the unique topic you created earlier, highlight it, and then right-click > New into its Info box. We'll type in something like "Yes, I lost my valuable amulet, and I have reason to believe it is in X location..." If you like, you can make sure your NPC looks ultra sad or disgusted when this gets said! mad.gif

9l) In the Result Script box, add Player.SetStage aaaFetchQuest1 20. If we want to have the NPC add that 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 you called your key aaaDungeonKey, of course. If you named it something else, you'll want to type this exactly. The number 1 denotes the number of keys the quest-starter gives to us, so we can add one key, five keys, ten keys.... we only need one though, of course. whitewizardsmile.gif Try not to bloat your game with unnecessary content

9m). Again, the Conditions for aaaLostItem's dialog should be the same GetIsID used before, but also add [b]GetStage "aaaFetchQuest1" == 10.

Tip: In the future to make this process simpler, you can also 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 you'll need to do now is make sure to change the GetStage comparison, which is <, to == so we've got GetStage "aaaFetchQuest1" == 10 instead of GetStage "aaaFetchQuest1" < 10.

You can keep pasting those same conditions over and over again, which is mighty convenient. Just make sure to 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, and 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. The dialog will be in the CS for instance, but your NPC is being commanded to say this dialog before Stage 10, when he should say it during Stage 10.

[/b]9n). Now go back to the second GREETING. This is the greeting the NPC says if we return to him or her, without 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, you can make his Emotion Angry or Disgusted. You can also toggle Goodbye on, so that he or she won't even talk to us 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 it to him or her. "Oh, you are so wonderful!!!..... bla bla bla." We're going to be at Stage 30 when this happens.

Under Result Script, type Player.SetStage aaaFetchQuest1 100 so that everything moves from Stage 30 to the final stage of 100. You can also add or remove whatever you'd like at this point. An example is: you can add gold, and remove the lost item. To do this, here is what should go in the Result Script box for Stage 30.

Player.SetStage aaaFetchQuest1 100
Player.RemoveItem aaaLostAmulet 1
Player.AddItem Gold001 100

Those scripts will bump the quest to Stage 100, remove the amulet (or other lost item), and award the character with 100 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. You can cut those two scripts, and paste them into Stage 100's Result Script box. Doing it this way is actually better, because the item we remove and gold we add 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 your 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
Find the lost item you made, whether it was an amulet or a ring or whatever. Right-click > Edit on it, so its panel opens up.

10b). Three selections down on the left side of this panel is Script. If you edited 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 your item has a script, go ahead and move the scroll-bar all the way upwards, so that it says NONE, and continue to 10c, the very next step.

10c). Click OK, so that the item's panel closes. Now reopen your item. Its script should be gone, hopefully.

10d). So now let's have some fun, and add our own script. hubbahubba.gif 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 will open. Now left-click on Script, and select New.. This opens up the script editor box, which which we can type stuff into. So type in the following...

scriptname aaaFetchQuest1Script

Begin OnAdd

if (player.GetStage aaaFetchQuest1 == 20)
SetStage aaaFetchQuest1 30



From this point, you can either click on the script editor's Save icon, or try to close out your script. If you try to close it out without saving, the CS will then ask Do you want to save your script? .... And of course you'll say Yes.

If you typed everything okay, there should be no problem / the script panel will close. If you did not type everything up, you'll then get some weird message, screaming at you all your mistakes. mad.gif 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 telling us which line has some erroneous data. It's often something very small too, like a missing parenthesis bracket, or a period missing between Player and GetStage. Or a space between Set and Stage. rolleyes.gif Or an If statement, without an EndIf following.

If you want to know more about how Ifs, EndIfs, OnAdds, and zillions of other checks and functions work, the Construction Set wiki linked up above explains all this stuff in great detail, in its gigantic Scripts tutorials.

Anyways, once the script is all saved and ready to go, THIS script is what will wind up toggling the quest from Stage 20 to Stage 30, when we fetch that lost item. You won't be able find your script in the scroll-bar at first though, so here's how to do this.

10e). Click OK so the item's panel closes. Now reopen it. You should be able to find your script in the scroll-bar now. Select the script, open it up with the [...] button, and double-check everything you've written. Close it, if all looks good. Click OK.

We can add one final thing to our Fetch quest, which is entirely optional, and it 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/her 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 or below the StopQuest script. And there you have it. 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...

StopQuest aaaFetchQuest1
Player.RemoveItem aaaLostAmulet 1
Player.AddItem Gold001 X
ModPCFame 1

12). Click OK, closing the Quest window, and then close the Construction Set, choosing Yes if it asks you if you want to save.

13). Find your .esp file, and immediately make a copy of it. Put this copy in a safe place, so you've got yourself a backup file.

14). Get in the game, and play! If anything is wrong, just be patient. Get 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 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 to you if you keep at it. You'll be able to fly through these steps much more quickly. goodjob.gif

This post has been edited by Renee: Mar 9 2018, 09:06 PM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Feb 25 2018, 04:25 PM
Post #4

Group Icon
Joined: 13-December 10

The problem with the YouTube tutorials is that they have a fixed pace - which will always be both too fast in some parts, and too slow in others, and that they are all "watch how I did something specific which will be different from what you want to do."

I much prefer text-based stuff, that I can use as a reference, read in any order at my own pace, and preferably explains why, as well as how.

That's not easy to produce, but hypertext (HTML) makes it easier, as you can put links to the why inside the tutorial that shows how. And vice-versa; a tutorial explaining how something works can link to examples of using the methods.

So thanks for getting this thread started. I'll dig around and see if I have any Oblivion material to add.

Mods for Oblivion and now Daggerfall and Skyrim. Fan fiction, too.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Feb 25 2018, 05:18 PM
Post #5

Group Icon
Joined: 19-March 13

Awesome, ghastley.

QUOTE(ghastley @ Feb 25 2018, 10:25 AM) *

The problem with the YouTube tutorials is that they have a fixed pace - which will always be both too fast in some parts, and too slow in others, and that they are all "watch how I did something specific which will be different from what you want to do."

Not to mention they always get something wrong! Usually something very small, but which will cause an entire portion of the quest not to work. On the positive side, video tutorials can be good to watch just to visually see what the mod-author is clicking on, and typing into.

Anyway, hopefully I got everything up right up above, and did not make any mistakes of my own! I'll be adding one of these tutorials per week, hopefully. This means I'll be fawning over anything I add to this thread, making sure it should all go swell and smoothly, for any green modders out there.

This post has been edited by Renee: Feb 25 2018, 05:31 PM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Feb 25 2018, 05:41 PM
Post #6

Group Icon
Joined: 14-March 10
From: Between The Worlds

Excellent fetch tutorial Renee! I will probably try this out with my Anchorage Aftermath mod. I always wanted a fetch quest in there to gather up a bunch of holotapes scattered around the area. But I was never able to make it work.

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Feb 25 2018, 11:40 PM
Post #7

Group Icon
Joined: 19-March 13

Thank you. I tend to write up everything I do step-by-step, because otherwise there's no way I'd remember it all!

If you're going to do this for Fallout, there might be a few things different. In fact, I know there are. But that's no problem, I've done this before for Fallout as well. As I'm looking at the fetch quest during the week, I'll see if I can glean what's different from Oblivion to Fallout 3, and then add those differences in the next tutorial.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Mar 2 2018, 11:16 PM
Post #8

Group Icon
Joined: 19-March 13

The Kill Quest, Map Markers, and X markers. Game: TES IV: Oblivion

This is another simple quest, but it’s very essential to know how to write a Kill, since it’s such a popular quest in any Bethesda game. We’ve got somebody who's either got a bounty on his/her head, or has stolen something valuable, or is just realy mean, or *insert reason here*. Bottom line is, our character gets a quest to hunt this NPC down, and get rid of him or her for good.

Fetch and Kill quests, as simple as they are, are essential to know because sometimes even the most elaborate quests out there will have a fetch or a kill buried in them. When we go to confront Mannimarco during the Main Quest for instance, there are all sorts of variables and other fancy things going on, but what does this portion of the Main Quest really boil down to?

A lot of the steps that are needed (such as making NPCs and items, how to start topics and quest stages) are steps which can also be found in the Fetch quest tutorial above, and other tutorials I've linked to. To save space, I won't repeat myself a whole lot.

The first video I linked to (with the British guy) is also a Kill quest. You can therefore watch that vid if you like, and follow along with a lot of the things I'm going to type here. However, the Brit's quest is extremely simplistic, while my version is going to be more comprehensive. I’m going to show you a few new tricks during my version.


1). Start up the TES4 Construction Set, bla bla bla.

This time, you're going to make two NPCs, and that is all we'll need for a basic kill quest. If you've already made an NPC for the Fetch quest, this guy or gal can be your quest-giver again. Or, you can opt to make somebody who's totally new. If you have not made an NPC at all yet, you can follow the Fetch lecture up above, starting with Step 2. You can also have a look at the tutorials I've linked to.

1b). So make that quest-giver, if you haven't already.

TIP: Though we can use Bethesda NPCs to give out quests and rewards and such, sometimes they can be more difficult to work with, since they are not "blank slates," the way anybody we create will be. Sometimes, Beth NPCs have AI which causes them to roam around. Sometimes they’ll have quests and scripts associated with them, causing them to potentially be in places we don’t expect, doing things which conflict with what we’re trying to achieve. Sometimes Bethesda NPCs won't respond to the Priority rating our quest has, and so on.

… In the future (when you get confident and knowledgeable) you can begin to use Beth NPCs. But for now, it's better to work with somebody who is solely focused on whatever we write.

This kill tutorial is going to be focused in Skingrad, and I'm going to hide my NPC-to-kill in Cursed Mine, which is just west of SKingrad. If you've already made a quest-giver for the fetch quest, and placed him or her into Bravil (since this is what I did during the Fetch tutorial), you've now got several options. You can keep this quest-giver in Bravil and make a new one for Skingrad. Or, you can Cut (ctrl + X) the guy/gal you already made, and Paste him or her into some Skingrad cell, such as SkingradWestWealdInn, or SkingradTwoSistersLodge. Or you can just use the Bravil person, who sends you off to Cursed Mine. That final option is my favorite, I think. smile.gif I always like long road trips.

2a). OBJECT window
Now to make the enemy. Since I'm placing my enemy into Cursed Mine, which is full of bandits, the easiest way to do this is to edit a generic NPC who is already a bandit. So in the Object window, click on Actors > NPC, and expand the NPC branch so you can see all the different races.

2b). To find a generic bandit, look into any races that bandits can possibly be in the vanilla game. So, this includes Argonians, Dark Elves, Khajiit, Redguards, and Wood Elves. Pick one of those races so that the Construction Set focuses on only this race.

There are still hundreds of NPCs listed, and to make this process simpler, we'll need to narrow down to only the bandits. In the GECK and Creation Kit, Bethesda got smart and included a search feature, but for the Oblivion Construction Set, there is no search. That is okay though...

2c). At the top of the Object window, you'll notice a bunch of tabs: Editor ID, Count, Users, Name ... and so on. Single left-click on Name.* This will organize all the NPCs listed in alphabetical order, from A to Z, according to their in-game names, or generic names. ... Well, some NPCs won't have a name at all, so you might be seeing a bunch of blank spaces at the top of the Name list. Just scroll downward, and you'll eventually see all the As listed. We'll need the Bs. Keep scrolling down until you start seeing Bs, and finally some Bandits.

* This can be done with any tab. If you single left-click the first time, this will organize all names from A to Z. Single left-click again, and now they'll be organized from Z to A. This can also be done with the Editor ID names, as well.

2d). Right-click > Edit on any generic bandit you'd like. So if you want your kill quest to feature an archer, you can locate one and edit him or her. Make sure to follow all the steps for making an NPC discussed so far in this thread, and in any tutorials I've linked to. Changing ID name is always the first essential step, and saving your NPC as a New Form is always the most important. Go ahead and play with Stats, Magic, Inventory, and so on.

Try to stay away from any generics that are associated with quests, or Shivering Isles. You will notice these because their ID names (not their in-game names) will often have nonsense letters and/or numbers associated with them. You might see something like MS09BanditMissleMale. MS09 is the name of the quest that generic will be associated with. Shivering Isles generics often have SE at the front of their ID names.

I'm not sure if any vanilla bandits are associated with specific quests or Shivering Isles, I'm almost certain some of them are associated with a few specific quests. Don't use these NPCs though, if you find any.

2e). Toggle "No Low Level Processing" off. We don't want that on for our enemy.

No Low Level Processing tells the game's engine to ignore NPCs if we're not in their cell, if it this selection is toggled on. If an NPC is associated with quests, or other specific functions in the gameworld, they'll need to have low level processing off so that the game knows to keep an eye on them, even when we're not around. But the engine doesn't need to know what all the generics are up to when we're not around. As far as the game's engine is concerned, these generics aren't even active until we're in their cell. viking.gif

2f). Click onto your enemy's AI button, and have a look at what is in there. Typically, you'll see a couple of Wander packages: one for Exterior locations, and one for Interiors. These packages cause the enemy to wander randomly around, so you can keep these in there if you'd like, because they won't usually wander too far from where they've been placed. You might also see a Sleep package, or an Eat package. If you don't want your NPC to sleep or eat (which could make for too easy of a kill), go ahead and right-click > Delete these.

If you did edit a bandit, his/her Aggression will often be set to 100, which is fine. Almost all enemies have their Aggression set to 100. viking.gif

3a). CELL + RENDER windows
Locate CursedMine01 and place your enemy in this cell, in the Render window. I tend to prefer putting kill-quest enemies into the very last possible location that I can find. This makes it so that we'll need to search for this enemy, dealing with all the others in front of him or her first. But if you want to just get this Kill quest over quickly, you can put your enemy into an initial room.

There are also CursedMine02 and CursedMine03, two other cells which go deeper underground. For now, just put your enemy into the first cell though. This will make it easier for me to teach you something later on.

3b). Have a look into your enemy's Faction tab. If you edited an actual bandit, he or she should already be in the BanditFaction. Continue to step 5, if so. But I will go ahead and show you how to add the enemy into this faction, if for some reason he/she is not a part of it.

4a). TES Construction Set main window
Make sure your enemy's Factions tab is selected. Now look at the main window, which is the window that's always below the Object, Cell, and Render windows. There's a bunch of choices on its toolbar: File, Edit, View, etc. Look for Character. Select this, and then double left-click on Faction... This will open up the Factions panel. On the left side of this panel are all the possible factions in the vanilla game. Scroll this down until you find the BanditFaction.

4b). Now left-click on BanditFaction and drag this into your enemy's Factions box.

4c). Click OK or Cancel on the Factions panel, and click OK on your NPC's panel, saving your enemy as a New Form, if you haven't done so already. There. Now your enemy is good to go, in any cell featuring other bandits.

5). QUEST window
Click on the main toolbar's Q button. Start a new quest in the Editor ID box. For this tutorial, I am calling it aaaKillQuest1.

6). QUEST DATA tab
All the things we did during the Fetch can be repeated here. So give your quest a name in the Quest Name slot, "A Bandit's Last Day" or whatever. Start Game Enabled stays on. Priority can be 60. GetIsPlayableRace == 1 goes in the Conditions box, along with GetPlayerInSEWorld == 0.

Optional: to add a little flair to your quest when it appears in your journal, click on the Icon button. This will send you into your game's Data > Textures > Menus > Icons folder. If you've got any mods in your game that add icons, you should have some icons and/or folders containing icons. Look for icons that are appropriate for your quest. For instance, since this is a Kill quest, you can use a picture of a weapon if you've got one. Double left-click on this item, so that an icon shows up (hopefully) on the Quest Data page. This icon will now also show up in your quest journals. smile.gif

I have found that for some reason, some icons won't show up at all. If so, don't stress; all of this is optional.

I think the Brit in the video used two or three stages for his kill quest. I am going to use a total of six: 0, 5, 10, 20, 50, and 100. And again, you don't have to use 0, 5, 10, 20, 50, and 100, but make sure there is some numerical space between whatever numbers you choose.

> Stage 0 is the pre-stage. Don't need to touch it at all.

>> Stage 5 is when the quest-giver first greets us, which leads to him or her giving an introductory spiel to what he/she wants us to do. Right-click into the top Log Entry box, but don't do anything further. It should say EMPTY in this box. Just leave it like that. By now, the quest-giver's initial greeting is done, and we've got a choice to click on a topic, which we haven't written yet.

>>> Stage 10 is when the quest-giver has told us all his worries (or her worries), leaving that burden on our shoulders. Great. Gee, thanks. Right-click > New into the top Log Entry box, and type something into the central Log Entry Box. "I have just met a person in need of my assistance. He has told me about a dangerous enemy living inside of Cursed Mine, just outside of Skingrad, and would like to know if i can kill this enemy." Something like that.

>>>> Stage 20 occurs after we have entered the proper cell where the enemy is hiding. Right-click > New into the top Log Entry box, and type something like "I am now inside of Cursed Mine. Gong by the smell, this place really is cursed..."

>>>>> Stage 50 occurs after we are I have decimated the enemy, rid him or her from existence. Something like, "I found the bandits' leader inside of Cursed Mine, and now because of me, he is dead. Time to head back to Bob, back in Skingrad. Sir Bobby will be pleased."

>>>>>> Stage 100 is the reward stage. "I have returned to Bob, and have been paid a measly three beers! I don't even like beer. I am never doing another job for Bob again!' ... whatever you'd like. As you can see, you can have some fun, and get creative with quest-writing if you'd like. smile.gif

7b). Make sure Quest Completed is toggled on for that final stage, and in the Result Script box you'll type StopQuest aaaKillQuest1 to keep it from running forever and ever.

8a). RENDER window
Now I am going to show you folks something new: how to add a Map Marker. Again, I don't use quest targets, but I do like map markers. The NPC who gives us the quest can mark our map to let us know where to go. You might already know where Cursed Mine is of course, but we're just learning here.

If the Render window is still open with the cell you in which added your enemy, that's great. If not, search for that cell in the Cell window, which is CursedMine01 if you're strictly following this tutorial.

8b). Click into the Render window, and press A, so you can see better. We need to get outside of this cell, now. This is easiest if the cell only has one zone to get out of. This is why I chose Cursed Mine's first zone to add my enemy into; I want to be able to get out of this zone, so I can include this next trick.

8c). You'll need to find the entrance/exit door to Cursed Mine, or whatever cell you're working with. There are two ways to do this. You can physically click & drag (holding down your mouse wheel as you drag) the entire cell in the Render window, until you find that cell's entry door. Or you can look for any doors in the Cell window, and double left-click on them. Usually, the entry door will have the letters '01' at the end of its name.

Once you find this door, you should be seeing a yellow rectangle with a purple pointer on its top, sitting right next to the door. *PIC* This is called a Door Marker. If you don't see this marker, press M on your keyboard. This will cause any markers in the Render window to display.

8d). Now, double left-click on this Door Marker. It will ask you if you want to "View Door reference for this Door Marker?" which is a nerdy way of asking "Do you want to leave this cell?" Click Yes. And wait a moment while the exterior cell loads.

You are outside of Cursed Mine now, seeing an identical Door Marker. If you click on this one and say Yes, voila, you're back inside of Cursed Mine. This is how all Door Markers work.

8e). Zoom your mouse-wheel out. Start looking for any nearby Map Markers. Map Markers are similar to Door Markers, except they are red rectangles with lilac-colored pointers on them. *PIC* The Map Marker for Cursed Mine should be a few yards away from its entrance, slightly downhill. Most vanilla locations will already have their own map markers. If for some reason you can't find one, you can create your own.

If you see the map marker outside of Cursed Mine, go to Step 10a. If for some reason you can't find it (or just want to learn how to make these), continue to the next step.

9a). OBJECT window + RENDER window
In the Object window, go to the WorldObjects branch, and look for Static. Click on Static. Click on any item in the large right window now. Look for MapMarker. Now, click & drag this MapMarker into the Render window. You should see a red rectangular marker as linked above, which will probably be floating in the middle of space. Move it somewhere near the cell's entry door, and press F so it falls to the ground.

9b). Double left-click on the marker, so its Reference panel opens up. You'll want to give your marker a Reference ID name, such as CursedMineMapMarker or something similar. If there already is a CursedMineMapMarker (and there should be) somewhere nearby, yet you can't find it, the CS will scream at you that this "Form's ID is not unique!" ... Okay, whatever. Just rename your marker, since you can't find the original one.

9c). Click OK.

QUEST window > Quest Targets tab
We skipped this tab before, now I'm going to show you how to use it to make markers show up on the map, once we're back in-game, and doing this quest. We can also use this tab to make actual targets for actual items (such as people or fetchable objects) but I personally find this to be too hand-holdy. I can teach you how to make these sort of targets too, but not now.

10a). Anyway, make sure the Render window still shows that map marker, outside of Cursed Mine. Now, in the Quest Targets page, right-click > New into its top box, which is called Target Ref.

10b). In the central section of this page, which is called Quest Target Data, there is a button which says Select Reference in Render Window. Click on this button. Your mouse pointer will temporarily become an icon which looks like a Celtic cross, a + inside of a O. It will be also be red-colored.

10c). Move the Celtic cross over the map marker in the Render Window. It should turn white. Double left-click on your the Map Marker. The CS will now put the Quest window back on top, and you should be seeing the name of the Cell in which that marker is in, along with the map marker's Reference name. If you selected the official Bethesda Cursed Mine map maker, the Cell and Ref slots will say this..

Cell: CursedMineExterior
Ref: "MapMarker" 'CursedMineMapMarker'

TIP: In the future when working with Map Markers, if your Render window is not open to the actual location of the map marker you're trying to use, you can also search for it by choosing whatever cell the marker is in, and then choosing its Reference ID name. This process is more time-consuming though, since you'll need to remember which cell that marker is in. Exterior locations are tougher to locate than interiors are, which is one of the reasons I started inside of CursedMine01 instead of outside.

10d). We'll want this Map Marker to show up on our map, but only during Stage 10, when the quest-giver lets us know where the enemy can be found. So in the Conditions box, right-click > New (or press the New button) and add GetStage "aaaKillQuest1" == 10 here.

11). TOPICS tab
Now to write some dialog. You will need at least three GREETINGs, and one unique topic. I am calling the unique topic aaaKillTopic. To save space I'm not going into full detail here. If you need a memory-jogger on how to make GREETINGs and Topics, you can follow steps found above in the Fetch quest, starting from step 9a.

For the lessons below, I am calling my quest-giver aaaQuestGiver, though you can change this to whatever ID you actually used. Note that some of the text below is redundant, if you're using the same quest-giver that you used for the Fetch quest. If this NPC already knows our character, you can type in stuff appropriate for this. "Hey, I remember you" instead of "You look like a capable adventurer..." My Kill Quest-giver is a different guy, though.

First Greeting = "Hello, you look like a capable adventurer, might you be able to help me with something?"

GetISID "aaaQuestGiver" == 1 AND
GetStage "aaaKillQuest1" < 5

Result Script box: Player.SetStage aaaKillQuest1 5

AddTopic box: add your unique topic here. So I am gping right-click into this box > Add Topic > aaaKillTopic.

Second Greeting = "You are back. Have you been to Cursed Mine yet?"

GetIsID "aaaQuestGiver" == 1 AND
GetStage "aaaKillQuest1" == 20

Note: Again, you can make your quest-giver's dialog ultra-snarky, if he/she is not pleased that we have been to Cursed Mine, yet haven't killed that wanted bandit. Toggle Goodbye on, and change their facial expressions appropriately.


Third Greeting = "You have returned! And due to my magical talisman, I already know the bandit leader is dead! Here, have some beers on me!"

GetIsID "aaaQuestGiver" == 1 AND
GetStage "aaaKillQuest1" == 50

Result Script box: Player.SetStage aaaKillQuest1 100


12). Now, go to your unique topic. This is the one I called aaaKillTopic in my own build.

aaaKillTopic = “Yes, there’s a fellow who’s been causing some trouble here in Skingrad,” bla bla bla “...and I happen to know he’s been living in Cursed Mine. Here, I will mark it on your map. Will you help me?”

GetIsID "aaaQuestGiver" == 1 AND
GetStage "aaaKillQuest1" == 5

Result Script box: Player.SetStage aaaKillQuest1 10


Click OK, closing the Quest window, and save your work, please.

13). OBJECT window
So… we’ve bumped the quest from 0 to 5 via dialog, and done the same thing from 5 to 10, and 50 to 100. But what about 10 to 20? And 20 to 50?

In the Object window, look for WorldObjects > Static > and look for Xmarker in the Editor ID box. You'll only have to type the letter X, and there it is.

14a). RENDER window
If your Render window is still showing the exterior of Cursed Mine, we'll now need to get back inside. Double left-click on the yellow Door Marker near the place’s entrance, and select Yes.

14b). Back inside of Cursed Mine, where that wanted enemy’s been hiding, that bastard. Move a bit into the cell, by holding your mouse wheel and dragging.

14c). Left-click on the Xmarker in the Object window, and drag it into the cell. This marker will look like a red X once it’s in that cell.

14d). Press F so it falls to the floor. Position this X somewhere onto the cell’s floor, so that it's easy to click on. It doesn’t really matter where it lands. I like putting it where it's easy to click, though. I like putting it where there isn't too much other stuff nearby.

14e). Double left-click on the Xmarker, opening up its Reference panel. Give the Xmarker a Reference ID name. I am calling my Xmarker aaaCursedMineXMarker, and then I am immediately copying (ctrl + C) this name, so I can paste it into a script we're about to write. Copying complicated Reference names so you can paste them later is a good habit to get into, by the way.

... By default, all Xmarkers are also references, and all references can be used by the game's engine to trigger during quests. This is why the Persistent Reference toggle is greyed-out. We don't even have a choice to turn this off.

14f). Click OK.

15a), QUEST window > Quest Data tab
Click Q on the CS’s main toolbar, opening up the Quest window, and select its Quest Data tab if it’s not already selected.

). Time to write a script for the Xmarker. Click on the [...] button, opening up the script editor.

Note: This editor (unlike the editor we used for that Fetch item) has the power to control any object, spell, or quest function in the game, that is associated with this quest. It is like the queen on a chessboard, which often has a greater immediate reach in-game than Object scripts do.

15c). Click on Script > New, and type in the following…

scriptname aaaKillQuest1Script

Begin GameMode

If (Player.GetDistance aaaCursedMineXMarker <= 400)
If (Player.GetStage aaaKillQuest1 == 10)
SetStage aaaKillQuest1 20




This means: when your character enters Cursed Mine, and gets close enough to this Xmarker (less than 400 feet, or at 400 feet), the quest will move from Stage 10 to Stage 20, and we'll get that update saying "I have now entered Cursed Mine....etc." This Xmarker will ONLY do this though, IF the character is at Stage 10 of aaaKillQuest1 (if the character has been given this quest, by speaking to the quest-giver). Without those If and EndIf conditions in place for the quest stage especially, we could go into that cell at any time, and we’d automatically be at Stage 20, for a quest which we did not even begin yet, see?

Tip: You can change the distance that the Xmarker triggers, by changing 400 to 500, or whatever number you’d like. I wouldn’t go too small though, unless you’re putting your marker in an area with a confined entry passage, ensuring that your character will pass near it. The downside is, your character must get near enough for the Xmarker to trigger, otherwise the quest won't update. But this is why it's important to put your Xmarker into an initial area of the cell, and also an area which is not too wide, so that the character will definitely walk near it.

15d). Before saving this script, look at the Script Type scroll-bar. By default, this will be set to Object. There are three choices we can make in this bar though: Object, Quest, and Magic Effect. We’ll want to set it to Quest. This is VERY important.

...If this bar is still set on Object, and you close/save it before changing this to Quest, your script will then disappear into the Construction Set. You will be able to find it, but finding it creates unnecessary steps. If you happen to make this mistake (and don't feel bad, I've made it a bunch of times) you'll need to click on the Pencil icon, on the main window's toolbar. Your script will be somewhere in this huge list of others. Locate it, open it up, and change its Script Type to Quest.

16). Again, you won’t be able to find your script right away if you try to search for it in the scroll-bar, even if it is set to Quest. Click OK on the Quest window (closing it) and save your work. Now, reopen the Quest window. The script should be in the scroll-bar now.

17a). OBJECT window
Now to make sure the quest bumps from 20 to 50. How do we do this? Find your enemy NPC in the Object window, and open his or her information up.

17b). Click on the [...] button, Script > New, and we’re going to type the following.

Scriptname aaaKillBanditScript

Begin OnDeath

If (player.GetStage aaaKillQuest1 == 20)
SetStage aaaKillQuest1 50



And that script obviously triggers the script to move from 20 to 50, once your NPC enemy gets killed. viking.gif Now.... it does not matter how the enemy gets killed, whether he falls down a mine shaft, walks into a blade trap, or whatever. But that’s why I recommended Cursed Mine; there aren’t any traps or mine-shafts in Cursed Mine. wink.gif

So there we have it. The entire kill quest has been written up, but oops! We have not rewarded the character yet.

Go to your final stage. For me this is 100. In the Result Script box there should already be a StopQuest command here if you typed this in earlier. Right above or below this command, you can type

Player.AddItem DrinkBeer X

with X being whatever number you’d like. But again, I was being silly there. You can award your character with whatever item(s) you find in the Object window, basically. I awarded my character three beers during my Kill Quest, just to add a little humor into it. smile.gif Substitute Gold001 instead of DrinkBeer, if you'd like more of a serious reward.

This post has been edited by Renee: Mar 9 2018, 10:13 PM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Mar 7 2018, 11:58 PM
Post #9


Joined: 2-November 17

Great thread. I will have to think about what I can add for Oblivion modding. Most of the modding I have done for Oblivion so far has been patches or add-ons for other mods. One of the best tools for that (besides xEdit) is the Construction Set Extender. With the Construction Set Extender, you can work on mods that have esp files as masters without having to "esmify" them, which makes things a lot easier. The Construction set Extender also fixes a ton of bugs in the CS and adds a number of new features, like color coding changes made by the currently active mod, so you can easily see what's changed. The Consruction Set Extender really makes my time in the CS more enjoyable, so that is my pro-tip for the day.

One caveat. If you are running an ENB (or ENBoost), then the Construction Set Extender won't start, so you have to remove the ENB from the Oblivion directory or rename it before launching the Construction Set through the Construction Set extender. There are several available on Nexus, this is the one I use. It works pretty well, I just click on it to launch the Construction Set Extender and it automatically renames my ENB and then automatically changes the name back when I exit.

This post has been edited by Turija: Mar 7 2018, 11:58 PM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Mar 8 2018, 02:53 AM
Post #10

Group Icon
Joined: 19-March 13

Sweet Turija! See, I just learned a few new things there. Did not know about Construction Set Extender. Yeah, because the regular CS does have a few rather odd things about it So does the GECK and Creation Kit as well.

This post has been edited by Renee: Mar 8 2018, 02:55 AM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Mar 13 2018, 02:27 AM
Post #11

Group Icon
Joined: 19-March 13

How to repair Hair, Game: TES IV: Oblivion

This one is going to feature Oblivion again, and it'll be a shortie. smile.gif I will get to other games too: Fallout 3 and Skyrim.

Anyways, yes ... hair. After rebuilding my entire Data folder from scratch a few weeks ago, I had a bunch of little problems to then take care of. One of these had to deal with weird-looking hair, or missing hair. I use a couple different mods for hair: Coolsims Hair Pack, and Apachii Wigs. I noticed that RG3 (who has Coolsims), and a variety of NPCs (some of whom have Apachi Wigs), had this jet-black hair, which looked really unnatural. Damn I wish I had a picture to show, as an example.

Anyway, the fixes are really easy, and I'm adding them here for convenience. One fix will work with Apachii, and the other with Coolsims. The Apachii fix assumes you've got Wrye Bash. I think there are ways to fix Apachii hair without Bash, in fact I saw some options for fixing hair without WB. I don't know how to fix without WB, so if you don't have Bash, just know that there are some other options out there.

Anyways, try this for Apachii.

1). Open up Wrye Bash.

2). Click on the Saves tab. Find a save, and right-click on it. At the bottom of the list is Repair Hair. Left-click on this.

3). The program will tell you whether or not it was able to repair the hair. It worked for me, hopefully it'll work for you too.

And here is the fix for Coolsims

5). To fix Coolsims hair, start your game up, with whatever save you're using currently.

6). Open the console, type in ShowRaceMenu. Do NOT close the console window.

7). Choose the hair you want for your character, but (again) keep the console window and race/class/birthsign menu open. Do not click 'Done'.

8). Press your Esc key, and make a new save.

9). Load this new save.

10). You can now close the console window, but at no time before finishing those steps should you close it, or the game will change all your character's stats back to default values.

The words below in the spoiler tags are from UESP.net, in case you aren't able to save with the console open...

This post has been edited by Renee: Mar 13 2018, 02:44 AM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
post Yesterday, 06:29 PM
Post #12

Group Icon
Joined: 19-March 13

How to make an NPC Vendor & Mechanic. Game: Fallout 3

This module is going to show us how to make an NPC, who is also a vendor and repair-person, in the Fallout 3 Garden of Eden Kit (GECK). The process of starting NPCs in this program is slightly different from making one in the Oblivion Construction Set (CS).

I think the reason why I wanted to make an NPC who does all these things in Fallout 3 (before I learned in Elder Scrolls games) is because there are so many areas of the wasteland in which it'd be nice to buy and sell stuff, and get our gear repaired. But nobody nearby offers any of these services. Guns in particular tend to take quite a beating as they're being used, and ammo is always in demand. Sure there are merchant caravans who wander around, but there's never one around when we need one. So I began to think it'd be nice to have some extra merchants in fixed locations.

An example is when Janet, my Talon Company rogue, took up residence inside of Fort Bannister. Nobody in there to buy / sell / repair from, yet doesn't it make sense that there could be? Most of the soldiers in there are deadbeats who only one-line our characters to death! Same thing when Cho, my main quest guy, began spending lots of time in the Citadel. I believe there are some merchants in there, but they weren't specialized enough for what Cho needs from day-to-day.

1). Open up the Fallout 3 GECK. Now, open up Fallout 3.esm, or if you've already got a plug-in you're working with, you can make this active. Everything here is exactly the same as it was in the CS, so far as opening up the main .esm, or any .esps. We're still working with the Object, Cell, and Render windows, while the main window always stays beneath the others.

First, we're going to make an NPC. Like I said, the process is slightly different than it was in the CS.

OBJECT window
You'll notice there are now eight branches in this window (rather than the CS's five). We have Actor Data, Actors, Game Effects, Items, Miscellaneous, Special Effects, World Objects, and All. Bethesda has also provided us with a convenient Filter slot, which allows us to search for specific objects if we need to.

Go ahead and try to narrow down on MoiraBrown, for instance. Make sure "All" is selected in the left side of the Object window, and then type her name into the filter. You might only get as far as Moira before *Bam* there she is, out of thousands of objects.

2). But now, let's make our vendor. Get Moira out of the filter, so the window expands back to All again.

To make an NPC, expand the Actors branch and single-click on NPC. Right-click > New into the larger Editor ID window.

Note: In the CS, it is common to edit pre-made NPCs, and then work with whatever person we've clicked on. When working in the GECK or Skyrim Creation Kit however, we often start from New, instead. This is because these latter programs include a lot of pre-configured features for NPCs, which makes starting somebody new much easier.

3a). Make an NPC as per all the usual steps: start by giving him or her an ID and a Name. Notice how the GECK has a lot of new features on this very first panel, yet there are also some features you might be familiar with, if you've already made an NPC in the Oblivion CS. I'm not going into detail right now, but if you'd like to learn more about all these features, just follow Bethesda's official link. There are also dozens of videos out there, too.

3b). Go into your NPC's Traits tab (which should be selected by default), find Class, and select Mechanic in the scroll-bar. Nothing else really matters about this NPC so far as vendoring and repairing goes, so choose whatever Race you want, whether the guy/gal is tall or short, etc.

3c). AI Data tab
We can either toggle Autocalc Services on if we want him or her to just sell random stuff, or we can specifically click on Weapons, Food, Books, whatever we'd like them to buy and sell. I am going to make my guy sort of a low-life drug dealer. He'll sell chems in Moriarty's Saloon, and that is all. ph34r.gif

3d). Inventory tab
We're about to throw our NPC somewhere into the world, but how about we put some clothes on him or her first? wink.gif Right-click into the box where it says Count, Object ID, and so on. Select New.

3e). In the Object scroll-bar are all the possible items in the game. Single-click on this, and type in (or scroll down for) outfit. There's a huge list of generic and specific outfits to choose from. I chose OutfitWasteland02.

Tip: if you want to see what your person looks like with clothes on, move your cursor to the bottom/center of the NPC's panel (where it says Preview) and toggle Full on.

4). CELL + RENDER windows
Find a cell where you'd like your NPC to be, open it up, and put him or her into that cell in the Render window. All of this is exactly the same, compared to the CS. I put my lowlife NPC into MegatonMoriartysSaloon. Since I did this, I also want to officially make him one of Moriarty's buddies. This means adding the guy into Moriarty's faction. Adding NPCs into factions is slightly different, from CS to GECK.

5). Double left-click on the NPC in the Render window, and click on Edit Base.

6). Factions tab
Right-click > New into this box. This will open up all the factions in the game. You can choose as many Factions as you'd like, within reason. My lowlife chem dealer will be a part of MegatonMoriartysFaction and also MegatonResidentFaction. He's got some cred with the people, you see.

Click OK, and OK again (closing both NPC's panels) and save your work.

Now we're going to start a new, very short, quest. Yes, to make an NPC buy and sell, we'll need to have a quest to back this up. This goes for the prostitute (Nova, I think) inside of Moriarty's, and innkeepers in Elder Scrolls games, as well. Making quests is sometimes different in the GECK, and the main difference to start with? No more Q button on the main toolbar. Ugh.

7a). OBJECT Window
Expand the Actor Data branch, and click on Quest. You'll see all the game's quests *POP* up, all colored yellow & black.

7b). Right-click > New into the window, and give your quest a Quest Name and ID. Priority can be 55. Most quests Bethesda writes are at 55. Start Game Enabled should be toggled on, and make sure that "Script Processing Delay" is also toggled on.

One thing which is different though is we don't have to add GetIsPlayableRace into the Quest Conditions box. In fact, Bethesda never seems to use this box, anymore.

8a). TOPICS tab
Right-click > Add Topic into the large, vertical window on the left, and find GREETING. Click OK.

Note:: If you've got Windows 7, XP, or Vista, from here on you should have no problems. Continue to Step 8b. If your computer is Windows 8 or 8.1 though, chances are you won't be able to see the word GREETING in the Editor ID at all. This is because Beth configured the GECK for older systems, unable to see what the future would hold. I have heard Windows 10 is the worst, when it comes to working in the GECK. Since I don't have 10 though (I have Win 8.1) I don't know how to work around this problem with 10.

Working with the GECK's various windows for Windows 8 or 8.1 (such as the Editor ID window, Conditions, etc.) is a pain, and there is no instant cure that I've found, to get text to display properly. You can still work around this problem though. Here is how.

a. Make sure "Top-level only" is toggled off. This toggle can be found near the top-left of the Topics page.

b. Move your cursor to the very top-left corner of the Editor ID window. This box is unnamed, but it's the one in which you just added GREETING, yet GREETING is not showing. As your cursor moves over the top-left area of this window, it should turn into an icon which looks like <-||-> once it's in the correct place. Now, left-click and drag your cursor all the way to the right. You should now be able to see GREETING.

... There. I just saved all the Windows 8 owners at least an hour of frustrating Google searches! hehe.gif

Unfortunately, you'll need to repeat this process over and over again, in order to see text in various windows and boxes. Annoying, but at least possible. The Info and Response Text windows (where we start and type dialog) do not have this problem though, so we won't have to drag anything to start and type some dialog.

8b). Make some sort of GREETING. "What do you want, punk?" or whatever. All of this is done in exactly the same manner as in the CS.

8c). Right-click > New into the Conditions window. Make a GetIsID for your NPC. This is the only condition that's needed.

Again this window will be grayed-out if you've got something from the Windows 8 series (necessitating another drag from left to right), but visible if you've got anything earlier.

8d). Right-click > Add Topic into the Add Topic box, and make a unique topic which deals with vendoring. aaaVendorTopic is an example.

8e). Also add this topic in the tall, vertical window where GREETING is.

Windows 8 users: if you haven't closed the Quest window, you should still be able to see into all the smaller windows. Once you click OK though, you'll need to click & drag again, once you get back in to add things to your quest.

8f). This vendor topic will be whatever we say to get the vendor experience going. Right-click > New into the Info window, and type something our NPC will say. "Sure, I have lots of things to sell. What would you like?" Click OK, and then type something into the Topic Text slot up top. "What do you got?" or whatever. Again, all this is the same from CS to GECK.

8g). Don't forget to copy/paste the GetIsID from GREETING to the vendor topic.

8h). Look to the bottom of the Topics page now. In the Result Script (End) box, type ShowBarterMenu

9a). Conversation tab
In the tall, vertical window (which again, will be grayed-out if you've got Windows 8), right-click > Add Topic, and look for GOODBYE.

The Topic Text which Bethesda added for GOODBYE is "See ya," I think, and it's best to leave it this way. We don't have to add anything further here, no Conditions, no nothing, unless we want our NPC to say something we specifically have added.* If so, just follow all the normal steps with Response Text and Conditions (GetIsId, for instance). Otherwise, the NPC will simply give us a random Bethesda Goodbye when we break conversation.

9b). Make sure the Goodbye and Random toggles are checked on. They should be, by default.

*Note: Sometimes I have encountered glitches when trying to add specific dialog, causing the GECK to not save anything I type. If this happens, make sure there aren't any deleted Topics in either the Topics or Conversations tabs. If there are, press OK, closing out the Quest panel. Save the work done so far, close the GECK, and re-open it. Those deleted topics should be gone, now.

10). CELL window
Make sure "Interiors" is selected in the World Space scroll-bar, and find VendorChestCell. This contains all the possible chest-types in the game. Leave the Render window for this cell open,.

11). OBJECT window > World Objects > Container.

Find VendorChestBuriedClutter and drag this chest into the Render window. It apparently does not matter where this chest ends up (there is no floor) but try to put it somewhere that you can find it easily, if you need to return to this cell for some reason. Set this chest obviously off to the side if you have to, away from all the others.

12a). REFERENCE window.
Double left-click on the chest you just dragged. Click the Edit Base button. Give this chest its own ID (starting with aaa if you want it to show at the top of the list later on) and close its panel by clicking OK, saving the chest as a new form. We do not need to give it a Name, but make sure "Respawns" stays toggled on, otherwise the vendor will eventually run out of salable stuff!

12b). Go back into the chest now, and add whatever we want into its Item List. By default, this chest will have random medical stuff, and "VendorChestCapsSmall," which is going to give this vendor a variable amount of caps to buy stuff with. We probably want to add more stuff in here though, right? Right-click > New into the Item List

Some good things to add in here (if we want inventory to stay as random as possible) are VendorMiscItems, VendorWeaponsAllCommon, VendorAmmoBullets, and VendorArmorCommon. Since my NPC is a lowlife chem dealer, I just chose VendorChestChems.

12c). If we want our vendor to have a larger amount of caps to buy with, we can leave the VendorChestCapsSmall in there for the variable amount of money, but then we can a fixed amount of caps to their Item List as well. There are several choices here. Caps001 is good if we want them to have one guaranteed cap at all times, Caps90 if we want them to have a guaranteed 90 caps at all times, and so on.

We can simply choose Caps001, and then in the Count slot, we can add as much to this as we want. Type 200 in there if you want your vendor to have 200 guaranteed caps, plus whatever random amount VendorChestCapsSmall will also add.

12d). Click OK. Make sure Persistent Reference is clicked ON before clicking OK on the chest's Reference panel. Having this toggled on allows the game's engine to access this chest when we're speaking to our vendor. We do not need to give our vendor chest a Reference ID, though.

13). CELL / RENDER windows
Place the NPC vendor in the world, unless he/she is already out there.*

Tip: *Since your Render window will probably still be in the VendorChestCell, a quick way to get back to your NPC is to find him /her in the Object window, right/click on him/her, and choose Use Info. A panel will pop up with two windows. Double left-click on the text in the bottom window (where it says Interior). It can take up to a minute for the GECK to locate your NPC, but still, this process is easier than always remembering which cell you've put the NPC into.

14). Double-left click your vendor, so the Reference panel pops up. Select the Merchant Container tab. In the Cell scroll-bar, find the VendorChestCell. In the Reference scroll-bar, find the chest you just made. If you put "aaa" at the front of its ID name, yours should be at the very top of the list.

15). Click OK. And there you go.

Now, if we want this NPC to also repair stuff,..

16). QUEST window
Follow all the steps from 8d through 8g, to add dialog, conditions, and such. For step 8d, make a new topic which deals with repairing stuff. Make sure this topic links from the initial NPC's GREETING. So in that Greeting's Add Topics box, you'll now be seeing something like..


Now add some dialog into the repair topic. "I can fix whatever you break."

17). The main difference here is in the repair topic's Result Script (End) box, we're going to type ShowRepairMenu.

18). The NPC probably has a low Repair skill by default. If we want this NPC to be really good at repairing stuff, open up his/her information and select the Stats tab. Make sure Auto-calc stats and PC Level Mult are NOT chosen.

19). Click on the Repair skill (so it is highlighted) and press F2 on your keyboard. Now we can make this skill as low or high as we want, by adding some number, and then left-click on Repair to set this number. This number gets added to the NPC's base number. If the NPC's base Repair skill is 20 for instance, and we offset this by 60, their total skill will wind up as 80.

That is all. Close the GECK, save all your work, make yourself a copy of your .esp.

This post has been edited by Renee: Today, 05:10 PM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:


- Lo-Fi Version Time is now: 19th March 2018 - 09:07 PM