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 (or any RPG, really). We’ve got somebody who's either got a bounty on his/her head, or has stolen something valuable, or is just really mean, or *insert reason here*. Bottom line, 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, 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 teach a few new tricks during my version.
----------------------------------------------------------------------------
1). Start up the TES4 Construction Set, bla bla bla.
This time we're going to make two NPCs, and that is all we'll need for a basic kill quest. First NPC is the quest-giver, and the second will be the one we're supposed to hunt down.
For anyone who's already made an NPC quest-giver for the Fetch quest, this guy or gal can be used again. Or, you can opt to make somebody who's totally new. If you have not made an NPC at all yet, follow the Fetch lecture up above, starting with Step 2. Or have a look at one of the tutorials linked above.
1b). So make that quest-giver, if you haven't already. If not, right-click > Edit on any named NPC who is not part of Shivering Isles. Also, do not edit a generic NPC, such as a bandit or marauder.
TIP: I frequently edit NPCs. Though it's possible to simply use pre-existing Bethesda NPCs (such as Thoronir or Jensine) 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.
Basically, in most cases it is NOT a good idea to make changes to these pre-existing NPCs who are already in the world. Changes can cause problems.
… In the future (for those who get confident and knowledgeable) it's possible to use Beth NPCs for this or that. 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 already made, and Paste him or her into some Skingrad cell, such as SkingradWestWealdInn, or SkingradTwoSistersLodge. Or, it's possible to just use the Bravil person, who sends us off to Cursed Mine. That final option is my favorite, I think.
I always like long road trips.
2a). OBJECT windowNow 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 the Construction Set focuses on only this race.
There are still hundreds of NPCs listed. 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 are 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 to the Bs, and finally some Bandits.
*
This can be done with any tab. Single left-clicking the first time 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 which is not a TEMPLATE, whether it's an archer or a melee-type, and so on. BanditMeleeFemale2, for instance. So if you want your kill quest to feature an archer, locate one of these. Right-click > Edit him or her. Make sure to follow all the steps for making an NPC discussed so far in this thread, or in any tutorials linked above.
Changing ID name is always the first essential step, and saving the edited 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. Quest-based generic NPCs often use ID names which have nonsense letters and/or numbers associated with them. You might see something like MS09BanditMissileMale. 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 types of NPCs though, now and in the future.2e). Toggle "No Low Level Processing" off.
>> No Low Level Processing tells the game's engine to ignore NPCs, if we're not in their cell or worldspace while in-game. 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. As far as the game's engine is concerned, these generics aren't even active until we're in their area.
2f). Click onto the enemy's AI button, and have a look at what is in there. Typically, there'll be a couple Wander packages: one for Exterior locations, and one for Interiors. These packages cause the enemy to walk randomly around, of course. These can be kept as-is, because they won't usually wander too far from where they've been placed. There might also be 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 a bandit was edited, his/her Aggression will often be set to 100, which is fine. Almost all enemies have their Aggression set to 100.
3a). CELL + RENDER windowsLocate CursedMine01 (or wherever) and place the edited enemy into the Render window. I tend to prefer putting kill-quest enemies into the very LAST possible location of the lair. 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, simply put the enemy into an initial room.
There are also CursedMine02 and CursedMine03, two other cells which go deeper underground. For now, just put the enemy into the first cell. This will make it easier for me to teach something later on.
3b). Have a look into the enemy's Faction tab. If an actual bandit was edited, he or she should already be in the BanditFaction. Continue to step 5, if so. But I will go ahead and show how to add the enemy into this (or any) faction.
4a). TES Construction Set main windowMake sure the 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 down to BanditFaction.
4b). 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 the enemy as a New Form, if you haven't done so already. There. Now the enemy is good to go, in any cell featuring other bandits.
5).
QUEST windowClick on the main toolbar's Q button, and Right-click > New into 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 this new 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 into the Conditions window, along with
GetPlayerInSEWorld == 0.
Optional: to add a little flair to the quest when it appears in the in-game journal, click on the Icon button. This will link into the Data > Textures > Menus > Icons folder. If you've got any mods that add icons, there should be some icons and/or folders to select from. Look for icons that are appropriate for your quest. For instance, since this is a Kill quest, I'm selecting an icon from the Fighters Guild Quests mod which displays a knife. Double left-click on the icon, so that it shows up (hopefully) on the Quest Data page. This icon will now also show up in the in-game quest journals.
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.
7a). QUEST STAGES tab
I think the Brit in that video up above 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 being chosen.
> Stage 0 is the pre-stage. Right-click > New into the top Log Entry window so it says EMPTY. Otherwise, don't need to change anything here.
>> 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 have decimated the enemy, rid him or her from existence. Something like, "I found the bandits' leader inside of Cursed Mine, and now he's been owned. 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.
7b). Make sure Quest Completed is toggled on for that final stage.
In the Result Script box type
StopQuest aaaKillQuest1 to keep it from running forever and ever.
8a).
RENDER windowNow I am going to teach something new: how to add a Map Marker. I don't use quest targets (too much hand-holding), but I do like map markers. The NPC who gives us the quest can mark the in-game map to let us know where to go. Those who are reading this 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 in which the enemy was added, that's great. If not, search for that cell in the Cell window, which is CursedMine01, for anybody who's strictly following this tutorial.
8b). Click into the Render window, and press A to 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 easily, so I can include this next trick.
8c). 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 the mouse wheel as you drag) the entire cell in the Render window, until the cell's entry door is located. Or, look for any doors in the Cell window, and double left-click on them. Usually, the entry door will have the numbers '01' at the end of its name.
Once the door is found, there should be 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 the keyboard. This will cause any markers in the Render window to display.
8d). Double left-click on the Door Marker. It will ask 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 few moments while the exterior worldspace loads.
We should be outside of Cursed Mine now, seeing an identical Door Marker. Double-click on this one, press Yes, and voila, we're back inside Cursed Mine. This is how all Door Markers work.
8e). Zoom the 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, it's possible to create one.
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 windowIn 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. The marker should appear as 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. Give the 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 that the "Form's ID is not unique!" ... Okay, whatever. Just rename the marker, since the original one can't be found.
9c). Click OK.
QUEST window > Quest Targets tabI skipped this tab before, now I'm going to show how to use it to make markers show up on the map, once we're back in-game, and doing this quest.
10a). 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 window, which is called Target Ref.
10b). The central section of the panel which pops up is called Quest Target Data. Select the button which says Select Reference in Render Window. Click on this button. After doing so, the 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 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 the official Bethesda Cursed Mine map maker was selected, the Cell and Ref slots will say this..
Cell: CursedMineExterior
Ref: "MapMarker" 'CursedMineMapMarker'
TIP: In the future when working with Map Markers, if the Render window is not open to the actual location of the map marker, you can also search for it by choosing whatever worldspace 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 worldspace that marker lies in. Exterior locations are tougher to locate than interiors (outdoor locations are often called "Wilderness"), 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 the map during Stage 10, when the quest-giver lets us know where the enemy can be found. So return to the Quest Stages tab and select Index 10. Type
ShowMap CursedMineMapMarker into its Result Script box.
11). TOPICS tab
Now to write some dialog. Three GREETINGs are needed, 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, follow the 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 used for the Fetch quest. If this NPC already knows our character, 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" < 5Result Script box:
Player.SetStage aaaKillQuest1 5AddTopic box: add the unique topic here. So I am 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" == 20Note: 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" == 50Result Script box:
Player.SetStage aaaKillQuest1 100------------
12). Now, go to the 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" == 5Result Script box:
Player.SetStage aaaKillQuest1 10---------------
Click OK, closing the Quest window, and save all work, please.
13). OBJECT windowSo… 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 window. Left-click on any object in this window and type the letter X. There are the XMarkers. (Not talking about XMarkerHeading, by the way).
14a).
RENDER windowIf the 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 click + holding the 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 the 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.
If the XMarker disappears this could be because it wasn't able to land on the floor, or some other surface. Press Ctrl+Z if this happens! Voila, now start over.
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, pressing OK, and then I am immediately copying (Ctrl + C) this name, so I can paste it into a script we're about to write.
Copying Reference names so they can pasted later, or better yet, onto a Notepad or text file, 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.
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.
15b). 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
End15d). 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, the script will then disappear into the Construction Set. You will be able to find it, but finding it creates unnecessary steps. For those who make this mistake (and don't feel bad, I've made it a bunch of times) click on the Pencil icon, located on the main window's toolbar. The script will be somewhere in this huge list of others. Locate it, open it up, and change its Script Type to Quest.
So save the script by closing the script window, and select Yes.
15e). Again, the script won't immediately appear in the scroll-bar, even if it is set to Quest. Click OK on the Quest window (closing it) and save. Now, reopen the Quest window. The script should be in the scroll-bar now, so left-click on the bar and find/reopen it.
Click OK again (ensuring that the main script is now attached to the quest), and reopen.
15f). Add the following Conditional statements into the script, putting it between GameMode, and End.
If (Player.GetDistance aaaCursedMineXMarker <= 400)
If (Player.GetStage aaaKillQuest1 == 10)
SetStage aaaKillQuest1 20
EndIF
EndIfAltogether the script'll look like this...
scriptname aaaKillQuest1Script
Begin GameMode
If (Player.GetDistance aaaCursedMineXMarker <= 400)
If (Player.GetStage aaaKillQuest1 == 10)
SetStage aaaKillQuest1 20
EndIF
EndIf
End-----------------------
This means: when your character enters Cursed Mine and gets close enough to this Xmarker (less than 400 units, or
at 400 units), 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. I wouldn’t go too small though, unless the marker is in an area with a confined entry passage, ensuring that the 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.
17a).
OBJECT windowNow to make sure the quest bumps from 20 to 50. How do we do this? Find the 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
End ------------------
17c). Close/save the script, and click OK, closing the NPC's panel. Reopen the NPC's info and find the script in his/her script scroll-bar. Click OK again, and reopen.
Open the script.
17d). Add the following...
If (player.GetStage aaaKillQuest1 == 20)
SetStage aaaKillQuest1 50
EndIf....in between the OnDeath event and "End". Altogether we've got this...
Scriptname aaaKillBanditScript
Begin OnDeath
If (player.GetStage aaaKillQuest1 == 20)
SetStage aaaKillQuest1 50
EndIf
End And that script obviously triggers the quest to move from 20 to 50, once the NPC enemy gets killed.
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.
So there we have it. The entire kill quest has been written up, but oops! We have not rewarded the character yet.
18), QUEST STAGES tab
Go to your final stage. For me this is 100. In the Result Script box there should already be a StopQuest command here. Right
above this command I am typing...
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. Substitute Gold001 instead of DrinkBeer, for a more serious reward.
This post has been edited by Renee: May 8 2023, 01:55 AM