Mod-making thread basically, which focuses heavily on quest-making. The first two tutorials (How to make a fetch quest and how to make a kill quest) are very hand-holdy. They are designed for those who are just starting to learn the art of quest-making. Other tutorials get more advanced, as my wacky ideas have pushed their boundaries.
Just click on any of the links in the post below this one.
Tip: For Oblivion, Always use https://www.nexusmods.cohttp://chorrol.com/forums/index.php?act=post&do=edit_post&f=73&t=8089&p=298640&st=0m/oblivion/mods/16622 when making silent-text dialog. Without this utility, dialog will stay on-screen for just a fraction of a second. Of course, if you're recording your own voice, you won't need this utility.
1). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=298641. Game: TES IV: Oblivion.
2). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=298793. Game: TES IV: Oblivion.
3). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=298927, and some advice. Game: TES IV: Oblivion.
4). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=299086 Game: TES IV: Oblivion.
5). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=299282. Game: Fallout 3.
6). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=299491. Game: TES V: Skyrim.
7). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=299767. Game: Fallout 3 (should also work for Oblivion and New Vegas).
8). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=300498. Game: TES IV: Oblivion.
9). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=301151 Game: Fallout 3
10). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=301633. Game: Fallout 3
11). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=302271 Game: TES IV Oblivion or Fallout 3
12). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=303069. Game: TES IV: Oblivion
13). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=305053 Game: Fallout 3
14). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=305505. Game: Fallout 3
15).http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=305756. Game: TES IV: Oblivion
16). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=307172
17). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=307909 Game: TES IV: Oblivion
18). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=308055 Game: TES IV: Oblivion
19). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=308105, Game: TES V: Skyrim
20). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=308798, Game: Fallout 3
21). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=309878, Game: TES: V Skyrim
22). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=310093, Game: TES V Skyrim
23). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=310529, Game TES V Skyrim
24). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=310606 (which gives the PC a horse) WIP at the moment
25). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=311049 Game: TES IV: Oblivion
26). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=311049 Game: TES V: Skyrim
27). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=315792. Game: Elder Scrolls Online
28). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=315815 Game: Fallout 3
29).http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=316814. Games: Oblivion, Fallout 3, Skyrim
30). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=320065. Game: TES V: Skyrim
31): http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=322207. Game: TES V: Skyrim
32): http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=322995 Game: TES V: Skyrim.
33). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=326897. Game: Fallout 3
34). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=327333 Game: Fallout 3.
35). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=328235. Game: TES IV: Oblivion
36). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=329901. Game: Fallout 3 & New Vegas
37). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=331652 (by Boxx Mann)
38). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=336457: TES III: Morrowind
39).http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=336730 Game: TES III: Morrowind.
40). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=337982. Game: TES IV: Oblivion
41). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=341713. Game: TES V: Skyrim
42). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=341715. Game: TES V: Skyrim
43). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=342869. Game: TES V: Skyrim
44). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=343194. Game: TES V: Skyrim
45). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=343215. Game: TES V: Skyrim
46). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=347307
47). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=347454
48). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=347647
49). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=348272
50).
51). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=348663
52). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=349149
53). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=349505
54). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=349643
55). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=349787
56). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=350158 (lesson by SubRosa)
57). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=350596
58). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=350689
59). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=350840
60). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=351017
61). http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=351104 -- This works for any Bethesda game with Leveled Lists
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 https://www.youtube.com/watch?v=myUnmRU1m4o.* I knew absolutely nothing about using the Oblivion Construction Set folks, absolutely nothing beyond renaming an item, or making a chest not respawn anymore. I mean, I'm a dummy gamer who used to put tape on my TV to simulate the compass being removed. Yet here I was, with this grand idea to start adding content to one of my character's games.
* Note: that video features a "kill" quest, not a fetch quest, but a lot of the same steps still apply. Only real difference is the main script which gets associated with the actor-to-kill, and also the fact that the guy in the vid creates two NPCs instead of one. I will eventually write up a kill quest, for those who want it.
This tutorial assumes you have used the CS before, and have some basic knowledge about how to get around: how to use the Object, Render, and Cell windows, and how Beth has their main toolbar set up. If you've never used the Construction Set before yet want to learn, http://www.youtube.com/watch?v=ipEOrBBB4ig&t=18s. It was made by a teenager, but believe me, this is one of the better ones I've found. https://cs.elderscrolls.com/index.php?title=Category:A_beginner%27s_guide, and there are also classes over at http://tesalliance.org/forums/index.php?/forum/82-esiv-oblivion-school/
So if you've never used the CS before, I encourage you to watch and read those first, because I'm going to just jump right in, here. Still, this tutorial does start with a few basic instructions, just because it's the very first one in this thread.
--------------------------------------
1). Open the TES4 Construction Set. Several windows should pop up: the Object window, Cell window and Render window. There is also a main window, which will be beneath all the others, and it's the one with the typical "File", "Edit", "View" (etc.).
Go ahead and organize the Object, Cell, and Render windows to your liking. These three windows can be pulled and stretched this way and that, so that they are nicely laid out side-by-side or above/below each other, while the main toolbar window always stays beneath the others.
Left-click on File and then move your mouse pointer over where it says Data. Left-click on Data. A panel will pop up, listing Oblivion.esm (which is the vanilla game, basically), any DLC you've got, and any mods you've installed in your Data folder. Go ahead and double left-click on Oblivion.esm, and then click OK.
Now, if you've got some mod you're already working with, this process is different. In such case, you're going to double left-click on that mod (so an X shows up next to it), and then move down to the button which allows us to Activate that mod. Once the mod you're working with is Active, click OK. You can also simply double right-click upon that mod. The X should show up, and then you press OK.
It can take awhile for the Construction Set to load up. As it does so, occasional error messages usually show up. These are usually harmless, so click Yes or "Yes to All" as they do pop up.
2). OBJECT 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 linked above, or you can delve into Bethesda's site, also linked above, to get these objects made.
In most cases it's best to simply edit something Bethesda has already made, rather than starting from scratch. Editing something pre-made will make sure all the content Bethesda has already added (such as icons, animations, generic dialog, etc.) also gets added to your key, your chest, your NPC, and your object-to-fetch, which means less work overall.
As you create all these objects, editing from stuff already in the game, the CS will ask if you'd like to save each each object as a New Form? Always click "Yes." This will create these objects as unique items, rather than overwriting stuff already in the game. You definitely DON'T want to be overwriting things which are already in the game.
In a moment, I'm going to go into more details about the items we're going to need.
NOTE: and this is very important. When editing a Bethesda NPC, make sure to edit someone found in the base game, NOT Shivering Isles. Editing a Shivering Isles NPC will confuse the game's engine, making any text written for that NPC not show up in the game! If there's any confusion about whether an NPC is from the base game or not, go to www.UESP.net and find that NPC. Make sure he or she is not from SI. Some NPCs from Shivering Isles start their ID names with "SE", when viewed in the Object window.
... It is also important to edit a named NPC, such as Samuel Bantien, rather generic one, such as a marauder or a bandit. Editing generic people is okay if making another generic, but if you're making somebody who is named (and therefore unique) it's less work to begin with somebody who is named.
Get rid of any AI, Factions, or scripts associated with your edited NPC. For instance, if you've edited a guy whose everyday life has him walking, sleeping, and eating in the Imperial City, that's exactly what the edited NPC will try to do if you don't get rid of his/her AI. When you find the guy in-game, he'll probably be walking out of the cell he's been placed into!
... So, click on the edited NPC's AI button, then right-click on any AI packages found in the AI Package List. Delete all of these. Also, look at the NPC's Aggression rating. For most ordinary town-dwelling people, this rating is going to be set at 5. If, for some reason, Aggression is set much higher than this, if it is over 40 for instance, change this to 5.
... To get rid of Factions, click on the Factions tab (which is right between Stats and Inventory). Right-click and Delete any factions listed. We can also add factions, if we want our NPC to be allowed into certain restricted areas, but that's for another tutorial.
....Getting rid of scripts will be discussed later during step 10b, assuming the NPC (or any other object being edited) actually has a script. Not all NPCs or other objects do.
Tip: When making items, NPCs, and so on, it's a good idea to put "aaa" in front of any name being typed for ID names or Reference ID names. So if a key gets made it can be called aaaDungeonKey, for instance. This will cause the key, or most any object or quest, to get placed at (or near) the very top of any list in the Construction Set, GECK, or Creation Kit. Makes stuff easy to find.
Conversely, some folks prefer to start ID names with ZZ, which automatically puts these items towards the bottom of most lists. Well truthfully, everyone's got their own methods. When tearing into other peoples' mods though, sometimes it can be challenging to find any content they've modified or added, if this content isn't located at the top or the bottom.
Anyway, for this tutorial, I am making aaaDungeonKey, aaaDungeonChest, aaaLostAmulet, and aaaBob. aaaBob will be my starring NPC quest-giver. These names don't have to be used exactly by anyone reading this, but those are the ID names I am going to use.
2a). CELL + RENDER windows
Select a dangerous cell where the chest shall get placed. Or, you can opt to choose a non-dangerous cell, if you'd just like to see the quest work, without needing to deal with combat & exploration. Either way, choose a cell in the Cell window's left panel, so that it shows up in the Render window. The cell being chosen will probably be too far away to see. To get a closer look, double left-click on any item in the right side of the Cell window, a barrel or a wall or whatever.
2b). Left-click anywhere into the Render window, then tap A on the keyboard to see better!
For anyone who's not sure how to navigate around the Render window, a good description of mouse & keyboard commands https://cs.elderscrolls.com/index.php?title=A_beginner%27s_guide,_lesson_2_-_Creating_a_room, in the box right under "Introduction."
2b). Drag the edited chest into the Render window. Find a spot where you'd like the chest to be, then press F so that it falls to the floor, or some other surface like a table. >> Though it might seem like this chest is going to be easy to find, since we're the one putting it in some dungeon, oftentimes once we're back in-game we might be surprised how often our own content might take some searching for!
Note: Working in the Render window can take lots of practice. For those who're having trouble selecting the chest, rather than a wall or some other dungeon feature, sometimes it helps to get really close to the chest (or any object you'd like to move) with the cursor. Use the mouse wheel to do this. Double-click on the item until its Reference panel pop up.
...Once the chest selected, this panel will list the chest's name in its Base Object slot. Use the mouse wheel to zoom in and out, to get closer or farther. To move the entire cell, hold down the mouse wheel while moving the mouse. This will to cause the entire dungeon to move. Do this until finding the correct cursor position, where it can grab the chest properly. Once you've got the chest selected, the cursor will turn into a + sign, with pointers on it. Left-click on the chest and hold the left mosue button down to move the chest around by itself.
The set of mouse & key commands I just linked to really helps with object movement; https://cs.elderscrolls.com/index.php?title=A_beginner%27s_guide,_lesson_2_-_Creating_a_room. When accidentally moving something you shouldn't move (like an entire wall or floor!), click ctrl + Z. This will get whichever object back to where it should be.
Note 2: If you've got any mod in your game which change dungeons (such as Snu's Dungeons), there's always a chance that any content being added or changed won't necessarily conflict with others such as Snu's, but it's possible to find some odd things happening back in the game, and in that dungeon. I once modified a cave, added my own enemy into this cave, only to find that enemy was dead by the time we got there. Why? Because a plug-in I've got called Fighters Guild Quests added about fifty mudcrabs into that same cave!
3). Once the chest is in its proper cell, double left-click on it in the Render window. This will open up the chest's Reference panel. Now click on the Edit Base button, and drag the object to fetch, whether its's an amulet or something else, from the Object window into the chest's inventory window. Make sure the darn thing (the chest) doesn't respawn, by making sure Respawn is not toggled.
Click OK.
4). Now we're back to looking at the Reference panel for the chest. There should be four visible tabs on this panel: 3D Data, Enable Parent, Ownership, and Lock. Go to the Lock tab, and toggle 'Locked' on. Make the lock's Level whatever is desired, from "Very Easy" (one tumbler) to "Needs a Key." We can have the NPC we made give us the key we made, and make it so that it will fit this chest (optional)*. Toggle the Key bar, and search for the Key that just made, aaaDungeonKey, or whatever. THIS KEY will open this chest.
* All of this key stuff is optional, because sometimes it doesn't make sense for the quest-giver to magically have the exact key that opens some chest far away! But not everything needs to make sense in the world of Tamriel, right? .... we're just learning here.
5). CELL 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, https://cs.elderscrolls.com/index.php?title=Basic_NPC_Creation_Tutorial. We don't absolutely need to add AI, but if we don't, the NPC will simply stand wherever he or she was placed, hardly able to move. This might be okay for our purposes now of course, but in the future, all these things can be added to make people more dynamic.
Go to the CS's main toolbar and click on the SAVE icon. Keep saving, too. If editing Oblivion.esm instead of a pre-existing mod, the CS will ask to save any work as an .esp file. And the cool thing is, you'll now get to name your own .esp!
6). Click on the Q button (on the Construction Set main toolbar). This is the Quest window, where quests get made. Since most of these tutorials deal with quests, I'll be clicking on this button a lot!
7a). QUEST DATA tab
Right-click on the Editor window, and give the Quest a unique name. For this tutorial I am calling my quest aaaFetchQuest1, though you can call yours whatever you'd like. Also, give the quest an actual name in its Quest Name slot. This name is what will appear in the game's quest journals.
7b). Priority can be medium-high. 60 is good for now, though for other quests this number can vary quite a lot. Those with higher priority (such as the quest which causes arrest) are going to take precedence over those with lower priority, such as Generic Dialog-type quests.
Toggle "Start Game Enabled" on, if it's not already toggled.
7c). Now, look toward the center of the Quest Data page, where the Quest Conditions box is. Right-click > New into the main white portion of this box, or click the New button at the bottom-left. By default, the CS will display the GetDisposition function, but we don't need GetDisposition.
7d). Go to the scroll-bar next to the New button, and search for (or type in) GetIsPlayableRace. As you type, the CS will fill in what it thinks you're looking for, saving some time.
7e). Ignore Function Parameters, but make sure Comparison is ==, and Value is 1. So altogether, in the Quest Conditions window it will say GetIsPlayableRace NONE == 1. This is what the game uses to make sure only playable races (wood elves, Khajiit, Redguards, etc.) can receive this quest in the first place.
7f). Follow all the steps from 7c to 7e, except this time add GetPlayerInSEWorld NONE == 0. This function makes sure the player/character is not in Shivering Isles, which the CS refers to as SE World for some reason.
Again, here is what you should see in the Quest Conditions box...
GetPlayerInSEWorld NONE == 0.00 AND
GetIsPlayableRace NONE == 1.00
8a). QUEST STAGES tab.
Right-click in the Index window, and select New. The number 0 will show up. Just leave it like that.
8b). Now right-click > New four more times, but type numbers for each of these four. Altogether, I am choosing 0, 10, 20, 30, and 100. These numbers don't have to be exactly 0, 10, 20, 30, and 100, you can use whatever numbers you'd like, but always make sure there is some numerical space between whatever numbers being added. Don't just put 1, 2, 3, 4, etc.. Doing this makes it impossible to add content in between these stages, which can get problematic at times. Because sometimes when writing quests, all the sudden we'll think of more content which should go between any two stages, see?
Anyway, three of these five indexes will include text which will show up in our Current Quests journal as the quest updates, making that drum sound. *Doooon!*
8c). Don't touch Stage 0 at all. It is more like a pre-stage, which exists as soon as the game starts up.
8d). Click on Stage 10, and right-click > New into the top Log Entry box. Doing so will open up the box below it (which is also called Log Entry). This is where all those nifty in-game quest updates get written. But don't do anything else. There should be the word EMPTY in the top Log Entry box. Just leave it like this.
> During Stage 10, the NPC greets our character, and will be telling us about his/her missing item, laying it all out there. If the player decides they don't want to hear the NPC's speil (in other words, if the player backs out of conversation during, or just right after the NPC greets us), it would be silly for the quest to update. We should be able to back out of greetings without quest updates, otherwise it feels like the quest is railroading us.
Note: (Better Cities quests are famous for railroading!)
8e). The next stage (which I'm calling 20) will be a true quest update that will put information into the in-game Current Quests journal. This update pops up only if the player clicks on the NPC's Lost Item topic though, after we have listened to the NPC's initial greeting, and decided to help him or her. We haven't written this topic yet, but we will.
So go ahead and right-click into the top Log Entry box. Now left-click into the central Log Entry box, and start typing the update. "I have met a desperate man who seems to have lost his amulet"... etc.
8f). The next index (30 in this case) will need some text explaining that the lost item has been found. "I have found the item that was stolen from Bob"... etc.
8g). The final Index (100) can have text stating what has happened altogether, now that the entire quest is over. "I have found the magic amulet stolen from Bob, and have returned it to him," or whatever. Make sure to toggle Complete Quest on for this one.
8h). Add a script into Stage 100's Result Script box, which says ...
StopQuest aaaFetchQuest1
If this doesn't get added, the game's engine will try to read any scripts associated with this quest over and over forever, which causes unnecessary bloat.
9a). TOPICS tab.
The Topics tab is where the bulk of PC/NPC dialog gets written. Other tabs (Conversation, Service, Detection, etc.) only get used for specific types of dialog. Anyway, right-clik into the Editor ID window and select Add Topic. Look for and left-click GREETING, and press OK. The slot for Topic Text will now also say GREETING. Do not change this.
...Notice I skipped over the Quest Targets tab. This is the tab in which we can add (guess) Quest Targets, which show up green or red on the magical compass back in game. I never use targets, personally. I'd rather search around and not be hand-held, when it comes to missing items and such. Map markers can also be added too, which I use more often. But for now let's skip this tab.
9b). Now, make a second Topic, give this one a unique name, such as aaaLostItem. Right-click into the Editor ID window, select Add Topic. Next, right-click > New into the Select Topic panel. Type in a unique ID name .. aaaLostItem,* or whatever. Click OK.
In the Topic Text slot it will now say whatever's been typed. So if you did type aaaLostItem, this is what it will say in the Topic Text slot. Go ahead and change this to plain English: Lost Item instead of aaaLostItem. The reason is, the words in this slot are what we're going to see in-game, alongside other topics such as Bravil, Rumors, etc.
* If you've already named an amulet, or ring, or any other item "aaaLostItem", the CS will inform that we can't make multiple objects have the same name. It'll then automatically rename the topic aaaLostItemDUPLICATE, instead. This is fine. The topic will still work, its ID name will just be not very aesthetically-pleasing, here in the Construction Set.
9c). Click on GREETING in the Editor ID. Now, in the Info window (right beside the Editor ID window), right-click, and select New. A dialog panel will pop with a bunch of features on it, but we're only going to use the very top box for now, which is called Response Text. This box is where we can type an NPC's dialog. So now's the time to get creative, and add some text.
Something like "Hey, you look like a capable adventurer. I need your help to find my missing item," or whatever.
9d). Optional: change the Emotion Type scroll-bar from Neutral to any of six other emotions. And there's also Emotion Value, which defaults on the number 50. This is what changes the look on the NPC's face as he/she is speaking. Zero means there is no real difference from Neutral, while 100 will make his/her face look extremely sad, extremely happy, and so on. Numbers in between 0 and 100 can be chosen so that the NPC looks somewhat happy, sort of fearful, etc.
9e). Click OK. The panel will close, making any typed dialog appear in the central box, which is called Response Text.
>> The cool thing about adding our own words? Us modders can go into as much, or as little, detail as we'd like. We can eventually add our character's name directly into dialog, too. If we run out of space while adding text, just Click OK, and then right-click > New into the Response Text box (where our first block of text has now been added). An empty Dialogue panel will pop up, so more dialog can be added.
9f). Look to the middle-right of the Topics page, where the Add Topics window is. Should be right above Choices. Right-click into the Add Topics window, and find aaaLostItem, or whatever unique ID got added before. Select this, and click OK.
9g). Now we're going to use the Conditions window, located near the bottom of the Topics page. Conditions get used a LOT while making quests and dialog. Right-click > New into this window.
By default, GetDisposition shows up in the Condition Function scroll-bar. Click onto this scroll-bar and search for GetIsID. This is probably the most popular function of all, because it's what the game uses to search out of thousands of people. GetIsID will narrow this search down to just one NPC, so that only this unique NPC will say the things he/she's supposed to say.
Left-click on the Function Parameters button, which currently says INVALID. A panel will pop up. Find the name of the NPC who was created earlier in this tutorial. For me, this was aaaBob (ha ha). Click OK.
Comparison should be == and Value should be 1. So altogether, this condition will be GetIsID "aaaNPCname" == 1, with aaaNPCname being the name of your quest-giver.
9h). Right-click > New into the Conditions window again, follow all the steps in 9g, but this time, search for GetStage in the Condition Function scroll-bar. Left-click on the Function Parameters button again, and look for the ID name of the quest itself, aaaFetchQuest1, or whatever. Comparison should be < and Value should be 10. We'll need to type in that value of 10. So overall, it will say GetStage "aaaFetchQuest1" < 10.
So there should be two conditions now....
GetIsID "aaaNPCName" == 1 AND
GetStage "aaaFetchQuest1" < 10
...and these conditions will ensure that only the quest-giver can deliver the opening greeting, and he/she can ONLY do this if the quest's stage is below 10.
9i). Time to type the second script (yaah fun!) into the Result Script box. Left-click into this box, then type ...
Player.SetStage aaaFetchQuest1 10
What this means: once our character is greeted by the quest-giver, the game's engine will be commanded to move the entire quest from Stage 0 to Stage 10. By doing this, it means the NPC won't keep giving us the same "Hey you look like an adventurer" greeting over and over, every time we initiate a new conversation with him or her.
Tip: It's now a good idea to click OK (closing the quest window) and save. Don't close the Construction Set itself, though. Go into the game, and make sure JUST THIS part of the quest is working. Though it can get tedious to keep going back and forth into the game like this, this is the best way to ensure everything works as it should.
9j). Reopen the Quest window if it was closed eariler, and select the Topics tab. Go back to the tall, rectangular Editor ID box, and click on GREETING. Let's add a couple more GREETINGS: one which will show up if we go back to this NPC, but don't have his / her lost item yet ("You're back, but where is my amulet?"), and one which will show up after the item has been found ("I knew you could do it! Huzzah!"). Both responses should have the same GetIsID as the first GREETING, but the second GREETING should have GetStage "aaaFetchQuest1" == 20, and the third should be GetStage "aaaFetchQuest1" == 30.
The third greeting (when the lost item has been found, and returned to the NPC) should also have a Result Script which says ...
player.SetStage aaaFetchQuest1 100
... which is the final stage of the Fetch. Type that into the Result Script box.
9k). Now go to the unique topic created earlier, highlight it, and then right-click > New into its Info box. Type in something like "Yes, I lost my valuable amulet, and I have reason to believe it is in X location..." Use the Emotion toggles to make the NPC look ultra sad or disgusted when this gets said!
9l) In the Result Script box, add Player.SetStage aaaFetchQuest1 20. If we want to have the NPC give a key at this moment, press Enter after adding the SetStage script, and then type player.AddItem aaaDungeonKey 1 right below the SetStage script. (This assumes the key was named aaaDungeonKey of course. If it was cnamed something else, this ID should be typed exactly.)
The number 1 denotes the number of keys the quest-starter gives at this moment. So one key get get added, five keys, ten keys....and so on. Only one is needed though, of course. It's never good to bloat the game with unnecessary content.
9m). Again, the Conditions for aaaLostItem's dialog should be the same GetIsID used before, but also add GetStage "aaaFetchQuest1" == 10.
Tip: In the future to make this process simpler, go back to the very first GREETING, right-click anywhere in its Conditions box, and then select Copy All Conditions. Now go to the aaaLostItem topic, right-click into its Conditions box, and select Paste. All that's needed now is make sure to change the GetStage comparison, which is <, to == so we've got GetStage "aaaFetchQuest1" == 10 instead of GetStage "aaaFetchQuest1" < 10.
It's possible to keep pasting those same conditions over and over again, which is mighty convenient, but don't get into the habit of rushing. It's important to go slow. Pay attention to which stage you're trying to match dialog for, and make sure Comparison matches up with what you're trying to accomplish. Once you're back in the game, let's say you KNOW your NPC should say certain things at certain times, but he or she is not saying them. Oftentimes it'll be a simple mistake made with Conditions, Comparisons, and so on. The dialog will be in the CS for instance, but the NPC is being commanded to say this dialog before Stage 10, when he should say it during Stage 10.
9n). Now go back to the second GREETING. This is the greeting the NPC says if we return to him or her, before finding his/her amulet, yet. The Conditions here will be
GetIsID "aaaNPCname" == 1 AND
GetStage "aaaFetchQuest1" == 20
If we want our NPC to be extra pissed during this moment, make his Emotion Angry or Disgusted. Toggle Goodbye and Say Once on, so that he or she won't say anything further, until we've got that stupid amulet back!
9o). Now to the final GREETING, which the NPC says after we have fetched the item, and returned to him or her. "Oh, you've got my amulet! You are so wonderful!!!..... bla bla bla." The Stage is 30 when this happens in my example above.
Type Player.SetStage aaaFetchQuest1 100 into the Result Script box, so the quest moves from Stage 30 to the final stage of 100. It's also possible to add or remove whatever's desired at this point. An example: you can add gold, and remove the lost item at this moment. Here's what goes into the Result Script box for Stage 30, if so.
Player.SetStage aaaFetchQuest1 100
Player.RemoveItem aaaLostAmulet 1
Player.AddItem Gold001 1000
Those scripts will bump the quest to Stage 100, remove the amulet (or other lost item), and award the character with a thousand gold. Neat, eh? Another option: those last two scripts (the RemoveItem and AddItem) can instead be placed into the Quest Stages tab's final Stage of 100, in its Result Script box. Cut those two scripts from the Topics tab, swap to the Quest Stages tab, and paste them into Stage 100's Result Script box. Doing it this way is actually better, because the item being removed and gold being added will get removed and added after the NPC finishes this final dialog, rather than during this dialog. The whole scene is less distracting this way.
9q). Click OK, closing out the Quest window, and save all work.
...So, we've bumped from Stage 0 to Stage 10 via dialog. We've also bumped from Stage 10 to Stage 20 using the NPC's words, and from 30 to 100. But.... how do we get from Stage 20 (where dialog left off) to Stage 30 (when the NPC gets his treasure back)?
10a). OBJECT window > Items
Find the lost item made during step 2, whether it was an amulet or a ring or whatever. Right-click > Edit on it, so its information panel opens up.
10b). Three selections down on the left side of this panel is Script. When editing an item which does not have a script, it should say NONE in the script's scroll-bar, which is perfect. Go to Step 10d if this is so. If the item has a script, go ahead and move the scroll-bar all the way upwards, so that it says NONE. Continue to 10c, which is the very next step.
10c). Click OK, closing the item's panel. Now, reopen the item. If the item previousy had a script, now it should be gone.
10d). So now let's have some fun, and add our own script. Click on the [...] button. Literally, this is a button with three dots on it, which is right next to the Script scroll-bar. The script editor opens. Like most windows, this one's got its own little tool bar.
Left-click on Script, and select New.. This allows us to type into the script editor box, opening up all kinds of scripting fun. Anyway, type in the following...
scriptname aaaFetchQuest1Script
Begin OnAdd Player
End
10e). From this point, you can either click on the script editor's Save icon, or try to close the script by pressing X in the script window's upper-right corner. If you try to close it out without saving, the CS will then ask Do you want to save your script? .... And of course the answer is usually Yes.
If any odd messages show up, the script will not save or close. Usually this is due to something not being spelled correctly, or not being written in a proper way. "Begin On Add" for instance, instead of "Begin OnAdd". Don't get frustrated; mistakes like this happen all the time. Correct this, and try saving (or closing) again.
10f). Click OK, closing the item's panel. Next, reopen it. Find the script just created in the Script scroll-bar, and click OK again. Reopen the item. Make sure the script is now attached to the item.
All of this closing and reopening can seem redundant, but this process is necessary to make sure the script gets added to the item properly, without annoying error messages!
10g). Now it's time to flesh out the rest of the script, by adding...
if (player.GetStage aaaFetchQuest1 == 20)
SetStage aaaFetchQuest1 30
Endif
... between the OnAdd and End functions. Overall, the script should look like this....
scriptname aaaFetchQuest1Script
Begin OnAdd Playerif (player.GetStage aaaFetchQuest1 == 20)
SetStage aaaFetchQuest1 30
Endif
End
Again, if everything got typed okay, there should be no problem / the script panel will close. If something did not typed propertly, there will then be some weird message, screaming any mistakes. I've been there, zillions of times. If this happens, something in the script is obviously wrong. The script editor will try to point us in the correct direction, by pointing which line has some erroneous data. It's often something small and easy to miss: a missing parenthesis bracket, or a period (full stop for your Brits) missing between Player and GetStage. Or a space between Set and Stage.
Or an If statement, without a corresponding EndIf.
For anyone who wants to know more about Ifs, EndIfs, OnAdds, and zillions of other checks and functions work, the Construction Set wiki linked above explains all this stuff in great detail, in its gigantic Scripts tutorials.
Once the script is saved and ready to go, THIS collection of words, symbols, and numbers is what will wind up moving the quest from Stage 20 to Stage 30, when we fetch that lost item.
One final thing can get added to this Fetch quest. This is entirely optional, and has to do with our character getting a point of Fame for delivering that amulet. This is a little silly of course, but necessary for learning. And maybe it's not so silly. Maybe Bob tells all his friends, half the population of Bravil, about our character's exploits. Sir Bob of Bravil makes our character a little more famous.
Just open up the Quest window again, go to Quest Stages, and in the final stage of 100. Type the following into the Result Script box...
ModPCFame 1
... right above the StopQuest script. Altogether, you might be seeing all of these scripts in Stage 100's Result Script box by now, assuming you've removed that lost item, added some gold, and added a point of Fame...
Player.RemoveItem aaaLostAmulet 1
Player.AddItem Gold001 X
ModPCFame 1
StopQuest aaaFetchQuest1
12). Click OK, closing the Quest window, and then close the Construction Set, choosing Yes if you want to save.
13). A good idea now is to go into the game's Data folder. Find the .esp file just made, and immediately make a copy of it. Paste this copy in a safe place, maybe a separate hard drive if you've got one. This is a really good habit to get into, for obvious reasons.
14). Get in the game, and play! If anything is wrong, just be patient. Go back into the CS, and fix it. You're alpha-testing your own material now, which in my opinion can be the most aggravating part of quest-making. I usually turn my TV all the way down (so that I'm not actually roleplaying anymore) if I begin to get frustrated.
But I almost always figure it out, whatever it is I'm trying to accomplish, and so can you.
Conclusion: You may notice that this fetch quest boils down to maybe a minute or two of actual gameplay in total (not including travel, exploration of lairs, battles with enemies, etc.). And maybe you've spent hours designing it with this guide. This may seem like a heck of a lot of work for not much playtime. Eventually though, all of the steps mentioned in this first tutorial will become second-nature for those who decide to keep at it. You'll be able to fly through these steps much more quickly.
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.
Awesome, ghastley.
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.
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.
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 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 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 windows
Locate 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 window
Make 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 window
Click 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.![]()
If (Player.GetDistance aaaCursedMineXMarker <= 400)
If (Player.GetStage aaaKillQuest1 == 10)
SetStage aaaKillQuest1 20
EndIF
EndIf
If (player.GetStage aaaKillQuest1 == 20)
SetStage aaaKillQuest1 50
EndIf
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 https://www.nexusmods.com/oblivion/mods/36370/. 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, https://www.nexusmods.com/oblivion/mods/47125 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.
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.
How to repair Hair, Game: TES IV: Oblivion
This one is going to feature Oblivion again, and it'll be a shortie. 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 https://www.nexusmods.com/oblivion/mods/22368?tab=files.
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...
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, http://geck.bethsoft.com/index.php?title=Category:NPC. 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.
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? 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!
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.
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.
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.
How to fix "Missing flowchartx32.dll" file. Game: TES V: Skyrim
I was going to post another modding tutorial, except this past weekend I ran into a problem with Skyrim's Creation Kit, and wrote the solution all up with a pretty bow upon it, for any others who can possibly have this problem. So here it is. Missing flowchartx32.dll is one of those things which is pretty obscure, and normally you wouldn't ever have to worry about. Until you do have to worry about it. Then it can occupy ALL of your time trying to find a fix.
The solution to this problem was found on https://forums.nexusmods.com/index.php?/topic/560134-could-not-get-flow-chart-class-object/ Note that some folks claimed success using methods found https://forums.nexusmods.com/index.php?/topic/555636-missing-flowchartxdll-creation-kit-error/, going into their PC's Safe Mode. Those solutions did not work for me, however.
Basically, the problem is this. When using the Creation Kit, if an error message shows up saying something about a "missing flowchartX32.dll file," especially when trying to use the Dialogue Views tab to write dialog for quests, here is what to do.
Oh, and I have Windows 8.1 on my gaming computer, but this seems to have worked for those who have earlier operating systems.
--------------------
1). Go to the folder where "flowchartX32.dll" is, or should be. This is the same folder where the Skyrim.exe lives. Obviously if you're not seeing this file in your Skyrim folder, you'll need to get it in there pronto, maybe locating it through a google search, perhaps. But if the file is there, yet you're still having this problem, continue onwards to step 2.
2). Right-click into the folder path bar, and select "Copy address as text." (I think those with earlier OS's can simply copy the text found in this bar).
Close the Skyrim folder.
3). Open up any Notepad page, and paste the folder path you just copied, onto this Notepad page so you can see what it looks like. On my gaming computer, the path looks like this...
C:\Modded Skyrim\SteamApps\common\Skyrim
4). For Windows 8 users, swipe the right side of the screen (Windows 7 or earlier can use their Start button). Now in the Search bar, type cmd.
5). An icon saying "Command Prompt" will show up. Right-click on this, and left-click Run as Administrator. A simple box with white-on-black text pops up. It'll have syntax saying C:\windows\system32> or something similar.
6). Type in the following: the letters cd, and then paste the path to your Skyrim folder after cd, by right-clicking the window icon in the top left corner. That should drop down a window menu that includes "Edit," which will have a sub-menu for copy, paste, etc. If there is no icon, the whole title bar may work in later versions.
So altogether, this is what I was seeing in total.
C:\windows\system32> cd C:\Modded Skyrim\SteamApps\common\Skyrim
7). Press Enter (or Return) on your keyboard. If there are any errors, the program will tell you right away. Hopefully there aren't any errors, though, and you'll be seeing this....
C:\Modded Skyrim\SteamApps\common\Skyrim>
8). Now type regsvr32 flowchartx32.dll after the text above...here is what it looked like for me:
C:\Modded Skyrim\SteamApps\common\Skyrim> regsvr32 flowchartx32.dll
9). Press Enter. Hopefully, a small panel will pop up saying "DllRegisterServer in flowchartx32.dll succeeded," or something similar. As long as a word like "succeeded" shows up, instead of something indicating "errors" are present, you're on the right track.
10). Click OK. Close the Command Prompt window.
Start up the Creation Kit. Problem should be solved.
I have heard that this problem has something to do with turning the Start Game Enabled toggle on and off too many times during the same quest, and saving the quest into its corresponding mod with this toggled turned on and off. I have not confirmed this to be true, though.
FWIW, you CAN paste into the command prompt window. At least up to Win 7, it works this way:
Right click the window icon in the top left corner. That should drop down a window menu that includes "Edit" which will have a sub-menu for copy, paste, etc. If there is no icon, the whole title bar may work in later versions.
Shortcuts like Ctrl+V won't work. Those key strokes will just get entered where you're typing. However, there is an option to change that, accessible the same way, in the Properties sub-menu. Of course, that then prevents you from entering those key sequences as data.
Okay thanks, ghastley. I'll see if this works with Windows 8, because you are right, ctrl + v doesn't work.
How to make a Fetch Quest (with multiple items). Game: Fallout 3
This is going to be another fetch quest, but this time it'll be directed at Fallout 3, rather than Oblivion. Since there are lots of similarities between the Construction Set (CS) and the GECK, there isn't much point in writing a pure fetch-style quest twice. So, in this tutorial I'll be talking about fetching multiple items rather than just one. I'll also try to illuminate any differences between CS and GECK that we come across, okay?
A lot of the things in this post can be used for the CS as well. So if you make a quest which fetches multiple items in the CS, you should be able to follow most of the steps here.
One way to fetch multiple items is to use "ItemCount," which is a variable often used when multiple items are involved. So today you'll be getting your first lesson in variables, perhaps. ItemCount, and other variables such as Dead or Timer, can be used to do all sorts of things. Today we are going to be using ItemCount to make our fetch quest bump forward while using a non-linear approach, and also generic (rather than referenced) items. In other words, say we've got three baseballs to find during a quest. We won't have to find these balls in any strict order if we use ItemCount, which frees the Player from following a strict path.
The items also won't need to be "special" (in the sense that they won't need reference IDs), but they will all need to share the same Object Script. So it'll be like picking up three generic baseballs, rather than one baseball specifically referenced (possibly owned) by Three Dog, another specific to Moira Brown, etc.
This lesson assumes you've already studied some of the steps, tips, and notes found in other lessons above, just so I don't repeat myself too much, and save some space. It also assumes the GECK is already opened, and you've got a mod you're already working with, or at least an idea for a mod.
-----------------------------------------
1). OBJECT window
Go to Actor Data > Quest. Single left-click on Quest, and all the quests appear in the right window. Right-click > New into this window. Start a new quest.
2a). QUEST DATA
Give your quest a Name, an ID, and Priority of 55. "Start Game Enabled" and "Script Processing Delay" can both be toggled on.
2b). Open up the Script button, which (again) is the button which looks like [...], and type in the following...
---------------
scriptname aaaFetchQuestScript
short ItemCount
-----------
Substitute the words 'FetchQuest' with the name of your quest if you'd like, but the syntax I'll be using today will be "scriptname aaaFetchQuestScript."
We're going to add to that script in a minute, but for now...
2c). Save the script as a Quest in the Script Type scroll-bar. Click OK so the Quest window closes. Save your progress, and then reopen your quest. Make sure your script is in the scroll-bar.
I am going to make this fetch quest a lot more basic than the Oblivion one up above, to save time and space, so I won't go into as much detail about how to create an NPC, how to use the Render window, etc. Study the Vendor NPC post up above, if you need to backtrack.
3a). OBJECT window
You'll need to make an NPC, unless you already made that vendor from the last tutorial, and want to reuse him or her. If this is so, you can use this guy/gal again, and he/she can be today's fetch quest-giver.
If you do it this way, you'll need to change the Priority of your fetch quest to 60 instead of 55, so the game recognizes that your fetch quest needs to get done before the vendor quest's dialog (especially Greetings) kick in again. If your NPC is totally new though, you won't have to change this.
I am going to be using the same low-life chem dealer I put into Moriarty's Saloon. This guy will be the one who wants my character to fetch three stacks of Pre-War Money, and bring them back to him. When he gets his three stacks, he will then give my character some caps, and the game will reward some XP. Ka-ching!, in other words.
From here on, you can use PreWarMoney like I am, or you can edit your own item from Bethesda's Object window. PreWarMoney can be found in the Object window > Items > Misc Items > Clutter > PreWarMoney.
3b). Edit PreWarMoney (or whatever item you're going to want fetched), and give it a new ID, saving this item as a New Form.
Note: It is possible to attach scripts to stuff Bethesda has already made without saving these items as New Forms, but it's just better to make our own ID. This way, our script won't wind up getting attached to every generic Pre-War Money stack (or whatever generic item you're fetching) in the game. Try to keep your own material clean from Beth's, if possible.
3c). Now to write that script. Or start it, at least. Open up your item-to-fetch, click on its [...] button, and type in the following.
----------------------------
scriptname aaaItemScript
short ItemCount
--------------------------------
You can substitute whatever words you'd like where "Item" is. aaaBaseballScript or aaaPencilScript. Whatever. In my game, the scriptname is aaaPreWarMoneyScript.
3d). Close the script, save it, and click OK, closing your item's panel.
3e). Now, reopen your item, and look for your script in the scroll-bar. Select this script, and press OK.
4a). CELL + RENDER windows
Place the item and NPC into any cell(s) you like. For convenience, I'm keeping my NPC in MegatonMoriartysSaloon, and placing my stack of edited Pre-War Money into MegatonMensRestroom. My current character is male, you see. Not many NPCs go in restrooms (why should they?), so the money won't get kicked around, yet this cell happens to be a public place, meaning that my character won't have to steal anything.
4b). Single left-click on the item in the Render window, and duplicate it (ctrl + D). Now you've got two items, though they're probably sitting in the same space. Drag one of these away from the original, and duplicate it again, so that there are three in total.
If you are putting items into multiple cells, obviously you won't be duplicating. Ctrl + D is a little trick which only works if each item is in the same cell.
Note: if your fetchable items are different from one another, for instance if you've got multiple items, each with its own ID name, this is okay. As long as the same script gets used for all of these, and that script can also be attached to the item, everything should work.
Some items can't have scripts attached directly to them though. Holotapes are an example. For these items, Reference IDs will need to be used, and then the main script can handle collection of these items. That's for another tutorial, though.
5). OBJECT window
Go back to Actor Data and find your quest. Click on the Quest Stages tab. Put seven stages into the Index. I am using the stages 0, 5, 10, 30, 40, 50, and 100.
6a). Topics tab
Right-click > New into the Editor ID window (Windows 8 users: this is the tall vertical window which doesn't have a name). Find and select GREETING.
6b). Make a greeting which the NPC will start with. "Yo, you got a moment?" is what my chem-dealer will say.
6c). Conditions window: make a GetIsID for your NPC, and GetStage Quest: 'aaaFetchQuest' < 5.
6d). In the Result Script (End) box, type Player.SetStage aaaFetchQuest 5
6e). In the Add Topics box, add whatever unique topic name you'd like. For me, this is going to be aaaFetchTopic.
6f). Right-click > New into the Editor ID window, find your unique topic, and click OK.
6g): Highlight the topic you just created, and add some dialog which the NPC will say. "So I gots these three stacks of bills hidden in the men's restroom... and I needs somebody to go get them for me," is what my chem dealer will say. "I can't go in there myself, 'cause I don't want the sheriff to see me goin' in there."
a). One of the differences between the CS and GECK is we can make NPCs move around in specific ways as they speak to us. Before you click OK, click on the Use Emoticon Animation toggle instead, so that it is off.
b). In the Speaker scroll-bar, look for any animation which seems like it'd be appropriate for the moment. There's a HUGE list in this scroll-bar, and not all animations will work (a animation for an ant or a brahmin, for instance, will not work on a human).
But for instance, I am choosing 3rdP1HPShrugs, which will cause my chem-dealer guy to look as though he's trying to be nonchalant.
Each exterior cell is 4096 units by 4096 units or 192 feet by 192 feet or 58.5 meters by 58.5 meters.
There are approximately 86 cells, counting from a bit below Leyawiin all the way up to the invisible border north of Cloud Ruler Temple.
192 x 86 = 16,512 feet. 5,280 feet = 1 mile. 3 miles = 15,840. So, north to south, the game world of Cyrodiil is slightly larger than three miles.
At some time in the past I did a tutorial on how to create the conversations between NPC's, which I'd just done for the staff of Gweden. I have all the screenshots of the Construction Set dialogs, but can't track down the text. I'm frantically Googling, trying to see where I might have posted it before. If it turns up, I'll copy it here.
That'd be great.
Making a weather-changing item. Game: TES IV: Oblivion.
This is going to be a shortie.
I had this idea for Sarah Phimm's game a bunch of months ago to make an item which would change weather, just like that, if she equipped this item. She is a vampire, and as we all know, when vampires get stuck outside in sunlight, things really start to suck for them. But, if the weather is "bad", if it is rainy for instance, vampires won't take the full effect of sun-damage they'd take on a sunny day.
So that was the idea. To make an item for my vampire character, so that if she happened to get caught outside when the sun was coming up, and had nowhere to run & hide, she'd at least be able to equip this magical item. This would keep things very roleplay-ish, without needing to play Weather God with the console.
This magic item was incredibly easy to create. I assumed I'd need to delve into magic scripting, something which I still have not learned yet. But such was not the case. Actually, getting this idea to work was merely as easy as retrieving a console code, and then attaching it to that item via script.
1). Open Construction Set, bla bla...
2). OBJECT window
First, choose an ordinary, non-enchanted piece of jewelry, or any item which is wearable, and not already enchanted. Although I chose an amulet for Sarah's game, this effect should work with any piece of jewelry, clothing, armor, etc.
But since I chose an amulet ...
Items > Clothing > Amulet.
Find any of the non-enchanted amulets, such as JewelryAmulet6Jeweled, right-click and edit this with a new ID and new name.
3). Make sure the item is Playable (duh). And also, make sure it hasn't already got a script attached to it. If it does, get rid of this script, so you can write your own.
4). Click OK, saving as a New Form. Find and reopen the new item.
5). Tap on the script button, which is the one which looks like [...], and then Script > New Script. And check out this incredibly advanced bit of coding, yo.
scriptname aaaItemScript
Begin OnEquip
If IsInInterior == 0fw 38eef
EndIf
End
"Item Script" can be whatever name you choose. ... and that's it! Note that the weather code there is for fog, and it's the same exact code that we'd use for console commands. "fw" = "force weather," and 38eef is what Bethesda chose for fog in the vanilla game. This code will still work if you've got All Natural installed in your game though.
We can choose any weather codes found on http://en.m.uesp.net/wiki/Oblivion:Console_Command_Tutorial, So to change this to sun, substitute 38eef with 38eee. Rain is 38ef2, and so on.
6). Close Construction Set and bla bla bla...
Faction-changing Armor and Clothing
Game: Fallout 3
Good evening. This one is going to focus on making faction changes, which are caused by simply putting on some clothes or armor. This will work best when changing outfits just before going from one cell to another, and is much more RP-friendly than using console commands.
I got this to work in Fallout 3 last summer, in Janet Telia's game. I was able to get her into a faction which was compatible with the RaiderFaction by having her put on some specialized raider armor, waiting an hour, and then entering a cell full of raiders. Once inside that cell, these enemies were now her friends. The entire faction of raiders remained friendly to her from that point on, all across the Wasteland, as long as she was wearing her special armor.
This should also work in Oblivion too, although I have not tested if it does, yet.
----------------------------
1).Open up the GECK, bla bla... First thing we're going to do is to make a customized faction.
1a). MAIN toolbar > Characters > Faction
Go ahead and make a custom faction by right-clicking > New into the Editor ID window. I called Janet's special faction aaaRaiderFaction, though you can call yours whatever you'd like.
NOTE: DO NOT just use one of Bethesda's factions (such as RaiderFaction). It is better to make a custom faction, rather than adding the PC to one of the game's premade factions. Before I figured this out, I was using the Bethesda raider faction. When Janet put on her raider-faction armor, she was accepted by raiders just fine. Problem was, she could not 'break' out of this faction just by removing her armor. Even if she shot somebody, they would continue to be her friend. Maybe this is a 'friendly fire' sort of function, so that if one raider shoots another, he/she won't just turn around and begin fighting this other raider, when they should be coming after us.
With a custom faction, the results worked just as I wanted them to. There were some limits though, and these limits will be discussed toward the bottom-third of this post.
1b). Give this faction a Name. You can toggle Evil on if you want to, which will temporarily influence how Karma works.
1c). Right-click > New into the Interfaction Relations window, and use the Opposing/Affiliated scroll-bar to find the faction you want to modify toward your character's custom faction.
1d). Let's say RaiderFaction got chosen during step 1c. For best results, make the Disposition Modifier 100, with Group Combat Reactions toggled to Ally.
Experiments can be tried with numbers lower than 100, and 'Friend' or 'Neutral' can also be chosen instead of Ally, if you want to make this faction-change happen with more of a question mark.
1e). Click OK (closing the Factions panel) and SAVE.
2a). OBJECT window
Go into Items. Edit an outfit (a piece of clothing or armor), and give it a unique ID. Make sure this item hasn't got a script attached. If it does, set this to NONE. Click OK. When asked if we want to save this under a new ID? Click Yes.
2b). The Script Type scroll-bar can stay as Object. Here is what to write.
------------------------
scriptname aaaFactionChangingArmorScript
Begin OnEquip Player
Player.SetFactionRank aaaFaction 1
End
Begin OnUnequip Player
Player.SetFactionRank aaaFaction -1
End
-------------------------------------
Where it says "aaaFaction", substitute this term with the name of your actual custom faction. So for me, I'm typing aaaRaiderFaction where it says aaaFaction.
And here's one final trick which is optional. It it possible to put messages into the script as well. This is for our information only, and is a way to make sure the mod's working. Some may find it immersion-breaking.
Object window > Miscellaneous > Message
3a). Right-click > New into the window.
3b). For ID, I am calling it aaaRaiderArmorEquipMessage. Copy that name and paste it on a Notepad file.
Give the message a name. Use the Icon scroll-bar to add an image to the message (although sometimes, the icon doesn't work in-game).
3c). Turn Message Box off, and change the Display Time slot from 2 to whatever. I find that 2 seconds aren't long enough sometimes for the message to sink in.
3d). Message can be whatever is desired. In my game it says "Hiya! I am now part of the Raider Faction, beeyatch!"
Click OK.
3e). Return to the armor script, and add ShowMessage aaaMessage somewhere between the OnEquip and End functions. A second message can be added which denotes our character moving out of the faction.
So in my game, in total, it says
scriptname aaaFactionChangingArmorScript
Begin OnEquip PlayerPlayer.SetFactionRank aaaFaction 1
ShowMessage aaaRaiderArmorEquipMessage
End
Begin OnUnequip PlayerPlayer.SetFactionRank aaaFaction -1
ShowMessage aaaRaiderArmorUnEquipMessage
End
There it is. 😶 This script will make sure the player-character gets added and removed from whatever faction desired, in a never-ending loop. However, there are limitations to this.
-- Make sure your character changes clothes in a cell which is separate from any enemies. Once this is done it's best to wait an hour (press the wait button), and then enter the cell which is being influenced. The faction-changing effect works best this way, and it's only realistic that a bunch of enemies won't change their hostile minds, simply because they witness our toon changing into some outfit!
Edit: I have recently discovered that we don't always need to be in a separate cell for this to work, however it helps if NPCs (if they are supposed to be hostile) don't see our character at the time of the armor/clothing change.
--I tried entering the raider-infested grocery store (the store next to Gold Ribbon Grocery, with all those raiders inside), for instance. Janet entered this store wearing ordinary clothes. The raiders inside were hostile. Then, I had her leave the building, changing into her special Faction Armor. Back inside, the raiders were now friendly. Back outside, change of clothes again, now they're hostile again.
However, after doing this several times, they eventually defaulted to friendly no matter what she was wearing.
...Of course, nobody would do any of this in the game. It's silly to change back and forth like this as we're actually playing. We only need to change into the outfit once before we enter their territory, and maybe change back out of it once, if we're going back into ordinary civilization again. I'm just highlighting that there are some limits, here. These limits won't be found though, until the gamer is doing some heavy experimentation.
--To break her friends-only status, I tried having her attack a raider. He ignored her attack at first, but eventually fought back. Once this moment was crossed, this guy was now NOT her friend anymore, and attacked every time, even if she ran outside and changed clothes from and to the Faction armor. Thing is, only that one raider attacked her. The others were still friendly to Janet.
Bottom line though: when just playing the game normally, change the character's outfit once, wait an hour, and then enter a cell with enemies in it, everything should work. Later, if the outfit gets removed, maybe your character's going back to Megaton or Rivet City (wearing outlaw armor wouldn't be appropriate) all of that should work too.
Making an NPC Follower Game: Fallout 3
Note: this method will work for Oblivion too, however, I also had some unsolvable problems with my OB followers. So for now, this only pertains to FO3. Oblivion has CM Partners, as well as Companion Share & Recruit. Both of these mods are so well done, it's almost pointless to try and top them.
Personally though, I've been dissatisfied with the follower mods I've seen in Fallout so far. Maybe that's why I decided to learn how to make my own.
-------------------------------------
1). Start up the Fallout 3 GECK, yadd yadda....
2). OBJECT window > Actors > NPC
Make a new NPC. Place him or her into the world somewhere. Do the usual: ID, Name, Race, and don't forget to give him or her a Voice Type. Once he or she is in the world, give him/her a Reference ID. Persistent Reference toggled on. I am calling this ID aaaFollowerRef for this lesson.
If the follower is going to be combat-oriented, choose an appropriate Class, like "SoldierScout" or "BrotherhoodKnight." Not Doctor, or Drunk.
We also want to give this NPC a reasonably good Disposition Base, so they'll like our character.
3). Stats tab:
Change the various settings to make this NPC as you'd like, so they'll be strong, or agile, or proficient with a particular type of weapon, etc. Note that Class tends to change those Skill values around, if Auto Calc Stats is chosen.
4). Factions tab:
Putting the NPC into a particular Faction is good, but the PlayerFaction is NOT important at all. Do not put them in Player Faction, I have found it can actually cause problems.
AI Data tab
This can vary a lot of course, depending what kind of NPC follower you're going to make. A combat-oriented character (if we want him / her to live) should have Aggression set to Aggressive, Average for Confidence, and Helps Friends and Allies for Assistance. We don't want them too aggressive or confident; this can cause them to do stupid things.
Even with the settings I just suggested, they can still do stupid things. But those are the settings I prefer. If you'd like to know more about setting up an NPC, just http://geck.bethsoft.com/index.php?title=Category:NPC.
5). OBJECT window > Actor Data > Quest
Right-click > New into the Editor ID window. Quest Name is not important, except for your own reference. None of this will appear in-game, except NPC dialog.
Make sure Start Game Enabled is on, and Priority can be 55. Script Processing Delay can be on.
6). We're going to write a script now.... under the main script area, so make sure its type is Quest. Note that this script is ultra-short.
===========
sciptname aaaFollowerScript
short Status
; 0 = Sandbox, 1 = Follow, 2 = Wait
============
Note: The semi-colon to the left of 0 = Sandbox is there to make sure the game's engine won't read the words which come after the semi-colon. The game will not actually read anything after a semi-colon (on that particular line of text, anyway), so you can type whatever you'd like after one, for your own reference.
Save the script and close it. Click OK (closing the Quest window), save, reopen the Quest window, and find your script in the scroll-bar. Click OK again.
Now, the weird thing about followers or companions in Fallout 3 is: there are two methods which will work. Method 1 begins below. Method 1 uses AI Packages which are attached directly to the NPC's AI Packages tab, however, I have found that sometimes this method does not work 100%. One follower might follow us. Tell them to Wait, and they still follow us, for instance. So... follow steps 7a through 9c below for Method 1. Method 1 is the 'official' method taught in a few You Tube videos, okay?
If stuff is not working properly (Follow, Wait, and Sandbox, mostly) go to Method 2, which is at the bottom of this post.
7a). Go back into the NPC's AI Packages tab, right-click > New into the AI Package List window, and make a Sandbox AI, by changing the Package Type scroll-bar to Sandbox. Give the package an ID name too. I am calling it aaaFollowerSandbox for this lesson.
7b). Click on the the Wander Location button, and change it from Near Editor Location to Near Current Location. Click OK. Make Radius = 1000, or whatever number you choose. Numbers lower than 50 will cause them to wander in almost in a circle. Anything over 500 will give the follower some breadth, causing him or her to move around an entire room or two.
Basically, this Sandbox package will be used whenever we leave the follower in a situation that isn't dangerous. For RP purposes, they should be able to move around and do stuff in their time off, since they're "at ease".
7c). We can toggle as many Allowed Behaviors as we'd like. In the Flags tab, we can also leave Enable Fallout Behavior toggled on, for somebody who's got some dynamic off-time going. Or we can toggle this off, and then click whatever behaviors we'd like the follower to allow.
8a). Now make a Follow AI. Follow all the steps in 7a, except find Follow in the scroll-bar this time. I am calling it aaaFollowerFollow
8b). In the Follow Target area, choose "Specific Reference," and choose Player in the Ref scroll-bar. "Cell" is not important.
8c). "Follow Distance" can be set at 300 for close-quarter action, or much further away if we want a tail rather than a shadow.
8d). Uncheck the "EndLocation" toggle.
8e). Flags tab
We can leave Enable Fallout Behavior on (or turn this off, but choose a few individual flags, like "Reaction to Player Actions"). But make sure to also check the "Continue during Combat" toggle on. "Allow Swimming" and "Allow Falls" can also be checked on.
On the other hand, "Allow Swimming" might be bad in some cases. It really sucks seeing your follower go rushing underwater just to defeat a mirelurk. Next thing you know, your stupid follower is drowning.
Now, to make a Wait AI. "Wait here" is going to be used to make an NPC just stand in one place. This is obviously best to use once we're out in the field again. The follower won't go wandering off, and is less likely to attract danger because of this. I am naming this final AI Package aaaFollowerWait.
9a). Right-click > New into the Editor ID window again. Choose "Guard" for the Package Type.
9b). Under "Reference to Guard" leave the 'Linked Ref' toggle on. "Remain Near Guard Location" can also be on. Press the rectangular button (it should say Near Editor Location by default) and change this to Near Current Location. Guard Location Radius can be 0, for best results.
9c). Flags tab
Most of these should be off, unless we've got ourselves a chatty, undisciplined follower who doesn't stand down very well. For best results, of course, just turn all the Fallout Behavior stuff off.
12). QUEST window > Topics tab.
We're going to make a total of four GREETINGS, and five dialog Topics. Go ahead and right-click > New a GREETING topic, as well as these five dialog topics: one to do with Following, Waiting, Trading, getting Fired, and a "Goodbye" topic.
12a). The first GREETING should literally be a 'first time' greeting, which will be what the follower says to our character when first met. "Hey, who are you?" or whatever. That's a bad example, but you can get more creative here. Make sure "Say Once" is toggled on. The only Condition will be a GetIsID, for that particular NPC.
Now, in the Add Topic window, we can link from this first GREETING to only the Follow topic.
>>> 12b). The second GREETING assumes we went ahead and got this NPC to start following us. Conditions go....
GetIsID aaaFollowerName == 1.00 AND
GetQuestVariable 'aaaFollowerQuest', Status == 1.00
... since this GREETING will be what the follower says when actively following. Dialog for this greeting can be "What's up? Why have we stopped?" or whatever.
In the Add Topics box, right-click > New, and then link this GREETING to the Wait, Trade, You're Fired!, and Goodbye topics. When the NPC is already following us, we'll be able to tell him or her to "Wait here," "Can we trade some things?" and so on.
>>> 12c). The third GREETING is going to be used when the guy has been waiting around in Guard mode (not moving, in other words). "Hey I'm bored. When are we gonna get going again?"... Copy All Conditions from the second GREETING, and paste them into the third. But we're going to change the final number to match what's in the Main Script.
GetIsID aaaFollowerName == 1.00 AND
GetQuestVariable 'aaaFollowerQuest', Status == 2.00
In the Add Topics box, add all the topics except the Wait one, since the NPC is already waiting during this greeting (duh).
>>> 12d). The fourth and final GREETING will be used once the NPC has joined us (or we've fired him or her, or he/she hasn't been rehired yet), yet still is in Sandbox mode. So the NPC will say "Want me to follow?" for this GREETING, or whatever.
GetIsID aaaFollowerName == 1.00 AND
GetQuestVariable: 'aaaFollowerQuest', Status == 0.00, since this GREETING will be what the follower says when he or she is still sandboxing.
In the Add Topics box, only add the Follow and Goodbye topics. This way, we have the option to have the NPC follow us (breaking Sandbox mode) or simply stay there.
13a). For the NPC following topic. Give the NPC some stuff to say under Response Text ("YES, time to kick some Wasteland ass!") and add some words into the Prompt slot to make some text for us to click on, telling the NPC that we'd like him or her to start following us. "Hey, I could use your help," is fine.
Paste the same Conditions from the GREETING, but this time it will be ...
GetIsID aaaFollowerName == 1.00 AND
GetQuestVariable: 'aaaFollowerQuest', Status != 1.00
Note: != means "does not equal one."
13b). In the Result Script (End) box it should say these three things:
Set aaaFollowerQuest.Status to 1
aaaNPCFollwerRef.EVP
SetPlayerTeammate 1
Substitute "aaaNPCFollowerRef" with the actual Reference ID of your follower.
> EVP stands for EValuate Package. It is what the GECK uses to translate stuff, somehow.
*Note that final script: SetPlayerTeammate. This will make sure the follower tends to mirror the pc's behavior. So the follower will sneak if we do. He/she will draw their weapon when we do, and also use up any ammo we give him or her. Ammo which is a default part of their inventory though (from the GECK) will not decrease.
13c). In the Add Topics box, add the Wait, Trade, and Fire topics, so that even after we ask them to follow, we can change our mind, or still trade with them.
14a). Now, the Wait topic. Follow all the steps from the Follow topic, but make sure "Goodbye" is toggled on, if you want a quick exit.
14b). Paste all the same Conditions from before, but this time the quest variable will be....
GetIsID aaaFollowerName == 1.00 AND
GetQuestVariable 'aaaFollowerQuest', Status == 1.00
14c). Result Script (End) should be
Set aaaFollowerQuest.Status to 2
aaaNPCFollowerRef.EVP
15). Next is the Dismiss (or Fire) topic. Give this an appropriate Prompt ("Time for us to part ways, pard'ner...") and NPC Response Text ("WHAT? I thought we were buds! You suck!"). "Goodbye" should be checked on.
GetIsID aaaNPCFollower == 1 AND
GetQuestVariable: 'aaaFollowerQuest', Status != 0
The Result Script (End) should say
Set aaaFollowerQuest.Status to 0
aaaNPCFollowerRef.EVP
SetPlayerTeamMate 0
Note that last one, the teammate one. This will cancel any behaviors the NPC was up to before we fired him or her. So if this NPC was sneaking especially, they will go away while not sneaking.
16a). Now, Trading topic. Do all the stuff with dialog and Prompts. Set the condition window like this to make sure he only trades while following.
GetIsID aaaFollowerName == 1.00 AND
GetQuestVariable aaaFollowerQuest.Status == 1.00
We can also set it so that he'll trade only while waiting, by changing that 1 to 2. And there's actually also a third option, as seen below...
GetQuestVariable aaaFollowerQuest Status != 0
I actually like this one the best. It allows the NPC to trade while they're following or waiting. Only when sandboxing will we not be able to trade stuff.
16b). We also have a choice of 'hearing' the NPC speak either while his/her inventory is opening, or after it opens. If we put the following in the Result Script (Begin) window, it will make them speak while we are looking at their stuff, the way some merchants speak while we're starting to browse their menus.
OpenTeamMateContainer 1
If we put this into the End box, they will say what they have to say, and then show us their inventory.
The 'Trade" topic does not need anything in the Add Topics box, so leave this box blank.
17). Finally we need a way to get out of conversations. which is the Goodbye topic. We can just make some dialog and Prompt, and choose the Goodbye toggle. We can use the same GetIsId, but we finally won't need a GetQuestVariable, so that we can say Goodbye to this NPC whether or not he /she is following.
18). Now... Priorities. In the upper right hand corner of the Topic panel is a small slot for Priority. Give this Goodbye topic a lower Priority than the others (all of which will be 50 except for GREETING, which is 55). We can give the Goodbye topic 49. What this does is it causes the NPC's topics to appear from top to bottom according to how high each Priority is. "Goodbye" will always appear toward the bottom.
That should be all. Note that during actual gameplay, NPC followers sometimes wander off and do their own thing, when they're supposed to be following us. This happens especially when going from one cell to another: indoor to outdoor is most common. This can get frustrating! But even though there are some long pauses when it seems the NPC is nowhere around, they eventually do start following.
19A). Oops, one more thing. We can add a script to the NPC follower which makes them not only heal up, but which will also restore several of their stats, especially once combat is over. Here it is.
--------------------------
scriptname aaaNPCFollowerScript
Begin OnCombatEnd
If (GetPlayerTeammate == 1)
ResetHealth
restoreav PerceptionCondition 100
restoreav EnduranceCondition 100
restoreav LeftAttackConditino 100
restoreav RightAttackCondition 100
restoreav LeftMobilityCondition 100
restoreav RightMobilityCondition 100
EndIf
End
Begin OnDeath
Set aaaFollowerQuest.Status to 0
SetPlayerTeammate 0
EndIf
End
---------------------------------
This script is especially helpful, since followers don't seem to use Stimpaks, even if we add these to their inventories. Grrr.....
The death script at the bottom is basically a "clean up" function, which turns the entire follower quest off for that particular NPC, once he or she had died. It cancels any running background scripts to keep the game not sending or collecting any information to this dead NPC.
METHOD 2.
This portion of the tutorial will hopefully work 100%, assuming the follower(s) don't always do what they're told. Don't worry, this is easy.
20a). Remove the AI Packages (Sandbox, Follow, and Wait) from all NPC followers involved.
20b). Open up the follower quest > Topics section. Start with the topic which causes them to Sandbox. In the Result Script (End) box, remove the aaaFollowerRef.EVP part. Leave the "Set aaaFollowerQuest.Status to 0" and "SetPlayerTeammate" parts alone.
20c). Now type aaaFollowerRef.AddScriptPackage aaaFollowerSandbox and put this below the aaaFollowerQuest.Sandbox line of code.
20d). Do the same for the Follow and Wait parts of the quest.
Voila.
Timer Scripts. Game: TES IV: Oblivion or Fallout 3
Today's post is going to be another shortie, and shall deal specifically with timers. I use timers a lot, for a bunch of different ideas, so it'll be good to have a timer standalone post.
There are a couple different types of timers Bethesda uses; daily and hourly versions. I've only figured out the daily ones. Timers can be used in all sorts of ways for scripting, for a variety of different functions. In this case, the timer script below will cause a quest stage to advance.
1). Open up the Oblivion Construction Set, or Fallout 3 GECK. File > Data.
2). Find the esp you've been working with and activate it, bla bla bla..
...Let's say a quest is already being written, and there are two quest stages. For now, I'll call them Stage X and Stage Y. Between these two stages is going to be a timer script, which triggers after Stage X begins. And Stage X begins due to some sort of event. This event can be any number of things: Maybe an NPC finishes pontificating a speech. Maybe a door gets unlocked. Maybe an enemy gets pwned. Maybe a certain calendar day gets passed. Whatever it is, the event causes Stage X to occur. Once X is happening, now the timer begins its job. The timer counts down a day, or a certain number of days. Once the timer's job is done, the quest advances from Stage X to Stage Y.
Hope that made sense. Basically the process goes: event occurs, quest bumps to Stage X, timer begins, a day (or more) passes, timer ends, quest bumps to Stage Y.
That is just one example of how a timer script can be used. And here is how to set it all up.
3). Go into your quest's Quest Data tab. Open up its main script.
And here is the script necessary to make the timer begin...
-------------------
scriptname aaaQuestnameScript
short Timer
short StartDay
Begin GameMode
If (GetStage aaaQuestname == X)
If (Timer == 0)
Set StartDay to GameDaysPassed
SetTimer to 1
EndIf
EndIf
If (Timer == 1)
If ((GameDaysPassed - StartDay) >=1)
SetStage aaaQuestname Y
Set Timer to 0
EndIf
EndIf
End
------------------
Notice the "StartDay) >=1" part. The number 1 means at least one day must pass before the quest stage advances from X to Y. The number 1 can be changed to whatever you'd like though: 3... 10 .... 16 whatever you'd like. I'm sure there is some sort of limit here. Not sure what this could be though. I've gone as high as 30.
Let's say Stage X is actually Stage 30, and Stage Y is actually Stage 40. Altogether, this means an event happens which sets Stage 30 (whether an NPC gives us information, a door is opened, the death of an NPC occurs, whatever). Since the quest is at 30, this triggers the timer to begin. After a day (or more) has passed, the timer automatically moves the quest's stage to 40.
During playtesting, the timer might sometimes require more than an actual day before it does its job. We've all been there during certain Bethesda quests, right? We wait and wait for ... whatever the quest is supposed to do next. An example is during Oblivion's Main Quest, when Martin needs time to translate the Mysterium Xarxes. This takes several days, if I remember correctly, during which some gamers can become impatient.
I think it all depends on what hour the timer began. In-game days begin at midnight, just like they do on Earth. I haven't figured out what this means in-game though, pertaining to timer scripts. Does the timer begin counting at the very hour the event occurs? (9 pm, for instance?) or does it start at midnight, since that's the beginning of the next day? .... I haven't figured that out, yet.
To be safe, if you want 10 days to go by, and the quest must get something done within 10 days, you can use the number 9 instead of 10, in the StartDay line. Chances are, 10 days are what will pass.
4). Save the script and close it.
And that is all. As I said, timers can be used to do all sorts of things, not just triggering quest stages. The first time I used a timer, I managed to make a quest advance, but the timer also made two NPCs teleport from two outside cells, into Summitmist Manor. These two NPCs met, had a conversation full of threats and insults, and then began attacking one another.
==============================================================
And here's a timer I wrote in which time is counted in seconds, rather than days. This timer can repeat itself, too. The idea: My skooma dealer, if he makes a sale, won't immediately be able to just make another sale right away, to the same NPC or to any other NPC. He must wait 30 seconds. The idea being: we can't just spam sales to the same NPC (asking them over and over), the temptation will be there to move on to another NPC.
Making a sale (via dialog with skooma den addicts and bandits) causes the DoOnce variable to go from 0 to 1
1). Start the script like so...
scriptname TimerScript
short DoOnce
short Timer
Begin GameMode
End
2). Change Script Type from Object to Quest and save.
Close the script, press OK, closing the quest, reopen the quest and find the script in the scroll-bar. Click OK again, and reopen.
3). Here is the rest of the script.
scriptname TimerScript
short DoOnce
float Timer
Begin GameMode
If (DoOnce == 1) && (Timer < 30)Set Timer to Timer + GetSecondsPassed
EndIf
If (DoOnce == 1) && (Timer >= 30)Set DoOnce to 0
SetTimer to 0
Message "I should try for another sale."
EndIf
End
Making a house for sale or rent. Game: TES IV: Oblivion
(This also works for Fallout 3, but there are enough differences between each game that Fallout will get its own post).
This one is going to explain how to make a house (or flat, or whatever sort of dwelling you'd like) into something we can not only buy, but also rent. And when we rent this space, we'll be able to make it rentable for an entire month.... or however long you'd like.
But why rent, when we can just buy?
Glad you asked. It's because in many cases (if we're keeping things somewhat realistic, as per the vanilla game's policy on housing prices), our character cannot afford the house he or she may want to buy. Not until later on, when lots of money has been accrued. Renting is cheaper, therefore we can get a place earlier. I also like the idea of having something to always spend money on. And it's just fun making this stuff up, and seeing it all work in-game.
We can create a new place to live, or we can use one which is already in the game, it doesn't matter. Here is my personal story on how the idea came about.
1a). CELL + RENDER windows
First thing to do is find the place's interior in the cell window, and then click on its Door Marker so now we're outside. Double left-click on its door. Give this door a Reference ID. I'm going to give this door a Ref ID called aaaFrontDoorRef.
1b). Click on the Lock tab too, and lock that door if it's not already locked. Or, lock that door with a tougher lock than it has. Click OK, closing the door's Reference panel.
1c). OBJECT window > Items > Key. Edit a key, save it as a New Form. If the door already has a key, this key can be used and a key won't need to be created.
1d). Reopen the door's Reference panel > Lock tab. Use the door's Key scroll-bar to find the key you just made. Again, if it already has a key, just keep using that one. Click OK.
2a). OBJECT window
Edit a named NPC. I wanted this NPC to also buy & sell stuff, so for convenience, I edited Velus Hosidius, the guy who runs the Merchants' Inn in the I.C. Market District. Since Velus is already a merchant, this will make setting him up easier. I edited his ID to aaaHouseAgent and changed his Name to Leyawiin House Agent.
Click OK, closing the NPC's panel.
2b). Place the NPC housing agent out in the world and give him or her a Reference ID. This NPC is going to be our agent who we rent the house from, or buy it from. So depending where we put him, we should alter his Faction, his AI, his Inventory, etc.
2c). Class can stay as MerchPublican, unless there's some specific reason to change it.
2d). Whoever you chose to edit, make sure to get rid of all his or her AI. If you want the agent to buy & sell stuff, you can keep any AI that has the "Offers Services" toggle on, just make sure to change the AI package's Cell Location to where the NPC has been placed. You can also add your own AI (making the agent travel or sleep or whatever) though that is optional.
2e). Get rid of any script too, by scrolling the scroll-bar up until it says NONE.
2f). Click OK and use the main tool bar to SAVE.
2g). Now, open up your NPC house agent's panel again. Start a new script. The script's Script Type will stay as Object, and the script itself is incredibly simple, compared to what Velos had.
-------------------------
scriptname aaaHouseAgentScript
short Rent
-----------------------------
2h). Close and save that script. Click OK (closing the house agent's panel) and reopen it. Find the house agent's script. Click OK again. And that's all for his script.
It's a good idea to leave the agent on-screen, in the Render window. Later on when conditions are being set up (as the quest is being made), the agent can be clicked upon to quickly set up some stuff that'll be gotten to in a few more steps.
3). QUEST window > Quest Data tab
Press the Q button on the main toolbar, and start a new quest. All the typical things that usually go into the Quest Data page will also be in this one. Start Game Enabled toggled on, GetIsPlayableRace == 1.00 under Quest Conditions, etc. The only difference is we don't have to set Priority very high. Matter of fact, it can be as low as 10, especially since the NPC we're dealing with won't be associated with any other quests.
4). Quest Stages tab:
A minimum of three quest stages go in the Index window. I am choosing 0, 5, and 100.
You can add more stages than this if you'd like to build some sort of story, and make this into an actual quest. But the basic build only requires three stages.
5a). Topics tab
Go ahead and give your NPC a GREETING. He / she will explain that there is a house for rental or purchase in his / her dialog. "How fares thee? My name is X, and I am the official housing agent here in X. Have you come to rent or buy a home today?"
There are three Conditions:
GetIsID aaaHouseAgent == 1.00 AND
GetStage aaaQuestName < 5.00 AND
GetScriptVariable 'aaaHouseAgentRef', Rent == 0
For the GetScriptVariable, when it asks for a reference, just click the "Select Reference in Render Window" button, and then double left-click on the agent. This'll set things up nice and quick.
.... that final Condition (the GetScriptVariable) is one I'd never used before, at the time that I made this mod. What this does is makes sure the agent ONLY says this greeting if we have not rented the place yet. Of course, this is the first time we're meeting the agent, so of course it hasn't been rented yet. But that line of code will show up several times later on, and it's got an ability to make sure certain dialog happens when the agent is spoken to, or does not happen.
Buying the place won't require this variable, because if we can afford to buy it, the entire quest simply ends. But if we rent it, the game needs to know whether or not we've already rented the place, so that the agent's dialog fits what is happening. This variable will also ensure that the game won't keep taking our money, if we accidentally try to rent after the place has already been rented. .
When we speak to this agent for the first time, this will bump the quest into a "middle" stage, which I'm calling Stage 5. This stage does not actually need a Log Entry (it's like if we rent a room from Velus, or any innkeeper; there is no need for a quest stage to appear). But it's important to make this quest move forward via SetStage. This way, we can add dialog which includes the moment that agent is first met, and also after we meet him or her. Dialog will be different in each situation, which adds some realism.
5b). So, in the Result Script add Player.SetStage aaaQuestName 5
Substitute your quest's name where it says "aaaQuestName."
6). Choices box: Add two dialog choices here: one which will lead to renting the space, another which will lead to buying it. aaaRent and aaaBuy.
7a). First, let's discuss renting. In the Editor ID, find the two Choices just added, and add them into this window as well. Now let's choose the Topic which will allow rental dialog.
7b). "How much to rent the place?" we can put under Topic Text. And give the agent a response. "It's your lucky day! The market has been down, and so we're asking for 300 gold per month," or whatever you think is appropriate.
7c). In the Conditions window, we can just copy/paste everything from the GREETING, including the Script Variable. The only difference will be the GetStage Condition, which will reflect that middle stage the quest has bumped to.
GetIsId aaaHouseAgent == 1.00 AND
GetStage aaaQuestName == 5.00 AND
GetScriptVariable 'aaaHouseAgentRef', Rent == 0
7d). Now, add two more choices in the Choices box: one which is a "Yes" response (aaaRentYes), and one which is a "No" response (aaaRentNo).
7e). Add these into the Editor ID window, and change the Topic Text for each into plain English. "Yes, I'd like to rent it", and "No, I changed my mind."
First, the aaaRentYes topic: Once we're back in-game, and at the moment when we wish to rent, there has to be some way for the game to know if the character has enough money. If the character can afford to rent it, there'll be a response for this. We'll also need to make a response which the agent will say if we can't afford to rent it. Go ahead and make both of these responses: "Very well, your house has been rented. You'll find its door unlocked for the next 30 days," or "Hmm, seems you haven't enough gold at this time."
8a). Let's say the agent is asking 300 gold a month, and our character can afford this. Here are what will go in the Conditions box for that response...
GetIsId aaaHouseAgent == 1.00 AND
GetStage aaaQuestName == 5.00 AND
GetScriptVariable 'aaaHouseAgentRef', Rent == 0.00 AND
GetGold NONE >= 300.00
8b). Toggle "Run on Target" ON for that final condition (the GetGold one). The character needs to have 300 gold or more, to make this response happen, and the game engine needs to be able to look into the character's inventory at this moment. If Run on Target is not toggled on, the game won't be able to "see" how much gold the character has.
8c). In the Result Script box, add the following.
aaaFrontDoorRef.unlock
Player.RemoveItem Gold001 300
Set aaaHouseAgentRef.Rent to 1
SetCellOwnership Cell
> Substitute 'aaaFrontDoorRef' with the Reference ID you gave the door of your rentable space.
> Substitute 'Cell' with whatever cell your character is going to be living in. This assumes (of course) the Player does not already own this cell. So in my game, that final script is SetCellOwnership LeyawiinCingorsHouse
Overall ... when the agent is spoken to, and we tell him or her we'd like to rent the place, what'll happen is the game will automatically unlock the place's door IF our character has 300 gold, or more. The game changes the place's Rent variable from 0 to 1, which causes the agent's dialog to follow a different path if we try to speak to him / her again. And finally, the game makes sure the cell now belongs to the player-character.
9). Now ... if your character can't afford the 300 gold, here are the Conditions for this...
GetIsId aaaHouseAgent == 1.00 AND
GetStage aaaQuestName == 5.00 AND
GetGold NONE < 300
... Again, make sure GetGold has Run on Target toggled ON. "Goodbye" can also be toggled on, making the NPC ForceBye us, because he or she's not happy that we're wasting their time.
10a). Make a second GREETING, this one saying "You're back. And the place is still available. Would you like to rent or buy it?" ... The NPC will say this Greeting after the place has been rented, but 30 days have passed, therefore the rental has expired.
10b). Again, include the same topic Choices (for renting or buying) which were included during the first GREETING: aaaRent and aaaBuy. These choices will lead in the exact same directions as they did after the first GREETING, which ensures that this quest is repeatable, giving us maximum choice all along.
Conditions look like this....
GetIsId aaaHouseAgent == 1.00 AND
GetStage aaaQuestName == 5.00 AND
GetScriptVariable 'aaaHouseAgentRef', Rent == 0.00
10c). Now, make a third GREETING. This one will show up after the place has been rented, but the rental has not expired yet: "You are back. How is your lovely home? You have already rented it, are you thinking of buying today?"
GetIsId aaaHouseAgent == 1.00 AND
GetStage aaaQuestName == 5.00 AND
GetScriptVariable 'aaaHouseAgentRef', Rent == 1.00
We have not written any "buy" dialog yet, but we'll do that in a moment. For now, just click OK (closing the quest window) and save. And reopen the Quest window.
11a). QUEST DATA tab
It's that time! Time to write a script, and it's going to be a timer script, just like in the post above this one. This timer script will allow the game to rent us the place for however long we'd like. Let's say we're renting it for 30 days. First make sure the Script Type scroll-bar is on Quest (not Object). Here is what should be started...
-------------------------------
scriptname aaaHomeScript
short Timer
short StartDay
Begin GameMode
End
=================
11b). Type that up and close/save it. Click OK (closing the quest window) and reopen the quest window.
11c). Find the script in the Quest Data tab's script scroll-bar. Click OK and reopen.
11d). And here is the rest of the script.
------------
scriptname aaaHomeScript
short Timer
short StartDay
Begin GameMode
If (aaaHouseAgentRef.Rent == 1)
If (Timer == 0)
Set StartDay to GameDaysPassed
Set Timer to 1
EndIf
EnfIf
If (Timer == 1)
If ((GameDaysPassed - StartDay) >= 29)
If (Player.GetInCell Cell != 1)
Set Timer to 0
aaaFrontDoorRef.lock 100
set aaaHouseAgentRef.rent to 0
Message "Your home rental has expired", 36
EndIf
EndIf
EndIf
End
----------------------------
So... this timer ensures that several things will happen. When the agent has been paid 300 gold, this begins the timer's script. After 30 days have passed, this script now LOCKS the front door with a "Needs a Key" lock. An easier lock can be placed here if you'd like. Just change 100 to any number between 1 and 99, if you want a situation in which the house can possibly be broken into. This door will ONLY Lock if the character is not inside the cell though, ensuring the character won't get locked in. There is also a message which tells the player when the rental terms are over, which will stay onscreen 36 seconds. This part is optional and may be game-breaking for some, but it helps to know if the quest is working, or not.
Finally, in the line which says StartDay, note that I put 29 instead of 30. The game always seems to add an extra day.
Optional: If desired, the game can also give the character the key, which opens the front door. Make this key a Quest Item, so it can't be dropped, and then picked up later on after the rental has expired. This key can get added via dialog, at the moment of rental (player.AddItem aaaFrontDoorKey 1 would go into the Result Script box). This key can also be removed after 30 days have passed. The Main Script is used to remove this key, once the timer is finished, by putting Player.RemoveItem aaaFrontDoorKey 1 into the second block of If/EndIf texts, under the line which says aaaFrontDoorRef.lock 100. Adding a key during the rental phase is more necessary in Fallout than it is in Oblivion (Fallout doors tend to lock themselves prematurely).
12a). TOPICS tab
Now, it's time to finally going to add dialog and Topics which will allow the agent to sell the place. Selling is not nearly as complicated as renting. Click on the Buy topic you created before, and change its Topic Text to something appropriate. "How much to buy the place?" or whatever. And add some appropriate text like as a Response. "It's your lucky day! We're asking just 2000 gold."
Conditions look like this:
GetIsID aaaHouseAgent == 1.00 AND
GetStage aaaQuestName == 5.00
12b). Let's say the place does cost 2000 gold. In the Choices box, make a choice which says includes a Yes response, and one which includes a No response: aaaBuyYes and aaaBuyNo. Add both of these into the Editor ID as well.
12c). For the aaaBuyYes topic, if the character has the 2000 gold, everything moves forward, and the entire quest comes to an end.
Conditions:
GetIsId aaaHouseAgent == 1.00 AND
GetStage aaaQuestName == 5.00 AND
GetGold NONE >= 2000
Make sure "Run on Target" is toggled ON for GetGold.
12d). Result Script is very simple: Player.SetStage aaaQuestName 100
12e). Make a second response for aaaBuyYes, in which the character wishes to buy the place, but hasn't got enough gold. "Ahhm. Seems you haven't enough. I asked specifically for 2000 gold!!!"
GetIsID aaaHouseAgent == 1.00 AND
GetStage aaaQuestName == 5.00 AND
GetGold NONE < 2000
12f). Toggle Goodbye on for this response, if the agent becomes haughty, angry, or whatever. Or maybe the agent remains cordial. Don't toggle goodbye, if this is so, and make the agent smile.
13a). QUEST STAGES tab
Go to the final stage (I am calling this Stage 100). Add a Log Entry, denoting that the house, the warehouse, the loft, etc. has been purchased. "I have decided to purchase the home.... bla bla bla."
Result Scripts should be....
Player.RemoveItem Gold001 2000
Player.AddItem aaaFrontDoorKey 1
SetQuestObject aaaFrontDoorKey -1
StopQuest aaaQuestName
> The "SetQuestObject" script is only necessary if the key has been made into a quest item earlier for the rental phase. If it hasn't, don't worry about this script.
> Since we're purchasing this house and the agent will never talk to us again, he / she simply gives us the key we made in step 1a.
13b). Don't forget to toggle Complete Quest on.
14). Topics tab
Finally, fill in the Topic and dialog which causes the PC to back out of buying the place. This is the topic I called aaaBuyNo earlier. "2000 is too much," or whatever. Again, the NPC's response can be haughty if you'd like. Conditions are just the same GetIsID as before, along with the GetStage pertaining to Stage 5, or whatever number you chose for the quest's middle stage.
Voila.
Cripes, it's been since JUNE since I've added one of these?
This one is going to teach how to add songs to a radio station in Fallout 3. Last summer it was my goal to get heavy metal into Janet Telia's game, because in my RP with her, there was some sort of stash of all kinds of modern music, and she grew up on metal.
SubRosa tried to teach me how to do add songs to radio last summer, but I wasn't able to get it back then. I figured out my own way though. It requires a radio station mod which can be found here: https://www.nexusmods.com/fallout3/mods/18358 Now, this may seem unethical, since I'm tearing into somebody else's mod. I'm not going around claiming the author's work to be mine, at least.
-----------------------------------------------
1). First step is to find some songs in mp3 format. On my computer, they will show up as HP Connected Music Files (colored red). There are all sorts of ways to get music onto computers nowadays, legally, or gray-area-gally.
2). Copy/paste these songs over to Fallout 3 > Data > Sound > Songs > Radio > OnTheRoadRadio. As an example, I am going to add the song https://www.youtube.com/watch?v=L_BJlBjF2Vc by The Cure.
3). Open up the GECK. File > Data > OnTheRoadRadio.esp. Make this esp active. (duh)
4). OBJECT window
Go to Miscellaneous > Sound. The added songs are in the right folder, but we can't see them yet. This is because their name hasn't been transformed to something that the GECK wants to see.
So right-click > New into the Editor ID. A panel should pop up.
5). For ID, choose anything you'd like to name your song but it HAS to start with the letters MUS in its beginning. So for example, I'm going to type MUS1015SaturdayNight. It's possible to do the same trick to get our music at the very top of the pile, by adding 'aaa' up there. So MUSaaa1015SaturdayNight.
NOTE: If this is your first time adding a song into the GECK, continue to step 6a. If a song has already been added and you just want to add another, go to step 11a.
6a). Click on the Add Sound File button. It should automatically find Fallout 3's Data > Sound folder. You can then manually direct into the OnTheRoadRadio folder (Data > Sound > Songs > Radio > OnTheRoadRadio). Find the song just added into this folder, and click OK. The song should show up in the greyed-out button you just clicked.
Note that there are Play and Stop buttons. These don't seem to do anything, unfortunately.
7). Below those two buttons, there are two tabs: Main and Attenuation. Start with MAIN. There are three sliders, and the first two don't get touched for some reason. But move 'Static Attenuation" to -12.33 db.
Note: I am not sure what this does. Maybe it adds a slight bit of static to the song, making it seem as though it's more on the radio? Hmm. 12.33 is used every time, though.
8). Frequency Adjustment can be left at 0.
And only the 'Dialog sound' toggle is going to be clicked ON.
'Looping" can be kept on None, and the two sliders at the bottom can be kept at Midnight.
9). ATTENUATION tab
I have no idea what any of the sliders on this page do, but the game has them set up like this:
100
50
20
5
0
'Reverb Attenuation Control' is set at 80.
...and the very bottom slider (Priority) is set on Default. Leave this slider alone. I tried putting it up to 'Highest,' to see if it would play a particular song first, but this didn't happen in-game.
Basically, we're not going to touch any of these sliders, but just make sure they all read what's supposed to be there.
10). Click OK. Now the song is in the game, but not on the radio. If this is the first time a song has been manipulated to appear in the Sound window, continue on to step 12. Steps 11a through 11d are for those who are adding additional songs.
11a). Right-click > Edit on the song (or one of the songs) previously added. For me, this was MUSaaa1015SaturdayNight.
11b). Change the ID. I just added "Ride My See Saw" by the Moody Blues, so I'm changing this to MUSaaaRideMySeeSaw.
11c). Click on the Add Sound File button (this is the gray rectangle below the ID slot). Find the song in the Songs > OnTheRoadRadio folders. Select the song, and click OK.
11d). Click OK, closing the Sound panel, saving as a New Form if the original song was not to be overwritten. Everything else, such as that pesky Static Attenuation slider, has already been set up.
12). Use the main toolbar and Save!
I am going to describe how to add songs by overwriting what's already contained in OnTheRoadRadio.esp, and then I'll discuss how to make a New list. For those who want to overwrite, continue to Step 13.
For those who want to learn to make a new list, go to Step 14.
13). OBJECT window
Now, go to Actor Data > Quest. Find the OnTheRoadRadio quest. Double-click on it.
Note: At the top of the page is a quest which has something to do with OnTheRoadRadio, however, it does not have an Editor ID, so ignore this quest. Look for a second OnTheRoadRadio, which is listed under Editor ID.
14a). RADIO tab.
In the Display Text window (Windows 8 users: this is the tall, vertical window on the left. It'll be greyed-out and will need to be dragged from the top left), right-click > New > Add Topic. Right-click > Add Topic and make a new radio list.
I am not sure if there is some limitation here, as to how many songs can get added overall... I have recently installed GNR Enhanced, which adds 100 songs though, so I think we're safe adding as many as we wish. Anyway,
15a). Left-click on the top OnTheRoadRadioList. Now double left-click on one of the songs in the Info window. I am going to overwrite Beautiful Baby.
15b). In the Response Text area, delete the text that's already there, and write the name of the song which is going to overwrite Beautiful Baby. This name does not have to be written en CamelCase, so I'm putting 10:15 Saturday Night instead of 1015SaturdayNight.
15c). Click the button next to Sound File. Find the name of the song added earlier (MUSaaa1015SaturdayNight for instance). Double left-click on this name, and press OK. Note that some of sound items on this list actually DO make sound, when clicked on or highlighted accidentally. This seems to be hit-or-miss though.
15d). Click OK, closing the Quest window, and Save.
Save after EVERY song. If the GECK refuses to save (there's a spinning blue circle staying onscreen forever) it could be that the song being added can't be put into the game for some reason, even if it works outside the game. Maybe, maybe not. If this happens, try seeing if one of the "Warning" panels which randomly show up sometimes has not been clicked "Yes" or "Yes to all". This panel will sometimes be underneath the GECK itself as a separate window. If this panel is here, close it.
And if there's no Warning panel, maybe it's time to Ctrl + Alt + Delete and restart computer if this blue circle happens.
15e). Since all the songs in this mod play randomly, it's a good idea to go through each song we DON'T want to play, and remove their Link To and Link From topics. Once we're back in the game, On The Road Radio should only play those which still have their Link To and Link From topics intact. Go into the game, and make sure the songs which have been chosen actually play in the game.
15f). Later on if more songs are being overwritten, make sure to right-click > Add Topic into the Link To box, and find RadioHello. Click OK for every desired song. In the Link From box, right-click and then double-click on ANY.
Do not toggle anything else on or off. The mod author has already provided the correct toggles, such as Random and Run Immediately.
Below are the steps needed if making a new list of songs. Make sure the OnTheRoadRadio quest is open to its Radio tab.
16). Right-click > Add Topic into the left (tall, vertical) window. This causes the Select Topic window to pop up. Right-click > New into this window. Name the topic, and click OK.
17). Right-click > New into the Info window. Type the name of the song (and maybe the artist) into the Response Text box. We don't have to type in CamelCase, so Six Underground can go into the box instead of SixUnderground.
18). Click the Sound File button. Click on 'Select TESSound'. Another panel should pop up. This button is fidgety, and it may take a couple tries.
19). Now find MUSaaa1015SaturdayNight, or whatever song you added. Double left-click on the song you want to add.
20). Click OK. The song should now be in the Info window, as well as the Response Text box.
21). Make sure "Run Immediately" and "Random" are both toggled on.
22). In the 'Link To' box, right-click > New > Add Topic, and find 'RadioHello.' It should be somewhere down toward the bottom of the list, but you can type its name until we find it.
23). In the Link From box simply choose ANY. Then click OK (closing the quest panel).
24). Go back to the main toolbar and SAVE.
Final steps (which applies only if you've made a new Song List): Each Song List has its own 'Greeting,' and if a new song list is being started (Step 14), a new Greeting will be needed as well. This is not the same as GREETING.
25). In the Display Text window, click on RadioHello.
26). In the Info window, right-click > New. In the panel which pops up, add Greetings X in the Response Text box, with X being a number which corresponds to the new song list we've added. So if this song list is 5, it should say Greetings 5.
27). Click OK. Now, double-click on that same Info topic (Greetings 5, or whatever). Look at the Voice Filename area. 'OnTheRoadRadio_RadioHello_XXXXXXXX_X' should automatically be there, with all the Xs randomized numbers. So what I am seeing here is OnTheRoadRadio_RadioHello_005EEE_1, but you may see some other numbers...
Click OK.
28). The flags chosen should be "Run Immediately" and "Random". But since a new Greetings info is being added, make sure "Random End" also gets toggled.
Important: whichever song list is at the bottom should have Random End toggled on. ONLY this bottom list should get this particular toggle, so whatever list is directly above should've had Random End toggled, right? Make sure this gets toggled OFF.
29). In the Link To box, find your newest song list (OnTheRoadRadioList5 in this example).
Ignore the Link From box.
30). Now, the final touch will be to look on the right side of the Radio quest panel. There is a scroll-down bar called Speaker. Select this and find 'Zimmer.' I assume this is supposed to be the DJ of this radio station, but so far I've never heard him in the game.
Click OK.
28). Hope and pray everything saves when we close the GECK.
Gun Tutorial Game: Fallout 3
This will not be as comprehensive as some others; it will merely blow through what all the different scroll-bars, slot numbers, and toggles do, and how they affect in-game play. In this case, I am going to edit something already pre-made by Bethesda, so nothing new is being made here. I don't know how to add totally new weapons into the game.
1). Fire up the GECK.
2). OBJECT window
Go to Items > Weapon. Find a weapon you'd like to make some changes to. Right-click > Edit on it. Give it a new ID and Name.
For me, this is going to be the very fast, very loud, but extremely inaccurate Assault Rifle. I'm not going to change its speed, or its weight, or anything like that. I will try to make it more accurate though. And also, I'm going to make its components last longer.
3). Here are all the items on the top half of the Weapon panel.
Script: Do not use.
Object Effect: This scroll-bar will add certain effects to different weapons. For instance, we can put Moira Brown's "mole repellant" effect (which is found in a different part of the Object window) onto a Baseball Bat.
Ammunition: self-explanatory. This is what sort of Ammo your gun will require to operate.
Clip Rounds: Same as above. We can change the number of bullets in each clip.
Skill: another self-explanatory scroll-bar. Which skill does the gun affect?
Repair Item List: VERY important. Whatever is in this scroll-bar is what we can use to repair the gun with in-game. Since my assault rifle will be a unique item, found in very rare locations throughout my game, this doesn't mean it won't be able to be repaired. I'm leaving this on RepairAssaultRifle.
Equip Type: Again, self-explanatory. Don't change this away from SmallGuns, or whatever weapon is being edited.
Flags: These are various toggles which can be turned on and off, mostly self-explanatory. More detail about this can be found here...
http://geck.bethsoft.com/index.php?title=Ammo
One thing of interest is "Ignores Normal Weapon Resistance" which is a holdover from Oblivion, affecting the way silver weapons can damage undead, for instance. In other words, this flag doesn't do anything in Fallout. (thank you 'Rosa).
"No Jam After Reload" ... guns which have low Health will sometimes stick (not fire) after a new clip is slammed into them.
"Minor Crime" if the gun is used in-game, it is going to be considered a crime!
4). Game Data tab
On the lower half of the Weapon panel, and on the middle-left of the page, are three tabs. The Game Data tab is selected by default, and there are also Art and Sound and Rumble tabs.
Weight: After all these years, I'm still not sure if Beth uses pounds or kilograms.
Health: Yes!!! Finally, a way to make weapons last longer before repairing sets in. Though this is cheating, there's always a way to explain more durable guns through roleplay, right?
Reach: Do not use. This is always set at 1.000 by Beth.
Fire Rate: Another duh.
Spread: This controls how accurate or inaccurate a gun is. Assault weapons in general are pretty inaccurate. By default this is set to 4.000 for an Assault Rifle. Change this to a lower number for less chance of missing, but also less chance of randomly hitting.
Min Spread: Guns have a minimum and maximum spread.
Sight FOV: This has to do with how far "inwards" the player's vision narrows in while aiming.
Sight Usage:
Crit Damage: How much damage this gun will do through critical hits.
Aim Arc: Not sure. Do not use.
Value: Durrr.
Damage: This is the base damage the gun will do most of the time, while Critical Damage is what it can do, some of the time. Obviously, it can be very easy to make a gun which oneshotkills everything in the Wasteland, so don't remove all challenge from the game, else you might also remove a lot of its fun!
Ammo Use: How many bullets get used up per round.
# Projectiles: How may bullets come out of the gun at once. I don't think it has anything to do with Ammo Use.
Limb Dmg Mult: When making critical hits through VATS, this is what causes more or less damage. Leave this at 1.000. I think problems with glitches can otherwise occur.
Base VATS To-Hit Chance: this number can also be affected by certain Perks the character has, as well as Luck.
Burst Shot / Long Bursts: Do not use.
Semi-Automatic Fire Delay Min / Max: These affect the delay between shots. Don't mess with this.
Resist: This scroll-bar determines if the gun has resistance against various types of damage, such as resistance against energy weapons, fire, and so on.
On Hit: Don't mess with this.
Range: There is a minimum or maximum range in which the bullet has effect. This is measured in Bethesda's cryptic "units", (the same units that get used for setting X-marker distances, for instance), so this does not measure standard or metric.
Action Points: How many "Action Points" the gun uses per shot.
Damage to Weapon Mult: How quickly health regenerates. Don't change this.
5). Art and Sound tab.
Most of this we won't mess with, because this tab affects all the various artworks (such as icons) that are already in the game.
An example of a time we'd want to mess in this tab though is let's say we want to make a pistol shoot fire instead of bullets. If we have a 10mm Pistol, and make changes to it in the Game Data tab so that it uses Flamer Fuel, if we didn't change anything in the Art and Sound tab, the gun would still visually shoot 10mm ammo, even though the effect would be enemies burning up. We'd have to go into the Art and Sound tab to make the gun visually shoot flames, and also have the sound-effects for this as well.
To make a pistol which shoots fire, make all the changes in the Game Data tab, but then study the Art and Sound tab for a Flamer. Make the appropriate changes to the flaming pistol.
In most cases though, skip the Art and Sound tab.
6). Rumble tab.
This affects Xbox and Playstation controllers. We can make the motors in our controllers rumble more or less, amazingly.
Don't mess with this, in most cases.
Ignores Normal Weapon Resistance is a holdover from the older Elder Scrolls games like Oblivion and Morrowind. It is for things like Silver and Daedric weapons, that can harm ghosts and other critters that are immune to normal weapons. It does not do anything in the Fallout games. I think it didn't work in Skyrim either.
Thanks. I changed the info in my previous post.
Repeatable Bounty Quests, Game: TES IV: Oblivion
This one is going to discuss how to make a revolving, never-ending, set of bounty quests, similar to what Skyrim has, when we get bandit raids from innkeepers. My version is different from Skyrim's though, in several ways. Bottom line: If you're the type of gamer who wants to be sent off to do random kill-type missions, which are also repeatable, this is what is going to be taught in this post.
Here is what I decided to create in my game. Count Marius Caro begins to sponsor endeavors to clear out certain lairs of whatever scummy enemies they hold. My character (Lady Saga) will be able to go into Leyawiin's castle, speak to a certain NPC agent, and then select a location to plunder. Once she finds the location and eradicates a specific boss, the game informs the player that the boss has been taken care of. And now a reward can be collected back in Leyawiin's castle.
Though this sounds like just another kill quest, again, the main difference is this one can respawn itself. And multiple locations can be added.
1a). Fire up the Oblivion Construction Set.
1b). First thing to do is start a new quest. Give it an ID. Quest Name is not important (as will be seen, the name of these quests will never appear in-game), but you can name it just for reference, here in the Construction Set. For this lesson, I am giving an ID called aaaBountyQuest, which can be changed to whatever you'd like.
1c). In the quest's Data tab, start a script which looks like this...
-------------------------
scriptname aaaBountyQuestScript
short DoOnce
------------------------------
"aaaBountyQuestScript" can be made more specific, especially if you want to make this script more regional. In my game for instance, I've got aaaLeyawiinBountyQuestScript.
1d). Change the Script Type scroll bar from Object to Quest.
Save that script (using the save icon) and close it. Click OK, closing the quest window. Reopen it, find the script you just started, select it, and click OK (closing the quest window again).
Next, we're going to edit a letter, a town-based NPC, and an enemy NPC. All of this happens in the steps below.
2a). OBJECT window > Items > Books
Edit a handbill, or a letter, or a note, etc. Give whatever parchment you decide to edit a new ID. It makes sense to associate this ID name with whatever lair it's going to direct the player to. My first note will send the player to Undertow Cavern for instance, so I'm calling the note's ID aaaUndertowQuestNote, and then changing its Name to Undertow Cavern Order.
2b). Change the note's Book Text too, of course. Write some material describing that (1) there is a problem at a nearby lair (whether it's Undertow or somewhere else), and (2) a reward can be had after this lair is dealt with. Write something like...
Hear ye, hear ye!
By order of the County of Leyawiin, this parchment shall direct its bearer towards the subterranean dwelling known as Undertow Cavern. Once riddance and eradication of Undertow's scum has been accomplished, We of the County of Leyawiin shall have knowledge of its leader being taken down, through the glass of our specialized crystal ball. Thence, the bearer of this note shalt return toward our magnificent domain, and payment of 200 gold shall be dispensed.
~ Count Marius Caro~
2c). Ahem. It's a good idea to make this note a Quest Item. Here is why: This method of quest-making does not use stages at all. So the note is the only reminder a player will have, explaining where to go.
And don't worry. This quest item/note won't get stuck in inventory forever; it's going to get removed later on, or its quest-status is going to get removed.
3a). OBJECT window > Actors > NPC
Edit a named (not generic) Bethesda NPC who is not associated with Shivering Isles. This is going to be the guy or lady who will dispense quest locations.
If you have already made an agent and wish to reuse him or her, you can just skip to step 4a, whcih teaches how to make the enemy.
3b). Remove the NPC's script (if there is one), and also get rid of any AI. Change the NPC's Class to Agent. Edit the NPC in any manner you'd like.
I edited Agamir, removed his script, changed his Class from Thief to Agent, amd removed all his AI and Factions. Changed his ID and Name, bla bla bla. I transformed Agarmir into the "Leyawiin Quest Agent". Since this agent lives in Leyawiin Castle, I made sure to add him into the LeyawiinFaction (so he'll occasionally gossip about local topics), and also LeyawiinCastleFaction.
An optional step is to give the agent some AI (skip to step 4 if you just want to move on to the quest-making part). I gave him AI which causes him to Travel from the castle's court area into its Servants' Quarters. Most important though, I made a 'Use Item At' package called aaaLeyawiinAgentOnDuty. I then toggled Must Complete on. And changed the Time scroll-bar to 9, with a Duration of 8, meaning that he'll be "on duty" from 9 to 5. I gave him a desk to sit at (WorldObjects > Static > LowerClassTable01), and a chair to sit upon (World Objects > Furniture > UCChair05L). Gave the chair a Reference ID so the agent would sit down while "on duty". All of these furniture pieces were put off to the side of Leyawiin Castle's Great Hall.
.....If you want to do something simliar, just make two Travel packages: one which causes the NPC agent to travel to some other location, and another which causes him/her to return to work. The third AI package (Use Item At) makes the agent sit down from 9 to 5. I went into the agent's Use Item At again, and clicked on the Location tab. Toggled 'Near Reference' on, and then pushed the Select Reference in Render Window button. Double-clicked on the chair added earlier. Clicked OK.
Overall, he will travel to Leyawiin's court area at 7 am, sit down at 9, and stay there until 5. After 5, he walks to the Servants' Quarters, where he basically stands around doing nothing. Lol. You don't have to do all this. I like dynamic NPCs though.
4a). OBJECT window > NPC
Find a generic enemy who will be appropriate for whichever cell you'd like to plunder. Since I chose Undertow Cavern (which hosts Black Bow Bandits) I went into the Redguard section, and then edited BanditBlackBowBoss4Male1.
4b). Change ID, and change Name if you'd like. Toggle Respawn on, and toggle No Low Level Processing off.
Since the NPC I edited is already a Black Bow Bandit, he already has the correct factions and AI. It's always good to double-check these features, though.
4c). Stats tab
Now's the time to make the enemy boss into whatever he or she is supposed to be. Whether he's a wimp, or an über. Take the time to set the enemy up for combat.
Tip: There are two basic ways to set up the enemy's Health, Magicka, and Fatigue: these stats can either be fixed, or Leveled. PC Level Mult will make an enemy who levels with the player/character, or below / above the PC. This is my favorite way to set up enemies. Problem is, I have found that sometimes the game's engine screws up when respawning the enemy, leaving him or her with zero Health, and (sometimes) a huge negative number for Fatigue.
The only way I've found to fix this is to click PC Level Mult off. This will cause the CS to automatically choose Auto Calc Stats instead. Click Auto Calc Stats off too. Now it is possible to choose any numbers, not just for Health, Magicka, and Fatigue, but also for all the Attributes, and wherever else there is a slot which can be modified.
It is also possible to use scripts, so that these numbers get generated in real-time back in-game. But this too me seems overly complicated, like it could also welcome new problems in the future. I like keeping things simple.
4d). Inventory tab
All generic Bethesda enemies use Leveled Lists to determine what gets added into their inventories, so I personally don't mess with this tab. Leveled lists give random things to NPCs, to wear and use. Because of this, the enemy boss will be a little bit different every time he gets encountered, since he'll be wearing different armor / carrying different weapons, every time he respawns.
Go ahead and add or subtract whatever you'd like, though.
5a). CELL + RENDER windows
Place the NPC enemy into whichever cell he /she belongs in. It's a good idea to put him/her into a final room, so that the PC will be forced to defeat most of the lair before the boss is found. Once the enemy is in place, he or she might be in underclothes. This is okay. Those leveled lists will handle this dilemma; giving the NPC something to wear, and carry, once we're back in the game.
5b). Give the enemy a Reference ID. For this tutorial, I am calling it aaaEnemyBossRef, but for my actual game I chose aaaUndertowBossRef. It's a good idea to copy whatever ID is chosen, so it can be pasted into scripts later on.
5c). Toggle Persistent Reference on, if it's not already on.
5d). Also, start a script for the enemy that looks like this....
---------------------------------
scriptname aaaEnemyBossScript
short Dead
-------------------------------
Substitute "EnemlyBossScript" with whatever name is more specific. In my game, I've got aaaUndertowBossScript.
5e). Save that script (using the save icon), and close it. Click OK, closing the NPC's panel, and click OK again, closing his or her Reference panel. If you're editing the NPC from the Object window (instead of its Reference window) you won't need to close a Reference panel.
5f). Reopen the NPC's panel(s), and find the script you started earlier. Click OK again (closing the NPC and Reference panels if both were opened) SAVE all progress using the main toolbar, and reopen the NPC's panel(s) again.
Though all of that opening & closing seems redundant, it's actually necessary to follow those steps, in that order. If you don't, sometimes problems can happen. The script might give annoying error messages later on when we're trying to save it, for instance.
5g). Now, to add more to the script.
------------------------------------
scriptname aaaEnemlyBossScript
short Dead
Begin OnDeath
If (aaaEnemyBossRef.Dead == 1)
Set aaaEnemyBossRef.Dead to 2
Set aaaBountyQuest.DoOnce to 2
Message "The leader of X has been killed", 36
EndIf
End
---------------------------------------------------
Substitute "aaaEnemyBossRef" with the Reference ID of your enemy, if you gave him/her some different Reference ID name.
Substitute X with whatever location name was chosen.
Note the message, too. Since this method of quest-making does not use stages, it's important to be informed of the boss's death in real-time, just so you know the quest is working. This message will not show up as a quest update (it will not pause the game). If you still find this to be immersion-breaking, just delete that whole line of text.
5h). Use the Save icon to save the script before it's closed. Click OK on the enemy's information panel(s).
5i).. RENDER window: Get back into the cell where the enemy is. Now go into the OBJECT window > WorldObjects > Static, and pull an XMarkerHeading from the Object window into the Render window. Give this XMarkerHeading a Reference ID. I am calling it aaaXMarkerHeading for this lesson, but this can be changed to something more specific, as per the enemy's name, for instance. The XMarkerHeading be discussed later in this post.
6a). QUEST window > Quest Data tab
Reopen the quest which got started earlier in this tutorial.
6b). Priority can be anywhere from 10 to 70, depending if the quest is going to 'compete' with others out there. For instance, if you only use the one NPC agent added during 3a, Priority can be set low. If you're going to include other NPCs (let's say Count Marius Caro or some other NPC gets spoken to, to introduce the character to this new concept of bounty hunting) Priority should be set higher, since other quests associated with the extra NPCs might prevent the bounty quest dialog from showing up.
6c). Make sure Start Game Enabled is toggled on (it should be, by default) and add GetIsPlayableRace == 1.00 goes into the Quest Conditions window.
6d). Return to the script. Time to add a few more lines of text, so that it'll now look like this...
--------------------------------------
scriptname aaaBountyQuestScript
short DoOnce
short Timer
short StartDay
----------------------------------
Close and save, bla bla bla...
7a). Topics tab
As usual, start with a GREETING. "How fares thee? ... Have you come to take down one of our nearby locations?" is an example of what the NPC Agent could first say. Here are the Conditions.
GetIsID 'aaaQuestAgent' == 1.00 AND
GetQuestVariable 'aaaBountyQuest', DoOnce == 0.00
Substitute "aaaQuestAgent" with whatever ID you actually chose.
7b). Use the Add Topics box to to add a custom topic, and (as usual) add this topic into the Editor ID window as well. I am calling this topic "aaaBountyQuest01"
7c). During aaaBountyQuest01 (or whatever you named your topic), the Agent explains what's going on locally, with forts and caves and ruins all harboring lots of baddies. The agent then asks if we'd like to see a list of possible places to plunder.
The cool thing about this type of quest (once it is all set up) is we can add several locations to go to, later on. And all of these locations get chosen through dialog.
Conditions from the GREETING can be copy / pasted. Again, they go like this...
GetIsID 'aaaQuestAgent' == 1.00 AND
GetQuestVariable 'aaaBountyQuest', DoOnce == 0.00
7d). In the Result Script box, type this: Set aaaBountyQuest.DoOnce to 1
7e). In the Choices window, right-click > New and make a second custom topic, dealing with whichever lair is being featured. So in my game, I've got aaaUndertow as a topic ID.
Add that topic into the Editor ID window, too. This topic is going to be the first locational topic. As I said, more locations (and topics for each location) can be added later, each one getting its own dialog.
7e). For this first locational topic, do all the usual steps: change Topic Text to something in plain English (if needed). Make some dialog which furthers the conversation "Ah, so you'd like to head to Undertow Cavern...." The agent explains whatever local problems the town has been having with Undertow, then. "Located off the west gate, right above the town. Such a menace to the stable and travellers below..."
Conditions go like this....
GetIsID 'aaaQuestAgent' == 1.00 AND
GetScriptVariable 'aaaaEnemyBossRef', Dead == 0.00
That script variable function is an awesome tool, by the way. Variables are what often cause the game to allow, or not allow, all sorts of things. Same goes for the quest variable used in the first Greeting. Script and quest variables shall get used a lot during this entire process.
7f). If you want to make this moment into a Yes or No choice, use the Choices window to add Yes and No topics. If not, skip to step 8.
.... The "Yes" choice is going to be specific to Undertow Cavern (ID name is aaaYesUndertow, for instance). The "No" choice is going to be much more generic (aaaNo), and will pertain to any moment the player clicks on "No" during conversation. In fact, if you already have a "No" topic from previous quests, you can just reuse this.
7g). Add both Choices (aaaYesLocation and aaaNo) into the Editor ID as well, and add dialog for each one. If you want some dialog which explains where the lair is, you can type this in too. "Let me put that location on your map."
Conditions for the "yes" topic are the usual GetIsID and script variable...
GetIsID 'aaaQuestAgent' == 1.00 AND
GetScriptVariable 'aaaaEnemyBossRef', Dead == 0.00
In the Result Script box, type these in....
Set aaaEnemyBossRef.Dead to 1
Player.AddItem aaaQuestNote 1
ShowMap UndertowCavernMapMarker
Substitute "aaaEnemyBossRef" with the Reference ID of your enemy.
Substitute "aaaQuestNote" with the ID of the note made during step 2..
Substitute "UndertowCavernMapMarker" with the name of the location, unless you also are using Undertow, of course.
8a). Assuming you don't already have a "No" topic, make some dialog like "STOP WASTING MY TIME!" in response to our character opting out. Only one Condition is needed, which is the same GetIsID from previous steps.
8b). Result Script should be Set aaaBountyQuest.DoOnce to 0
8c). Toggle Goodbye on, to simulate the Quest Agent losing temper, if you'd like!
Note: notice the QuestVariable up above in step 8b. It started out as 0, changed to 1, and now it's 0 again. What's that all about? Well, the way this bounty quest works is: we can only choose one quest location at a time. This is important. If we accept a quest (Undertow Cavern, for instance) and then immediately accept another one (assuming you write in more than one location), this will confuse the game's dialog, and screw it all up. It is possible to make more than one location at a time viable, but the amount of work it'd take is just not worth it. Much better to keep things simple!
So it's important to have a way to make sure only one quest location at a time gets focused on. But it's ALSO important that dialog is able to reset itself to the very beginning ("How fares thee?") so that the entire process can be started over.
>> This entire bounty quest idea works on timer scripts, which will get written up in a few moments. After a location gets accepted, its leader get killed, it is these timers which cause the quest to reset.
9a). Go back into the first locational topic (the one which describes where to go, and why to go there). Right-click > New into the Info window. Write some dialog which explains that a certain location has already been plundered.
For instance, let's say Undertow Cavern has already been eradicated, its timer has not reset, and its enemy has not respawned. The player forgets this though, and clicks on Undertow Cavern. Dialog in this situation can go like "Hmm. Seems you have already cleared that location. No need to go there again; Undertow's enemies have not returned. Would you like to choose another location?"
9b). Conditions ....
GetIsID 'aaaQuestAgent' == 1.00 AND
GetScriptVariable 'aaaEnemyBossRef', Dead >= 2.00
9c). In the Choices window, add any other locations which have been set up so far. In my game for instance, I've got aaaFortDoublecross and aaaFortTeleman in this window. Of course, if this is the first time setting all of this up, there won't be any other locations, yet.
Also, add in that "no" topic again, so the player has a choice to opt out entirely.
10a). Quest Data tab
Time to finish up the main script. Here is what it'll look like. Again, this will be a timer script.
------------------------------------
scriptname aaaBountyQuestScript
short DoOnce
short Timer
short StartDay
Begin GameMode
If (Timer == 0)
If (aaaEnemyBossRef.Dead == 3)
Set StartDay to GameDaysPassed
Set Timer to 1
EndIf
EndIf
If (Timer == 1)
If ((GameDaysPassed - StartDay) >= 3)
Set Timer to 0
Set aaaEnemyBossRef.Dead to 0
EndIf
EndIf
End
---------------------------------------------------
* To summarize, the script above will start its timer after we speak to the NPC agent, and are rewarded. The dialog for this reward has not been written yet, but we'll get to that later. After the timer starts, it will reset the quest once 3 days have passed. After those 3 days have passed, voila, the agent's dialog updates, which can potentially send us off to that same lair again. In that lair, the NPC enemy respawns, along with the cell he or she is in.
** It is possible to change the timer to your liking. If 3 days seems too soon, just change the "3" in If ((GameDaysPassed - StartDay) >= 3) to some other number. Changing this to 10 will make sure dialog doesn't reset until 10 days have passed, for instance.
*** 3 days happens to be the realistic minimum here, though. Since Bethesda cells don't reset until 3 days have passed, it's pointless to make dialog which resets before then (sending us off to that same lair), if the cell itself hasn't reset yet. Only for testing purposes should you try less than 3 days. Making the script reset after one day, for instance, is an experiment you can try just to see if the original dialog resets.
10b). Save the script and close it, close the Quest window, save, bla bla bla....
These next steps are optional, and deal with adding map markers and quest targets. If you don't want to add these, skip to step 12.
11a). CELL + RENDER windows
Go into the cell where the enemy got added, and find the way out of this cell, by clicking on the lair's Door Markers. Since I chose Undertow Cavern, this isn't such a task for me. I only have one cell to exit from.
11b). Once you are outside this cell, try to find its Map Marker. Hopefully there is one! If not, you'll need to make one. Anyway, leave this marker on-screen.
11c). QUEST window > Quest Targets tab
Right-click into the large Target Ref window and select New.
11d). Click on the Select Reference in Render Window button, and double-click on the Map Marker.
11e). Right-click > New into the Conditions box, and add GetScriptVariable 'aaaEnemyBossRef', Dead == 1.00
11f). Go back into the Topics tab and find the "Yes" response (if you added this). Add some more dialog that goes "I will mark the location on your map."
11g). In the Yes topic's Result Script box, type ShowMap XMapMarker, with "X" being whichever lair the quest pertains to. So an example is ShowMap UndertowCavernMapMarker
To summarize, by now there should be five topics in this quest: the initial GREETING, the initial topic which follows the GREETING (in which the agent explains where some trouble areas are in Cyrodiil), a topic which discusses a specific lair (Undertow Cavern, in my case). Then there should be Yes and No topics, with the "Yes" being a specific topic sending the player to a specific lair, and the "No" topic being more generic.
12). Save, goshdarnit!
13a). Time to make a second GREETING, which shows up if the PC has started a quest, but has not completed it yet. "Ah, you are back. How's your latest expedition coming along?"
Conditions ....
GetIsID 'aaaQuestAgent' == 1.00 AND
GetQuestVariable 'aaaBountyQuest', DoOnce == 1.00
13b). Use the Add Topics box to move the conversation toward the same custom topic created in step 7b. This time though, write some dialog which says "Seems you've already got a quest to follow. Finish that one up, then come see me."
13c). Copy all the conditions from the GREETING just above, and paste them into this "Seems you have already...." topic. Toggle Goodbye on, if you'd like.
14a). Time to write the reward stuff. Start a final GREETING in which the agent is glad to see us return. "You've made it back!" Give the agent a surprised look, perhaps. The agent is amazed how good our toon is.
GetIsID 'aaaQuestAgent' == 1.00 AND
GetQuestVariable 'aaaBountyQuest', DoOnce == 2.00
14b). Use the Add Topics box to link to a "reward" topic. If youv'e already got one of these made from previous quests, you can just use this again.
14c). "Here is your reward.... bla bla bla" says the agent.
GetIsId 'aaaQuestAgent' == 1.00 AND
GetScriptVariable 'aaaEnemyBossRef', Dead == 2.00
14d). In the Result Script box, type ...
Set aaaBountyQuest.DoOnce to 0
Set aaaEnemyBossRef.Dead to 3
Player.AddItem Gold001 X
Player.RemoveItem aaaQuestNote 1
Substitute .... well, you know what to do by now, right?
The "X" can be whatever number you'd like. 200 gold, 2000 gold, whatever.
Note the RemoveItem part, which removes the note which initially sends the player off to Undertow, or wherever. If you made this note a Quest Item, now you don't have to worry about getting it out of inventory. Another option: if you want to keep this note in some desk (perhaps your character is some sort of pack rat) yet the note is a Quest Item, just type SetQuestObject aaaQuestNote -1
Now for the final touch. Since the enemy boss is not generic, he or she tends to stay wherever he/she winds up. In other words, if the boss fight causes the player-character to flee to another location (even outside the lair) and the boss gets killed in that other location, THIS is where the boss will respawn. So here's how to put the boss back into that initial room. In fact, the boss will respawn exactly where the XMarkerHeading from step 5i was placed.
15a). OBJECT window > World Objects > Static
Click on anything in the right side of the Object window, and press X.
15b). Go into the lair where the enemy boss is located (unless the Render window is still showing this boss).
Now, if the enemy is in a multi-celled lair (for instance, if the enemy is in UndertowCavern02 instead of UndertowCavern01) you'll want to get into that initial cell, in this case, UndertowCavern01. If the enemy is in a lair which only has one cell, that'll be less work.
15c). Get to the initial cell's entry door. Typically, this is going to be the very FIRST door the PC walks through, to get into that initial cell.
15d). Go back to the Object window, and drag an XMarker from this window into the initial cell. Try to place this XMarker somewhere right behind the initial door, right on its floor. Give this XMarker a Reference ID. I am calling it aaaXMarker for this lesson.
15e). Save.
16a) QUEST window > Quest Data tab
Open up the main script. And add this script anywhere onto this page between its Begin / End block...
If (aaaNPCBossRef.Dead == 1)
If (Player.GetDistance aaaXMarker <= 500)aaaNPCBossRef.MoveTo aaaMarkerHeadingRef
Message "I have entered the lair called X. The evil, it simmers from within...", 30
EndIf
EndIf
This script will ensure that the enemy boss gets moved back where it should be, in real-time, and its message lets the player know the script has worked. The only possible remaining issue is if that enemy somehow got located outside of his/her lair. If so, another idea is to attach aaaNPCBossRef.MoveTo aaaMarkerHeadingRef into the Result Script box when the reward is given.
Using the XMarker script works most reliably though, since it's very rare the boss will get outside that lair and into the open world. This script can go anywhere within the Begin GameMode / End block. To keep things nifty, I like to put it outside of any other If/EndIf blocks. Example of the final main script is below.
scriptname aaaBountyQuestScript
short DoOnce
short Timer
short StartDay
Begin GameMode
If (Timer == 0)
If (aaaEnemyBossRef.Dead == 3)
Set StartDay to GameDaysPassed
Set Timer to 1
EndIf
EndIf
If (Timer == 1)
If ((GameDaysPassed - StartDay) >= 3)
Set Timer to 0
Set aaaEnemyBossRef.Dead to 0
EndIf
EndIf
If (aaaNPCBossRef.Dead == 1)
If (Player.GetDistance aaaXMarker <= 500)
[indent]aaaNPCBossRef.MoveTo aaaMarkerHeadingRef
Message "I have entered the lair called X. The evil, it simmers from within...", 30
EndIf
EndIf
End
And that is all. All sorts of dialog can be written to enhance this type of quest. Greetings and topics can be made for townspeople for instance, making them praise and glorify our character through random dialog (or curse him or her, if they happen to feel compassion toward baddies). But for the basic revolving quest itself, everything above shall send the player off to one initial lair, which can be repeated later on (days, months, years later). Replayability, that's what it's all about.
In the next post, I'm going to discuss how to add extra locations to this same quest.
Another tip for making these bounty quests: I like to keep a Notepad page open while using the Construction Set. It helps to copy/paste three pieces of information from the CS onto this Notepad page: the note's name (aaaBountyQuestNote or whatever), the Reference ID for the enemy, plus its 'dead' variable (aaaEnemyBossRef.dead or whatever), and the quest's variable name (aaaBountyQuest.doonce). The name of the XMarkerHeading and XMarker can also get pasted onto this page.
All of this helps so that those who want to try to make these quests have an open source to copy/paste all those complicated terms from, whenever these terms are needed.
This post goes with the one above, and is going to show how to add extra locations to repeatable bounty quests. A lot of steps get skipped, while some get repeated.
It's a good idea to make each location one at a time. Put the enemy in some lair, write the quest, playtest it, and so on. This way, if there's some problem with the previous potion of the quest, this problem won't possibly compound later on.
For this lesson, I already have Undertow Cavern as a solid, repeatable location. Now I am going to add Fort Doublecross.
1a). OBJECT window > Items > Book
Find the previous note which was used for your first location, and edit this note. Change its ID, its Name, and (optional) leave Quest Item toggled on. I am calling this note aaaQuestNote2 for this lesson, but its actual in-game name is "aaaDoublecrossNote" and you can name the note whatever you'd like. It helps to associate the note's name with its corresponding location, of course.
1b). Change the note's Book Text. If this text already says something like "The Count and his people wish to see the eradication of X" (X being Undertow in my game), all that's needed then is to change the name of the old location to whatever new location is being added.
1c). Click OK, saving the note as a New Form.
2a). OBJECT window > Actors > NPC
Find a generic enemy who is appropriate for the second lair you have chosen.
2b). Change ID and Name.
2c). Toggle No low-level processing off, and toggle Respawn on.
2d). Double-check AI and Factions. AI is typically going to be two Wander packages: one for Interiors, and one for Exteriors .... and Faction is really important!! If the NPC is in the wrong faction, he/she could get pwned by some opposing faction before we've even dealt with them!
Get rid of any scripts, too. Move the Script scroll-bar up to NONE.
2e). Make any other changes you wish, to Stats, Inventory, facial features, whatever. Click OK, saving as a New Form.
Tip: It helps to toggle PC Level Mult and Auto-Calc Stats off, and enter fixed numbers into Health, Magicka, Fatigue, various Attributes (etc.) for the greatest chance that the enemy will respawn with those fixed numbers. I myself prefer using PC Level Mult, which causes the enemy to level with the PC, but I have also had problems with enemies respawning improperly, with zero Health and minus Fatigue.
2f). Place the enemy into whatever cell you've chosen. Give him or her a Reference ID. For convenience, copy this Ref Id so it can be pasted into scripts later. I am calling this Ref ID "aaaNPCenemy2Ref".
2g). Time to write the enemy's death script. Start with just the script's name, and the "short Dead" function...
---------------------------------
scriptname aaaNPCenemy2Script
short Dead
------------------------------
.... save that script, close it, close the NPC's panel and Reference panel (if you're editing from the Render window). Now, open both panels (or only one if you're editing from the Object window) and find the script. Select it. Close the NPC's panel(s). Reopen them, or it. Click the script button. Now's the time to add to this script, so in total, it'll look something like this...
----------------------------------
scriptname aaaNPCenemy2Script
short Dead
Begin OnDeath
If (aaaNPCenemy2Ref.Dead == 1)
Set aaaNPCenemy2Ref.Dead to 2
Set aaaBountyQuest.DoOnce to 2
Message "The leader of X has been killed", 36
EndIf
End
----------------------------------------------------------
Substitute "aaaNPCenemy2Script" with whatever name you chose, as needed.
Substitute "aaaNPCenem2Ref" with the Reference ID of the enemy.
Substitute X with the name of the location.
2h).. OBJECT window > WorldObjects > Static,
Pull an XMarkerHeading from the Object window into the Render window. Wherever this XMarkerHeading gets placed is where the enemy boss will respawn. Give this XMarkerHeading a Reference ID. I am calling it aaaXMarkerHeading for this lesson, but this can be changed to something more specific, as per the enemy's name, for instance. The XMarkerHeading be discussed later in this post.
3a). QUEST window > Topics tab
Open up the original bounty quest's Topics tab (for me, this includes Undertow). Thankfully, the same GREETING, and the same initial topic, can both be kept as-is. So in my game, the greeting ("How fares thee? Have you come to partake of more adventuring?") and the initial topic which links from that greeting ("As noted, we've got several problem areas which have become a local menace...") can both be kept, just like they are.
3b). In the initial topic's Choices box, there should already be one topic. This topic leads to whatever specific lair has already been added. So for me, once again, this is aaaUndertow, and also aaaNo, the topic which gives an option to back out. Now, it's time to add a third topic. This topic will lead to whatever second lair you'd like to plunder.
So for example, I've already got aaaUndertow and aaaNo here. Now I'm going to add aaaDoublecross.
Tip: if you wish these topics to show up in alphabetical order once you're back in-game, it is possible to remove one topic, and add it later. For instance, "aaaUndertow" is currently above "aaaDoublecross" in the Choices box, and this is how they'll appear in-game, if I don't rearrange them. Just right-click on each topic in the Choices box and select Remove Topic. Then add these topics back in, alphabetically. So now at the top, I'm seeing aaaDoublecross above aaaUndertow. This tip goes for the "no" topic, as well. I like having "no" as the very bottom choice.
3c). Right-click > New into the Editor ID window, and add the topic which leads to the second location.
3d). Change the Topic Text slot (if needed) so that it's plain English. And add some text into the Info window, in which the quest agent explains what's going on at the second location. "Fort Doublecross, wretched place! The peoples of Brindlehome are constantly in fear and doubt, as they wish someone to come along and rid that fort's inhabitants....!"
3e). Right-click > New into the Conditions window. Add ....
GetIsID 'aaaQuestAgent' == 1.00 AND
GetScriptVariable 'aaaNPCenemy2Ref,' Dead == 0.00
Copy All those two conditions so they can be pasted later on. It also helps to have the enemy boss on-screen in the Render window, so you can simply double left-click on this enemy when choosing the script variable's reference.
3d). In the Choices box, add a Yes and a No topic. The Yes topic should be specific to whatever lair needs to get plundered (aaaYesDoublecross in my game). The No topic can be the same, generic no that's been used previously.
3e). Add the Yes topic into the Editor ID window. Change Topic Text (if needed) and add some dialog. "Yes! Glad to hear you are interested in downing Fort Doublecross..." Optional: add some dialog in which the agent explains a marker is getting added to the map.
3f). Paste the conditions from the previous locational topic (the GetIsID and GetScriptVariable) just as they are.
3g). In the Result Script box ...
Set aaaNPCenemy2Ref.Dead to 1
Player.AddItem aaaQuestNote2 1
ShowMap MapLocation
Substitute aaaQuestNote2 with whatever you named the note.
3h). Click OK (closing the Quest window) and save.
4a). Reopen the Quest window, and go into the second locational topic (this is aaaDoublecross, in my game). This is the topic which has a Yes and a No choice. Right-click > New into the Info window, and start second dialog response, in which the agent says "But you have already been to that location. Would you like to choose another?"
4b). Conditions go like...
GetIsID aaaQuestAgent == 1.00 AND
GetScriptVariable aaaNPCenemy2Ref, Dead >= 2.00
4c). In the Choices box, add topics which lead to any location which the player has NOT chosen yet. Make sure to add the "No"choice here, too. In my game's Choices box, I am seeing this...
aaaUndertow
aaaNo
Again, if there are already several locations listed here, these can be made alphabetical.
4d). Click OK (closing the Quest window). Save.
4e). Go back into any initial locational topic which includes "But you have already been to that location" (aaaUndertow for me), and add the second locational topic into its Choices box. Add the No topic as well, keeping things alphabetical if desired. I am seeing this...
aaaDoublecross
aaaNo
5a). QUEST window > Quest Data tab
Time to add more to the main script. At the top of the script, you should be seeing something like this...
-------------------------------
scriptname aaaBountyScript
short DoOnce
short Timer
short StartDay
-----------------------------
.... now it's time to add more variable functions to this list, so that here is what you'll see at the top.
scriptname aaaBountyScript
short DoOnce
short Timer
short StartDay
short StartDay2
short Timer2
It doesn't matter which order those extra lines of text get added. It helps to organize this text to your liking, though.
5b). Click the Save icon, and close the script. Close the quest window. Save. And reopen the quest window. Reopen the script too.
Altogether, the script should be looking like this now...
-------------------------------------------
scriptname aaaBountyScript
short DoOnce
short StartDay
short Timer
short StartDay2
short Timer2
Begin GameMode
If (Timer == 0)
If (aaaNPCEnemyRef.Dead == 3)
Set StartDay to GameDaysPassed
Set Timer to 1
EndIf
EndIf
If (Timer == 1)
If ((GameDaysPassed - StartDay) >= 3)
Set Timer to 0
Set aaaNPCEnemyRef.Dead to 0
EndIf
EndIf
End
---------------------------------------------------
....but a lot of extra lines are going to get added. In fact, an entire second timer script is getting added, so that in total, it'll look like this...
scriptname aaaBountyScript
short DoOnce
short StartDay
short Timer
short StartDay2
short Timer2
Begin GameMode
If (Timer == 0)
If (aaaNPCEnemyRef.Dead == 3)
Set StartDay to GameDaysPassed
Set Timer to 1
EndIf
EndIf
If (Timer == 1)
If ((GameDaysPassed - StartDay) >= 3)
Set Timer to 0
Set aaaNPCEnemyRef.Dead to 0
EndIf
EndIf
If (Timer2 == 0)
If (aaaNPCEnemy2Ref.Dead == 3)
Set StartDay2 to GameDaysPassed
Set Timer2 to 1
EndIf
EndIf
If (Timer2 == 1)
If ((GameDaysPassed - StartDay2) >= 3)
Set Timer2 to 0
Set aaaNPCEnemy2Ref.Dead to 0
EndIf
EndIf
End
-------------------------------------
As can be seen, the top timer deals with the first quest, associated with the first enemy. Now, there is a second timer (Timer2) which is associated with the second enemy. For every new enemy / quest / quest-location, you'll need to also add a new timer script! And again, both timer scripts will reset after three days have passed, though this reset can be changed if you'd like.
Note: I have found that a maximum of five locations can get added overall. Nothing wrong with going for more than five, per NPC agent's dialog, per town (so that I've got five in Leyawiin, five in Bravil, etc). But just keep in mind that I haven't tried more than 5.
5c). Save the script and close it. Close the Quest window and save all work.
At this stage, the player has gotten the quest, the second enemy has been killed, and now it's time for a reward.
6a). QUEST window, Topics tab
The return GREETING has already been written, and won't need to get altered. Instead, go to the Reward topic. Right-click > New into the Info window, and add some dialog. "The peoples of Blankenmarch thank thee, for taking care of Fort Doublecross..." is what'll go into my game.
6b). In the Conditions window, here is what goes....
GetIsID aaaQuestAgent == 1.00 AND
GetScriptVariable aaaNPCenemy2Ref, Dead == 2.00
6c). And here is what goes in the Result Script box...
Player.AddItem Gold001 X
Player.RemoveItem aaaQuestNote2 1
Set aaaBountyQuest.DoOnce to 0
Set aaaNPCEnemy2Ref.Dead to 3
And, time for the final bits. The script below gets added to the main script, and makes sure the enemy boss gets sent back into the cell where he/she initially started.
7a). OBJECT window > World Objects > Static
Click on anything in the right side of the Object window, and press X. Now go into the Render window. Chances are the enemy boss will still be onscreen, unless you moved away from this boss.
7b). If the enemy is in a multi-celled lair (for instance, if the enemy is in FortDoublecross02 instead of FortDoublecross01) you'll want to get into the initial cell, in this case, FortDoublecross01. If the enemy is in a lair which only has one cell, it'll be less work.
7c). Get to the initial cell's entry door. Typically, this is going to be the very FIRST door the PC walks through, to get into the initial cell.
7d). Go back to the Object window, and drag an XMarker from this window into the initial cell. Try to place this XMarker somewhere right behind the initial door, right on its floor, somewhere that the character will definitely walk across. Give this XMarker a Reference ID. I am calling it aaaXMarker for this lesson.
7e). Save.
7f). QUEST window > Quest Data tab
Open up the main script. And add this script anywhere onto this page between its Begin / End block...
If (aaaNPCBossRef.Dead == 1)
If (Player.GetDistance aaaXMarker <= 500)aaaNPCBossRef.MoveTo aaaMarkerHeadingRef
Message "I have entered the lair called X. The evil, it simmers from within...", 30
EndIf
EndIf
This script will ensure that the enemy boss gets moved back where it should be, in real-time, and its message lets the player know the script has worked. The only possible remaining issue is if that enemy somehow got located outside of his/her lair. If so, another idea is to attach aaaNPCBossRef.MoveTo aaaMarkerHeadingRef into the Result Script box when the reward is given. It is also possible to use both scripts (one for the main script, another for the Reward's Result Script box) which is best of all.
Anyway, this script can go anywhere within the Begin GameMode / End block. To keep things nifty, I like to put it outside of any other If / EndIf blocks. Example of the final main script is below.
scriptname aaaBountyQuestScript
short DoOnce
short Timer
short StartDay
Begin GameMode
If (Timer == 0)
If (aaaEnemyBossRef.Dead == 3)
Set StartDay to GameDaysPassed
Set Timer to 1
EndIf
EndIf
If (Timer == 1)
If ((GameDaysPassed - StartDay) >= 3)
Set Timer to 0
Set aaaEnemyBossRef.Dead to 0
EndIf
EndIf
If (aaaNPCBossRef.Dead == 1)
If (Player.GetDistance aaaXMarker <= 500)aaaNPCBossRef.MoveTo aaaMarkerHeadingRef
Message "I have entered the lair called X. The evil, it simmers from within...", 30
EndIf
EndIf
End
[b]9).[/9] Voila. Time for a glass of wine.
Lizard Men! -- Game: TES IV: Oblivion
https://i.imgur.com/QnGNiay.png
This one is not very comprehensive. Just something neat I added into my own game.
In TES 1: Arena, there were no Argonian enemies, https://images.uesp.net//2/2b/AR-creature-Lizard_Man.gif. These were similar to the primitive, reckless creatures found in many of the tabletop games: DnD and others. I wanted to put lizard men back into the Elder Scrolls series, starting with Oblivion. Because they were in the first game, so there.
This is going to show how I got lizard men into my game, and also how I added them to Leveled Lists, so they'll appear as generic enemies. Mostly in monster and goblin lairs, but also in underwater outdoor locations.
1). OBJECT window > Actors > NPC > Argonian
Select either Male or Female, and then scroll down to the V section. Any of the Veyond Argonians can be used (VeyondArgBossMale1, for instance).
Funny thing. I never really noticed that Argonian enemies are actually pretty rare in the fourth game! But yeah, they don't appear as bandits or conjurers or any other generic enemy except Marauders, I think. This only furthers my quest to add these into the game. Lizard men are not the same as Argonians though, as we'll see.
2a). Edit one of the Veyond enemies. Change ID, change Name. Class can be changed to whatever enemy-class fits best, such as BanditMelee for one which primarily uses melee weapons.
Make any changes you'd like to Stats, but make sure No Low Level Processing stays toggled on.
2b). Factions tab
Add or remove factions that seem pertinent. I tend to think lizard men will dwell mostly around creatures, so I added Lizard Man Warrior into the Creature Faction, removing him from VeyondCaveBandits.
2c). Inventory tab
Lizard men also don't go around wearing silly town clothes, in fact, the Veyond bandits aren't wearing anything much at all. I gave my lizard a Leather Shield, a Club, and left the two Leveled List selections alone. Gave the guy Leather Greaves though, otherwise he'd be walking around in loincloths, which is even sillier-looking than town clothes. Up to you, of course.
3). Click OK, saving as a New Form.
4a). Main Toolbar > Character > Faction
The Lizard Man deserves his own faction, and for dialog purposes, it's easiest just to make a new faction, just for the lizards. Right-click > New into the Factions window.
4b). Give the faction a name. I am calling it aaaLizardmen. Yeah, real original.
4c). Name the faction (in the top-center Name slot) and toggle "Hidden from PC" and "Evil" on.
4d). In the Interfaction Relations window, right-click > New and make this faction friendly, or hostile, or somewhere in between, to whatever other factions are in the game. Since my lizard men will primarily be put into Creature dungeons, I selected this, then put 70 into the Disposition Modifier slot. With 70, there is a chance there'll be occasional disagreements between the lizards and (let's say) some goblin or rat. They aren't totally rational beings.
4e). Keep the Faction window open.
5a). Reopen the Lizard Man's NPC panel, click the Factions tab, and drag the faction just made into the Lizard Man's Factions window. Click OK.
5b). Close the Factions window.
Main toolbar > Dialog button (this is the button which has a quote bubble for an icon).
Lizard Men are supposed to be primitives. They live in their own society, away from the colloquial civilization of Cyrodiil. They are basically like slightly-more-intelligent animals, since they have their own language, and can wield weapons. This being said, it'd be rather silly if they go around saying "How does the day greet you friend?" talking like any other NPC, if they are supposed to be monsters.
6a). Once the Dialog panel opens up (and it can take a few seconds) the Filter scroll-bar should automatically be on the lizard's ID IF aaa is at the front of the ID's name. If this ID is not showing in the filter, go ahead and find it.
6b). Click on the Conversation tab. This tab controls all the silly conversations NPCs normally say. In the center-left Editor ID (this is the tall window) there's a long list of topics. We're only going to focus on Hellos.
6c). Left-click on Hello. Scroll down to GenericArg. The first Argonian greeting is "Blessed we are." In the Conditions window, notice that there are two conditions: only Argonians are going to be able to say this.
6d). Add a third condition, which is GetInFaction aaaLizardman != 1.00
6e). Copy this Condition, then Paste it into all the other GenericArg Topics below.
6f). Scroll down to the Generic topics which do NOT include the Player in the NPC column. The first generic topic which qualifies is "Good Morning."
6g). Paste the same condition into Good Morning's Conditions window.
Pay attention to the variety of conditions which appear as you scroll downward. "You're making me nervous, sneaking around like that" is never said by any NPC I've ever heard. The aaaLizardMan condition won't need to be pasted into this one.
Also, any racial Hellos can get skipped. The game recognizes lizard men as Argonians, but not as Imperials, Orcs, High Elves, etc.
Any Generic Hellos which feature low Disposition ratings can also get skipped. Anything below 20.
6h). Click on the Combat tab, and click Attack in the Editor ID window.
Some of these Attacks can be kept. Anything not in plain English, for instance, such as "Huuagh!" or "Arrgh!" could potentially be said by a primitive beast. Anything English though, can get removed from lizard men dialog by pasting the same condition which was pasted into the Conversation tab topics.
Again, a lot of these Generics can be skipped. The lizard man character is not an elf for instance, so it's pointless to paste the GetInFaction aaaLizardman != 1 condition in.
6h). Detection tab
Every single selection in this tab will need to have that same condition pasted in. Good news is though, the job is finally done.
6i). Click OK, closing the Dialog panel, click OK on the NPC panel, and save.
Time to add these lizards into the game. If put into Leveled Lists, they will show up randomly
7a). OBJECT window > Actors > Leveled Creature
Find any list the lizard can possibly get added to. Since these lizards are friendly to goblins and monsters in my game, I started with LL0Goblin100. Double left-clicked on this selection.
As can be seen, there are three possible goblin-types which can appear in this list, all of them Level 1. Any instance of LL0Goblin100 (in a goblin lair or outdoors) will cause one of these three types to show up 100%
7b). Right-click > New into the window, and find the lizard man, or a lizard man. In my game so far, I've got aaaLizardmanWarrior and aaaLizardmanSwimmer (the underwater / swamp version). Swimmers don't carry weapons or shields, but are good with Hand-to-Hand. Now, there is a chance one of lizards can show up, along with any one of those three goblins. Basically, there is a 25% chance the lizard will appear from that LL0Goblin100 list.
7c). The Level slot can be changed if desired. For instance, if the lizard man is not to appear until the PC is Level 6, this can be changed from 1 to 6.
7d). The Count slot can also be changed. By default, one lizard man (or one of those goblins) will appear from that list. If the slot is changed to two, now two will appear instead of one.
If more than one get added into Leveled Lists, chances are the Dialog window will need to get opened again. Go back into the Conversation tab, and paste the GetInFaction aaaLizardmanFaction !=1 condition into any conversation topic which goes beyond the Hellos. In other words, the lizards won't say any Hellos, but if there are more than one of these in the same cell, there's a chance they can still meet & greet and fall into a silly NPC conversation.
Same condition can be pasted into Goodbyes as well.
7e). Click OK. Save.
7f). Continue to scroll down the entire list of enemies, adding the lizard into whichever lists seem appropriate. Since Argonians can stay underwater indefinitely, I put the swimmers into some LL0WaterShallow and LL0WaterDeep lists, so they'll occasionally replace mudcrabs and slaughterfish respectively.
Nice! I'll be using this mod when I come back to Oblivion.
Making an NPC Vendor / Repairist. Game: TES IV: Oblivion
I've got a recurring problem in one of my games, which is a lot of merchants tend to lock their doors at night, and then sometimes never reopen them. And if I use the Unlock console command, what I usually find inside is an empty shop, with no shopkeeper(s). This problem has something to do with Open Cities I think. I don't know. And I do not have much desire to delve into the Open / Better Cities conglomeration of mods. Instead, I'm going to make my own merchants. Surprisingly, making a merchant in Oblivion is much easier than it is in later games!
In Bruma's Nord Winds shop (in Renee Gade III's gameworld only), Skjorta shows up for work, but Ofland never does anymore. Perhaps he got pwned. Or perhaps he got sick of being in Bruma. Now he's in Skyrim. I don't know. Since Renee Gade III got kicked out of the Fighters Guild, and since the smith who runs Hammer and Axe also seems to have joined Olfland, nobody can repair RG3's gear in this town.
I know I can just use console commands to find these guys and bring them back, but screw it. My PC game needs new faces. I decided to make a young NPC named Olfland Junior, who takes over his father's shop.
1). OBJECT WINDOW > Actor > NPC
Find a named NPC who is also a merchant. Do all the usual: change ID and Name, bla bla.
2). Class can be MerchTrader, or change it to MerchSmith.
Note: Do NOT toggle Auto Calc Stats or PC Level Mult on. Toggling these will cause the NPC's inventory to go "grey", meaning we can't control what they buy or sell.
3). Since I am editing a named NPC, it's important to remove any AI they've got, so they don't wander off to Skingrad or wherever. Also, put the NPC into any Factions which are appropriate to where they live.
4). Click OK, closing the NPC's panel. Save as a New Form.
5). Reopen the NPC and click on the AI button.
I am going to make this NPC very "light" on AI. Olfland Junior will basically stand in Nord Winds by its forge 24/7. He won't go anywhere, he won't even eat or sleep. But one thing he will do is BE there in Nord Winds, so my character and her friends have somebody to buy, sell, and repair stuff from.
6). Right-click > New into the Editor ID window. Give the AI Package an ID, and put Package Type on Wander.
7). Offers Services should be toggled on. VERY important, and easy to overlook this! Click OK.
8). All the various Buys/Sells toggles can also be turned on or off: Weapons, Armor, Books, etc.
9). Change Barter Gold to whatever you'd like. Oldland Junior is in charge of 1000 gold. Quite a responsibility for his 19 year-old self.
10). If the NPC is to Recharge and/or Repair, toggle these on.
11). Click the Save button.
12a). CELL + RENDER windows
Put the NPC in to the cell where he or she will do business. Olfland Junior goes into Nord Winds, by its forge area.
The job is basically done, assuming you just want the NPC to buy random stuff. That is what the "Offers Services" toggle does: it makes them buy random things. If more specific things are to be sold however, continue to the next step.
13). Move into an area of the cell which is not going to be inhabited by anybody. So...out in the void somewhere. We're going to put a vendor chest out into this void, where nobody can steal stuff from it. Bethesda tends to put vendor chests beneath the shop itself.
14). OBJECT window > WorldObjects > Container
Left-click into the Editor ID window (so you've highlighted one of the containers) and type VEN. This should automatically send you down to the VendorChest area, starting with VendorCFightingChance. Any of these chests can simply be edited, for quickest results.
15). Drag the chest into the Render window, out into the void. Left-click on the chest (so the Reference panel opens). Click on the Ownership tab, and find the NPC vendor in the NPC scroll-bar.
16). Put a Reference ID into the appropriate slot, and toggle Persistent Reference on. Click OK.
17). Reopen the chest, either from the Object window or Render window. Drag salable items from the Object window into this container's main window. Bethesda tends to use their hidden vendor chests to sell unique objects. If you choose to do the same, make sure Respawn stays toggled OFF. Click OK.
Conversely, if the merchant is to sell random things as well as buy them, toggle Respawn on, and drag some Leveled List stuff from the Object > Items window. Specific items (not from lists) can also be dragged over.
18). Find the vendor in the Reference window, and double-left click on him or her. Click on the Merchant Container tab.
19). Use the Cell scroll down to find the cell the vendor chest is in. Then use the Reference scroll-down to find the vendor's unique chest.
20). Click okay, and save. Done and done. Oops, I forgot to make sure the shop's door unlocks and locks.
21). Edit a key, and give it a new ID, save, bla bla.
22). Give the NPC this key. Now go back into the NPC's AI button and find the package which is on while they are offering services. Let's say the shop is to open at 8 am, and stays open for 12 hours. Toggle...
At Package Start: Unlock Doors on.
At Location: Unlock Doors on.
At Package End, Lock Doors can be toggled on.
23). Find the shop's main door, and double left-click on it. Don't go outside though, stay inside and open this door's information. Use the Lock tab to assign the key just made to this door.
24). Click on the door's Ownership tab. If this door is part of an existing building it may be owned either by a single NPC, or a Faction. If it's owned by a single NPC who is no longer around, easy. Just make the door owned by the new person. If it's owned by some faction, the NPC can simply be included into this faction.
click OK, click Save, click OK, and save. NOW we're done.
SEQ Files, Game: TES V: Skyrim
Requires the TESVEdit program https://www.nexusmods.com/skyrim/mods/25859.
This one is not about modding per se, it is about an important step one must take for quest-making, though. SEQ stands for "Startgame Enabled Quest." SEQ Files must be updated every time a new quest gets made or updated for a particular .esp in the Skyrim Creation Kit. Otherwise, the game may not even recognize that a new quest is there, in this .esp.
1). In Skyrim's Data folder, look for the SEQ folder. Make sure it is there. If there is no SEQ file, one can be created in the Data folder, literally by right-clicking > New into the Data folder, and then naming the new folder SEQ.
2). Open TESVEdit. Right-click on any of the files which show up, and left-click None.
3). Find the mod you're working with, single left-click the mod's checkbox, and press OK. Do NOT double-click it, or it won't load properly.
4). After the mod loads, right-click onto the mod's name and select the very bottom selection , which is "Other." Left-click on Create SEQ File.
5). Close the TESVEdit program by left-clicking on the red X up in the upper-right corner. A final panel shows up which lists our mod with a check-mark next to it. Click OK.
6). Go into your Skyrim > Data > SEQ folder and see that your mod now has its own SEQ file. Hopefully it does.
If you've already made an SEQ file in the past, hover your mouse-cursor over this file, and make sure that it has today's date on it. This indicates that the file has been updated.
Making FOMODs through Fallout Mod Manager
This post is going to discuss making FOMODs for the Fallout Mod Manager version which is found here, https://www.nexusmods.com/newvegas/mods/36901/. There could be other versions of FOMM which are easier, I don't know. Without the notes below though, I would be lost if I tried to make another FOMOD again. Making FOMODs for Fallout is a hell of a lot more involved and even stressful than making OMODs for Oblivion, I have found so anyway. I have heard others say the same, too.
The following assumes an archive file was downloaded, its author is promising a FOMOD can be made from this archive, and now you're going to make this archive into a FOMOD. Not all mods will need this method, of course; only those which are supposed to have their installation simplified by the FOMOD process. Only those which are more complicated than usual, in other words.
1). Open Fallout Mod Manager
2). On the right side of this program, click Package Manager.
3). Again, on the right side, click Create FOMOD. Wait a moment or two.
4). A new panel *POPs* up with two main windows, which is called FOMod Builder Form. It is easiest to just drag the archive into the Source Files window. We can also click the Add Files button and search for the archive this way.
5). Double-click on the archive (opening it up in the Source Files window).
6). Now, drag any folders, files, and readmes over to the FOMod Files window. See? More complicated for some reason. Neither OBMM nor Wrye Bash / Oblivion has me doing things so manually. Anyway...
7). Go back to the archive file. NO, not the archive in the FOMod program, go back to the archive in your Downloads folder, or wherever your original archive has been saved. Right-click on this file and choose Rename. Now copy / paste this name into the long, rectangular box where it says FOMOD File Name (without extensions).
Try clicking OK in the lower right corner, and be patient while the program does its work. Chances are some errors will show up, but hopefully one of these is not the FOMOD File Name.
8). Now, have a look at the left side of this panel. The 'Sources" button should be greyed-out. Click on the Download Locations button. IF the chosen mod came with pre-made FOMod stuff (like MMM does) simply click the "Included" toggle on. ... Do not mess with Hidden or General, both of these are for more advanced modders.
9). Click on the OK button again. Chances are some errors will be found, and again, allow the program to list them, because some FOMODs make certain changes that others do not.
-- For instance, if "FOMod Info" has an error, it's usually because of empty boxes that haven't been filled in, like "Mod Author" and "Version." Go ahead and fill in this info manually, but some of the stuff can be left blank. In the Groups box, toggle anything in here (such as Textures, Quests, etc.) These are all the things the mod is going to include.
Click OK again. The program will warn that some stuff hasn't been filled in, but we don't always have to do this.
-- If the "Readme" area has an error, this is simply because any Readme file(s) have not been moved over to the FOMOD Files box. Even though we're supposed to be able to pick and choose this sort of stuff.
-- If the "Save Locations" area has an error, go ahead and click on this button and choose the Create FOMOD toggle. As can be seen, there is a "Premade FOMOd pack" toggle as well, but I haven't been able to get it to work, even though MMM is supposed to include premade FOMod stuff. Be patient!
10). Click OK. If everything goes right, a new panel will *POP* up with two bars, which should be compressing information, turning green as progress commences. In some cases, these two bars won't show up though, because there isn't any stuff to compress.
11). Be patient. If everything goes right, the previous FOMOD Builder panel will close (along with the progress panel) and we'll be back on the Package Manager panel, with our new FOMOD available as a one-click .esp or .esm choice. Go ahead and one-click (or double left-click) on it. If this doesn't work, highlight it, then press the Activate button.
12). Every FOMOD does this next part differently. Just go through all the choices that come up, clicking "Next" when you're ready to move to the next option. MMM, for instance, includes a choice of making the Configuration Menu either an in-game deal (similar to Skyrim's MCM Menu) or it uses an older method of ESP choices.
13). Click Finish whenever the choices sequence is done. If the mod is wanting to overwrite anything (MMM asked if I wanted to overwrite a variety of meshes, for instance), the cool thing is Fallout Mod Manager will let us know if we want to do this.
14). Close the Package Manager by clicking the red X in its upper-right corner.
15). Now we're back on the original FOMM program. Double-check to see that any .esps we chose earlier are clicked on.
16). Close the program, https://loot.github.io/ and re-open it to make sure everything is still there
`
Making an NPC follower Game: TES V: Skyrim
Firstly https://www.youtube.com/watch?v=BFHbusKVqZ0 shows how to make an NPC, it goes through all the different features of the NPC panel, Stats tab, Factions tab, etc. Bethesda also has their own https://www.creationkit.com/index.php?title=Bethesda_Tutorial_Creating_an_Actor.
Second, I use https://www.nexusmods.com/skyrim/mods/15524 for the quest component of my followers. What I am about to describe below is merely how to make an NPC follower with basic commands available (Follow, Wait, etc.) and AFT can extend these commands and options. I have found that AFT does the job just the way I'd like. AFT also has a feature (a spell, basically) which can automatically make a lot of NPCs into followers. So all the stuff below is just for gamers who want to custom-make an NPC follower from scratch.
https://www.nexusmods.com/skyrim/mods/16266 is also recommended. Helps them say more things. I have found that not all the voices listed in this mod work, but I have listed the ones that do below.
1). OBJECT window > Actors
Make a New NPC in Object window. Type an ID, a name, and a short name.
2). Make this NPC Unique. This is the most important button for now, on this first page. You might want to make him/her Essential as well, but the Respawn toggle is optional.
I made several generic followers for Sir Vyvoor for instance (a warrior, archer, and spellsword). These followers begin their lives in Windhelm's palace, and in case any one of them gets pwned, another one will eventually respawn in this palace.
Note: sometimes it helps to click OK (closing this new character window) and then reopen it. Otherwise, "Unique" and other selections will keep getting toggled off.
3a). Traits tab: Choose Race, Sex, etc.
3b). Give the NPC a voice in the Voice Type scroll bar. This will make them speak when we tell them to "wait" or "follow", etc. I have found that most voices do not work in the base Creation Kit, even that voice mod linked above. There are two ways to figure out which voices will work, and which do not. The first way is rather blind. Experiment by choosing a voice type, and then going back in-game to see if it works.
The second way to do this is much more specific. In the Object Window, find the Miscellaneous section, then choose FormList. Type "voice" in the Filter slot, and scroll down to VoicesFollowersAll. There are a total of seventeen voices that are guaranteed to work for followers.
MaleEvenTonedAccented
FemaleSultry
MaleDrunk
FemaleDarkElf
MaleDarkEfl
MaleNord
FemaleCommander
MaleBrute
MaleArgonian
MaleKhajiit
FemaleOrc
FemaleCondescending
MaleEvenToned
FemaleEvenToned
MaleYoungEager
FemaleYoungEager
3c). Raise Disposition Base from 35 to anywhere above 50, unless for some reason that follower is supposed to hate our character.
4a). Stats tab: Click PC Level Multiplier if you want somebody who will level with player, or Auto Calc Stats (ACS) for soembody who is outside these bounds. ACS will cause the person's skills to match whatever their Class is. Clicking both of these OFF is the best way to make the most unique person, with skills as high or as low.
4b). Choose their Class. This is a scroll bar at the very bottom.
5a). Factions tab: very important. Right-click on this window and choose New. Filter the word "follower" and choose Current Follower Faction and Potential Follower Factionn
5b). Current Follower Faction will need to be -1, meaning the NPC is not a follower yet. Change this from 0 by left-clicking under Rank, and pressing F2. Highlight 0 and type in -1.
Tip: when making multiple followers of the same type (soldiers or guards, for instance), it is possible to set a bunch of factions for one NPC, and then copy all these factions for the next one. Just right-click > Copy Stack from the first NPC, and Paste Stack to any others. Done.
6). AI Data tab: Make the NPC Aggressive if we want him / her to fight. Very Aggressive is only recommended for somebody who can possibly be an enemy to citizens. Also, choose Help Allies. We can go back to the Faction tab to see everyone this person has in his / her Faction.
Note: "Help Friends and Allies" may make the NPC jump into too many battles.
7a). Inventory Tab: we can give them a Default Outfit. Click on the Preview > Full button to see this in real-time. Amazing Follower Tweaks has a neat feature which also allows us to select an outfit which the NPC will wear when he/she is relaxing, which is a way to get them out of an armor suit.
7b). To give the NPC a weapon, click in the middle window > New, and then scroll down whatever object(s) you want. IronDagger or whatever.
... also visit the Spells tab, if the NPC is to be a magic-user.
8). Click OK to save the NPC to the Object window. NOW THE NPC IS MADE, however, it is NOT yet a Follower
9a). In the Object window, go to Character > Relationship. Right-click on the window and select New. It helps to create a Relationship ID with a similar name as the NPC ID, just for convenience. We cannot make this ID exactly the same as the NPC's ID though.
9b). Under Parent NPC, find the name of the NPC, and choose this. This does not mean we are the NPC's parent, ha ha. It merely means we are the one who calls the shots for this NPC, when he/she is following.
-- Child NPC: Find "Player" for this.
-- Relationship Level: select "Ally". This is needed to make sure recruiting dialog shows up for the NPC.
-- Association Type can be left to NONE in most cases, unless we want to further define the NPC somehow.
Making an NPC Vendor Game: TES V: Skyrim
1a). OBJECT window > WorldObjects > Containers
Left-click into the Editor ID window and type Merch so all the merchant chests show up.
1b). Find a chest that sells things which you'd like the merchant to also sell. Duplicate this chest.
1c). Rename its ID, click OK. And select "no" when the CK asks if you'd like to make this chest into a New Item (since it already is a new item), and confirm this by clicking Yes.
1d): Go into this container's inventory and change anything you'd like. I duplicated VendorMiscChestSmall, which contains several Leveled List items.
Note: Make sure the Respawns toggle stays toggled on, so the merchant will restock their store.
It's a good idea to right-click > New into the Item List window, and add find VendorGold X in the scroll-bar, with the X being "Apothecary", 'Inn", and so on. Since I need a general merchant, I am choosing VendorGoldMisc, and then changing Count to 1. This will give the vendor 750 gold to play around with, though sometimes other mods will cause this amount to vary. Gold can also be added directly into the NPC's inventory window as well, after this NPC is created. Any gold added here will not vary.
1e). If there are any leveled items in the container's inventory which say anything to do with "PerkInvestor X" go ahead and remove these. Since the container was duplicated, sometimes this perk will hitchhike along. Since these perks are already associated with other merchants, we don't want to influence these others with our custom merchant. That can mess up things on their ends.
2a). CELL + RENDER windows
Drag the container into a cell where the vendor will be placed. Put it into the void though (outside of character reach), unless you want there to be a chance that the player will choose to try stealing from this chest.
Make sure the chest stays onscreen.
3a). OBJECT window > Character > Faction
Right-click > New into the window. Give the faction an ID and Name.
3b). Make sure the General tab is selected. If the vendor will be running his/her own shop or stall, click the Can Be Owner toggle on. This is not important for NPCs added into cells which are already inhabited by other vendors though. For instance, I wanted to add a general vendor into Dawnstar's Mortar & Pestle. Frida (the default merchant there) will gladly buy & sell apothecary stuff like potions and ingredients, but I want somebody else in there who will buy general stuff. This second NPC won't need "Can Be Owner" toggled on.
3c). Vendor tab: toggle Vendor on. And click on the Select Reference in Window button. Double left-click on the merchant's chest.
3d). Put some numbers into the Start Hour and End Hour slots. These numbers correspond to hours in the game, however they must be added in military time .... i.e., 18 instead of 6 pm. If times are not added into these slots, the NPC will not buy or sell at all.
3e). Change the Vendor Buy/Sell List to whatever is appropriate. Since my merchant will buy and sell general stuff, I changed this to VendorItemsMisc.
Note: when choosing VendorItemsMisc, toggle Not Sell/Buy on. This keeps them from buying & selling stuff which should not get bought or sold (such as keys).
3f). Click the Location button and choose Near Self. (Note, we can also choose Near Reference, and I will explain why this can sometimes be chosen later). Click Ok.
3g). Click OK, closing the Faction panel, and save all work.
4a). OBJECT window > Actors > Actor.
Right-click > New into the Object window. Do all the usual: ID, Name, and Short Name.
4b). Toggle Unique on, and click OK (this closes the NPC's panel). Now reopen the NPC's panel.
5a). Traits tab: choose a Race. And choose a Voice Type in the scroll-bar.
Note that not all of these voices will work in-game, and if they don't work, sometimes this can screw up the onscreen dialog as well. It helps to make sure the NPC's voice will work. So since I am making my NPC a vendor, here is what to do.
5b). Object window > Miscellaneous > FormList
Type "voice" into the Filter, so that the window focuses on Voice Types. There are dozens of results in the window now.
5c). Scroll down to VoicesVendor and double left-click on this.
The FormList panel pops up, and this shows all the voice types which are "safe" to use. There are quite a few. Since my NPC will be an ordinary Nord, I can see that MaleNord is indeed safe to use. Why is this important? It's important because choosing the right voice will guarantee the NPC will say all the things vendors usually say: "You lookin' to buy something?" "Trinkets, odds and ends, that sort of thing," and so on. If they haven't got the correct voice type, they won't say anything. And while to some of you this might be a small blessing, I'm not sure if they'll also be able to participate in buying / selling stuff.
5d). Click OK, save. And reopen NPC's info again.
6a). Stats tab: Choose PC Level Mult to make the NPC level with the character. Choose Auto-calc stats (and then give the NPC a level in the Level slot) to make an NPC who will pertain to a specific level. Or choose neither of these, and customize the NPC in the Skills window.
6b). In the Class scroll-down, VendorPawnbroker is a good class for a general merchant. There are also classes geared toward Smiths, Food, Alchemy, and so on.
Notice that when each class is chosen, this will change some of the numbers up above in the Skills window, if Auto-calc Stats is toggled on.
6c). Go through the rest of the tabs as you see fit, giving the NPC some AI, some clothes, some personal objects, and so on. Note that items in the Inventory tab's main window COULD get sold, if the NPC deals in this type of vendoring. For instance, if the NPC is to sell potions, any potions in his/her inventory can get sold as one-time items. This is useful for adding rare, possibly expensive items for sale.
6d).. Click OK and save.
7a). Reopen the NPC vendor's info and select his/her Factions tab. Drag the new faction from the Object window into the NPC's Factions and Ranks window. Right-click > New into this window too, and find the JobMerchantsFaction. These two factions alone are all that's needed for a basic merchant. Our custom faction makes sure the merchant will sell & buy from and to the right container, and the JobMerchantFaction makes sure the NPC will say all the things vendors usually say.
Note: Blacksmiths should not be added into the BlacksmithFaction. JobMerchantFaction will handle all their merchant duties.
It's also a good idea to add one of the crime factions, such as CrimeFactionPale, which is what my vendor will have. This will cause the NPC to freak out and give us a bounty if we get caught stealing something, or attack the NPC. Below the Factions and Ranks window, change the Assigned Crime Faction scroll-bar from None to whichever crime faction was added. Now.... depending how much Confidence this NPC has in her or his AI Data tab, this NPC will either run away if Cowardly is chosen, attack our character if Foolhardy is chosen, or somewhere in between.
A town faction (such as TownDawnstarFaction) might also be a good thing to add. This helps the vendor become part of the town itself, meaning they'll get involved in various things those townies say.
7b). Make sure any factions which are supposed to be "on" have a 0 next to them, under the Rank column. If there's a -1 in this column, change this by highlighting the faction, pressing F2, and changing this manually to 0.
7c).. Click OK, closing the NPC's info, and save.
8). Place the NPC into the cell where the container was added.
The work is basically done. Below are some tips which will make the vendor sell things which are right there in the store. As we buy these items, they will disappear from the store! They will also respawn when the store or stall's cell respawns. Neato.
9a). Grab 'n' drag any items from the Object window, into the Render window, and place these items onto any nearby surfaces. Double left-click on these items in the Render window, and select one of the Ownership tab's scroll-bars, selecting either the NPC vendor, or his/her faction.
9b). Double left-click on any object near where the NPC which cannot be sold, such as a counter or a table, where the vendor will do all vendoring.
9c). Give this object a Reference ID. Click OK.
10a). Double left-click an unsalable object (such as a counter or stall where the NPC will be vendoring) and give this object a Reference ID. Now, make sure this object (counter, stall, whatever) stays onscreen.
10b). Reopen the NPC's custom faction in the Object window, select the Vendor tab, and press the Location button. "Near Self" is toggled already, from step #3f. Change this to Near Reference.
10c). Press the Select Reference button and double left-click on the counter, stall, whatever.
10d). Put a number into the Radius slot, such as 256 or 512. Now, any referenced items placed nearby can be bought in real-time once we're back in-game, and if we can see these items onscreen, they will disappear when bought.
Making a Book bump a quest stage Game: TESV: Skyrim
This post assumes you've already written a quest (even if it's a partial quest) or have an idea for one. And then a book gets used to bump one of this quest's stages, objectives, and so on.
1). Start up the Creation Kit. Edit or Duplicate a book or a note. Give it an ID name and an actual Name. Change its Book Text.
2). Close and save the book as a New Form if you edited it, or don't do so if you duplicated it.
3). Reopen the book/note. In the Scripts section, click the Add button.
4). Type OnRead into the Filter. Two pre-made scripts will show up under [New Script]. Select the second one, which is DefaultOnReadSetQuestStageNotAlias.
Again, make sure you choose the NOTAlias version. For some reason, the first script will not work.
5). Click OK.
This attaches a generic script to the book which has been pre-written by Bethesda, which saves us a lot of time because we don't have to type the entire script!
6). Go ahead and right-click onto the script, and select Edit Source to have a look at all the text we didn't have to write. How lovely. Thanks Beth, for finally making our scripting endeavors easier.
Close that script when you're done.
7). Click on the Properties button. A panel pops up which should have a couple items in its window: myQuest and myStage. By now, you're going to need to have a partially-written quest already extant.
8). Highlight myQuest. Press the Edit Value button. Look for the name of your quest in the scroll-bar, and select this.
9). Now highlight myStage, press the Edit Value button, and choose the stage which you'd like the quest to bump to, once the book is read.
10). Click OK, closing the script, and click OK again, closing the book. Or Note. Save, and that should be all.
Note that this can be used for OnAdd (actually, DefaultSetStageOnPlayerAcquireItem works better), OnActivate, and other typical functions found in earlier game scxripts.
Skyrim Quest Tutorial
So this one is sort of like an introduction to Skyrim quest-making. It rambles a lot, it's not very focused, but itintroduces a bunch of basic concepts, and shows how to use a lot features in the Quest windows. Because making quests in the Creation Kit is waaaaaaaaaay different sometimes than making quests in earlier programs. I wrote all this last year, so for me this is a refresher course, because I don't play Skyrim year-round, so I forgot a lot of stuff.
At the moment, I'm wanting to make a simple quest which gives Sir Vyvoor a horse, which will take place in Whiterun. I know he can just pay 1000 gold and buy one, but wouldn't it make sense that the Dragonborn, which is what Vyvoor is, should just get a free horse? I mean, c'mon.
Quests can vary wildly of course. In this one, I already know I'm going to need a note, a horse, and a new NPC. The note is what begins the quest, and the NPC is going to be who my character speaks to. Pretend I am making a note and an NPC therefore. I won't write it all up. Basic notes are pretty much the same as from previous games, they can be edited from premade examples, then placed somewhere in the world. NPCs however, are best started from scratch, especially if this NPC is going to participate only with our quests.
How to make a note and an NPC are described in posts above this one, and the horse will get discussed at the end of this post.
1a). Open Creation Kit. File > Data > open the mod you want, if you're already working on something. If you're not, just double right-click on Skyrim.esm.
2). Object window > Character > Quests. All those yellow icons in the right window pane are quests. Right-click > New into this window.
3). Give the quest a unique ID name, and Quest name. Priority is good at 60 for this tutorial, though it will vary in the future, for some other quests you might write.
4). Next to ID is a function called 'Type,' which is a scroll-bar. In most cases, we can just choose Side Quests or Miscellaneous. Miscellaneous quests will go into that bottom section of the Current Quests window once we're back in-game, and this is the place for lots of easy things to do, like Fetch or Kills. For this one I am choosing Side Quest.
*Note: to make an NPC who one-lines us with forcegreets (and that is all, this NPC cannot be spoken to more thoroughly) leave the scroll-bar at None. ...
5). Object Window Filter: leave this slot blank.
6). Event is another scroll down. We can leave this on NONE for now.
7). Toggle Start Game Enabled on if it's not already on, leave other toggles blank. In some cases, toggle Run Once on too, if it's not already toggled.
8). In the Quest Dialog Conditions window, select New, then GetIsPlayableRace == 1.00
9). Close the Quest page by clicking OK. This will allow more tabs on the very top of the page. Once it is closed, SAVE all work. Now re-open the quest.
10a). QUEST STAGES tab
In the Index window, make stages 0, 5, 10, and 20, 50, and 100. Always leave some space between these numbers (don't put 1, 2, 3, 4.... etc.). This way, if you need to add more stages later on, you can put them easily between the ones you've already go.
Stage 0: Left-click on 0. Right-click into the top Log Entry window and do nothing else. It'll say EMPTY. Leave it just like that. Toggle Start-Up Stage on.
Stage 5: Enter an initial Log Entry for 5 (or whatever you put first) by right-clicking > New into the Log Entry window, and then type the first update into the Log Entry box below. Unlike the GECK, whatever we write into the Log Entry box is going to show in-game. In the Papyrus Fragment box, type SetObjectiveDisplayed (5)
The way this quest is going to work, the player finds the note written at the start of this quest. This note is what bumps the quest from 0 to 5. The lesson on how to do this is in the post above this one, so go follow those instructions (if this hasn't been done yet), then come back here.
So two stages are written so far. I will come back to this tab later.
DIALOGUE VIEWS and PLAYER DIALOGUE tabs
In that note, I wrote some dialog explaining who left the note, and to come see her. Again, this is Stage 5. When the player finds whoever left that note, my character will have a conversation with her.
Unlike the Construction Set and older versions of the GECK, in the Creation Kit there are two ways to structure dialog: the Dialog Views tab and Player Dialogue tab. Dialog Views introduces a very visual layout to see dialog (and how it can branch in different directions) as we're adding it. The Player Dialogue tab is a more old-fashioned way to lay out text, though it's also not laid out the same way as in the CS and GECK. Either tab can be used, whichever the modder feels more comfortable with.
11a) Let's start with the more-visual Dialogue Views windows. In the vertical left Editor ID window, right-click > New, then type aaaQuestNameDialogIntro. "Quest Name" can be whatever ID name was chosen in the Quest Data tab. Click OK. Now highlight that text in the Editor ID window, by left-clicking on it once.
11b). In the larger, blank window, right-click > Create Branch. Give the ID for this Branch name like aaaQuestNameStartBranch. Click OK. The CK will automatically add the word "Topic" after this.
11c). Click OK again. A yellow box should *POP* up in the larger window. If it doesn't, just click on another tab (such as Quest Data), return to the Dialog Views tab, highlight the topic name (aaaQuestNameDialogIntro) in the Editor ID window, and the yellow box should show up in the larger right window.
Note: Though I am teaching how to do this in the more-visual Dialogue Views page, keep an eye on what's happening in Player Dialogue as well, just in case you're more comfortable using this page. I actually prefer the older way of doing this, but for this very reason that's why I'm reminding myself how D. Views works.
11d). Double-click in the grey area inside the yellow box. Wait for it. Now a Topic page should open.
11e). The Subtype scroll-bar should stay as Custom, though in the future it is also make this dialog topic into a ForceGreet or Rumor.
11f). "Do all before repeating" is a toggle which works similar to the "Random" toggle in the CS; i.e. the NPC who says this stuff will say something different every time we click on their topic. Since I am writing a one-time quest which gives my toon a horse, I'm not toggling this on.
11g). Topic Text is similar to what is in the CS as well. This is what we can click on as we speak to this NPC in-game. Priority can be left at 50.
11h). Double-click in the large Info window so that a New Response page pops up. The Response Text is what the NPC will say when we click on that topic.
11ii). Script Notes is sort of like a "notes to self" sort of area, which has nothing to do with in-game stuff at all.
11j). Idle Animations has a scroll bar for Speaker and Listener. And this will cause the NPC or PC to do certain things (such as gesture, clap hands, etc.) when dialog is being spoken. In most cases, both of these can be left at NONE.
11k). Give the NPC an Emotion and Emotion value, and click OK. A larger Topic Info page now pops onscreen.
11l). Prompt was first used in the GECK, and now we've got it in the CK. It is an overwrite feature, which will replace the Topic Text above it. Prompt will railroad the player into a specific discussion, so if you choose to add a Prompt into dialog, you won't see Rumors or any other choices at this moment, once you're back in-game.
Again, those who are familiar with Prompts in the GECK already know how it's possible to use the same topic over and over again, merely writing up new prompts for the player to click on, instead.
11m). We can see the Response Text we added a moment ago, and we can add more Responses by right-clicking > New into this long horizontal window.
11n). Conditions is similar to the CS. GetIsId is the default condition for this small page, which makes things SO convenient, since GetIsID is the most common condition. We can also put GetStage and other typical functions for this area.
Now comes the weird part. To make the dialog show up onscreen once we're back in-game, a Sound File must be made for the dialog which was just typed, otherwise the text will remain onscreen for literally a millisecond. Now, this sound file does NOT need to have any actual sound, that's the good thing.
11o). Double left-click on the first Response Text which was just typed up, so the Edit Response panel pops up. There should be a Voice Type listed in the bottom window which corresponds to the NPC who says this dialog (MaleNord, for instance). If there isn't anything in this window, you'll need to go back to the NPC and make sure an appropriate Voice Type is chosen.
11p). Highlight this Voice Type. Now click the Record button. If you have a microphone, you can record your voice if you feel confident, but this is not 100% necessary. It is possible to just record silence. But there MUST be an appropriate amount of silence (while reading the text) so that the actor's mouth moves for an appropriate amount of time. In other words, if there's no actual dialog, press the Record button, then count to ten or whatever. Click Done.
11q). Click again on the VoiceType (MaleNord or whatever), and click the Save button. If a warning shows up saying this file already exists, it's because there is already a MaleNord (or whatever) file saved. Ignore the warning.
11r). If some actual voice was recorded, highlight the same Voice Type text, and click the Preview button to have a listen how awesome, or silly that voice sounds.
11s). Toggle the From WAV ON, and press Generate Lip File. Click OK.
11t). Toggle Has LIP File off, but Force Subtitle on.
11u) In Scripts End box, type GetOwningQuest().SetStage (10)
12). Click OK, OK, and OK, closing out all the quest windows, just to make sure everything is saved. SAVE. Reopen the Quest.
13a). DIALOG VIEWS tab:
Left-click the top of the EditorID name` (the top-yellow part of the box), and right-click > Add Topic. When the Topic page opens, the ID can be QuestNameYes if we want to make a Yes/No scenario. Add some text in the Topic Text slot, too. Since my character just got info about attaining a free horse, this'll say "You are giving me a horse?"
Tip: Once you're back in the Dialog Views tab, it's possible to click on the 'Show all text' toggle at the bottom of the panel if you want to see all the text typed up so far.
13b). Click OK. Again, the New Response panel *POPS* up. Write some Response Text that the NPC will say. "Oh yes, you've done many great things for us..." etc.
Follow all the steps from 13j to 14 for all dialog, to make sure recordings are made, even if they're silent.
13c): Back on the Dialogue Views tab, left-click into the first batch of NPC text. The cursor changes to a hand. Now, drag this hand over to the topic which follows the initial one. We can see how the conversation will flow now, right?
Have a look now in the Player Dialogue tab, at the initial topic. Note that in the Link To window (which is center-right) this initial topic ("Are you the one who left that note?") has been linked up to the topic which follows ("You are giving me a free horse?"). If you're not using the Dialogue Views tab, topics can still be linked manually by right-clicking into the Link To window, clicking Add Link and find the topic which follows. By doing all this, we do not need to make the quest SetStage as often as was needed in the CS and earlier GECK versions.
Click OK and OK, closing quest windows. Save.
Time to go backwards for a moment. I'm going to add an onscreen update into the game now, so that when the player finds the note, a message will flash onscreen.
14a). Quest Objectives tab
The Quest Objectives page works in a similar manner to the GECK. Right-click > New into the top horizontal window.
14b). Type the number 5 into the Index slot. And type some text into the Display Text slot. Whatever gets typed in there will be the onscreen update (and will show in the quest journal as well).
14c). Go into the Quest Stages tab, and select Stage 5. In the Papyrus Fragments box, type SetObjectiveDisplayed (5).
14d). Since dialog already bumps the quest up to Stage 10, let's go ahead and take care of 10. Right-click > New into the top Log Entry window, and type an update into the Log Entry box below it.
14e). In the Papyrus Fragments box, type SetObjectiveCompleted (5), and then SetObjectiveDisplayed (10). Go back into the Quest Objectives tab and type make and objective for Stage 10.
Click OK, and save. Reopen the quest window, with the Quest Stages tab showing.
Now comes the part that's really different. Once the player speaks to the quest-giver, she's going to ask for "tacking fees" of 150 gold before the horse becomes ours. So this horse is not really free. Plot-twist. In the CS and older GECK, all that was needed was to use a GetGold condition so the game could see if we've got enough to afford these fees. But getting the game to see our gold is now more complicated than it was.
14f). Select Stage 100, which is the final stage, so toggle Shut Down Stage on. Click the Properities button (this is right under the Papyrus Fragment scripting area).
14g). Click the Add Property button. For the Type scroll-bar, look for MiscObject. In the Name slot, type Gold001. Click OK, and click OK.
14h) In the Papyrus Fragment box, type Game.GetPlayer().RemoveItem (Gold001, X) , with "X" being whatever you think is fair. Also type...
SetObjectiveCompleted (10)
stop()
..........That is it! "Stop()" is what shuts down the quest. Now, to make sure the horse becomes ours.
15. OBJECT window > Actors
Type EncHorse into the Filter, and duplicate one of the horses which show up. Note that there are saddled and unsaddled versions to choose from.
Put into world somewhere (near a stable, usually). Give horse Ref ID. Click the horse's Ownership tab and make this horse belong to the NPC added earlier, the one who's giving all the dialog so far. Make sure the horse stays onscreen.
16a). QUEST window > Quest Aliases tab
Time to add some aliases to this quest. This is one of the huge differences between the Construction set and Creation Kit: we can create references to objects much more specifically in this latter program. References are going to be made for the player, gold, the horse, and the quest-giver. These references will make more sense later.
16b. Right-click > New Reference Alias. After the Reference Alias panel pops up, fill in the Alias Name slot with the word "Player" (without quotes, of course). Toggle Unique Actor on, and find Player in the scroll-bar. Click OK.
Note: Chances are the OK button for the Reference Alias panel will be off-screen. If so, single left-click on the Alias Name (so a cursor appears next to the name you typed earlier, which should be Player) and press Enter. This should close the panel, saving everything just added to it.
16c). Do all the steps in 16b, but this time type Gold into the Alias Name. Toggle Create Reference to Object on, find Gold001 in the scroll-bar, and leave everything else as-is. The entire string of information should be "Create Reference to Object: Gold001, Level: Easy, Create: at Player. Close the panel, again using the method from 16a, if the OK button is not onscreen.
16d. Follow all steps from 16b again, this time type Horse into the Alias Name slot. Toggle the Specific Reference on, click the Select Forced Reference button, then click the Select Reference in Reference Window button. Double left-click on the horse, and click OK. Close the panel.
16e). Last one. Follow 16b again, but this time, type QuestGiver into the Alias Name slot. Toggle the Unique Actor on, and find the NPC who speaks to us during the quest. Close the panel. Click OK. save.
17a). DIALOGUE VIEWS or PLAYER DIALOGUE tab
Whichever is preferred. Go back to the last bit of dialog added, which is "You are giving me a free horse?" Add a GetIsId and GetStage into the Conditions window. The stage so far is 10.
17b). In the Scripts: End box, type GetOwningQuest().SetStage (20). Click Ok, but leave the Quest window open.
17c). From here on, I'm going to be working in the Player Dialogue tab. Right-click > New into the gigantic window on the right, and type some text. "Well it's not exactly free. We'll need to charge some tacking fees..."
17d). Now, notice in the Topic Text slot, the same text from the first entry ("You are giving me a free horse?") is still in this slot. Do not change this. Instead, type something into the Prompt slot. "You want to charge me for this horse? How much, then?" All of this is similar to the way the GECK from earlier Fallout games works. We can keep the same topic going, substituting different prompts for the player to click on as the conversation commences.
17d). Follow steps 11j through 11t to add voice or silence, animations, facial emotions, etc.
17e).. GetIsID and GetStage can be pasted from the previous bit of dialog, but change the GetStage to 20. Now, if the player backs out of conversation early, he or she won't have to go through all that text about a horse being offered again.
17f). TBC
Repeatable Bounty Quests II (innkeeper involvement). Game: TES IV: Oblivion
This post shall deal with Respawning Bounty Quests, but it's different from the process I detailed earlier in this thread. Again, the quest-giver won't give us this bounty quest just once. It can potentially happen over and over, as the game respawns every 3 days.
The main difference between this process and the previous bounty quest is: the request to take care of some baddie shows up occasionally when speaking to particular NPCs. We go to speak to this person (to rent a room, usually) and sometimes he or she will want the PC to do something about the boss of some local lair. Once we have done what this NPC wants us to do, it's then possible to go back for a reward from that NPC, or some other NPC. Like the previous method, this one can potentially happen every 3 days. Again, this adds to the roleplaying side of things just like the previous method, but the involved process is more random.
Since the NPC's request shows up randomly, the player never knows when the NPC will give the option to start things. Because of this, when the quest finally shows up it feels more natural, as it becomes a part of conversation only occasionally. I have gotten this to work with numerous NPCs, mostly innkeepers.
The subject of my first respawning quest is the most difficult to work with, but I didn't know this at the time. I got the inspiration for this idea after visiting Malene of Roxey Inn, and she's more complicated to work with than some others. The idea: Malene already knows my character (Renee Gade III), since Renee has helped Malene in the past during the Gravefinder's Repose quest. So the idea was: those pesky necromancers have returned, and Malene needs RG3's help again! But Malene will ONLY ask for this help AFTER The Gravefinder's Repose is done.
Since Malene has a pre-written Bethesda quest associated with her, she required some extra steps be taken to make my idea work. Other NPC innkeepers (Foroch, owner of Gottshaw Inn, for instance) did not require as much help to get similar quests running. In this post I will be trying to provide details for the different methods followed for several different innkeepers.
1). Open Construction Set, bla bla bla.
Innkeepers who aren't in walled towns make perfect quest-givers, because their places of business are not as protected. Whether it's Malene, Diram Sirethi, Candice Corgine, Foroch, and so on, these people have an interest in keeping the area near their establishments safe. But the thing is, using each of these innkeepers as quest-givers will make things different every time. Each one requires a unique approach.
OBJECT window > Actors > NPC
First thing to do is perform some research on the innkeeper / quest-giver. Double left-click on one of the names listed (Corgine, Malene, Diram, etc.), and click on their Dialogue button. The Dialogue panel takes forever to open. Once it does, look at the NPC's GREETINGs.
On the top right-hand side of the Dialogue panel is a large window, listing all the quests these NPCs will have for greetings. There is dialog which deals with Crime, as well as some Generic greetings. In some cases, they will also have greetings which deal with quests, such as SQ05, which is https://en.uesp.net/wiki/Oblivion:The_Gravefinder%27s_Repose.
It's time to determine if the chosen NPC is already involved with any other quests. Are any of these quests current in our character's game? Have they already been done? Or have any not been started yet? If there are any quests, will they be ignored by the character? Or will they eventually get tackled?
Some innkeepers are involved in quests, and some are not. Either way, look at all the GREETINGs the NPC has. If our character is in the middle of some quest (or eventually will be) an innkeeper deals with, you need to then look at these individually, and find their Priorities. In some cases, there might not be any quests being done any time soon. If there aren't, look at the innkeeper's Generic greetings. Generic greetings often have lower Priorities than quest greetings.
For instance, I am going to tackle Candice Corgine first. Candice Corgine of Pell's Gate's inn has a bunch of Crime greetings (which can be ignored, unless your character is some sort of constant criminal). She also has DAClavicusVile, aka https://en.uesp.net/wiki/Oblivion:Clavicus_Vile, which has a Priority of 60. She will give her innocuous Clavicus Vile greeting when spoken to ("Welcome to Pells Gate, friend."), but only if this quest has not been started yet, or we're in the middle of it. She also has Vampire greetings, one Thieves Guild greeting, and several dealing with the MQEndgame. MQEndgame greetings only show up once the Main Quest is done.
Rule out which quests you've done, and ones which you're in the middle of. If your character is not a vampire for instance, you don't have to worry about Vampire greetings. If your character has done the Main Quest, look at the Priority for MQEndgame's GREETINGs (Priority is 12). Once all these are ruled out, this leaves DAClavicusVile. If the character meets Candice before DAClavicusVile is done (Priority is 60), there are three choices, assuming you want your greetings to show up in-game.
1). Simply lower DAClavicusVile's Priority to 5 or below, ONLY if you're positive you're never going to do this quest. Maybe your current character could care less about daedric quests.
2). Finish the quest in-game, or
3). SetStage the entire thing with the console. Again, this works if your character never intends to do this quest.
> For instance, https://en.uesp.net/wiki/Oblivion:Foroch, the wood elf who runs Gottshaw Inn, is not involved with any quests. So, just look at any Generic greetings he has. The Generic quest has a Priority of 5. Since Foroch hasn't got any quests associated with him, this means there are no other quests that introduce dialog with Priorities higher than 5.
Therefore, a revolving bounty quest that only involves Foroch can also have a Priority of 5. This Priority rating can get raised, for those who want to see their GREETINGs showing up more often. These greetings will still be competing with Generic though, so moving Priority higher than 5 won't automatically make any added greeting trump those of the Generic quest 100% of the time.
>>https://en.uesp.net/wiki/Oblivion:Candice_Corgine has a bunch of generics she can randomly say, once the DAClavicusVile quest is out of the way. Again, the Priority for Generic is 5. Assuming no other quests are being involved with Candice, 5 can be chosen for her revolving bounty quest. Or, choose a number higher than 5. Maybe 7 or 9 or 15.
>>> https://en.uesp.net/wiki/Oblivion:Diram_Serethi is like this. Assuming MS47 (the Aleswell Invisibility quest) is done, he will begin giving Greetings which are from the GenericDarkElf quest, which has a Priority of 6. Therefore, a bounty quest which involves him should also have a Priority of 6 at the very least.
This is an Awesome thread, Renee!!!
Awesome, thanks so much.
------------------------------------------------
Respawning Bounty Quests, Game: TES V: Skyrim
Note: Currently the first 11 steps deal with my learning process. I wanted to make a repeatable bounty quest for Skyrim, but my version works differently than what Beth wrote. The way I've got it, certain people will occasionally want us to go kill some bandit boss who's been terrorizing locally, but they won't ALWAYS want us to do this. It's not the same as going into Bannered Mare, where Hulda always gives us a flier, advertising some local menace.
Anyway, to skip the "research" part of this lesson, go to step 12.
1). First step is open up the Creation Kit. Like, duh.
I am going to be focusing on Lucan Valerian, proprietor of Riverwood Trader. The idea behind this quest is that Lucan is fed up with the lowlifes of Embershard Mine ekeing out a living right beside the respectable town of Riverwood. Lucan recognizes my character for being an adventurer, especially after we help him get his stupid Golden Claw back. In fact, this bounty quest won't even begin until the Golden Claw is done. This is the way I decided to write what's below. With different NPCs (innkeepers, smiths, etc.) the process will be a little different every time. It all starts with figuring out what quests (if any) get associated with each one.
As I did in Oblivion, I must first have a look at all the quests involved with Lucan, so I can see all the dialog he can possibly say, especially Hellos and Greetings. I want to make sure that the dialog will match up to these quests and their Priority ratings, so that Lucan won't just start this quest every time his shop gets entered, and dialog is initiated.
2). OBJECT window > Actors > Imperial Race > Male.
Find LucanValerius. Now right-click on him and left-click "Use Info." The Use Report panel shows up, and it includes two windows. The top one is the one I'm interested in.
At first glance, this top window seems to include everything Lucan is involved in, quest-wise. It actually does not include everything though, as I'll explain in a minute. Still, even though everything can't be seen here, the Use Report panel is still a good place to start. Immediately, I can see a slew of INFO topics that get associated with Lucan.
Go ahead and left-click on a few of these INFOs, just to see what shows up. Mostly, these are just fragments of the actual quests.
3). Scroll the top window down until you see QUST. Obviously, this stands for Quest. Look at every quest Lucan's got listed in this window. Here they all are:
MS13Intro
DialogueRiverwood_Revised
MS13LucanCamillaScene
MS13
DialogueRiverwoodDryGoodsScene1
Note that MS13 pops up several times, and this is Lucan Valerian's shining moment in the game, since it is the Golden Claw quest.
Double left-click on each QUST topic, and see what pops* up. Every time we double-click on one of these topics, a quest panel will open up, which is mighty convenient.
Since I will be writing the bounty quest so that it doesn't begin until MS13 is done, I'm not going to worry about MS13's Priority. But I will go through those five quests. It is important to research each of these, so that my own quest will work with the same randomness that the Oblivion version did.
a}. Double-left click on MS13Intro, and look at its Player Dialog tab. This quest deals with starting the Golden Claw, and its Priority is 0. Not only that, but Lucan doesn't have any dialog yet. Nothing to worry about, since I'm not going to write my quest for pre-MS13, or during any portion of MS13.
Close the MS13Intro panel.
b}. DialogueRiverwood_Revised is the first quest I might be dealing with, since it stays active after MS13 is done. Its Priority is 30. This quest, and all its dialog, remains active throughout the game. A lot of the dialog in DialogueRiverwood_Revised has to do with generic things Riverwood residents say, so it's definitely important to check further.
c}. MS13DialogueLucanCamillaScene: open it up, and look at its Player Dialogue tab. This is a short quest which causes Lucan and his wife to begin arguing about their claw, when we first walk in their shop. Its Priority is 60, and there's nothing under the Player Diaglogue tab, anyways. Let's move on.
d}. Open up MS13 itself. This one deals with the rest of the Golden Claw quest: going up to Bleak Falls, retrieving the claw, returning it to Lucan (or not), etc. Its Priority is also 60. Keep moving along.
e}. DialogueRiverwoodDryGoodsScene1 also has a Priority of 30. However, it doesn't have any dialog at all. It only includes a "Scene", which can be found under the Scenes tab. Scenes involve two NPCs, when they speak to each other back and forth. This quest has nothing under Player Dialogue, or any other tab, so I'm closing this panel out.
21a). The first stage, of course, is 0. It is more like a pre-stage, actually. Toggle "Start Up Stage" on. Now, right-click > New into the Log Entry area, but don't add any text. It should say EMPTY in this box. In the Papyrus Fragment tab's box, you can type a comment saying ;Pre-quest, just for reference. Make sure that semi-colon goes before any comment added into this box, this'll prevent the CK from trying to read these comments, then screaming errors at us!
21b). Do the same things for Stage 10, so EMPTY shows up in the Log Entry box. Stage 10 shall deal with Lucan greeting the PC, pitching his idea. Another comment can be added into the Papyrus Fragment box, such as ;Lucan greets player.
21c). Repeat all of this for the next stage. I'm up to 15, by now. 15 shall be an intermediate stage, during which Lucan has spoken about his concern, and we've got a choice to say "yes" or "no" to the idea of invading Embershard. Stage 15 is optional, though. If your own character always takes on quests, never turns them down, don't worry about making a "no" choice here.
21d). Stage 20 now. If "yes" is chosen, the quest will bump to 20. If not, it'll just stay at 15 if you want it that way. The neat thing is, this quest won't even appear in the journal if "no" gets chosen. Do all the same things for this stage (EMPTY, and a semi-colon comment).
21e). Stage 30 is the first stage which adds some scripts, but for now, just do the same as what's been done for those four other stages, so that there's EMPTY and comment.
> Lucan informs the player about the menaces inside Embershard Mine {Stage 10. Type GetOwningQuest().SetStage (15) into the End: Papyrus Fragment box}.
>> We answer Yes or No to Lucan's proposal (Stage 15. Type GetOwningQuest().SetStage (20) into the End : Papyrus Fragment box for a "Yes" response. If "No" gets chosen, simply leave the quest at 15, and toggle Goodbye on, if desired).
>>> Lucan says some follow-up info: where Embershard can be found, how we'll get paid, and so on. (Stage 20, a SetStage does not occur here, since killing the enemy will do this).
>>>> We return to Lucan, after Embershard has been cleared, (its top enemy is dead. Stage 30.)
>>>>> Lucan gives a note, which can taken to Proventus Avenicci, Whiterun Jarl's steward, to get paid. (Stage 30. Don't worry about adding scripts yet, these get added in a few). Another option is to add your own steward, in fact this might be the better option for those who are doing the Civil War on the Stormcloaks' side, since I'm pretty sure Proventius disappears after the sack of Whiterun.
>>>>>> We get our money! (Stage 50. Type GetOwningQuest().SetStage (100) into the End: Papyrus Fragment box).
"Kill..." (Stage 20, Stage 30)
"Return.." (Stage 30, Stage 50)
"Head to.." (Stg 50, Stage 100)
Setting up a gamepad controller Game: Elder Scrolls Online
This is for those gamers who prefer gamepad controllers, like myself. I am going to teach how to do some rather basic things, such as change what each button does, how to invert X and Y axises, and so on. Figuring this stuff out is a cinch in many other games. ESO on the other hand requires some background knowledge.
In some games (like Skyrim or Fallout 3) getting a controller to work is as easy as going into the menu, then toggling a button on. Elder Scrolls Online is trickier, and more difficult to figure out. But overall, the experience is more rewarding because there are SO MANY options we can configure for ESO.
So this assumes that you've got a mouse and keyboard, but also a controller which is specifically made for PC gaming. This controller can apparently be Xbox or Playstation styled, or it can be something which is more customized. I myself only use Xbox-style controllers, and Microsoft models at that, but I also use mouse & keys for some tasks.
Required: Elder Scrolls Online Plus. Buying this upgrade will open up some new areas of the menus. ESO+ is therefore necessary for the rest of these steps to work properly.
1). Get into the game, so that you are not in its opening menu, you are in the actual game. This way, everything can get tested in real-time.
2). Controller should be on. Now, press the Esc key on the keyboard. Press Settings. And press Gameplay. About three-quarters down the menu page is the GAMEPAD section. Turn this on.
Once the gamepad is on, notice the menu changes to one which is more 'consolized.'
Another feature: there are now TWO main menus which can be pulled up -- one can be gotten from the keyboard, the other from the controller itself. These are the sort of menus that allow us to change options, look for Help, and so on. Though these two menu sets might seem like they're the same at first, they actually have quite a lot of differences between them.
Now. If you are like me, you'll want the option to switch the X/Y Axis, which affects the "look around" feature normally assigned to the right mushroom stick. Normally, if the right stick is pushed forward (away from the player), the character looks upward. If the stick is pushed back (toward the player), the character looks down. For those who want to invert this, go to step 3. If not, go to step 4.
3). Press the Start button on the controller. Use the left mushroom stick to scroll down to OPTIONS. Select Camera, and INVERT Y is the very top option.
4). Zenimax gives us a total of three templates, each featuring a different set button assignments. But if you'd like to make your OWN button assignments, here is how to do that.
Press the ESC key. Again, this key works in a similar way as the START key on a controller, except ESC opens up different options.
5). Select CONTROLS. This opens up a menu with four columns, which Zenimax calls Binds.
The First Bind deals with the keyboard itself. All the selections in this column deal with keyboard and mouse assignments.
The Second Bind deals with a lot of the in-game button assignments which get used during gameplay moments, such as pulling levers, choosing to accept another player into your party, and so on. For the most part I do not mess with the Second Bind at all.
The Third Bind handles the bulk of controller button assignments, most of which correspond to keyboard and mouse buttons / functions. This is the Bind which most changes can get made which affect the actual sandbox gameplay, outside of menu surfing. Attack, Jump, Sheathe/Unsheathe Weapon, and so on.
The Fourth Bind never gets used, at least in my game. I assume it's there for some sort of unknown function.
Awesome! You got it working!
By the way; you can set a key on your keyboard to toggle your character to always run; or always walk when toggled. I use the "7" key on my NumPad on the right side of my keyboard as a "walk or run" toggle. That frees up those two keys on your controller for something else.
That run is a kind of "Jogging" run; not a high speed run you might do if you are running for your life. If your character needs to get out of danger; you will want to sprint as fast as you can to get away:
To sprint (no matter which way that toggle is set, run or walk) = just hold down the LEFT shift key while walking or jogging; and your character will sprint as long as your stamina lasts.
Sprinting can't be toggled on or off; you have to actually hold it down = so if you want sprinting set to your controller; find it in the "Controls" list for the controller and set it where you want it.
Awesome, thanks. I have noticed there's TONS of stuff which can be set up. Options, options, options. I like the way there are separate HUDs for PC and consolized versions. Everyone is happy, in theory.
I think I'll let the controller handle most "immediate" functions (such as action / combat / hotkeys) but the keyboard will handle all the background functions, such as the quest window, Crown Store and so on.
Game: Fallout 3, How to use Zone Triggers to set quest stages.
Video example: https://www.youtube.com/watch?v=QaMtpvrEG9E
TES IV: Oblivion uses X-markers to bump stages, set variables, and so on. Fallout 3 does use X-markers for some functions, but it also uses what are called zone triggers, or simply "triggers," to setstage quests and perform other functions, as we pass through them. "Pass THROUGH them" is the actual idea here. For an X-marker to work, the character (or NPC) must walk near the X-marker for it to do its job. With Fallout's triggers, we are going to walk through these areas instead.
A quick example from Oblivion's day was during the Unfriendly Competition quest, when the player is supposed to be sneaking a listen to a conversation between Agamir and Thoronir. If we weren't close enough to the X-marker which activates during this quest, the conversation would simply not happen, leading to dozens of "Broken" accusations from various gamers. If a giant trigger zone were used instead, chances are there wouldn't be as many problems.
Zone triggers appear red in the GECK but invisible in the game, and are also used in Skyrim.
CELL window
1). Go into the cell or wilderness area where the trigger is to be added. An example is right outside of Megaton.
2). On the main toolbar, find the T button. It looks like a child's block with a T in it, and is located to the right of the NavMesh button (the button with red scribbles in it). Click the T button. Sometimes it takes a couple of clicks before the button gets pushed inward.
3). In the Render window, left-click somewhere on the ground, and drag upon it. It helps if the area being clicked does not have a bunch of stuff on it (items, Markers, etc.). Try not to click on anything else but the ground, or (if inside a cell) the floor itself.
4). At first, nothing might happen. Maybe a red 2-dimensional rectangle will show up, but maybe not.
Let go of the mouse button. Now move the mouse upwards (away from you) without touching or holding any buttons. If done correctly, there should be a transparent red cube which morphs from two dimensions to three. The mouse can be moved away or toward you, to make the cube shorter or taller. It should be tall enough for a person to walk through though, for best results. If the cube is placed in front of a door for instance, it should be made so that it's taller than a person. It should also be placed across the entire door, which ensures the character will definitely walk through it.
This red cube will be what activates the next stage of the quest. Or it can be used to toggle an objective, set a variable, and so on. Again, the character is going to need to walk THROUGH this cube, so if it's not big enough, or if it's not in the right area, chances are it might need to be redrawn or dragged. These red cubes can be tricky to draw, so it can take some messing around.
5). Anyway, double left-click on the red cube. If done right, the Activator panel will pop up. Note that the game calls the cube "Gas Valve" for some reason. Note that the ID is part of a scroll-bar too. Every trigger zone in the game will be include in this ID slot.
Tips: Sometimes it's difficult not to select some other object (or a wall) which is right behind the cube. Simply click OK when this happens, and try again to position the Render window so that the cube gets selected. It might help to hold the left Shift key while moving the mouse around (don't press or hold any mouse buttons down while doing this). And if things really get aggravating, Hold Z while pulling the entire cube down! Once the cube is below the ground (or floor) it's now in the void, where it's easier to select the cube itself.
6). Click on the New toggle (next to the ID panel). This closes the scroll-bar, so a new ID can be typed in. "Name" is not important, and can be deleted, even.
7). If there is any Script on this Activator, get rid of it by moving the scroll-bar to NONE. Click OK. And Save.
Note: After closing the Activator panel, notice there are a bunch of colored lines & arrows in the cube. Now it can be moved, and also manipulated larger or smaller, with greater ease. If the cube was moved out into the void, time to move it back in place, back to where a character will definitely walk through it.
An easier way to change the cube's dimensions than trying to drag upon it is to double left-click on it, select the Primitive tab. From here, its X, Y, and Z Bounds can be changed. Click OK when done.
8). Double left-click on the red cube > Edit Base. Now it's time to add a script, which can be left as an Object. It should look like this..
scriptname aaaTriggerScript
Begin OnTriggerEnter Player
If (GetStage == X)
SetStage X
EndIf
End
Save the script, click OK on the Activator panel, and reopen it. Find the script in the scroll-bar area and select it. Click OK again.
9). When the Reference panel is reopened, click Persistent Reference ON. An actual Reference ID is not needed, unless there are plans for some quest or script to "know" that the cube/trigger zone is there. Usually this is not needed though.
10). Click OK and as always, save.
11). Open up the Quest window. Open the Target Ref tab, and add a target (vamp).
12). In the Quest Objectives tab's Cell scroll-down bar, locate the area where the red cube has been added, and select its Ref.
Note: If this cube has been placed outside (especially somewhere in Wilderness) it may not show up in the scroll-bar. If this is so, click on the "Select Reference in Render Window" button. Make sure that the Render window is still displaying the area where the red cube has been created. Double-click on the cube, and it should automatically get selected as the Ref.
How to transfer saves from Xbox to PC, Games: Oblivion, Fallout 3, Skyrim
Although all the info here can be found online, here is a helpful step-by-step version. I am also including the YouTube video I found....
http://www.bing.com/videos/search?q=obvlion+xbox+save+to+pc&&view=detail&mid=95EE15E407DAC31EDA1E95EE15E407DAC31EDA1E&FORM=VRDGAR
To make save transfers happen, Modio 5.3 must be downloaded. It can be found from several sites, but here's one I found.
https://modio.en.lo4d.com/windows
Download Modio from the big green Free Download button (and then choose either the US or UK versions) and save the program somewhere on the computer's hard drive. Make a desktop icon to make using this program even more convenient.
1). Insert a USB stick into the the Xbox 360. Some sticks go in the rear of this box, some might go in the front. Since the USB area is poorly-designed on my model, you may need an extension cord to plug into the box, if you have the same model I have.
2). Go into the Xbox's storage area like; Settings > Storage > Hard Drive > Games & Apps and then find the game, and the save you want to transfer. Copy this save from the hard drive to the USB stick.
3). On the PC, the USB stick will have a new folder in there, and each game will get its own folder.
> For Oblivion, this folder is called "Content." And inside of Content should be two more folders. One of these is called 00000000000000000, and this one will not be used at all, but keep it around anyway. The other folder will have its own, more complicated name. Go into this one, and keep diving into it until you find the Xbox save.
> For Fallout 3, there will be only one folder, and buried within this folder will be the save which just got transferred.
> Skyrim is like Oblivion, with two folders. Ignore the folder with all the zeros, instead delve into the second folder.
4). Copy/paste this save from the USB to the PC, in whichever area you like to keep saves.
5). Now, open Modio from wherever it got downloaded to.
6). On the bottom of the program, left-click on Open a Save.
7). Select the "Browse" button.
8). Now find the save just placed on the PC which got derived from step 3. Double-click on it.
9). On the left side of the program, select "Advanced."
10). Press the Edit Package Contents button (on the bottom of the window).
Now it's time to modify the file that's buried within the Xbox save. If this save was made in Oblivion, the file will be called gamedata.dat. If it was made in Fallout 3 or Skyrim, it will be called savegame.dat
11). Right-click on this file, and right-click "Save as...." and save it to the same area where the Xbox save was transferred to. Do NOT rename it.
12). Close Modio.
13). Now find the file just converted (which will be called gamedata.dat or savegame.dat). The game will not be able to read either of these as .dat files, so right-click on the file > Rename, and change the .dat extension to .ess for an Elder Scrolls game, or .fos for a Fallout game. So in other words, the file will now be called gamedata.ess, savegame.fos, or savegame.ess, depending if it's going to be used for Oblivion, FO3, or Skyrim.
.. It is possible change the file's name further if desired, but this is not 100% necessary.
...If the name gets changed, there will be a warning (after renaming the file) which can be ignored. Just click Yes.
14). Now, move the .ess or .fos file into Documents > My Games > *GAME* > Saves. There you go.
(*GAME* == Oblivion, Fallout 3, or Skyrim).
Making a generic NPC Enemy, Game: TES V: Skyrim
Please refer to https://www.creationkit.com/index.php?title=Bethesda_Tutorial_Creating_an_Actorfor all the basics. The main diff with making a generic enemy is the Template Data area of the NPC page can get used, which makes spamming several different enemy-types much easier.
1). ActorBase: scroll this down to the Lvl area, and look for the type of enemy you want (bandit, necromancer, etc.). What this is, is a quick method of rolling up a new NPC.
2). Note there are 6 stages to every Class type. So for instance there will be LvlBandit01MissleWoodElf, but there will also be an 02, 03, 04, 05, and 06 version of this same NPC. This system goes from easiest (basic bandit archer) to hardest (Highwayman archer, perhaps).
3). Once we put the NPC into the game, he/she will not appear as an NPC, he/she will appear as a giant M. The CK cannot show this NPC yet, this will be handled once we're gaming.
4). And this M will be colored. Note that the color goes from easiest to hardest. Double-click on the M, and then select the Leveled Actor tab. There is a scroll bar right in the middle of this page, which goes from Easy to Very Hard, and as we change this scroll, the color of the M also changes.
Repeatable Bounty Quests Game: TESV: Skyrim
This module shall teach how to make an agent give out quests for multiple locations. Again, these will be bounty-type quests which are repeatable. And I have found they are also bullet proof (as in, stuff only goes wrong if I make a mistake somewhere, otherwise they are solid). As time goes on, I will add more and more to this idea, hopefully.
1). Open Creation Kit, find the mod you've been working with lately, bla bla.
Firstly, let's make the NPC quest-giver.
2a). OBJECT window > Actors
Give the quest-giver an ID, Name, and Short Name. I am naming him aaaQuestSteward for the rest of this tutorial. I am also suggesting "Steward" for his or her Short Name.
The most important thing about the NPC quest-giver is to make sure he or she is Unique. Toggle this on, and click OK.
2b). https://www.creationkit.com/index.php?title=Bethesda_Tutorial_Creating_an_Actor if you are unfamiliar with setting up an NPC. with these features being most important.
Traits tab: Voice Type. Make sure the NPC's Voice Type is one which is supported by the game.
Stats tab: The Class scroll-bar can be set to Citizen in most cases, especially if he or she is going to be put into proper society (not enemy territory).
Stage 0: Left-click on 0. Now right-click > New into the top Log Entry window, and leave it alone, so it says EMPTY. Stage 0 is a pre-quest stage, so type ;Pre-quest into the Papyrus Fragment box.
Toggle Start Up Stage on.
Stage 10: During this stage the Quest Agent tells the player all the places there are to delve. These places will get added later, of course. Do all the same with the Log Entry window, so it says EMPTY. In the Papyrus Fragment box, some notes to self can be added, such as ;Quest Agent greets player, offers locations.
Stage 15: Do all the same with the Log Entry window. During this stage there's going to be a crucial moment when the player-character inquires about the first location to go to. Or not. Notes to self can be added into the Papyrus Fragment box.
Stage 20: This stage gets triggered after the PC chooses the first place to go. In my game, this is Morvunskar. Do all the same with the top Log Entry window and Papyrus Fragment box.
Stage 30 This stage gets triggered after the enemy gets pwned.
Stage 50 And here is the final stage, which gets bumped to after the PC returns to the quest agent, and gets a reward for pwning whichever enemy boss. Though this is technically the final stage, do NOT toggle Shut Down Stage on.
Now. Repeat after me: Branch > Topic > Info > Response. This is the typical way conversations flow between PC and NPCs in Skyrim.
A new dialog Branch gets started whenever a new instance of dialog is begun. And each Branch can have one or more Topics (which are what we click on after an NPC has greeted). Each Topic leads to an Info, and each Info can hold one or more Responses (which are spoken by NPCs during conversations).
Again: Branch > Topic > Info > Response.
Tip: It's a good idea now to open up TES5Edit and make an SEQ file (or update it) for the mod, as detailed http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=308105. Next, go into the game itself, and speak to the Quest Steward. Make sure that opening Topic (and its Response) both show up. Obviously if that Topic and its resulting Response are not in the game, this needs to get addressed.
a ). we can make him or her Unique (toggling Unique on) and then clicking OK. Using this section will create an enemy who is pretty much the same every time.
b ). ... Or we can go into the Template Data area, which is in the lower-left corner. Change ActorBase to whichever selection is appropriate. Using this section will create an enemy which is different every time (similar to using enemies created from Leveled Lists).
Tip:It's a good idea to put this enemy deep into the lair, so it'll feel like he or she is the actual leader, who must be clawed and searched before he/she gets found! On the other hand, for those who are just testing this quest (to make sure all its stages get updated without traveling all that way) the enemy can temporarily get dumped into one of the Creation Kit's testing cells. A full list of these cells can be found https://en.uesp.net/wiki/Skyrim:Test_Cells.
Tip: Eventually as more and more topics get added, the Dialogue Views window gets messier and messier. Toggle Show All Topics off. Now, it's easier to move these topics around to your liking. Single left-click on one of the Topics (the upper-yellow area, or sometimes it'll appear white) and literally drag the topic to wherever is desired. Its location in the window will not matter.
Tip: During step 16f other items can get added. For instance, in my game, I'll use the Properties button to make properties for potions. Select Potion in the Type scroll-bar, and add the potion's actual name from the Object window, such as HealingPotion01 or whatever. This way, the NPC quest giver gives us that note, but also gives us a bunch of helpful potions (and whatever other items) as well.
Troubleshooting: Sometimes the Papyrus Fragment box will scream error messages for all sorts of reasons, as Properties are trying to get made. A common error has to do with "Reference already created" or something such, like this...
C:\Program Files\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\ Startingquest.psc (19,13): script property NewProperty already defined
Arrgh!!! If this happens, click on the Scripts tab of the Quest window, select the ID (it'll be the only item which is selectable on this page) right-click then select Edit Source. This will open up a page full of script fragments. Scroll down until you find any script which has to do with the error(s) seen earlier, and erase these. For instance, if too many properties have been made for a particular potion, erase any script fragments which have been made for that potion's name, and then select File > Save to make sure the Script editor saves everything successfully.
More info can be found here..
http://tesalliance.org/forums/index.php?/topic/5482-creation-kit-cant-compile-scripts/
These are awesome tips! Thanks Renee!
Wow. That is amazing.
aw, well thanks.
I appreciate your encouragement, because even a simple quest like this takes a lot of learning. I feel like I'm getting the hang of it though. I really, finally am!
http://chorrol.com/forums/index.php?s=&showtopic=5023&view=findpost&p=225359
http://img.photobucket.com/albums/v90/subrosa_florens/oblivion/Oblivion203.jpg
https://i1113.photobucket.com/albums/k505/mirocu/Oblivion2011-01-1521-05-51-44.jpg
https://web.archive.org/web/20200220053831/http://forums.bethsoft.com/topic/1235244-where-are-you-now-4/page-1
https://hosting.photobucket.com/albums/ad208/xenaclone/.highres/99c77b54-bd4a-480b-a87e-5c1118b502cd_zpseff92113.jpg
Repeatable Bounty Quests, How to add new locations. Game: TESV: Skyrim
Here's how to add extra locations for plundering, and it assumes the previous lesson has already been completed and tested. Ultimately a total of FIVE locations can get added per quest, and that's as far as I prefer to go. Perhaps more than five can be added in the long run, but I prefer five for my own sanity.
1). Open up the mod and quest which have been built. The steward or agent who dispenses quests has already been made, and I am assuming the same person is going to be used.
2a). OBJECT window > Character > Quests > Bounty Quests\
Click on the Quest Stages tab. There should already be six stages here: stages 0, 10, 15, 20, 30, and 50. Add four more stages: 16, 21, 31, and 51.
Stage 16: Stage 16 is similar to Stage 15. Since a second location is getting added, stage 16 gets selected if the Player chooses to inquire about this second location. In my game, this is going to be https://en.m.uesp.net/wiki/Skyrim:Uttering_Hills_Cave. Right-click > New into the top Log Entry window. It'll say EMPTY in this window, and this is how we're going to leave it. In the Papyrus Fragment box, type ; X Location inquired, with X equaling whichever second lair you'd like to plunder.
Stage 21: This stage gets chosen if the player chooses to go to a second location. Again, right-click New, and type ; X Location chosen.
Stage 31: This gets triggered if the leader of the second location gets pwned. Right-click > New again, and type ; Leader of X location has been killed.
Stage 51: This is the reward stage. It is possible to simply use Stage 50 as an all-purpose reward to simplify things, but I like having different final stages, because each job should pay a little differently in my opinion. Final dialog can also vary. The steward might say a different set of congratulations after we take down Uttering Hills Cave, compared to the less remote Morvunskar, right?
SetActorOwner
https://www.creationkit.com/index.php?title=SetActorOwner_-_ObjectReference
Patrolling the Mojave almost makes for a nuclear winter. (NPC man says this)
You can use this at the console. It is a great way of making beds sleepable. Or items in dungeons that would otherwise count as being stolen, able to be picked up with no repercussions.
USE THIS idea for Fallout3_Jail.esp. We're going to work with Miss Vicious Delicious' game
Here is the GECK page describing how crime works.
https://geckwiki.com/index.php?title=Category:Crime
---------------------------------
Compiling ideas to make a Megaton Jail Cell. The condition below should begin the crime process IF the player murders somebody.
If (IsPlayerKiller == 1)
So if the PC is the one who murdered some NPC, this causes a variable to switch on. Which causes Lucas Simms to seek the PC when he/she returns to Megaton.
Only question is, how do we attach this script to peaceful NPCs? It can probably get attached to an entire faction, somehow.
----------------------------------------
----------------------------------
Adding a Jail and enhancing Fallout's Crime System. Game: Fallout 3
In the year 2017 a character I rolled, Janet Telia, http://chorrol.com/forums/index.php?s=&showtopic=5175&view=findpost&p=289848. This was a real event, something which actually happened in her game. But this event was a one-time thing, quest-driven with one-time stages.
What if this were something which can happen at any time? Assuming the player-character commits a crime, of course, and is caught!
Fallout 3 does have a crime system, which is broken into Minor and Major crimes. Minor Crime includes stealing, trespassing, and pickpocketing. Major Crime includes assaults and murder. In the vanilla game, committing enough of either crime will cause a single NPC, or an entire faction of NPCs, to try killing our character at worst. If the NPC's AI Data is set to Unaggressive and Cowardly, this NPC will flee instead, but he or she will still record the PC's crime as Minor or Major. But this is all. Nobody will ever try to arrest us for random crimes.
My idea is similar to Elder Scrolls games. This idea will include the usual three choices: Go to Jail, Pay Caps, or Resist Arrest. But, there is a difference too: the way I'm going to describe this below, our player-character can only get arrested in Megaton. Maybe in the future I'll also add Rivet City. But no psychic guards shall roam the Capitol Wasteland, unless you want them to.
The main difference between the way crime works in Fallout (as opposed to any Elder Scrolls game except Arena) is Fallout's Crime Counts never go away, whereas in Elder Scrolls it is possible to get Crime Gold to 0. If your character is caught stealing from somebody in Elder Scrolls IV: Oblivion for instance, it is possible to pay some money or go to jail. This will clear any crimes, returning the game's crime count to zero.
In Fallout, crime counts always remain. If your character is caught stealing in this game, and let's say MinorCrimeCount rises to 5.00, this is where the count shall stay forever. As far as I know, there is no way to get this count back to 0.00.
...And this creates some problems, of course. GetMinorCrimeCount and GetMajorCrimeCount exist, but there is no such thing as SetMinorCrimeCount or SetMajorCrimeCount, or anything equivalent with a different set of names. Because of this, the scripts for this jail idea get longer and longer, in an effort to make sure the officer keeps registering how much crime has been committed. The end result? Eventually the criminal essentially becomes 'banned' from Megaton. It has to happen this way, unless somebody out there figures how to script better than i can!
I don't know if the FOSE team has done anything here for resetting crime; my search of a http://fose.silverlock.org/fose_command_doc.htmldid not return any results for crime at all.
Good news is, any NPCs who have been angered by crimes (causing them to fight) eventually will mellow. Bethesda hardcoded Fallout 3 this way, probably because they had to so gamers could progress with some of the game's quests. After 72 hours, even the most fearsome NPC will regain his or her temper, and it's possible to reenter the cell in which this NPC can be found.
Basically, they forgive, but they never forget.
-----------------------------------------------------
MAKING THE JAIL
1a). First step is to duplicate a cell, or create one from scratch. I am not very good at making cells from scratch, so instead I'll simply duplicate MegatonJerichosHouse. I like this cell because it is like a mobile home: everything is on one story. Easier to work with. Jericho's house is also separated conveniently into a larger immediate area + a smaller alcove which has a bed. The smaller area is going to be the actual prisoner's cell, while the larger area will include a bot who eventually will patrol around.
I found one small problem with duplicating Jericho's pad. In the Test character save I used, a second Jericho showed up in my game, despite the fact that I deleted Jericho from the duplicated cell. Once I realized this anomaly, I used the console to Mark For Delete the duplicated Jericho, once I was back in the game. This did not happen in any of my main characters game I've loaded so far, only the test character.
1b). Back to the GECK. In the Cell window's left panel, select the duplicated cell and press F2. Change the cell's name. I am calling it aaaMegatonJail.
1c). Right-click > Edit the duplicated cell. Click on the Interior Data tab and change its Name. I am calling it Megaton Jail. Also, change the Owner NPC scroll-bar from whomever is its current owner (if there is one) to NONE. If the cell is owned by a faction, set this to NONE. There is going to be an NPC who does own this place, but he or she has not been made yet. And it's better to use somebody new, rather than one of the vanilla NPCs already in the game.
Click Apply, click OK.
1d). Now comes the fun part. Time to remove whatever items you'd like. Or, you can keep any items you are unsure about, moving them out into the void.
Turns out, Jericho's place is not large enough. So I toggled Snap to Grid and Snap to Angle on. Then I selected a portion of its middle section, duplicated it, moved the area where the jail cell shall be (extending the cell's middle), and then moved the duplicated area into the initial area.
https://i.imgur.com/UAqfCWl.png.
I did not mess with the area on the left side of the cell. This is where a robot is eventually going to patrol. Note the red stuff on the floor. This is navmesh. Navmesh tells NPCs where they can walk, and where they cannot. Since the robot is never going to travel into the area where the prisoner stays (which is on the right side of the cell) it's not important that there's no navmesh there.
> If there is an owned bed already inside the cell, change its Ownership to Player.
> I also added a sink into the jail. Since I use Realistic Needs, my character will need to drink occasionally, and water is one thing which is always free in jails. But what about food? Don't worry. Food gets handled, too.
Time to deal with NavMesh. Although I am not messing with navmesh in the cell I just duplicated, I left some instructions below for those who want (or need) to change this. Note that working with navmesh takes practice. And practice takes time. Those who don't need to mess with this can skip to step 1f.
1e). From the main toolbar, select NavMesh and then select Remove Cell NavMeshes, which is roughly halfway down the list.
New NavMesh must now be generated, and this gets complicated, but is very important. NavMesh is what allows NPCs to walk over specific areas, it is also supposed to keep them from walking into inanimate objects such as walls and rocks (though sometimes they still do this). If new NavMesh is not added, any NPCs who enter this cell, or are placed into it, won't be able to move. Yes, this happened to me!
Describing how to add NavMesh requires some visual aids, so watch the video below, following the Anonymous Dev's instructions.
https://www.youtube.com/watch?v=RYJAj-63FR4
Note that in most cases (esp. with duplicated cells), new navmesh is not 100% necessary, for those who wish to skip this step and save time.
Tip: Turn Snap to Grid and Snap to Angle back on, if these have been turned off for NavMeshing.
1f). OBJECT window
Now to add the jail's cell door. This is going to be a sliding door, which can lock and unlock. In the Object window's left panel, select All, and then type Jail in the Filter slot. Find and select JailDoor01. Drag the jail's door into your cell. Obviously it's important to make sure this door will block the area where the prisoner will stay. Since one door was not enough to block the way out, I duplicated the first door, and moved the duplicated door over.
1g) Give the door a Reference ID. I named it aaaMegatonCellDoorRef. Copy this Reference ID and paste it onto a Notepad page. In fact, it helps to copy/paste any referenced names like this, since they will later get used in scripts.
Toggle Persistent Reference on. Click OK.
1h). Get JailDoor01 out of the filter and select Items > Key. Edit a key. Doesn't matter which one, but try to select keys which don't already have scripts attached.
Edit the jail door so that only this key will open it.
1i). In the CELL window, there are some choices. It is possible to put a door on an empty space of building, anywhere in Megaton, therefore, the prisoner is in Megaton when he/she gets out of jail. I decided to take this several steps further. Used the Render window and went out into the Wilderness, somewhat west of Vault 101. Then I went into the Object window > World Objects > Static, and dragged MegatonMisterBurkesHouse out into the wasteland.
Next I found MetalScrapDoor01 and dragged this door into the Render window. Connected this door to the cell's entrance door. The reason I made the jail way out yonder is because spending time in jail won't clear one's bounty (or crime count, as the GECK likes to call it) and I originally had problems with the main officer (who has not been made yet) still trying to arrest us after we get out of jail. Later on, I fixed this problem. But in roleplay terms, it just makes more sense that the player-character is temporarily removed from Megaton society. This is not 100% necessary, so those who wish to put the jail in Megaton itself, this is fine.
https://i.imgur.com/ERtBXh4.png. Again, the right side of the cell (roughly 2/5 of the space) is where the PC gets locked up.
1j). Make sure the interior of the jail is in the Render window. Go into the Object window > World Objects > Container and drag any non-scripted container into the Render window. I dragged LockerVault01Empty in there.
1k). Double left-click on the container, and choose the Edit Base button. Rename its ID and Name. I am calling it aaaEvidenceLocker and Evidence Locker. It helps to make sure this container is completely empty, for this is where the player's stuff will get stored after being locked up.
1l). Make sure Respawns is not toggled on. Click OK, and save as a New Form.
1m). Go into the Ownership tab and choose Player. Give the container a Reference Editor ID (aaaEvidenceLockerRef), and toggle Persistent Reference on (if it's not already toggled).
1n). Two more steps. Go into the Object window > WorldObjects > Static and drag an XMarkerHeading into the jail. Put it the area where the prisoner shall stay. Essentially, put this marker behind bars. Give this XMarkerHeading a Reference ID. I named it aaaMegatonJailPlayerXMarker. Copy / paste this onto a Notepad page.
1o). Drag a second XMarkerHeading into the jail, but this time do not put it behind bars. This second marker is where the PC will get teleported, assuming greater crime has been noted. Essentially, the PC gets temporarily banned from Megaton, and will need to stay out of town for 3 days! I named this second marker aaaMegatonJailBookingMarker. Copy/paste this also, so it can be copy/pasted into scripts later.
Click OK. Save.
MAKING THE OFFICERS
One or two officers are needed. I am opting for two. The first one will perform initial arrests, and the second assists in beating down the criminal, if he or she resists arrest. First I'll make the arresting officer. This gal will handle all the dialog, and she's much more complex than the second officer.
OBJECT window > Actors > NPC
2a). Follow all the usual steps for making an NPC: choose Race, Voice Type, ID, and Name. Click OK. My officer will be a lady with the ID name of aaaMegatonOfficer. I toggled Respawns on, so that if one of my characters wants to try to pwn her (and succeeds somehow), another officer will eventually take her place. Essential can also be chosen, of course.
Traits tab
2b). Change Class to SecurityOfficer. This arranges the officer's stats and attributes in a particular way, making him or her ready and capable for the job. Change Alignment from Neutral to Good.
Stats tab
2c). I wanted to make a tough, but not impossible-to-beat officer. So I selected PC Level Mult and put 3.00 into the Level Mult slot. AutoCalc Stats can be used as well, to make the officer stay truest to the SecurityOfficer class.
Factions Tab
2d). The officer gets added into the MegatonResidentFaction, causing her to become part of the citizenry, occasionally making small talk with other Megatonites. Also add him or her into the MegatonCrimeFaction. This will cause the officer to recognize Minor or Major crimes committed against residents of Megaton. Both of these factions are necessary for the arrest process to function.
AI Data tab
2e). Set the scroll-bars like so. It's important to make somebody who remains peaceful by default, but will not back down from combat if the need arises.
Aggression: Aggressive
Confidence: Brave
Assistance: Helps Nobody
Responsibility: 90
Assistance is set to Helps Nobody, which normally means the NPC won't care if Friends and Allies are getting into trouble, but this is not a problem, because we're going to want the officer to focus on arresting the player only. Not getting into combat with him or her. This part (combat) gets handled later on by scripts, if Resist Arrest gets chosen.
AI Packages tab
AI does not need to get specifically added to the officer. I have tried to add a DefaultSandbox package, but this messes everything up later on. Instead...go to the ....
Main toolbar > Character > Packages
2f). Start a Find package. Give it an ID and copy this ID. Paste the ID onto a Notepad page, because it's going to be needed later on. I just named it aaaArrestPlayerPackage
2g). Specific Reference is toggled on by default. In the Ref scroll-bar, scroll down to PlayerRef.
2h). Toggle Allow Search on. 'Near editor location' can stay toggled, Type 1024 into the Radius slot. This is roughly 48 feet (14.6 meters) which is not nearly the total diameter of Megaton. Technically it is possible for a criminal to avoid the officer after being witnessed committing some crime, but in my game, this is always a dice-roll. I put the officer in the middle of Megaton, but since she sandboxes around a little bit, my character and I will never know exactly where she is, assuming we're trying to avoid her somehow.
2i). Flags tab: Toggle Always Run on. Toggle Fallout Behavior off.
2j). Make a second package, this time selecting Sandbox. Simply pull up DefaultSandboxEditorLocation1024, rename its ID, and Save as a New Form. Nothing else needs to be changed, although some may wish to mess around with the Flags tab. I am calling this package aaaMegatonOfficerSandbox. Copy this script and paste it onto that same Notepad page.
Click OK, close the Packages window, and save.
2k). Put the officer somewhere into the world (I chose ground zero of MegatonPlaza, right next to the Brass Lantern and bomb). Give him or her a Reference ID. I am calling her aaaMegatonOfficerRef.
The rest of the officer's tabs can be changed around however you'd like. I added ArmorTenpennySecurity and HatPoliceAdult to give her an appropriate look. I also gave her WeapPoliceBaton, a 10 mm handgun, and some 10 mm rounds.
Optional: add the jail door's key into his or her Inventory. This can now be stolen by a really good thief! It is possible to break out of jail if one has the key. It is also possible to write the upcoming quest so that breaking out of jail will cause more problems for the PC. This gets complicated though, and what's about to follow (the quest) is complicated enough. Getting everything to work right is complicated enough!
Click OK and save.
2l). Go back into the officer's NPC panel. Start a script like so...
scriptname aaaMegatonOfficerScript
short Status
2l). Close and save. Click OK, closing all officer's panels. Save, and reopen the officer. Find that script in the scroll-bar, bla bla. Reopen it.
Here is what it's going to look like...
scriptname aaaMegatonOfficerScript
; Status 0 -- No or low crime committed. Megaton officers sandbox. Most “good” PCs will remain at Status 0 forever.
; Status 1 -- Triggers during first arrest process. PC has been caught with their first crime, Major or Minor.
short Status
Begin GameMode
;----------------------------
;The scripts below deal specifically with the arrest process.
If (Player.GetInWorldspace MegatonWorld == 1) && (Status == 0)
If (GetMinorCrimeCount >= 3) || (GetMajorCrimeCount >= 1)Set Status to 1
EndIf
EndIf
If (Status == 1)aaaMegatonOfficerRef.AddScriptPackage aaaArrestPlayerPackage
EndIf
;--------------------------------
;The scripts below cause the officers to sandbox in Megaton, if the PC has not committed any crime yet.
If (Status == 0)aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
End
> To summarize. The first two scripts, when Status gets set to 1, cause the main officer to arrest our toon IF our toon has committed a certain number of Minor or Major crimes. The third script is used to make sure the officer does NOT rush up to the PC if no crimes have been committed. She should not do this even without the script, but the Status 0 script confirms things.
> Status always starts at 0, assuming this is a new game without any criminal catches, or if one has a character who has never been caught doing any crimes, yet.
For those who add this Jail mod idea to your game. If the main officer comes rushing up once your character enters Megaton, you may think there's an error here. But try toggling the console on, and then click on the arresting officer. Type GetMinorCrimeCount and press Enter. Do the same with GetMajorCrimeCount. Chances are, one or both of these will be high enough to cause the officer's behavior. And this is because your character has already committed some crime(s) in the past. Yes, this happened to me.
Like I said before, Fallout NPCs may forgive past crimes, but they never forget.
> Notice there is some leeway for minor crimes. The officer will do nothing if minor is below 3. This allows the PC to make a mistake. If trying to speak to an NPC for instance, but accidentally wind up stealing an owned object, the officer won't automatically come after the PC, assuming this happens just once. Stealing just one item can tally 1.00 or 2.00, so let's make 3.00 the official number of confrontation.
> Major crimes, on the other hand, will be regarded more quickly. If somebody slaps, slams, or shoots someone else, chances are they did so deliberately. Feel free to nudge either of these numbers to your liking.
> Major Crime works in a different manner than Minor Crime. If we are witnessed stealing our first item, Minor moves from 0.00 to 1.00 or 2.00. If we steal a second item and are witnessed, that number moves upward again. Major Crime is not as predictable. Sometimes it moves upward, and sometimes it does not. My test character assaulted and killed the Mercenary who stays in Craterside Supply for instance, causing Moira Brown to flee her shop. Major Crime jumped from 0.00 to 2.00. In an Elder Scrolls game, Crimegold would get much higher than this for a full-blown murder. Because of this, Major Crime's counts (in scripts below) is set up differently than the more-predictable Minor Crime.
A second NPC was killed by my Test guy, this time right in Megaton's central area. This time, Major Crime jumped from 2.00 to 6.00. I think the greater number resulted because there were more witnesses. ... So, it's hard to find an apt punishment which fits the major crime. Pwning that Mercenary resulted a Major of 2.00, which means somebody can get off lightly...200 caps paid, the way I've got this set up below, if nobody witnesses this pwning. This doesn't seem enough, right? But there's not much I can do about this; Beth hardcoded the way crime works in this game. Anyway, we'll get to all that later.
> Finally, note that there are rare times when the officer will have a different crime count than ordinary Megaton NPCs. ...Maybe clicking a Megaton Settler, and then checking for crimes with the console will yield a result of 0.00 or 2.00, whereas the officer will register 4.00. So always click on the arresting officer when trying to check for crime.
All of that is rather complicated, right? Fortunately, the second officer is much simpler...
2m). Make a second NPC. This is going to be the officer who assists the main (arresting) officer, smacking our character around if Resist Arrest is chosen. In my game, this is a man with aaaComplianceOfficer as an ID.
2n). Toggle Respawns on, click OK, and reopen the officer.
The rest of those tabs can be arranged however you'd like, but make sure the second officer goes into the same MegatonResidentFaction and MegatonCrimeFaction as the arresting officer.
Place him or her into the same worldspace as the arresting officer and type a Reference ID. I called him aaaComplianceOfficerRef.
MAKING THE QUEST
OBJECT window > Actor Data > Quest
3a). Start a new quest (duh). ID is necessary, but Name is not. I am calling it aaaJailFallout3Quest.
Priority can be 90, just like it is in Elder Scrolls games when Legions try to arrest us. In theory, getting arrested takes precedence over everything, including the Main Quest, possibly.
3b). Start Game Enabled can stay on. Also, toggle Allow Repeated Conversation Topics on. Script Processing Delay can also be toggled.
3c). Start a script, like so...
scriptname aaaJailScript
short Arrest
short Timer1
short Timer2
short Timer3
short Timer4
short Timer5
short StartDay1
short StartDay2
short StartDay3
short StartDay4
short StartDay5
3d) Set the Script Type scroll-bar to Quest and close the editor window. Click OK, closing the Quest window. Reopen it, and find the quest in the scroll-bar. Click OK, and reopen.
Now we're going to add some more.
scriptname aaaJailScript
short Arrest
short Timer1
short Timer2
short Timer3
short Timer4
short Timer5
short StartDay1
short StartDay2
short StartDay3
short StartDay4
short StartDay5
Begin GameMode
;------------------------------------
;The script below deals with stopping combat against he PC, once the PC has paid for crimes.
;NPCs will sometimes try to fight the PC after crime has been committed. This script stops these fights.
If (Player.GetInWorldspace MegatonWorld == 1) && (aaaMegatonOfficerRef.Status != 8)PlayerRef.StopCombatAlarmOnActor
EndIf
End
As noted, the StopCombatOnActor script will cause any angry NPCs (who are trying to kill our PC after too many crimes committed) to STOP combat once the PC is in Megaton's plaza area, assuming the Officer's Status is not 8 (meaning the PC has not been banned from Megaton, yet). This will allow the officer to attempt arresting the PC without hassle. If this script is not used, and NPCs are actively trying to fight our character, this causes the officer to get confused, unable to deliver any dialog.
Note that this is OPTIONAL. For those who want to have NPCs fighting their characters in Megaton's plaza area at any time after crime, this script can be omitted. Again, the officer won't be able to do his/her job if this script is not present.
3e). Close and save the script. Click OK, closing the quest window. Save from the main toolbar. Reopen the quest. More is going to get added to this main script, but for now let's move on.
Topics Tab
3f). Make a GREETING. This first greeting is going to be a generic sort which the officer says if the PC is not wanted for any crimes. "Lovely day, isn't it?" or whatever. Toggle Goodbye on. Conditions go like this...
GetMinorCrimeCount < 3.00 AND
GetMajorCrimeCount < 1.00 AND
GetIsID aaaMegatonOfficer == 1.00
And that is all. Since Goodbye is toggled on, the officer will say this if we speak to her or him, without any dialog menus popping up, just like speaking to a Megaton Settler.
3g). Make a second GREETING. This one is much going to be much more interesting. The officer will say this one when first confronting the PC, during the arrest process. "STOP!!! You violated the law!"... Make some dialog which explains that pickpocketing, stealing, trespassing, assaults, and murder are all against the law. "You can pay me caps, go to jail, or resist arrest..."
Three conditions are needed...
GetMajorCrimeCount >= 1.00 OR
GetMinorCrimeCount>= 3.00 AND
GetScriptVariable aaaMegatonOfficerRef.Status == 1.00 OR
GetScriptVariable aaaMegatonOfficerRef.Status == 6.00
GetIsID aaaMegatonOfficer == 1.00
3h). In this greeting's Choices window, add three topics: aaaPayCaps, aaaGoToJail, and aaaResistArrest. Add these into the Editor ID window, as well.
3i). Let's start with the least threatening of those three choices: Pay Caps can go into the Topic Text slot. "You're being arrested for committing one or more crimes against the citizens and settlers of Megaton.... you really need to watch yourself...." and so on. Type some text explaining how much will need to be paid. In my game, lesser minor crimes start at 50 caps, while a full-on repeated assault or murder can rate as high as a thousand. I went into some detail, making sure the officer explained all the rules in her dialog.
Overall, I wound up with four scenarios: lesser Minor Crimes, greater Minor Crimes, lesser Major Crimes, and greater Major Crimes. If a character commits just one assault, or steals a couple items (and is caught) lesser Major or Minor crime gets registered. It is possible for a well-meaning character to simply pay for this one crime, never commit another one, and "lesser" crime where his or her crime counts shall stay.
If more crime gets committed, more than one or two incidents, this causes a greater scenario of Minor and/or Major crimes. Here we have somebody who is more of a dedicated criminal, so here is where their reputation shall stay: paying more money if caught, and going to jail for longer periods, as well.
Basically, lesser crime is only committed once. If the character continues to commit more crime, all subsequent arrests will be considered greater.
Conditions: only one is needed, the same GetIsID aaaMegatonOfficer == 1.00 as before.
3j). In the Add Topics window, add aaaPayCapsTopic2. Conversely, this can be added into the Choices window, along with aaaGoToJail and aaaResistArrest, for those who wish to retain maximum options.
3k). Add aaaPayCapsTopic2 into the Editor ID, and change Topic Text to "I am paying for my crimes. Here are your caps."
Dialog should be written in a way which warns the PC. If NPCs have started combat, they will have ceased due to that StopCombat script added into the main script IF the PC is in Megaton's plaza area. But they might resume fighting our character once the PC is back in some other cell. So her dialog goes:"If you have enough caps to pay for your crimes, you will be free to go, but it might be a good idea to get out of town for awhile. I'd recommend 3 days or more..."
I have noted four scenarios for crime above. Overall, eight dialogs can be written for this topic; four for Minor Crime, and four for Major Crime. Let's start with Minor Crimes. Here are the four scenarios for lesser and greater Minor Crimes.
1). the PC has enough caps, and needs to clear less than 5.00 of minor crimes
2). the PC has enough caps and needs to clear 5.00 or more .. ." .. " .... "
3). the PC does not have 50 caps, for situation 1.
4). the PC does not have 100 caps, for situation 2.
Selections 1 and 2 require conditions as follows...
GetIsID aaaMegatonOfficer == 1.00 AND
GetMinorCrimeCount >= 2.00 AND
GetMinorCrimeCount < 5.00 AND
GetGold Reference: Player >= 50.00
or
GetIsID aaaMegatonOfficer == 1.00 AND
GetMinorCrimeCount >= 5.00 AND
GetGold Reference: Player >= 100.00
3l). In the Result Script (Begin) box, type Player.RemoveItem Caps001 50 or Player.RemoveItem Caps001 100 respectively.
3m). In the Result Script (End) box for lesser Minor Crime type Set aaaMegatonOfficerRef.Status to 2.
3n).In the Result Script (Begin) box for greater Minor Crime, add Set aaaJailFallout3Quest.Arrest to 5 below the Remove Caps script.
3o). In the Result Script (End) box for greater Minor Crime, add
Player.MoveTo aaaJailBookingXMarkerHeading
If (aaaMegatonOfficerRef.Status == 1)
Set aaaMegatonOfficerRef.Status to 4
EndIF
3p). The final two situations, in which there aren't enough caps, can use the same GetIsIDs and GetMinorCrimeCounts, all of those can literally be CopyAll/pasted. But change GetGold to less than 50 caps, or less than 100 caps, depending on the amount of Minor Crimes allotted.
For either of these situations, add aaaGoToJail and aaaResistArrest into their Choice windows.
Click OK and save.
Steps 3i through 3p can be followed for Major Crime as well, making whatever changes you'd prefer. Obviously, paying caps for an assault or murder will be much more serious. In my game, committing one or two assaults (less than 5.00 of Major Crime) will require 200 caps of payment. Committing more than two assaults indicates that somebody was aggressive enough to try killing somebody, or seriously maiming him or her. The officer is going want a thousand caps to clear one's name.
This may sound harsh, but consider the fact that no NPC in Megaton is ever going to assault one of our characters. Only the Player (us) can commit crimes in Fallout 3. We are always the instigators. In TES IV: Oblivion, some NPCs could commit crimes and pay for them with their lives, Tilmo the Stablehand and City Swimmer are two perfect examples. Since food was not added into their inventories, they'd occasionally try to fill their bellies, which meant they'd steal whatever they could. Beth made sure to "fix" this for Fallout 3, which means NPCs can never commit true crimes in this latter game.
Note that pwning Mister Burke should be okay, since he is not part of any Megaton factions. I have not tested this personally though.
Conditions for the lesser Major Crime look like this...
GetIsID aaaMegatonOfficer == 1.00 AND
GetMajorCrimeCount >= 1.00 AND
GetMajorCrimeCount < 5.00 AND
GetGold Reference: Player >= 200
Conditions for greater Major Crime ...
GetIsID aaaMegatonOfficer == 1.00 AND
GetMajorCrimeCount >= 5.00 AND
GetGold Reference: Player >= 1000
And don't forget to add the appropriate amount of caps removed in the Result Script (Begin) box.
Add Set aaaMegatonOfficerRef.Status to 2 into the Result Script (End) for lesser Major Crime.
Add Set aaaJailFallout3Quest.Arrest to 5 in the Result Script (Begin) box for greater Major Crime.
Add ...
Player.MoveTo aaaJailBookingXMarkerHeading
If (aaaMegatonOfficerRef.Status == 1)
Set aaaMegatonOfficerRef.Status to 4
EndIF
...in the Result Script (End) box for greater Major Crime.
3q). Toggle Goodbye on for both. Click OK and save.
Unfortunately, the game does not separate assaults and murders into two separate categories; both of these are considered Major Crime. So at this writing, I do not know how to make murders much more serious (more time, more caps needed) from assaults. The game does include several functions which include Murder and Killer (such as IsKiller) but all of these require reference IDs on NPCs to work, instead of simply working globally. I'm not adding a reference to every NPC in Megaton, that's silly.
The answer for now is to set a higher level of Major Crime, which breaks down into lots of assaults or one (or more than one) murder, at least as far as dialog is concerned.
3u). Make a third GREETING for the officer. This will be the final one, which she says if spoken to, after an arrest process has been completed (caps paid, time spent in jail). In my game, she simply says "I've got my eye on you..."
3v).. Toggle Goodbye on. Conditions go like this...
GetIsID aaaMegatonOfficer == 1.00 AND
GetScriptVariable aaaMegatonOfficerRef.Status == 2.00 OR
GetScriptVariable aaaMegatonOfficerRef.Status == 5.00 OR
GetScriptVariable aaaMegatonOfficerRef.Status == 7.00
RENDER window
4a). Go into the jail's cell. In the Object window edit a note.
4b). Describe some rules about how crime works in Megaton, and what is expected of the prisoner upon release. Basically, this is a list of rules. Something which explains how long each sentence shall last, corresponding to what sort of crime has been processed. Anything which the character possessed before arrest has now been put into that Evidence Locker, so explain this in the note's text as well.
Since a robot is going to get added into the jail, add some text explaining that the robot is who we'll speak to for food, cigarettes, and also to get out of jail when the sentence is over. There will eventually be an actual game message which explains how to get out of jail, too. All of that is coming.
4c). Drag this note into the jail's cell, behind bars.
OBJECT window > Actor Data > Quest
5a). Go into the Topics tab and find aaaGoToJail. This topic is somewhat simpler than paying caps, fortunately. Four Infos will need to be written up instead of eight. Each of these four Infos correspond to lesser or greater Minor Crime, or lesser / greater Major Crime.
Go To Jail can be added into the Topic Text slot.
The first Info is going to be used for Minor Crime less than 5. For most characters who aren't full criminals, but have made a slip-up, this is going to be the jail term for a first offense. "You've made some mistakes, it happens. Just make sure it doesn't happen again." In my game, the penalty for this is just one day. "I hereby sentence you to the term of one day..." the officer says.
GetIsId aaaMegatonOfficer == 1.00 AND
GetMinorCrimeCount >= 2.00 AND
GetMinorCrimeCount < 5.00
Toggle Goodbye on.
5b). In the Result Script (Begin) type or paste
Set aaaFallout3Quest.Arrest to 1
aaaMegatonCellDoorRef.Lock 100
aaaMegatonCellDoorRef.SetOpenState 0.
5c). In the Result Script (End) box type
Player.RemoveAllItems aaaEvidenceLockerRef
Player.AddItem OutfitWasteland01 1
Player.MoveTo aaaMegatonJailPlayerXMarker
Set aaaMegatonOfficerRef.Status to 2
All the PC's items are removed and stored into that locker. Any stolen items should have also been removed by this point, and erased entirely from the game, however, sometimes they might slip by the officer or any NPCs who initially witnessed any crime(s).
OutfitWasteland01 is what the PC wears while in jail. It is important to make sure RemoveAllItems comes before the player gets that jail outfit, otherwise the game will remove these clothes as well.
5d) Three more Infos can get added: one for Minor Crimes of 5.00 or more, one for Major Crimes of less than 5.00, and one for Major Crime of 5 or more. Technically, these greater major crimes can equate to attempted murder or actual murder. These three infos will tally three days, ten days, and one month in jail respectively.
5e). Let's start with Minor Crimes greater than 4.00. Dialog can be more menacing. Our toon has stolen or pickpocketed multiple items, or trespassed for an extreme amount of time, ignoring somebody's warnings about this. So the officer isn't so nice. "You dirty thief. You mongrel of a trespasser. You have committed several minor crimes against the residents of Megaton. You are going to be incarcerated for three whole days.... "
GetIsID aaaMegatonOfficer == 1.00 AND
GetMinorCrimeCount >= 5.00
5f). Now, Set aaaJailFallout3Quest.Arrest to 2 goes into the Result Script (Begin) box instead of aaaJailFallout3Quest.Arrest to 1. Make sure aaaMegatonCellDoorRef.Lock 100 goes into this box, as well.
5g). Three of the four scripts which went into the lesser Minor Crime Result Script (End) box can simply be copy/pasted. Do not copy/paste the aaaMegatonOfficerRef.Status script.
5h). Follow the same process for Major Crime, making sure to change Set aaaJailFallout3Quest.Arrest to 3 and 4 respectively, for lesser and greater. Everything else gets copy/pasted, but again, leave the officer's Status script out of greater Major Crime's (End) box.
Click OK and save. Now, to make the officers fight our character, if Resist Arrest is chosen.
Main toolbar > Character > Packages
6a). Start a new package. I'm going to name its ID aaaResistArrestPackage.
6b). Change Package Type to Use Weapon.
6c). Toggle Any Object on, and find whichever weapon the officer shall use in the Object ID scroll-bar. I put WeapPoliceBaton in there. The weapon used in this bar MUST also be a weapon in the officer's inventory, otherwise the officer will simply try to use their fists. Note that if the officer has a second weapon (such as a gun) the officer may switch to this weapon type, especially if the first weapon is a melee piece, and some distance is involved.
6d). Toggle Target on, and find PlayerRef in the Ref scrollbar.
6e). In the Fire Count area there are two choices: Repeat Fire will cause the officer to keep using that weapon indefinitely, as long as the package is running. Number of blows will cause them to stop after X number of weapon swings, or rounds have been fired.
6f). Flags tab: toggle Always Run, and Weapon Drawn on. Enable Fallout Behaviour gets toggled completely off.
6g). Click OK. This package should not be attached to the officer, it will (instead) be triggered through a script.
Reopen the Quest window.
7a). aaaResistArrest is the final topic, and it's the easiest of all; we only need one Info. Type some menacing dialog. Since a second officer is going to join beating down the PC, this dialog should include that information. "You want to resist? Fine. But now my deputy is going to assist!"
GetIsID aaaMegatonOfficer == 1.00 AND
GetMajorCrimeCount >= 1.00 OR
GetMinorCrimeCount >= 1.00
7b). In the Result Script (End) box type Set aaaMegatonOfficerRef.Status to 3
7c). Toggle Goodbye on, Click OK. save.
Note: If other Megaton NPCs have also begun to attack before the arrest, they will continue to do so, unless the main script gets modified to include Status 3 as well as Status 2! However, they generally will not follow us out into the Wasteland.
I and an online friend have experimented with Resist Arrest quite a lot, going in and out of various cells and whatnot, just to see how far the officers will keep following our characters, continuing pursuit. Since NPCs don't follow the PC very well into different cells in this game, it is possible to run into (let's say) Moriarty's and get a breather, maybe use a Stimpack, assuming no other NPCs are attacking. It is also possible to leave this portion of the quest as-is. Yes, the officers have trouble following, but the problem is, eventually they WILL follow. And they'll follow everywhere, including the wasteland.
This will get fixed later on via scripts. Or you can just leave it this way, for those who want to try to pwn the officers outside of society. If they happen to follow us outside of Megaton, and encounter some enemy. Let's say, a radscorp. They will focus then on fighting this radscorp instead of us. Eventually it'll be their doom, if this doesn't get fixed later on.
Another possibility is to make other referenced NPCs (such as Jericho and Lucas Simms) join in the fight while our toon resists arrest! I have not added this into my game, but for those who want to make a real hardcore option, this is possible too.
But first, here's how to get the officers to do their beat-down.
7d). Open up the main (arresting) officer's script. Some of what's below has already been written, if you've been following this guide so far. But some new material also gets added...
scriptname aaaEnforcementOfficerScript
; Status 0 -- Not enough crime witnessed. Officers sandbox. Most “good” PCs remain Status 0 forever.
; Status 1 -- The PC has possibly been caught committing their first crime, Major or Minor.
; Status 2 -- Caps paid or jail chosen for 'lesser' Minor or Major crime. PC stays in Megaton if caps paid.
; Status 3 -- Resist Arrest chosen. 3-day timer starts, officers fight PC if Megaton's plaza entered.
; Status 4 -- Caps paid for 'greater' Minor or Major crime. PC teleported to "booking" area of jail.
; Officers will revert to Status 3 if PC re enters Megaton, while Status is 4.
; Status 5 -- Timer concludes after 3 days, causing officers to sandbox. 5 Can result from Status 3 or 4.
; Status 6 -- Next-to-last arrest process. Works in similar way as Status 1.
; Status 7 -- Last strike. If PC is arrested during 7, cannot reenter Megaton without getting attacked.
; Status 8 -- PC is 'banned' from Megaton. :-(
short Status
Begin GameMode
;------------------------------------------------------------
; Status 1 handles the first "lesser" arrest process
; if PC is caught committing at least two Minor, or one Major crime.
; PC remains in Megaton
If (Status == 0) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount >= 3) || (GetMajorCrimeCount >= 1)Set Status to 1
EndIf
EndIf
If (Status == 1)
aaaMegatonOfficerRef.AddScriptPackage aaaArrestPlayerPackage
EndIf
;---------------------------------
; Status 2 causes the main officer to sandbox after arrest has taken place from Status 0 to 1.
; Triggers from lesser crime.
; PC remains in Megaton, unless he/she also went to jail.
If (Status == 2)
If (GetMinorCrimeCount < 5) || (GetMajorCrimeCount < 4)aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
EndIf
;---------------------------------
; This script causes main officer to arrest PC a first time (potentially) for greater crime / Status 0.
; Or a second time (potentially) if lesser crime already been processed.
; PC is teleported outside of Megaton to the jail's 'booking' area, and must stay out of town 3 days.
If (Status <= 2) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount >= 5) || (GetMajorCrimeCount >= 4)Set Status to 1
EndIf
EndIf
;---------------------------------------
; Status 3 makes both officers beat down the PC after Resist Arrest is chosen
; The quest's main script starts a timer which ends after 3 days.
; Officers will cease attacking after 3 days
; The officers will only fight if the PC enters Megaton's plaza area.
If (Status == 3) && (Player.GetInWorldspace MegatonWorld == 1)aaaMegatonOfficerRef.AddScriptPackage aaaResistArrestPackage
aaaComplianceOfficerRef.AddScriptPackage aaaResistArrestPackage
Set aaaJailFallout3Quest.Arrest to 5
EndIf
;--------------------------------------------------
; Status 4 causes officers to attack if PC enters Megaton before main script timer has reset Arrest 5.
; Arrest == 5 and Status 4 trigger through dialog, from Resist Arrest and/or greater Pay Caps.
If (Status == 4) && (Player.GetInWorldspace MegatonWorld == 1)Set Status to 3
EndIF
;--------------------------------------------------
; Status 5 is similar to Status 2. Both remain "neutral" if PC commits no more crimes.
; IF PC gets caught during 5, will be wanted for arrest two or three times by now.
If (Status == 5) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount < 7) || (GetMajorCrimeCount < 8)aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
aaaComplianceOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
EndIf
If (Status == 5) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount >= 7) || (GetMajorCrimeCount >= 8)Set Status to 6
EndIf
EndIf
;-------------------------------------------------------
; Status 6 is the next-to-last stage of arrest. Three or four strikes, by now.
; Works similar to Status 1.
If (Status == 6) aaaMegatonOfficerRef.AddScriptPackage aaaArrestPlayerPackage
EndIf
;--------------------------------------------------
; Status 7 could mean final arrest, and last straw.
; If PC gets arrested during this phase, he or she is essentially BANNED from Megaton.
; Similar to Status 5
If (Status == 7) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount <=9) || (GetMajorCrimeCount <= 12) aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
aaaComplianceOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
EndIf
If (Status == 7) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount > 10) || (GetMajorCrimeCount > 12) Set Status to 8
EndIf
EndIf
;--------------------------------------------
; Status 8 means PC cannot enter town w/o being attacked
If (Status == 8) && (Player.GetInWorldspace MegatonWorld == 1)aaaMegatonOfficerRef.AddScriptPackage aaaResistArrestPackage
aaaComplianceOfficerRef.AddScriptPackage aaaResistArrestPackage
LucasSimmsRef.AddScriptPackage aaaResistArrestPackage
EndIF
; ----------------------------------------------------------------------
;The scripts below deal with keeping the officer from running up like a maniac when not under arrest.
;Status is 0 by default, assuming the PC hasn’t got a Crime Count when the jail mod is activated.
If (Status == 0)
aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
aaaComplianceOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
End
> Some may notice it is possible to 'break' the way these arrests progress from Status 0 to Status 8, especially with Minor Crime. If somebody is witnessed stealing something, and the witness, or witnesses, starts beating the crap out of our character, I am assuming our character will be like most thieves. Most thieves in this situation will be upset that they've been caught. They'll get the heck out of that cell.
However, it is possible for somebody to stay in that one cell and keep stealing stuff while being witnessed, causing Minor Crime to rise and rise and rise to the maximum level of 8. I am assuming most gamers aren't going to do this. This sort of criminal is going to be withstanding some sort of beating or shooting while he/she is stealing all these items.
IF somebody is going to take this route, so that the maximum level of crime is recorded right away, what'll happen is the officer will arrest the player-character once this character is done stealing, and walks back into MegatonWorld. The PC goes to jail or pays caps. Gets teleported out of town. Once the timer resets, and the PC reenters town, guess what? He / she will immediately be arrested again, since MinorCrimeCount is past where the scripts above can record. Maybe there will be a third and fourth arrest as well.
It is possible to fix this somehow, of course. Anything is possible with scripts. But I am not going to do this in my own game, because it's too much work, and I've already been working on this project for over 5 months! For me, the answer is simple. Any thief I roll won't want to stick around if he or she has been caught stealing.
MAKING THE JAILBOT
OBJECT window > Actors > Creature > Robot > Protectron
8a). Right-click > Edit CProtectron, and select an ID and Name. I am calling it aaaJailbot and Jail Bot. Get it?
8b). Toggle...
No low level processing off.
Respawn on.
Allow PC Dialogue on.
8c). Traits tab: All the scroll-bars have already been set, so leave these alone. Change Alignment to Good.
8d). Stats tab: The robot is set to Level 3 by default, so it's an easy one to beat, for those who wish to do so. Problem is, if it's been destroyed before the PC gets thrown in jail... I am setting it up so that this is a bad idea. Reason is, the jailbot is going to be the one who eventually unlocks the jail's cell door, through dialog. It will also dispense food, for those who use mods which require eating. So for those modders who wish to keep all of that intact, set the Jail Bot to Essential.
8e). Factions tab: Remove from RobotFaction and add into MegatonResidentFaction and MegatonCrimeFaction.
8f). AI Data tab: Unaggressive, Average, Helps Nobody, and Neutral are fine.
8g). AI Packages tab: Remove any AI packages. These are going to be added in a later tutorial.
Everything else (Inventory, etc.) can be kept as-is.
8h). Click OK, then drag the Jail Bot into the jail cell.
8i). Double left-click on the bot. Toggle Persistent Reference on. Click OK. Save.
FINISHING THE JAIL QUEST
OBJECT window > Miscellaneous > Message
9a). Right-click > New into the Editor ID window. The MESG panel pops up.
9b). ID can be aaaMinorCrimeOneDay. This is going to be used for minor crime less than 5.00. Copy that ID so it can be pasted into the main script later.
9c). Title can be Go To Jail. And for Message Text I just typed "I have been thrown in jail for one day."
Toggle Message Box off.
9d). The Time Displayed slot has been set to 2 by default, meaning that the message gets shown for 2 seconds. This ain't enough for my sorry eyes, so I boosted this to 20, just so I have enough time to read each message.
Click OK. Three more MESGs can be made, corresponding obviously to minor crime more than 4.00, Major Crime less than 5.00, or attempted murder.
9e). A final MESG can be made to indicate the jail term has ended. ID in my game is aaaFreeFromJail. Follow steps 7b through 7c to make a "My jail term has now ended" message.
9f). Hmm, one more message. I made aaaCrimeClearedMessage, which is going to show if the criminal resists arrest, or is moved out of town after paying caps. This message says "Three days have passed. It may be safe for me to reenter Megaton by now."
OBJECT window > Actor Data > Quest > Quest Data
10a). Reopen the main script. Here is what it'll look like in total.
scriptname aaaJailScript
short Arrest
short Timer1
short Timer2
short Timer3
short Timer4
short Timer5
short StartDay1
short StartDay2
short StartDay3
short StartDay4
short StartDay5
Begin GameMode
;------------------------------------
;Script below deals with stopping combat against PC, once PC has stepped into Megaton's plaza.
;NPCs will sometimes try to fight PC after crime has been committed. This script stops these fights.
If (Player.GetInWorldspace MegatonWorld == 1)PlayerRef.StopCombatAlarmOnActor
EndIf
;------------------------------------------------------
;The script below deals with Minor Crimes of 4.00 or less
;This causes the PC to get locked in jail for 24 hours
; Officer's Status remains at 2.
If (Arrest == 1) && (Timer1 == 0)Set Timer1 to 1
Set StartDay1 to GameDaysPassed
ShowMessage aaaMinorCrimeOneDay
EndIf
EndIf
If (Timer1 == 1)
If ((GameDaysPassed - StartDay1) >= 1)Set Timer1 to 0
Set Arrest to 0
ShowMessage aaaFreeFromJail
EndIf
EndIf
;------------------------------------------------------
;The script below deals with Minor Crimes of 5.00 or more
;This causes the PC to get locked in jail for 3 days
If (Arrest == 2) && (Timer2 == 0)Set Timer2 to 1
Set StartDay2 to GameDaysPassed
ShowMessage aaaMinorCrimeThreeDays
EndIf
EndIf
If (Timer2 == 1) && (aaaMegatonOfficerRef.Status == 1)
If ((GameDaysPassed - StartDay2) >= 3)Set Timer2 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 5
ShowMessage aaaFreeFromJail
EndIf
EndIf
If (Timer2 == 1) && (aaaMegatonOfficerRef.Status == 6)
If ((GameDaysPassed - StartDay2) >= 3)Set Timer2 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 7
ShowMessage aaaFreeFromJail
EndIf
EndIf
;------------------------------------------------------
;The script below deals with Major Crimes of 4.00 or less, namely assaults
;This causes the PC to get locked in jail for seven days.
; Officer's status remains at 2
If (Arrest == 3) && (Timer3 == 0)Set Timer3 to 1
Set StartDay3 to GameDaysPassed
ShowMessage aaaMajorCrimeOneWeek
EndIf
EndIf
If (Timer3 == 1)
If ((GameDaysPassed - StartDay3) >= 7)Set Timer3 to 0
Set Arrest to 0
ShowMessage aaaFreeFromJail
EndIf
EndIf
;------------------------------------------------------
;The script below deals with Major Crimes of 5.00 or more, namely excessive assaults and murders
;This causes the PC to get locked in jail for one month
If (Arrest == 4) && (Timer4 == 0)Set Timer4 to 1
Set StartDay4 to GameDaysPassed
ShowMessage aaaMajorCrimeOneMonth
EndIf
EndIf
If (Timer4 == 1) && (aaaMegatonOfficerRef.Status == 1)
If ((GameDaysPassed - StartDay4) >= 29)Set Timer4 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 5
ShowRaceMenu
ShowMessage aaaFreeFromJail
EndIf
EndIf
If (Timer4 == 1) && (aaaMegatonOfficerRef.Status == 6)
If ((GameDaysPassed - StartDay4) >= 29)Set Timer4 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 7
ShowRaceMenu
ShowMessage aaaFreeFromJail
EndIf
EndIf
;-------------------------------
;The script below is what cancels the Officers' Resist Arrest AI, causing them to mellow.
;This allows us to reenter Megaton.
If (Arrest == 5) && (Timer5 == 0)Set Timer5 to 1
Set StartDay5 to GameDaysPassed
EndIf
EndIf
If (Timer5 == 1) && (aaaMegatonOfficerRef.Status <= 4)
If ((GameDaysPassed - StartDay5) >= 3)Set Timer5 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 5
ShowMessage aaaCrimeClearedMessage
EndIf
EndIf
If (Timer5 == 1) && (aaaMegatonOfficerRef.Status == 6)
If ((GameDaysPassed - StartDay5) >= 3)Set Timer5 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 7
ShowMessage aaaCrimeClearedMessage
EndIf
EndIf
End
Note Arrest 4. When its timer concludes, ShowRaceMenu allows us to change our character's hairstyle / looks. After a month in jail, hair probably won't look the same.
10b). Save, Click OK (closing the Quest window) and save.
The final touch is to give the Jail Bot some dialog and responsibilities. This bot will be in charge of feeding the PC, dispensing cigarettes, and finally, unlocking the jail. I am also going to give the Jail Bot a Patrol package. Patrols get described in the post directly below this one.
OBJECT window > Actor Data > Quest > Topics tab
Start a new quest. This quest needs to be separate from the Jail quest already written. Keep in mind that the way I am writing this will make the PC stay in jail in REAL TIME. This idea is hardcore, of course. Those who want to spend all their time at once can simply sleep in the bed over and over, or come up with a way to move time forward more quickly, somehow.
11a). Three GREETINGs are needed. First one will deal with dinner. The PC is going to have a choice of eating, not eating, or getting a pack of cigarettes. "You ... look ... starved. Want .... some .. grub?" goes the dialog.
11b). Toggle Say Once a Day on.
11c). Conditions are as follows...
GetCurrentTime > 17.000 AND
GetCurrentTime <= 22.000 AND
GetIsID aaaJailBot == 1.00
Note that the Jail Bot will dispense food or ciggies even if the PC is not in jail. To fix this, add another short variable into the main script. Call it Incarceration. You'll then need to go through the rest of the main script, adding Set aaaJailFallout3Quest.Incarceration to 1 for each of the four timers. A GetQuestVariable can then be added to the topic for food & cigs. Make sure to turn this off once the PC gets out.
11d). In the Choices window, add aaaFoodYes, aaaFoodNo, and aaaSmokingTopic. Or any other topics desired.
11e). Let's start with aaaFoodYes. "Yes I am hungry" can go into the Topic Text slot. "We have an .... excellent. Selection of .... all kinds of grub," says the Jail Bot.
Toggle Say Once a Day and Goodbye on.
11f). The same conditions can be copy-pasted from the bot's initial GREETING.
11g). In the Result Script (End) box, type whatever is desired. I am adding. Player.AddItem JunkFood 1, Player.AddItem BrahminSteak 1, and Player.AddItem NukaCola 1.
11h). "No I am not hungry," can go into the Topic Text slot for aaaFoodNo. This is for roleplaying only, for those who have a toon who is some sort of hunger strike.
Only the bot's GetIsID is needed here. Toggle Goodbye on. Toggle Say Once a Day on.
Making a Patrol package. Game: Fallout 3
Good day. Today I am going to discuss how to make an NPC patrol a fixed area, without just having them Wander or Sandbox aimlessly. This sort of package comes in handy when we want this NPC to do anything more specific than just move aimlessly.
When trying to add a patrol to a new cell (or any sort of area where an NPC will walk in an area without navmesh), it is important to add navmeshes to this cell. This sort of thing is rather complicated to describe, but this tutorial can help. https://www.youtube.com/watch?v=RYJAj-63FR4.
-------------------------------
Now, for the Patrol AI part.
Firstly, there are two types of NPC patrols. Generic NPCs (such as raiders) have a different method than named NPCs. To see a well-detailed video on generic patrols, https://www.youtube.com/watch?v=rXTo5i-NtzI&has_verified=1.
And here is the video link for named NPCs, narrated by a modder with a British accent.
https://www.youtube.com/watch?v=VRzPxjeW750
But I am also going to describe how these work step-by-step.
--------------------------------
1). Create or edit an NPC, unless an NPC who's going to patrol has already been added into the game. It is possible to make vanilla Bethesda NPCs patrol as well, though this can get risky of course.
Note: for best results with named NPCs, where it says Template Data, make sure that ActorBase's scroll-down menu is set to NONE.
2). OBJECT window
Go into World Objects > Static, find Xmarker. Drag an Xmarker into the same cell as the NPC. Put this Xmarker onto the FIRST point you'd like the NPC to walk to.
3). RENDER window
Ctrl + D to duplicate this X-marker, and move it to some other area which will be the second point of the NPC's patrol. We can keep duplicating as many patrol points as we'd like.
4). Give each Xmarker its own Ref ID. Though this is not fully necessary (Beth sometimes uses generic markers with no references) it helps to know where the NPC is going to go more specifically, by naming these references and numbering them (aaaPoint1, aaaPoint2, aaaPoint3... etc.). Later on when the patrol package is being made, we can view these Xmarker points in a window.
5). Double left-click on the first X-marker. Go to its Linked Ref tab (this tab might be hidden in the row which starts with 3D Data, so use the < arrow to move to the left until the Linked Ref tab can be seen).
6). Click the "Select Reference in Render Window" button. Now the cursor gets moved into the Render window again, it will turn into a red circle with a + in its middle. Move the cursor until it is over the second patrol point, and it should turn white. Once it is white, click (maybe double-click) on the X-marker which will become the second patrol point.
7). Click OK. There should now be a green colored line going from the first patrol point to the second.
8). Repeat steps 5 through 7 with any other X-marker patrol points. If the patrol path is to go around and around in a loop, click the final X-marker and link it to the first one.
9). Double left-click on the NPC who will patrol, opening up its Reference panel, and click Edit Base. Go into the AI Packages tab. Right-click > New in the Editor ID box.
10). Give this package a unique ID.
Package Type: Patrol
11a). Starting Location: there is a button under these words which says "[none] n [none]". Click on this and choose Near Reference, and then specifically find the first Xmarker by selecting Select Reference in Render Window. Notice how in the Patrol Point List it will actually list all the different points of the patrol.
Click OK.
11b). Make sure Radius stays at 0, and "Repeatable" stays toggled on if the NPC is supposed to repeat this patrol.
11c). Flags tab-- Toggle Must Complete on. "Continue if PC is near" can also be toggled on if the Patrol is not working for some reason. I also like toggling Enable Fallout Behavior off, but Hellos to Player, Reactions to Player Actions, and Allow Idle Chatter on.
Click OK and close everything. SAVE all work.
12). Double left-click the NPC again, Find the Linked Ref tab. Click on the "Select Reference in Render Window" button, and link the NPC to the first X-marker patrol point. Click OK. There should now be a yellowish-green line going from the NPC to the first Xmarker.
That is the basic patrol path. Once we're back in-game, the NPC will move from point to point in a rather nervous fashion. Thankfully this can be slowed down. It is possible to modify how long the NPC stays at various patrol points, and other fun stuff.
13). RENDER window
Click on one of the X-markers which has been linked. Let's say we want the NPC to stay here for awhile. Click on the Patrol Data tab.
Idle Time defaults to 0.000, with that first digit being minutes. Change this to whatever is desired. It is not exactly accurate, but if 10.000 goes in this slot, the NPC will move after roughly 10 in-game minutes. 60 = an hour, 360 = 6 hours, and so on.
Topic scroll-bar: if we've already created a specific dialog topic in the Topics tab, and wish to use this topic AT this particular patrol point, scroll down and find it. The NPC will say this when standing at this point. This can also be triggered via quest topics too, of course.
....
Horse Rentals. Game: TES IV: Oblivion
This is going to make a horse rentable in TES IV: Oblivion. Renting a horse (rather than buying one) is good for someone who hasn't go a lot of money available yet. Another advantage is: if the horse gets killed, at least the PC did not blow weeks or even months of earnings! In roleplay terms: maybe the character has also not become too attached to the poor horse in such a scenario.
So this idea is going to make it possible to rent a horse for one month, from a Chestnut Handy NPC who I'm something going to call Stable Master, or aaaStableMaster. After the horse is rented, it is essentially owned by the Player. After a month has passed, the horse will return to Chestnut Handy Stables, near the Imperial City. It will also no longer belong to the Player.
--------------------------------
OBJECT window > Actors > NPC
1). Edit an NPC, doing all the usual steps, and place this NPC wherever. This is going to be the stable master who we rent the horse from. I am going to call this guy aaaStableMaster
I am placing my NPC (an orc) into the Chestnut Handy pen, where all the horses are kept. In fact, my original idea was so make this NPC sell horses, not rent them, since the vanilla game doesn't allow us to buy horses here (ahem). But buying horses is nothing new. I want to try something new.
Now to make the horse itself. Horses are to be found in two areas of the Construction Set's Object window: Creature > Creature or Creature > Horse.
--Do not edit anything from the Creature > Creature section. These cannot be ridden. These are (in fact) the wild horses which can sometimes be seen south of the Imperial City.
--Do not edit anything quest-related, or anything from the MyHorse area.
--Do not edit an ImpLegion horse.
Actors > Creature > Horse
2a). Right-click > Edit a basic horse, such as HorsePaint. These are good to start with since they haven't got any scripts.
2b). Change ID and Name, I am calling it aaaPaintHorseRental and Paint Horse Rental.
Stats tab
2c). By default, most horses are Level 1, and they are somewhat weak. A Bay has 250 health, for instance. This may seem quie a lot, but since it's possible for a person to acquire even more, I don't feel bad toggling PC Level Offset on. This horse is special. It can have hundreds more health. It'll last longer, if it happens to get into a fight!
2d). Toggle Respawn on (if it's not on). You can leave Can Corpse Check toggled on or off.
2e). Get rid of any AI packages.
By default, base horses have zero Aggression, 50 Confidence, 25 Energy Level, and 50 Responsibility.. They will never pick fights, but somehow they'll be able to know if our character is stealing. Weird. Change these around, if desired.
Factions tab
By default, basic horses are part of the Prey faction, which has an interfaction relationship of -50 to the Creature Faction. Yikes. It's up to you if you'd like to place this horse into the HorsePC faction (which causes the horse to stay absolutely loyal to the Player, unless broadly attacked over and over) or play around with a customized faction. The reason this is important is by default, horses get attcked by a lot of Player enemies, which can get annoying. It might be prudent to try to change this.
I am going to experiment by not putting the horse into any faction at all. Because like I said, the vanilla game has an annoying habit of making enemies attack our horse first, instead of attacking the PC. Maybe this has something to do with the HorsePC faction MyHorses are placed into.
2f). Click OK, saving as a New Form. Find an appropriate worldspace, and place the horse out into the world.
2g). Give the horse a Reference ID. I am calling it aaaPaintHorseRentalRef. Copy this ID and paste it onto a Notepad page so it can be pasted into scripts later.
2h). Click on the Ownership tab, and find the NPC stablehand in the NPC scroll-bar. If the horse is not rented, this NPC owns the horse, and it's considered stealing if it's not paid for. Click OK.
OBJECT window > WorldObjects > Static
3). Drag an XMarker out into the Render window. Give this X-marker a Reference ID. I am calling it aaaPaintHorseReturnXMarker. This marker is where the horse will return after its rental terms is over.
Again, copy this ID and paste it onto the same Notepad page, so it can be pasted into scripts later.
QUEST window
4a). Start a new quest. This quest does not need a name, unless you want it to appear in the Quests section of the in-game menu for some reason. Otherwise, this quest does not require stages, and therefore does not need a Name.
4b). Change Priority to 30. This is the standard number for Bethesda's own Horse quest.
4c). Leave Start Game Enabled toggled on. Toggle Allow repeated conversation topics on as well.
4d). GetIsPlayableRace == 1.00 goes into the Quest Conditions winow.
4e). Start a script, and add these variables.
scriptname aaaHorseQuestScript
short Rent
short Timer
short StartDay
Save that, click OK, and reopen the quest window. Find the script in the scroll-bar and click OK. Reopen the quest window.
Topics tab
5a). We're going to make a total of five GREETINGs. Each one has a different set of options and QuestVariables.
Greeing one is what starts the dialog. "Hi, my name is Bob. I rent horses here at Chestnut Handy Stables...." this NPC explains that he or she rents horses, rather than sells them (or eats them).
5b). In the Conditions window, make a GetISID for the NPC created ealier.
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent == 0.00
5c). In the Result Script box, type Set QuestName.Rent to 1
5d). Right-click > AddTopic into the Add Topics window. Start a new topic called aaaHorseTopic. Add this into the Editor ID window, too.
----------------------------
Greeting Two: this gets spoken if dialog is started (the first GREETING is spoken), but for some reason the PC backs out of conversation.
The dialog spoken during Greeting two can be siomething simple. "Can I help you?" Conditions go like this...
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent == 1.00
Add the same aaaHorseTopic into the Add Topics window.
-------------------
Greeting Three: this is another interim greeting, spoken when the QuestVariable is at 2. Again, this gets spoken if the Player backs out of conversatio early, but then returns to the NPC.
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent == 2.00
Add the same aaaHorseTopic into the Add Topics window.
Set QuestName.Rent to 1 goes into the Result Script box.
---------------------
Greeting Four gets spoken after the player-character rents the horse, backs out of conversation, but for whatever reason returns to speak to the NPC stable master. "How is your horse? I hope everythin is satisfactory." and so on. By now, the PC temporarily owns the beast.
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent == 3.00
Add aaaHorseTopic into the Add Topics window. A Result Script is not needed.
-------------------
Greeting Five is used after the horse rental has ended, and the player retuns to the stablehand NPC to maybe try renting it again. "You have returned.... bla bla bla."
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent == 4.00
Result Script: Set QuestName.Rent to 1
Add aaaHorseTopic into the Add Topics window.
Click OK and save.
QUEST window > Topics tab
6a). Select aaaHorseTopic (or whatever this first custom topic was called). Change the Topic Text name to something in plain English, if necessary.
6b). Two responses are going into the Info window.
In the first one, it is explained further to the PC that there is a horse (or horses) available for rent. "We have paints, bays, and chestnuts..." The NPC explains how much each selection will cost for that month. The stablehand also explains that after the month is over, the horse will return to its home stable. Write this response. Conditions go like this...
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent == 1.00
Result Script: Set QuestName.Rent to 2.
6b). In the Choices window I'll start a Paint Horse topic choice and a No choice. Eventually there will be a Bay Horse Topic choice and a Chestnut Horse Topic choice. But for now, right-click > Add Topic. Since the first horse I'm adding is a paint, I'm calling the topic aaaPaintHorseTopic.
Add aaaBayPaintTopic (or whatever it's called) into the Editor ID window.
6c). Also add a "No" topic into the Chocies window. If you already have a No topic from other quests, this can get reused. If you do not have a No topic, create one, and make sure to add it into the Editor ID as well. Here are its conditions and Result Script.
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent <= 2.00
Result Script: Set QuestName.Rent to 0
6d). Click OK and save.
7a). Go back into the Quest window and back into the initial Horse topic (which I called aaaHorseTopic). Start a second response. "You have already rented a horse from me, is there a problem?"
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent == 3.00
There is no Result Script or Choices for this topic. After one horse has been rented, it is not possible to rent another; doing so would complicate things. So this topic is simply an empty 'filler' which follows the fourth GREETING.
7b). In the Editor ID window, go back to the first horse choice. I called this aaaPaintHorseTopic. Dialog can go like "Yes, I've got a fine paint available. Slow, but durable, and more highly maneuverable than a faster horse. Good for rugged terrain..."
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent == 2.00
7c). In the Choices window, add a "yes" choice (aaaYesPaint), and a "no" choice. The No choice can be the same No used before. Add aaaYesPaint into the Editor ID.
7d). Select aaaYesPaint in the Editor ID window. Topic Text can be changed to "Yes, I'd like to rent a paint horse." Two responses are going to be written here: one which the stablemaster will say if the PC has enough gold, and one which hte stablemaster will say if the PC does not have enough. Let's start with the first response.
7e). "Very good, that paint over there is now yours for the next thirty days..." says the stablehand. In my game, this guy will charge 120 gold for the month.
GetIsID NPC: aaaStableMaster == 1.00 AND
GetQuestVariable 'QuestName', Rent == 2.00 AND
GetGold ......... NONE.... >= 120
Make sure to toggle Run on Targlet ON for that final GetGold condition.
Result Scripts: aaaPaintHorseRentalRef.SetOwnership
Set QuestName.Rent to 3
Message: "Paint Horse has been rented for one month", 30
Player.RemoveItem Gold001 120
Notice that the SetOwnership script does not refer to the Player. It took me awhile to figure out, if nobody is referenced, the referenced item will automatically go to the Player! (You don't know how many error messages I sat through as I kept trying to include Player here. Grr....)
7f). But what happens if the PC does not have enough money? "No, I asked for 120 gold. And this is not enough..." goes the dialog. Toggle Goodbye on, so the quest's dialog gets forced back to the beginning (from the stablehand's point of view).
GetIsID NPC: aaaStableMaster == 1.00 AND
GetGold ......... NONE....< 120.00
Again, toggle Run on Target ON for that GetGold condition.
Result Script: Set QuestName.Rent to 0[b]
[b]7g). Click OK and save. All the dialog has been written, so phew.
QUEST window > Quest Data tab
8a). Time to write yet another Timer script. I love these things. This has already been started with the three short variables.
scriptname aaaHorseQuestScript
short Rent
short Timer
short StartDay
Begin GameMode
If (Timer == 0)
If (aaaHorseQuest.Rent == 3)
Set Timer to 1
Set StartDay to GameDaysPassed
EndIf
EndIF
If (Timer == 1)
If ((GameDaysPassed - StartDay) >= 30)
aaaPaintHorseRentalRef.SetOwnership aaaStableMaster
Set QuestName.Rent to 4
Set Timer to 0
Message: "My horse rental has expired.", 30
EndIf
EndIf
End
8b). Save that, click OK, and save from the main toolbar.
RENDER window
9a). Make sure the X-marker created earlier is onscreen. It also helps to find the horse as well, and have both of these items onscreen. Double left-click on the horse, and click its AI button. Two packages are needed: one which causes the horse to return home after the rental has expired, and one which causes the horse to NOT return home, assuming it's been paid for.
9b). Let's start the go home package. Right-click > New into the AI Package List window. Name the ID something specific for that horse, such as aaaPaintHorseReturnHome. Click on the Package Type scroll-bar and find Travel.
9c). Toggle Must Reach Location and Defensive Combat on. You can also toggle Always Run on, which might allow the horse to make it back home without getting pwned.
9d). Click on the Conditions tab. GetQuestVarible 'QuestName', Rent == 4.00 goes here.
9e). Click on the Location tab. Toggle Near Reference on, click Select Reference in Render Window, and double left-click on the X-marker. Click OK.
9f). Right-click > New into the AI Package List window again, and name its ID aaaPaintHorseDismounted. Find Wander in the Package Type scroll-bar.
9g). Toggle Must Complete on. Defensive Combat can also be toggled on.
9h). Conditions tab: GetQuestVariable 'QuestName', Rent == 3.00.
9i). Location tab: select Near Current Location and use a binary number (such as 512) for the Radius slot. This way, the horse will wander around a bit when dismounted, looking for grass to munch on, perhaps. It is also possible to simply choose 0 for Radius, if you really want to keep the horse from wandering into trouble.
Note that when dismounting the horse, this will cause any other rentable horses to also wander a bit in their stables, way back home! This is safe, as long as "home" is not located near an enemy lair.
9j). Click OK. Click Save. Click OK. And Save.
Trigger Zones, Game: Fallout 3
Fallout 3 does have X-markers, but it also uses what are called trigger zones or 'triggers" to setstage quests and perform various script-related functions as we pass through them. Triggers can be more effective than X markers. The reason is, trigger zones can be structured to cover an entire area, to make sure the PC will pass through them. X-markers, on the other hand, require scripts to determine how close we are, which don't always work as well.
Here is a good video to watch, for those who want better visual aids.
https://www.youtube.com/watch?v=QaMtpvrEG9E&t=34s
Otherwise, here are some text instructions.
CELL window
1). Go into the Cell or Worldspace where the trigger zone is going to be added.
2). On the main toolbar, find the T button. It looks like a child's block with a T in it, and is just right of the NavMesh button (with red scribbles in it). Click this button.
3). In the Render window, left-click somewhere on the ground, and drag upon it. It helps if the area where you are clicking does not have a bunch of stuff on it (items, Markers, etc.). After you drag on the ground.
4). At first, nothing might happen. Or perhaps a red square will show onscreen. If nothing is seen, just move the mouse upwards (without holding any buttons). Now we should be seeing a transperant red cube. This red cube will be what activates the next stage of the quest, or the next script variable, or whatever.
Once we're back in game, walking THROUGH this red area is what makes things happen, so if it's not big enough, or if it's not in the right area, chances are it might need to be redrawn or dragged. These red cubes can be tricky to move around though.
5). Double left-click on the red cube. This will pull up the Activator panel.
6). We'll need to give it a new ID. Click on the New toggle (next to the ID pane), and give it a new ID name. "Name" is not important, and can be deleted, even.
7). If there is any Script on this Activator, get rid of it by moving the scroll-bar to NONE. Click OK. And Save.
Note: After we close the Activator panel, notice there are a bunch of colored lines & arrows in the cube. Now it can be moved and manipulated. Just left-click and drag. Pull or collapse. The video can give better visuals, of course.
8). Double-click on the red cube. Next, click on Edit Base. Now we're going to add a script, which can be left as an Object. It should look like this..
scn XnameScript
Begin OnTriggerEnter Player
If (GetStage == X)
SetStage X
EndIf
End
Save the script, click OK on the Activator panel, and reopen it.
9). Click Persistent Reference ON.
10). Click OK and as always, save.
The instructions below are for those who wish to attach the trigger zone to a Quest Objective, such as a marker.
11). Open up the Quest window you've been working on (if there is one). Go into the Quest Objectives tab. In the Target Ref window, add a target if this hasn't been done already.
12). In the Quest Objectives tab's Cell scroll-down bar, locate the area where the red cube has been added, and select its Ref.
Note: If this cube has been placed outside (especially somewhere in Wilderness) it may not show up in the scroll-bar. If this is so, click on the "Select Reference in Render Window" button. Make sure that the Render window is still displaying the area where the red cube has been created. Double-click on the cube, and it should automatically get selected as the Ref.
https://www.youtube.com/watch?v=wj6qGCT4isg&ab_channel=Seddon4494
Timer script with seconds
-----------------------------------------------
A REF variable stores a ref ID that you snatch out of the game in realtime. Like. if I am in combat with Fawkes, and I run the script commands:
Some stuff must use FLOAT values, such as additemhealthpercent.
Some stuff must use SHORT or INT, such as getweaponhealthperc
My understanding is that Short and Int don't get to have decimal point values after them. Float does. And Float numbers can hold values that are larger than Short ant Int - - like, really, really huge values, bigger than almost anyone would have a use for.\
I don't know what LONG is.
Float means floating point... which means has a "point" in it.
"Short" for the Geck is a 32 bit signed integer. This is large enough that you will not likely overrun it.
For Oblivion, short is only a 16 bit signed integer. Still pretty large.
In summary, use floats when you need fractional parts, use short otherwise.
Since using the GECK, I use only REF, FLOAT, and INT variables.
I prefix my variables with the first letter of the type of variable it is.
For example:
int iVariableName
float fVariableName
ref rVariableName
I stay away from labeling the INTs as SHORTs, because FOSE allows STRING variables, so
string sVariableName
won't get confused with
short sVariableName
https://web.archive.org/web/20130429160307/http://www.creationkit.com/SetLockLevel_-_ObjectReference -- has an example of locking a door via script. Just follow links in the wiki to also get it to Unlock.
------------------------------------
To add a spell effect to somebody in Skyrim just by putting something on...
https://web.archive.org/web/20200213110353/http://forums.bethsoft.com/topic/1343689-papyrus-onequipped-example-i-think/
-------------------------------------------
If you want a script to run on a piece of equipment when it is equipped, and affect the actor that has it equipped, you'll want to use a structure like this:int bEquipped
ref rContainer
Begin OnEquip
set bEquipped to 1
set rContainer to GetContainer
End
Begin GameMode
if bEquipped
; Do stuff using rContainer
endif
End
Begin OnUnequip
set bEquipped to 0
End
--------------------------
Disable referenced NPC 10 seconds after pwning
------------------------
Activate Parent and Enable Parent tabs, yes? The Activate Parent tab is used when you want an activator (like a door) to be activated by something else (like when opening a vault gear door by flipping a switch as opposed to just "activating" the door itself). If you set up an activate parent, the activator object will then be activated by the object itself and the parent object. If you check the "Parent Activate Only" flag on the tab, then only the parent will activate it.
The Enable Parent is more or less the same thing except instead of Activating, it enables/disables an object based of the parent's enable state. One way to use this is to set a bunch of lights that have their enable parent set to an Xmarker. Then when you enable the Xmarker, all the lights will be enabled as well (turn on). When you disable the Xmarker, all the lights will be disabled (turn off).
----------------------------------------
Change Creation Kit page size?
Did a quick test and by changing the value of
Creation Kit X=
Creation Kit Y=
Creation Kit W=
Creation Kit H=
I was able to play with the startposition and size of the windows. Use at you own discretion as I am a total noob regarding inifiles.
-------------------------------------------------------
Papyrus is very “type-oriented”. In programmer terms, it is “strongly-typed”. The best way I can think of to explain it would be that the compiler has a very narrow view of what you can and cannot do with various kinds of objects in the game (also known as “types”).
As an example, think of a car. The “Car” is our “type”. You can tell a “Car” to drive by writing: “Car.Drive()”. But you cannot tell a car to fly, because a car is not an airplane. So “Car.Fly()” doesn’t work. (And would give you the “function doesn’t exist error”)
One thing that can be incredibly useful if you are having trouble with a specific function is to search the other scripts included with the game for the name of the function. So, if you can’t seem to get SetEssential to work, search all the files in “Skyrim/Data/Scripts/Source” for “SetEssential” with your favorite text editor, or even Windows (they’re just text files), which should help you in figuring out what to do differently. Simply extending a different script will most likely make your script not run at all on the object you attached it to (because the game won’t let you run a quest script on an actor, for example), and importing another script is simply shorthand that is mostly useful for global functions.
----------------------------------
First you need to extract voice files from Oblivion BSA files. I found BSA Unpacker on Nexus and it did the trick, although some voices are missing - I see no Khajiit voices, for example. May be it didn't work right, but I got what I was looking for, so stopped looking. Now you can start the actual work. (Hmmm... This got me thinking. I could hijack Skyrim conversation as well! It's the same format. Oh!!!)
You start by locating the quest from the Companion Share mod - it's called aaaGeneric. Click on Topics and see all the various lines of conversation that you get (these are not all of the lines, there are more in the other quests, but these are the ones you start with). For example, start with GREETING. It has four different lines, I suppose you know this stuff as you do quests. Click one of the lines, then double click the line under Response. It opens a window to edit the response and this is where all the sound files go.
Firstly, there are no recorded lines of dialogue that say exactly what is written under Response, so I changed it. The tedious bit is to know what to change it to. You need to find a line somewhere else that you can copy from. I guess you know how to search - filter dialogue by NPC to see only lines of the same voice, etc. Or use "find text" from the Edit menu. Let me know if you have questions here. The bottom line is, once you find the line you want to copy from, you need to make note of three things: race, sex and audio ID. Race and sex is needed to make sure that you don't suddenly have your hulk of a Nord talking with the voice of a female Bosmer. wink.gif But you can do it if you really want to - there is no limitation where the audio comes from. Audio ID is a string in a box just above the list of voice files in the window. You cannot edit it but you can copy it, so do it.
Now go back to the line in the Companions quest that you want to paste this audio into. I edited the subtitle text so that it matches the spoken phrase, but you don't have to, especially if you pick different phrases for different races. So in this window there's a list of voice files. Find one with the correct race and sex and click it so it's highlighted. Then click "Copy audio file" button. It shows you a file selection window. Navigate to the correct folder where you want to copy the file from, for example Voices\Oblivion.esm\Nord\m and behold loads and loads of voice files. Paste the audio ID into the File box and it should come up with two files - an MP3 and a LIP file. Select the MP3. If it doesn't come up with anything useful, scroll through the long list and find the correct file manually. Did I mention it was tedious?
So, this copied the audio file. Now click "Generate Lips file". Also don't forget to check Emotion and its percentage. Done! Click Ok.
Repeat this for every single response that you want modified. wacko.gif
This is how to reuse lines that are already in the game. If you have new audio files from somewhere else, like from Skyrim for example, you can use them as well. You just need to know which MP3 file you want to use, then when you click "Copy audio file", you just navigate to whatever folder you want and select the correct file. The system copies it into the correct location and changes the file name to the correct one so that it can be found. This is why you cannot just copy files by hand - they have to be renamed. Well, you can rename them by hand but that's even more tedious! tongue.gif
It takes a long time, but it is so much better to have talking companions! biggrin.gif
I have found a really good Daggerfall tutorial which was originally written in Beth's forums by BOX MAAAN. I'm copy/pasting most of it, so if I ever get involved with Daggerfall again I'll have this guide ready.
------------------------------------
INSTALLATION:
This is the easy part. Just check out "DaggerfallSetup"; it's an installer that comes with a preconfigured DOSBox and a bunch of unofficial patches, so after everything is all installed all you have to do is double-click a shortcut and you're in the game. You can download Daggerfall from Bethesda's official website, but I'd strongly recommend just sticking with DaggerfallSetup. And don't worry, it's completely legal.
It also comes with a few extra goodies. Once you get into the game and make your first save, open the Eye of Argonia application in your Daggerfall installation folder and run it to patch your savegames to increase your view distance. Don't ever touch the detail slider on any of your saves, before or after running this patch, otherwise it won't work. And if your save ever gets screwed up in some way, try using Fixsave on it before giving up.
CONTROLS:
The first thing you want to do when you wake up in Privateers' Hold is customize the control scheme to something more to your liking. With a little tinkering, you can make Daggerfall's controls feel positively modern - which for me is a huge help in making the game enjoyable. I can't tell you what your ideal control scheme is, but�€�
�—�
Turn on mouse look. For the love of Arkay, turn on mouse look. Daggerfall was one of the earliest games to feature full mouse look, and don't you ever take it for granted.
�—�
Remap WASD so that it uses "Slide Left/Right" instead of "Turn Left/Right". Mouse is covering the camera, so for the most part you can forget about the Turn Left/Right mappings.
�—�
Since you're using mouse look, you'll need to use either "Activate Center Object" to interact with things (which works just like it does in modern Elder Scrolls games), or "activate cursor" to temporarily toggle off mouse look and bring up the cursor to click on whatever you want to interact with. I generally just use "Activate center object", but Daggerfall doesn't have a crosshair it can sometimes be tricky to activate those little switches and stuff - "activate cursor" comes in handy there.
�—�
You could also enable fullscreen to disable that bar at the bottom of the screen with all of your interact options and the wait/rest menu - it's not as useful if you're using mouse look, and in fullscreen your HUD will just be you health/magicka/fatigue bars and your compass, which looks nice.
�—�
"Float Up/Down" are used for when you're underwater, or under the effects of a levitation spell.
�—�
I've honestly never used the "steal/grab/info/talk" mode keys - generic activate seems to be pretty smart about what you're doing when you click on something, but maybe you'll need "Steal mode" to pickpocket people. Never knew if just crouching/sneaking let you pickpocket people like in the later games.
�—�
As it happens, "Sneak" doesn't put you in a stealth crouch like the later games, it just slows down your speed so you can tip-toe around, since faster movement means more noise. Similarly, your starting speed isn't as bad as in Morrowind so "run" feels like actual sprinting. And the fatigue drain from running isn't too bad, so feel free to run around a lot. I never had much use for "crouch" or "slide", but you will need crouch for a dreaded wall opening in Wayrest Castle.
�—�
You need to be moving when you jump if you want to jump in any direction other than straight up.
�—�
"Cast Spell" brings up your spell list. Double-click a spell (or hit Enter with that spell highlighted) to cast it: on-self effects (and Open, for some reason) will automatically cast, but on-touch and ranged spells are only loaded; you'll have to hit the "activate center object" key to fire. On-touch requires a valid target (so with an enemy within attacking range), on-target can be fired regardless. Recast spell loads whatever spell you last cast. "Abort spell" unloads any spell you've loaded but haven't cast, as well as refunds the magicka cost. "Use magic item" works like "Cast spell", but instead of opening the spellbook it opens a list of magic items in your inventory to load spells from.
�—�
"Rest" is how you wait to pass time. Resting restores your health/magicka/fatigue, loitering doesn't but it passes the time just the same. Loitering is for when you need to pass the time in a city until the shop/guild you want is open - don't rest inside a city, or you'll get arrested for vagrancy. You can't loiter for more than three hours at a time, because Daggerfall hates you. Just re-enter the menu every three hours.
�—�
"Transport" opens a menu where you can choose whether to walk, or mount your horse and/or cart. You need to buy a horse and cart at any general trader, and then when you do they'll exist in hammerspace until you mount them with this key - can't do it in interiors of course, and remember if you're riding on your horse or cart you won't be able to grind your Running/Jumping skills. If that's important to you. Also, if you own a ship, you can use this menu to basically teleport to it.
�—�
Think of "automap" as the local map from the modern games - a top-down look at the city or interior space you're hanging out in. The automap inside dungeons is super useful, and even more frustrating to actually use; but it's not hard to get used to. The travel map is the world map, and you'll use it to, yup, fast-travel. Which isn't optional, by the way. And don't misspell the whacky fantasy name of the location you're traveling to, the map isn't smart enough to guess what you were saying.
�—�
You can access your inventory menu from the character sheet, in case you need to be conservative with how many buttons you have (for instance, if you're trying to use a controller). Status tells you the time, date, and your current health. "Logbook" shows you any active quest notes, and your main quest progress. "Notebook" is for any dialog you save, but I honestly haven't really used it all that much.
�—�
Oh right, weapons. "Ready weapon" is just the draw/sheathe key. You can equip two one-handed weapons, and switch between them with "switch hand". "Swing weapon" is the part everyone gets confused on, but IMO once you know how to use it combat feels great. You don't attack by pressing "swing weapon", you hold down that key while you move the mouse to attack. So just think of it as "attack mode": with "swing weapon" held, you use your mouse to attack, and with it up, you use your mouse to look around normally. For reference: Mouse up is a thrust (lower damage, better accuracy), mouse down is a chop (higher damage, lower accuracy), diagonal attacks do slightly more damage with slightly less accuracy, and horizontal attacks are neutral. You can even just hold down the "swing weapon button" and draw circles with your mouse, and you'll get by in most cases.
CHARACTER CREATION:
My favorite feature in Daggerfall is the most open-ended, and most utterly broken, character creation in the entire series. If you pick a preset class via list or personality test, you'll have a fine experience; but in this guide I want to go into detail about how to get the most of the custom classmaker, with and without exploits. I'll also touch on the background questions that come after deciding your character class, which has some important parts to it.
Attributes: distribution is pretty straightforward, any points you add to an attribute must be subtracted from another. Attributes can't go higher than 75 or lower than 10 here. (Exploit: if you hit U in the classmaker screen, it resets the counter for attribute distribution to zero while keeping any changes you made. Useful for creating a god character, but this is indisputably cheating.) UESP does a fine job of describing each attribute, but a few notes:
�—�
Speed governs attack speed, not just movement speed. Since the combat is dice-roll based like Morrowind, it may be more beneficial to boost speed and your frequency of attacks than it is to boost damage with Strength.
�—�
I'd say the biggest dump stat would have to be Personality. It affects barter prices, but finding enough gold is hardly a problem. It also affects your ability to get information from people, which basically amounts to asking for directions. Which isn't difficult to do, at all.
Skills: Daggerfall has 35 skills, more than any other Elder Scrolls game, but it also has the highest number of useless skills in any Elder Scrolls game. You may have difficulty filling out your list of class skills with things you actually care about. A few notes:
�—�
Since combat is dice-roll based, your best bet is to pick one weapon skill and just stick with that. Of these, Long Blade is probably the best, but keep in mind that bladed weapons deal half damage to Skeleton Warriors (but not any other skeletal enemies, like Liches, I think). And there are no artifacts that use the Axe skill, if that's something you care about.
�—�
Lockpicking is a pretty crummy skill even if you're a thief-type character. It's automatically checked at any locked doors, and to my knowledge even if you raise it up it's not very reliable and doesn't work on any magically sealed doors. You can bash any door you could potentially lockpick, so just do that and have an Open spell handy for any magic locks.
�—�
Language skills are useless. Don't even bother. For reference, a language skill is checked when you approach an applicable enemy with your weapon down, and if the check is successful, all that happens is that particular enemy isn't hostile to you. And to be honest, I can count the number of Centaurs and Dragonlings I've seen in this game on one hand, so their language skills are even more useless.
�—�
It's worth checking UESP to see the schools of any spells you plan on casting. Daggerfall's spell schools are�€� bizarre, from the perspective of a modern Elder Scrolls player.
Difficulty dagger: this shows how much time it will take for your character to advance their skills. It goes up when you take an advantage or increase your HP gain, and goes down when you take a disadvantage or lower your HP gain. Your class isn't acceptable if the dagger is ever in the red.
Hit Points per level: the amount of HP you gain with each level up is anywhere between this number and half of this number. Plus your bonuses from Endurance. I've always liked playing tanky, so I generally pump this up, but it's your call how high you want to go. I wouldn't go extremely low, though.
Advantages and disadvantages: this is where you can really break the game.
�—�
Acute Hearing, Adrenaline Rush, and Athleticism aren't really worthwhile advantages.
�—�
"Bonus to Hit" is good, but I wouldn't suggest picking it for Animals. That may give you a small boost early on, but animals are generally the weakest creatures in this entire game. Likewise, this means animals are the best group to take the "Phobia" disadvantage for, since they're the least threatening option and all of the phobias are worth the same on the difficulty dagger.
�—�
Take "Expertise In" whatever weapon skill you chose for your class. This will increase your accuracy even further with that weapon type, which will remain useful for the majority of the game. Likewise, you can take "forbidden weapon type" for any weapon types you never, ever plan on using to get more mileage out of your difficulty dagger. Maybe don't forbid Short Blades, though.
�—�
Increased Magery is essential if you ever plan on casting more than just a few spells. By default, your max magicka is only half of your Intelligence, which is barely good enough for the weakest spells. Don't be afraid to go all the way to 3x INT in spell points. I strongly recommend you have at least enough magicka for basic spells.
�—�
Immunity, Resistance, Low Tolerance, and Critical Weakness are pretty self-explanatory, but a few things to clear up: "Magic" in this sense is an element alongside poison, fire, frost, or shock; it's not all-encompassing like it is in Oblivion or Skyrim. By glancing at the bestiary on UESP and looking at all of the enemy spells, it seems like the best element to take a weakness to is Frost - it's the least common element among higher level spellcasters, so you'll only ever need to worry about Ice Daedra after you level up a little. Most of the other elements are about equally common, although Poison seems to be the second least common after frost.
�—�
Also! Feel free to take a critical weakness to paralysis. All you need if you ever get paralyzed, is to cast Free Action. Which is one of the cheapest spells in the game, and easy for even non-mages to cast. Plus, if you start as a High Elf, your racial immunity to Paralysis completely overrides any class weakness to it you pick, for some free space on the difficulty dagger. That's kinda exploity, though, sooo...
�—�
Regenerate health, I think, isn't worth the chunk it takes out of your difficulty dagger. Damage health, similarly, I don't think is worth taking in any context. Worth mentioning that for the purposes of these effects, and any other advantage/disadvantage, "darkness" means not just night, but inside every dungeon. Which is where 90% of the game takes place, and where your choices here really matter.
�—�
Rapid Healing, on the other hand, might be a worthy timesaver. It increases how much HP you heal for each hour you rest, and since most quests have a time limit, this will give you some extra breathing room to rest up without running out the clock. It doesn't increase how quickly you recover fatigue or magicka from resting, though, so if those are tapped out it won't make a difference.
�—�
Spell absorption is weird. Your chance to absorb spells half your INT+WIL, but you can also absorb the magicka from your own area-of-effect spells if you get caught in the splash damage. And any magicka absorbed over your max directly damages your health. Magicka burn, it is called.
�—�
I don't recommend taking "Forbidden Armor Type: Plate" as that forbids you from everything but the first two tiers of armor. The classmaker makes it seem like leather, chain, and plate are Daggerfall's version of light, medium and heavy armors; but there aren't any armor skills, armor only factors into your defense and not things like movement or fatigue drain, and leather and chain are simply the two weakest tiers of armor. On the contrary, you could get away with forbidding yourself from using leather and/or chain, and never miss either after leveling up once or twice.
�—�
"Forbidden Shield Type", you can take or leave. Shields aren't actively used like in Oblivion or Skyrim, or even activated like a dice roll in Morrowind - they're just an extra armor slot you can throw on if you're not wielding two weapons, or a two-handed weapon.
Reputations: Optional, and just affects your rep with generic groups in the game. No huge game-changers here.
Background questions: One nifty feature about Daggerfall is that it will automatically generate your character's backstory depending on your class and how you answer some of these background questions. Most of this is just flavor, or for some marginal stat changes that you can find in the UESP, but two things to highlight:
�—�
One of the questions will ask you what you got as a gift from the Emperor. Choose the Ebony Dagger. Always. (and make sure you haven't forbidden your character from using Short Blades in the Classmaker) This means you'll start the game with one of the most powerful daggers in the game. Most other weapon types will start to outperform it as you upgrade to a higher tier, and you'll want to focus on whatever weapon type you picked as your class skill - but the Ebony Dagger will be a huge lifesaver if you ever encounter an enemy that's immune to your current weapon material. Ebony is capable of damaging anything - up until you find Mithril at later levels, there will be enemies your current weapon may not be able to damage. Especially if it's something like a Daedra spawned as part of a quest, instead of the typical level-scaled fare.
�—�
Exploit: If you take "Critical weakness to disease" as a disadvantage in the classmaker, and then take an additional weakness to disease, you'll gain complete immunity to diseases. And diseases in this game are mean. But you won't get immunity to vampirism or lycanthropy - those have a chance to transfer that isn't changed by disease resistance.
That's it for character creation. After picking your class and background, you'll be able to distribute some extra points among your skills and attributes. Fun fact: you can potentially start the game with one attribute as high as 99, if you raise it to 75 in the classmaker and keep rolling the dice for a satisfactory attribute spread. Another fun fact: You can change your character's name at any time by clicking on it in the character sheet.
I'd recommend reading a little about the leveling mechanics on UESP. Skills only advance when you rest. Every time you level up, you get 4-6 points to distribute among your attributes freely as well as a health boost determined by what you chose in class creation. You can save scum for each level-up to get the best results, but it's hard to track when your character will actually level up. And despite the save scumminess, I honestly prefer Daggerfall's leveling system to Morrowind and Oblivion's.
SPELLMAKING:
A really robust feature that I don't feel is sufficiently explained, or at least not sufficiently understood. Maybe it was obvious to everyone else but me, but the spellmaker is set up so that you can create custom spells that scale with your level. Which is awesome!
For duration and chance, look at it as [base value] plus [additional value] per [level]. Which means if I make an Open spell with 10 + 5 per level, that means I have an Open spell with a 15% success chance at level 1, that goes up by 5% with every level. Or a Water Breathing spell that gives 3 + 1 per every 2 levels, would be 3 rounds at level 1 and only 8 rounds at level 10.
And for reference, 1 "round" in Daggerfall's spellmaker is ten seconds long. So 6 rounds is a minute, 11 rounds is 110 seconds, etc.
For magnitude it's the same, but you can decide a randomized range for the base and leveled value. For example, a Fireball spell with 10-20 base damage plus 9-10 additional damage per level would do 19-30 damage at level 1, and 37-50 damage at level 3. You can see how cool this is, since you can make custom spells at the start of the game that will remain useful throughout the entire game.
You can gain access to spell merchants and the spellmaker by joining the Mages Guild. Some spells I'd recommend making as soon as you get out of Privateers' Hold, for ANY character type:
Teleport: This spell costs zero gold to make in the spellmaker because Daggerfall. But regardless of how you get it, this spell will be the biggest timesaver in the game for you. Dungeons in Daggerfall are long and labyrinthine - expect to spend hours in real-time, and days in game-time, crawling through a dungeon searching for your quest target. And once you find your quest target, you have to go back and find the dungeon entrance. Unless you prepared your teleportation spell! It's like both Mark & Recall in Morrowind - the first time you cast it, you have to set an anchor. The second time you cast it, you teleport back to that anchor. But always remember that you have to recast your anchor every time you teleport somewhere. Anchors are a one-time thing. So set an anchor at every dungeon entrance, or better yet, in front of every questgiver. Remember that quests have time limits on them, and a big chunk of that time limit is for fast-traveling to and from the location. You can shave off the return trip by teleporting back to the questgiver instead, which gives you enough time to go through the quest and rest all you want inside the dungeon without worrying about the time limit.
Levitate 1 plus 1 round every 20 levels. Basically, you'll really want a Levitation spell for exploration purposes, but you don't need it at an overlong duration; just keep recasting it if you need to maintain levitation for longer. I know climbing is a skill in Daggerfall, but Levitation is more robust and some main quest dungeons outright require you have it - they'll usually provide a little levitation buff for you by activating a random object, sure, but it's better to have your own source of levitation.
Water Breathing/Water Walking, each at 1 round plus 1 round per level. Putting both together is still an extremely cheap spell you can keep recasting as you explore deeper in water, and as you level up it'll last you longer. Worth noting that Water Walking isn't what it is in the later games where it lets you walk on the surface of water - in Daggerfall, it lets you move through water at a normal speed, which is very useful for underwater exploration. (stray thought: the underwater portions of Daggerfall's dungeons are terrifying)
Free Action, 1 round plus 1 round per level. Any time you get paralyzed by an enemy, just open your spellbook and cast this cheap spell. So easy a Nord Barbarian could do it.
Open, for when bashing down the doors isn't enough (basically whenever you find a magic lock). For this I'd recommend a low base chance and a high per-level chance, so that you have a solid chance as you level up. At 10% + 10% per level, you've got a 100% chance to open all doors at level 10.
For offensive and healing spells, if you choose to be a more dedicated spellcaster, I'd again suggest going with lower base values and higher per-level magnitudes. That will make cheap spells that slowly become fantastic as you level up and really need them.
Also worth mentioning that Shield works differently in Daggerfall, compared to the later games. In Daggerfall, Shield basically adds its magnitude as another layer of HP; you don't take any damage until your Shield either wears off or is broken from damage.
Important note: If you're going to be doing quests for the Mages Guild, there are occasionally some quests where you have to cast a specific spell. Custom spells won't do it. So make it a priority to buy the canned spells "Open" and "Sleep" if you're in the Mages Guild, even if your custom spells are better.
QUESTING:
The final part of this little guide. I don't have a whole lot to say here, just a few general gameplay tips.
1.
Congratulations, you've made your character and woken up in Privateers Hold. Before you start exploring, or even start messing with the controls, though�€� SAVE. Save right now, immediately as you start the game. Because if you get killed before making your first save, you'll have to go through character creation all over again. There are no autosaves in Daggerfall.
2.
Make multiple saves. Daggerfall only has six save slots, but NEVER use just one for a character. If you think Bethesda games are buggy now, just think about how bad they were 20 years ago. As a minimum, I generally save to one slot before starting every quest, and keep a separate slot (or two) for saving during the quest. That way if something goes FUBAR during the quest, I have a save from before I even started the quest. For random quests this will mean you won't get the same quest if you reload, but that's usually just fine.
3.
Don't ever reject a part of the main quest. Otherwise you'll never be able to complete it. Similarly, the only quest in the game with a time limit is the very first one, to speak to Lady Brisienna. Don't be late, because you can run out the clock on this quest and basically fail the entire main quest before you even start it.
4.
The amount of loot you collect going through a random quest will dwarf whatever quest rewards you're offered, so if it looks like you're going to fail a quest for some reason you really shouldn't sacrifice a great loot haul by reloading a save. Worst case scenario, you lose a little reputation with that faction that you'll just gain back by doing another quest.
5.
I'd say about 90% of this game is dungeon crawling. So have some good strategies for exploring dungeons - hug the right wall so you always know how to backtrack, start recognizing dungeon blocks (every dungeon in the game is built from a few dozen prefabricated dungeon sections that get procedurally put together in-game to form thousands of dungeons), and save often.
6.
Gold has weight, every 400 gold is 1kg in Daggerfall. Go to a bank and deposit your gold, or draw it up in a letter of credit - make sure to have some plain old gold on hand for staying at taverns, though.
7.
Read the manual, comes with the game installation in a docs subfolder. Not just because it contains useful story information, but because it's an honestly entertaining read.
8.Enjoy the game.
Getting an Xbox controller to work on PC. Game: TES III: Morrowind
First of all, for those who want an Xbox controller which behaves just like the controller on console, here is a https://www.nexusmods.com/morrowind/mods/45352 >> It links to an Xpadder template, and was not created by me.
>>> The problem with this template is it does not include variable left joystick movement. It works digitally; we can only walk at one speed, or run at one speed.
That won't work for me. And I've always wanted to change some of the buttons which were fixed on Xbox, anyway.
So, this tutorial is for those who want to set up their own controller mapping.
TES IV Oblivion hasn't got very good support for those who prefer using Xbox controllers on PC. Yes, we can toggle Use Joystick on in this game's settings menu, but getting true variable walking/running movement is not always guaranteed.
Morrowind also gives us the ability to Enable Joystick right in its Options > Controls menu, and oddly, variable movement works flawlessly in this game. But Morrowind also does a few things wrong, or at least .... odd. Using the left joystick for movement is flawless for instance, but using the right joystick for looking around does not work. And there are a couple other odd things about how this game's controller usage got hardcoded by Bethesda. Some of you may already know of these odd things, which is why you're here.
So here is a guide on how I set up my Xbox 360 controller to work with Morrowind, on PC. Keep in mind, I use the Morrowind which came with the Anthology disc set. This is version MCP 2.4. Not sure if other versions, especially earlier versions, also have all the features found in 2.4.
1). First step is to procure https://xpadder.com/. This is a small program which converts a controller's buttons, triggers, bumpers, and joysticks into mouse & keyboard inputs. It is easy to use, includes plenty of helpful walkthroughs, guides, forums, and costs a small, one-time fee. If you've never used this program before, go ahead and start with the site's walkthrough section to get your controller template working. This took me about a hour or two when I was new to PC gaming. It's sort of fun, magical even, to watch an Xbox controller come to life on PC as we set it up.
Joy to Keys and other such programs might also work, but I don't have any experience with these, and so this guide will focus on using Xpadder. Others out there can try using other programs, but I cannot guarantee they'll work.
Anyway, once the controller is working through Xpadder, move on to step 2. The rest of this guide shall describe how I like to set up my controller; others out there can try experimenting with what's below, to try to suit their ideals.
2). Start the game and go into Morrowind's Options > Controls menu. Toggle Enable Joystick on. Voila, Bethesda nailed it. We've got true variable walking / running movement, and can also strafe left and right with true variable speed. Beth's off to a surprisingly good start here, in this ancient game.
From here on however, things get downright bizarre. Let's start with the Xbox's triggers.
-- With Morrowind, Bethesda did something really wonky with Xbox triggers: they made it so that the left trigger makes us turn right, and the right trigger makes us turn left. The right joystick (which is what most of us would use to look around) is useless at this point; instead we're supposed to use triggers to look left and right!
Go ahead and try moving / looking around. What a mess, eh? How are we supposed to navigate the world like this?
3a). So let's start with the left and right triggers. Exit the game by pressing the Esc button > Exit. Now start Xpadder.
3b). Assign a keyboard key to each trigger. I just assigned the letter J and the letter M, left and right respectively. These two keys shall become my Journal and Menus in the game, see.
This is sort of a compromise, of course. Since Beth hardcoded the triggers to become the game's "look around" function, that is exactly what those triggers will still do. I have searched and Googled, looking for a way to change this, but all I've found are other gamers out there, trying to change the same thing!
Good thing is, as long as I tap a trigger (rather than push it) I'll be able to pull up my Journal and Menus, with minimal character-spin. Since these two functions are brought up with one tap, this is why I prefer to map the triggers in this way. If I had mapped Jump to a trigger for instance, that would become awkward, as my character would now turn slightly left or right every time he or she jumped.
3c). Assign your controller's Start button with Esc on the keyboard. Now we can exit the game (as well as save, load, et cetera) without pressing Esc on the keyboard.
3d). I prefer my controller's A button to be what I use when I'm trying to Use something in the game (such as using a weapon, or casting a spell), but I also like the A button to select menu items. This equates to the left mouse button. So in Xpadder, select the A button and assign the left mouse button to it.
Final step with Xpadder is to get that right joystick to work, so it's really important. We need to be able to look left and right, but also up and down, and all around.
3e). Right now the right joystick should be five blank buttons (when viewed through Xpadder) which are in the shape of a cross. Click on the "wrench" icon which is in the lower right of this cross.
3f). Select Mouse - Normal at the top of the pop-up menu. Now select Standard in the menu's lower portion. These are the two settings I like to use, and those who are reading this guide can try experimenting with other choices, such as W.S.A.D. or Arrows. But those settings I just used should guarantee right joystick movement corresponds to mouse (Look Around) movement in the game.
Click OK, closing the mouse menu.
3g). At the top of Xpadder, select the middle icon, which is in the shape of a square, save and name the Xpadder profile as it exists so far.
Now start the game, and make sure that right joystick allows us to look all around, just like it does in Oblivion, Skyrim, and every other game which allows controller support.
3h). OPTIONAL, for those who have problems with left joystick "creeping". In other words, we let go of the left joystick, but our character sometimes still 'creeps' (strafes) slowly left or right. Close the game and click on Xpadder's left joystick's wrench icon.
3i). On the right side of this menu is DeadZone. Use your mouse to drag the DeadZone pointer left or right. Notice the red area which is in the center of the Status display. This area gets larger and smaller as we move the pointer right or left. Now move the left joystick around. This causes a dot to move around in the display as well. If the pointer remains in the red area once the joystick is released, this is good. This means the game cannot read the joystick, and our character should no longer creep.
For those who have problems with strafe-creeping, you'll be wanting to drag the pointer somewhat to the right. I prefer about 40% to the right.
3j). Click OK, Save the profile, and get back into the game. Make sure your character no longer creeps.
The rest of your buttons can be set up while in the game, and I shall describe what I prefer. There are still a couple of wonky things to beware of, and I shall explain them.
4a). Press the Start button on your Xbox controller. This probably does two things: it opens up the menu which includes Return, New, Load (etc.) but it also opens up the game's quest journal. And I want to get rid of the "journal" part.
4b). You should be able to move the right joystick around to move the onscreen pointer around, or you can use the mouse to do so. Now select Options. Select Controls. The game's left joystick has already been set up as Enable Joystick, which is why Forward, Back, Left, and Right do not have corresponding keyboard inputs.
4c). Scroll down (scroll scroll scroll....) with the mouse wheel to Journal. Use the controller's A button (or left click with the mouse) on Journal (it should turn red), and press the controller's left trigger. This will cause the current selection, which said Joy 6 I think, to go blank. Which is okay.
4d). Click OK, click Return, and close the Journal. Now try pressing the Start button again. The Save/Load menu should pop up, but the Journal should not. Try pressing the left trigger lightly. This causes the Quest Journal to open.
... Now, some of you might not like this, and may wish to change the left trigger to Jump or Ready Weapon or whatever. Go ahead and experiment if you please.
... Also, if your game is like mine, Journal will glitch back on, every time the game is closed and restarted. I don't know why this is. Every time I restart my game, I must also remember to reassign Journal to the left trigger, otherwise it also gets opened whenever I click on the Start button. Thankfully, Journal is the only button which glitches like this, at least for me.
5). The rest of those triggers, bumpers, buttons and joysticks can be set up however you'd like, but there are still a couple other things to watch for. The directional pad for instance. It is VERY sensitive.
Here is how I set up the rest of my controller...
Use = A button (Joy 0... left-click with the mouse on Use, select the controller's A button, and then use the mouse to right-click on Use. This can take a few tries.)
Activate = press left joystick (Joy 8)
Ready Weapon = Y button (Joy 3)
Ready Magic = B button (Joy 1)
Sneak = S, on the keyboard -- I've got my Xpadder profile so that if I press + hold the left joystick and press Y, this equals the letter S. This requires a second Xpadder template which activates whenever I press down on the left joystick. A bit complicated I know, but using the D-pad for sneak (as I originally had it) is too sensitive.
Run -- Not needed (the left joystick handles both walking and running). If Run has been automatically assigned a button, left-click on Run with the mouse. Now click on both mouse buttons: left-click and right-click, both at the same time. This should cause the area next to Run to be blank, unassigned to any button. And if that doesn't work, assign a key which is not used. For me this is the letter K.
Always Run -- Not used
Jump = X button (Joy 2)
Next Weapon = right bumper (Joy 5)
Previous Weapon -- Not used
Next Spell = left bumper (Joy 4)
Previous Spell -- Not used
Toggle POV = press right joystick (Joy 9)
Menu Mode = right trigger (the area next to Menu Mode will stay blank)
Journal = left trigger (the area next to Journal will stay blank)
Rest = Select button (Joy 6)
I personally have not figured out how to use all the Quick slots, Quick Save, or Quick Load, so from here I just click OK, click Return, and now I'm back in the game.
Always make sure your controller is ON when starting the game. If it is not on and the game is started, the game will revert some of those carefully-chosen settings back to pure Mouse + Keys, which can sometimes cause problems. Personally I always restart my game if this happens.
6). One final thing to add. Whenever we try to buy something, or pick up something from the ground, or from a container, and there is more than one thing to buy or pick up, the game will simply choose everything at once. So if we try to buy three arrows, but the merchant has 100 arrows, we'll wind up trying to buy all 100 of those arrows. This doesn't happen on Xbox.
On PC, this is because we need to press either Shift key (left or right, it doesn't matter) as we hover the cursor over multiple objects. So the Xpadder layout needs to be called up again. Choose any one of those buttons or bumpers, and make this correspond to either shift key. I used my controller's B button.
Back in the game, we'll need to HOLD the button just chosen as we buy or pick up multiple items. So I am holding my B button while hovering over multiple items, and then pressing the A button (Use) to select them. This causes a nifty scroll bar to pop up, and now I can select whatever number of items I choose.
The Shift key is also used when deleting spells. Again, put the cursor over the spell we wish to delete, hold your 'shift' button, and press Use. There will be a Yes No option to get rid of the spell.
-------------------------------------
TROUBLESHOOTING
1). When in the opening menu, if n/a keep showing up under the Run function, assign an unused letter from the keyboard. I choose K, for instance.
---------------------------
2). If Rest says n/a, left-click on it, press Select button, now left-click on Rest 2x. It should say Joy 6
-----------------------------
3). If Use is blank, left-click on it, press A button, now left-click on it again.
If 2 and 3 keep failing (especially if n/a keeps alternating between Rest and Use) try alt-tabbing from the game. Change the A button on X-padder from mouse left-click to NONE.
Go back in the game. Reassign Rest and/or Use. Hopefully Rest should be Button 6 and Use Button 0. Make sure both of those work.
Alt-tab again, and reassign the A button to mouse left-click on X-padder.
-------------------------------
4). if it says n/a for any of the movement functions (Forward, Back, Left, or Right) left-click on whichever one it says and press the mouse wheel.
More Dynamic NPCs! Game: TES III: Morrowind
One of the first mods I looked for in this game was something which makes Morrowind's people actually move around. Especially those people who stand in the same spot (usually in indoor locations), literally for months. I figured this would be a quick search. Surprisingly, I still haven't found something which does this. There's gotta be a mod out there which makes the NPCs of this game wander a bit? Even if it's from one side of a room to the other?
Never did find anything, so far. But good news: it's pretty easy to make our own More Dynamic NPCs for Morrowind.
I'm going to start with Arrille's Tradehouse in Seyda Neen. Now, I don't really have a problem with shopkeepers or merchants standing around. It makes sense that they'd tend to their counters, waiting for somebody like us to amble in.
CELL & RENDER windows
1). I am going to start with Tolvise Othralen. This is the lady who wears green & yellow, and always stands next to Arrille. Find Seyda Neen, Arrille's Tradehouse, and find Tolvise in the Render window Double left-click on her in this window. Unlike Oblivion's CS, clicking on her in the CELL window will not open her NPC panel.
2). Click on the AI button. This is located toward the middle bottom of any NPC's panel. The AI Data panel pops up.
3). Look toward the left side of this panel, where the AI Packages window is. And notice this: Tolvise already has a Wander package!!! ... In fact this is true of a lot of NPCs who eternally stand around. A lot of them DO have Wander packages. Which is why they'll occasionally take two steps in one direction, and then go back to standing around.
4). Double left-click on Tolvise's Wander package. The Distance slot is what we want to change. By default, a lot of indoor NPCs have a Distance of anywhere from 0 to 30, which is not very far. No wonder they barely move.
5). So this is easy to change. I like using binary numbers, such as 128, 256, 512, 1024, and so on. 256 is a good number for Tolvise (the Tradehouse is not very big) but for places which are larger, such as guilds, I'll choose 512 or 1024.
6). Click Save (or just press Return or Enter on your keyboard) twice, closing the package and AI Data panels. We'll usually have to manually click on Save to close the NPC's panel.
It is best to use the Render window, going into Cells which we know we want to influence, and clicking on each NPC just like I did with Tolvise. We can also make changes from the Object window, however it's not always easy to know which NPC we are changing, and personally I want to know. Because not all of them should wander about, in my opinion. Anyway, I just gave most of the NPCs in Balmora's Council Club the same treatment, for instance.
Note that some NPCs will have a AI button which is grey, and we can't click on it. Most of the NPC's info is Blocked. I'm not sure why Bethesda did this, but there's gotta be a reason. Maybe they didn't want a bunch of people walking into each other (which is what they will do sometimes, if the majority of them have broader Wander packages).
7). For such NPCs, I'll simply toggle Blocked (lower right corner of the NPC panel) off. Then I'll click Save. Reopen the NPC. Now we can change their AI as desired. And then I always toggle Blocked back on with these NPCs before saving. Because there's gotta be a reason why their info was blocked in the first place.
Like I said, occasionally they will now walk into inanimate objects, or each other! In my opinion, this is better than having a bunch of people standing around like statues, though. They will now clomp about, wandering into other rooms occasionally if their Distance is large enough. It really changes the feel of interiors, right?
In situations where we have to steal something, such as the diamond which must get stolen during that first Thieves Guild quest, it is possible to wait for them wander into another room, making thievery less frustrating, and more possible.
Final note: Some NPCs don't have a Wander package, instead they'll have Follow or something else. DO NOT change these packages unless you really know what you're doing. They are there for a reason, usually something quest-related. And also, I never try to add a second package (Wander, or whatever) to these folks.
https://web.archive.org/web/20200218144534/https://forums.bethsoft.com/topic/1436806-the-cocky-and-arrogant-knight-and-his-faithful-squire/
Getting the Take All button to work, Game: TES IV: Oblivion
Submitted by Lena Wolf
1. Get https://www.nexusmods.com/oblivion/mods/39313 mod - it has all the interesting keys programmed... but to weird letters which clash with default Oblivion key assignment. They will also probably clash with whatever assignment you are using too, and they are not configurable.
2. Edit the mod to reassign to keys to something that works for you. I use standard key assignment, so I can send you the updated script that works with that.
3. Test it all with the keyboard - just to make sure it all works as you expect.
4. Make the appropriate mappings with your Joy2Keys/Xpadder. This must be the last step, it can be done with either utility. If you skipped step 3, go back and do it! (I know I skipped it a few times, resulting in much time wasted.)
This mod does not conflict with hotkey mods that for example allow you more than 8 hotkeys for mapping your weapons or spells - those are not the same kind of hotkeys! So you can still keep your extended hotkeys and they will be unaffected (unless of course key assignment clashes, which is why you need to change it).
Setting fallback cell (instead of Tiber Septim)
https://web.archive.org/web/20200218144220/https://forums.bethsoft.com/topic/1438510-this-has-been-a-strange-game/
I agree, Wyrd. Now that I know why random stuff shows up in Tiber Septim and how it gets there, that does seem a strange decision. Who knows why the fallback cell was designated that way. Maybe a dev goofing around.
fDlgFocus=9.0000 makes NPC faces more distant
Random Console Commands, Game: TES V: Skyrim
This post includes a few console commands used in Skyrim which are not listed at UESP. I keep wanting to use these commands here and there to change time in new games, but never can remember them!
set GameYear to X
set GameMonth to X
set GameDay to X
set GameHour to X
The year is always in the 4th Era, this cannot be changed.
Month uses the numbers 1 through 12. 10 equals Frostfall (October) for instance.
Day goes from 1 through 30.
Hour goes from 0 to 23, in 24 hour format. So set gamehour to 13 will make it 1pm.
---------------------------------------------------------------------------------
How to make a ForceGreet. Game: TES V: Skyrim
This one is going to teach how to make an NPC ForceGreet the player. What this means is the player (us) is greeted by an NPC. And when this NPC greets us, it pauses our ability to do anything else but answer the NPC's question, fulfill the NPC's demand, or whatever. Think of when we first enter Dragonsreach, and Irilith stalks up to us, blade in hand. "What's the meaning of this interruption?" she demands. And our ability to do almost anything else is temporarily disabled. Our options at that point are to continue the conversation, or back out of it entirely, and go back to whatever we were doing.
Note that only the Player-Character can be greeted in such a way. An NPC cannot forcegreet another NPC, they can only play part of one of Skyrim's scripted Scenes.
So, this assumes an NPC has already been made, because it's best to test this kind of stuff on our own custom-made people first. Make sure the NPC has a Voice Type which is supported (see the list below), and place him or her into a cell or worldspace.
MaleEvenTonedAccented
FemaleSultry
MaleDrunk
FemaleDarkElf
MaleDarkEfl
MaleNord
FemaleCommander
MaleBrute
MaleArgonian
MaleKhajiit
FemaleOrc
FemaleCondescending
MaleEvenToned
FemaleEvenToned
MaleYoungEager
FemaleYoungEager
I have found the best place to test this sort of item is in QASMoke, which is similar to the Testing Hall cell found in Oblivion.http://en.m.uesp.net/wiki/Skyrim:Test_Cells.
RENDER window
1a). If the NPC being used for the ForceGreet is being added into the game (in other words, is not a vanilla NPC) double left-click on him or her in the Render window. Click on the Persist Location tab, and find the cell he or she is located, in the Persistence Location scroll-bar. Click OK.
If we don't do that, sometimes NPCs have a habit of disappearing once we add the package to them.
OBJECT window > Character > Quest
1b). Make a quest, and give it an ID. I am calling this quest aaaForceGreetQuest.
Priority can be 60. Start Game Enabled and Run Once should be on. Use the Type scroll-bar to choose a type of quest. I am choosing Side Quests.
Note: --This quest going to be a very short example, which does not show in the Quest Journal once we're back in the game. So Quest Name is not necessary.
2). Click OK, closing the Quest window. Save. Reopen the quest.
3). In the Quest Stages tab, make three stages: 0, 1, and 2. Right-click into the Log Entry window for each of these so all three say EMPTY.
Stage 0 should have Start Up Stage toggled. This is the pre-stage, and the NPC will greet us during this stage, once we get near enough to him or her. "Do I know you? You look familiar" is what is in my game. After he or she says this, the quest bumps to 1.
Stage 1 "Afraid not," we answer. "Oh my mistake," the NPC says, and walks away, bumping the quest to 2. Note that in many cases, ForceGreets will automatically make an NPC Sandbox (walk away, sit down, eat, etc.) once the conversation ends.
Stage 2 should have Shut Down Stage toggled, as well as Complete Quest.
4). Click on the Dialogue Views or Player Dialogue tab. I am going to describe how this is done in Dialogue Views.
5). Right-click into the Editor ID window and choose New. Type a unique ID.
6a). Highlight the ID, and right-click > Create Branch in the larger window. Give the Branch an ID, Click OK, and OK again, closing the Quest window. Save.
6b). Reopen the quest. Now, open the same dialog window. Right-click into the gray box and select Edit Topic. The Topic panel pops up.
7a). Give the Topic a unique ID. And very important: Change the Priority slot from 50.00 to 100.00, if the ForceGreet is definitely supposed to happen.
7b) Type something into the Topic Text slot, which is what our character will say to the NPC after being greeted. I wrote "Afraid not" up above, and you can type whatever is desired.
7c). Change the Subtype scroll-bar from Custom to ForceGreet.
Click OK, and click OK again (closing the panel).
--Note also that so far, this dialog-making process seems backwards. Why didn't we type the NPC's greeting first? We'll see why in a few.
8a). Reopen the Topic panel, and right-click > New into the huge window area. Okay, now follow all the typical methods for making dialog. For those who have never made dialog in Skyrim (or have forgotten how) scroll down to step 5h http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=322207. This is the part where the NPC says "Oh, my mistake" in my example above.
Don't forget to make a recording. The process can be found in step 11n http://chorrol.com/forums/index.php?s=&showtopic=8089&view=findpost&p=310606, and we don't have to actually record any voice to make the dialog work once we are back in the game.
8b). Toggle Has LIP File, Say Once, and Force Subtitle on, if you are like me, and do not use actual voice recordings. For those who do use voice, only Has LIP File and Say Once are needed. I think.
9). There should be two conditions:
GetIsID aaaYourNPC == 1.00
GetStage aaaForceGreetQuest == 1.00
Copy All both of them.
10). Type GetOwningQuest().SetStage (2) into the End: Papyrus Fragment box.
11). Click OK, click OK again (closing the Quest window) and Save.
12). Reopen the quest, but this time click on the Misc tab. Right-click > New into the white Editor ID (tall, vertical window) and find Hello in the scroll-bar which is over this window.
13). Now's the time to make the dialog which will be our forcegreet. "Do I know you? You look familiar." Follow all steps for recording.
14). Paste the two conditions into the Conditions window, but change the GetStage to GetStage aaaForceGreetQuest < 1.00. And also add IsInDialogueWithPlayer.
Overall, the conditions should look like this...
GetStage aaaForceGreetQuest < 1.00 AND
GetIsID aaaNPC == 1.00 AND
IsInDialogueWithPlayer == 1.00
15). Type GetOwningQuest().SetStage (1) into the End: Papyrus Fragment box. Click OK, and OK again, and Save.
OBJECT window > Character > Package
16). Make a new package. Give it an ID.
17). Change the Package Template scroll-bar to ForceGreet. There are also ForceGreetFromSitting and ForceGreetWaitSitting, if the NPC is to greet us while sitting (for example, a Jarl on a throne). With ForceGreet, the NPC can walk toward us before saying their greeting if we choose for this to happen. With ForceGreetWhileSitting, they will simply continue to sit.
Do NOT touch the Owner Quest scroll-bar. Leave it at NONE or whatever. Changing this only works if other things get set up in advance, otherwise the package will not work if this has a quest's ID name here.
Package Tab
In the Public Package Data window there are a bunch of datas we have the option to manipulate: Topic, NPC Wait Location, Trigger Location, and so on.
-- Topic: click on this. By default this is set to [HELLO], and we are going to leave it there. This is obviously so the game engine picks up on the HELLO we just wrote.
-- NPC Wait Location is, of course, where the NPC will stay until we get near enough for him or her to start the ForceGreet package. Left click on this choice, and then select the button which says 'Near package wait location, radius 150'. The Location panel pops up. There are a bunch of options where the NPC can stay while waiting for us. For convenience, choose Near Self if we don't need a specific place for them to stay. Or, a referenced marker (such as an XMarkerHeading) can be chosen. For now, just leave this alone.
-- Trigger Location can be left at 'Near package start location, radius 500', or it can be increased. This is the area which causes the ForceGreet package to activate. The package activates, and begins processing so that the NPC gets ready to walk to us. Trigger Location can be changed larger than 500: Irilith, the NPC who accosts us as we first enter Dragonsreach for instance, has a Trigger Location of 3000, which is why she is already moving toward us to say the "jarl will not be receiving visitors" way before we even notice her.
-- Forcegreet Distance is the distance (in Bethesda units) of how far away the NPC will greet. Leave this on PlayerRef, of course. Radius is 300, but can be also changed larger or smaller. Don't make Radius too small though, or the NPC won't be able to greet properly.
--- Player must be detected. By default this is False. If this is set to True, it means the NPC will give their Hello only if they see our character. Oddly, I have found this quest works best while it stays False. If it stays False, all that matters is the Trigger Location and Forcegreet Distance. They don't have to physically see our character at all.
-- Toggle Preferred Speed on, and change this to Walk, Fast Walk, Jog, or Run.
-- It helps to toggle everything else off: all the "Fallout" stuff EXCEPT for Hellos to Player. Make sure Hellos to Player stays toggled, since we'll need the Hello written before to trigger the ForceGreet package.
-- Must Complete can also be tried, but only if the package seems not to be working.
-- Set these as per whatever conditions are required. I am putting GetStage aaaForceGreetQuest < 1.00.
I thought this thread was for Oblivion? Never mind. I've been fiddling with animations lately, and have written up https://masserandsecunda.wordpress.com/making-proper-mods/using-idle-animations-in-your-mods/ how to define your own animations. Perhaps it can be useful to others. This is for Oblivion.
Well, there are of course a lot of similarities between Oblivion and Skyrim, but there are also distinct differences. I am not exactly sure what's best - to split things up or to keep things together. Not considering the work it to split it up, that is! Which would be quite a lot, I think.
Lena has a point. Maybe this thread can be moved to Mod Projects, which is not game-specific. I just didn't want to bug Acadian (again).
I do not want to split these tutorials up. Anyway let me know if that's ok Acadian!
Ow, and "boobras" goods and stores.
Okay, the mod projects forum is simply a collection of subforums on retired projects. So I created a new section in the mods forum area for discussion of modding in general or that applies to multiple games and moved this thread there. I think this will help clarify things. Thanks to Lena's fresher eyes for pointing out the reasonable conflict. Thanks also to Renee for allowing me the flexibility to move her thread to a new home.
Thanks, paladin!
How to use the PC's face for an NPC. Game: TES V: Skyrim
1). Start Skyrim and either start a new game, or load a game.
2). If the game is being loaded (rather than started as New), open the console (press tilde key) and enter the showracemenu.
3). Create the appearance the same way you would create any other character you were going to play. Exit the character creation screen and save the game.
4) Open the console (tilde key) and type 'SPF' followed by the name of your character, but without spaces. Since my character is named Maya Purse, I just typed SPF MayaPurse. Exit the console, close the game.
Have a look into the main Skyrim folder. The character just made should be in this folder, with an extension of .npc. Yes, I am seeing MayaPurseFace.npc in this folder.
5). Open the Creation Kit and create a new NPC, or find an NPC whose face you wish to change. In the Traits tab, set the race and gender the same as the Player Character just made. So if the PC is a Nord Male, the NPC must also be male, and Nord.
6). Pick a voice from the VoicesFollowerNeutral formlist.
7). Click the Character Gen Parts tab, push the Import button. This button is on the upper-right side. The Skyrim folder should open, but sometimes it takes a few seconds to do so.
8). Find the .NPC file, double left-click on it. Voila.
Make any other changes necessary. http://chorrol.com/forums/index.php?showtopic=8089&st=20&p=309878&#entry309878.
How to add a bounty to the Player via script. Game: TES V: Skyrim
This is how to modify the CrimeGold variable via a script, adding or removing a bounty from our character's head. In this case, I'll be raising CrimeGold during a quest stage, by adding a simple script. Sure, we can open the console once we're in the game, click on our character, and type Player.SetCrimeGold X or Player.ModCrimeGold X, but here's how to do it during a quest.
And I'm only adding this to the thread because it works. Not everything listed at CreationKit.com works, or is easy to understand how to add its syntax, especially for a dummy like myself.
1). I am assuming a quest is being written with stages, or will be written with stages. Go to the Quest Stages tab, and find the stage during which we want to modify a character's CrimeGold.
2). Click the Properties button. Click Add Property. When the panel pops, find Factions in the scroll-bar.
I am writing this as though I want a bounty placed upon my character's head, so...
3). In the Name slot, I am typing PlayerCrimeProperty as the property's name. Click OK, which closes the Property panel.
4). After the nifty little blue & yellow symbol shows in the Property Name window, click the Edit Value button, and find whichever hold you'd like the bounty to show. So for instance, my character is doing a quest in which she receives a bounty in Solitude, so I'm going to find CrimeFactionHaafingar in the scroll-bar.
Click OK.
5). In the Papyrus Fragment box, type the property's name, followed by SetCrimeGold, and the amount of gold desired. So in my game, I've got PlayerCrimeProperty.SetCrimeGold(100), which adds a 100 gp bounty in the hold of Haafingar.
How to add the Player or NPC into a Faction via script. Game: TES V: Skyrim
Again, I am assuming there's a quest being written in stages, and again, I am mostly adding this into this thread because it works. Essentially, I wanted to add my character into a faction, but during gameplay, and not via console.
A good way to see if this script works (especially for our character) is this. Let's say we're trying to add our character into a faction which has items we cannot pick up. We look at some items which belong to, let's say, the Blue Palace, and all we see are Steal this and Steal that.
1). Go to the quest stage which we wish the player or NPC to join. Click Properties button. This time we'll need two properties to make this work.
2). Click Add Property button. In the Type scroll-bar find Actor.
3). Choose a name. I'll just call the property PlayerProperty. Click OK.
4). Click Edit Value. If we want to affect the Player, find any cell in the Cell scroll-bar and find PlayerRef in the Reference scroll-bar.
If we want to affect a particular NPC, choose whichever cell the NPC is in and find the NPC in the Reference scroll-bar. Note that only referenced NPCs will work, so if the NPC hasn't got a Reference ID, go ahead and add one.
5). Click OK, closing the Properties for Script panel.
6). And now for the second property. Click Properties > Add Property, and find Faction in the scroll-bar. For my character, this is SolitudeBluePalaceFaction. Give the Faction a Property Name. I am choosing SolitudeBluePalaceFaction, just because my memory's already got that term. Click OK.
7). Highlight the property just made, and find whichever faction in the scroll-bar. Click OK, closing the Properties panel, and click OK twice more, closing the Quest windows. Reopen the quest.
8). In the Papyrus Fragment box, type CharacterPropertyName.SetFactionRank(FactionPropertyName, 1). Since I am adding my own character into the Blue Palace Faction, I'm typing PlayerProperty.SetFactionRank(SolitudeBluePalaceFaction, 1)
Note that final number "1". This is what the Creation Kit calls AIRank, and AIRank is a number which can vary from -127 to 128. In most cases, we're simply going to be using -1, 0, or 1, which removes or adds the PC or NPC to that faction.
9). Go back in the game. If the PlayerRef was just added to a faction, when the quest gets to that particular stage, try going back to wherever those forbidden items were. If the game said we can only Steal these items, now we should be able to pick them up.
For NPCs, the main way to test if a person has been added or removed to the faction is to click on them with the console, and type GetFactionRank "Faction ID", and the ID will be needed in the form of whichever 8 character ID number has been assigned to that faction.
How to fix "failed to load snowflake: Meshes\BM_Snow.01.nif" error.
Game: TES III: Morrowind
If Morrowind crashes on startup and the 'snowflake' message shows on your desktop, here's what I did to fix. This assumes Morrowind, Tribunal, and Bloodmoon have already been installed, and may have previously worked.
Some of these words are not mine. I copy/pasted from the Steam website. But I don't use the Steam version of MW, I have the disc version. There are instructions for both versions below.
For steam users
1). MAKE SURE your Steamapps folder is NOT in Program Files folder. Create a custom folder outside of Program Files and install the game there.
2). Once done, install Morrowind and run the launcher, close it. Verify your game integrity game cache
For CD GOTY users
1). Open the CD and RUN the AUTORUN.EXE AS ADMINISTRATOR if you have to. Install the files OUTSIDE PROGRAM FILES one by one: first Morrowind then Tribunal then Bloodmoon. Due to an unexpected failure in Windows Vista or later, some files will not be copied for some reason. You have to copy them manually.
Note: the guy at Steam said we also have to install the Construction Set separately, after installing Morrowind, but I did not need to do this. My CS was automatically installed from the MW disc. But I have the Anthology set, not GOTY. Maybe there's a difference.
2). Right-click on Morrowind (as it appears in the CD drive). Right-click Data Files folder and choose copy (I have Windows 8, I had to click Expand to see these files).
3). Paste the copied Data Files folder into the Morrowind installation folder. Overwrite? Yes. Remove the Morrowind installation disc.
4). Now follow the same steps for the Tribunal and Bloodmoon discs, starting with Tribunal. Right-click Data Files folder and choose copy. Paste these into the main Morrowind installation folder and paste there. Overwrite anything.
5). Follow the same process for the Bloodmoon disc.
Personally, my game was loading up fine by now. But here are some additional steps for those who might still be having probs.
1). Go into the main MW folder and open the Morrowind.ini (it's a Notepad file).
2). Find [Archives] and make sure it looks like this:
[Archives]
Archive 0=Morrowind.bsa
Archive 1=Tribunal.bsa
Archive 2=Bloodmoon.bsa
(note, my Morrowind.ini did not have an [Archives] section, but I found the three pertinent lines of text at the very bottom of the page under [Game Files]
3). If those three lines (nor an Archives or Game File section) exists on the .ini just copy/paste them in.
4). SAVE the ini. Congratulations, You are done, enjoy your game!
Installing Morrowind from Scratch
Recently I had some problems with Morrowind, and had to install from scratch, all the way back to the discs. At first I tried to circumvent this process, which (long story short) did not work. Here's the story.
I happen to have a backup folder with all the vanilla files intact, so I copy-pasted this, but the same problems persisted. So with no other choice, I decided to go all the way back to the beginning. Started all over, installing from the Anthology discs. But as I did so, I ran into a slew of problems. For some reason the buttons on my Xbox controller were not working properly. Or rather, they weren't registering properly. I'd go to jump, and nothing happened. Ready weapon? Same thing, unless I pressed the button over and over. Finally, the Mod Config menu was missing.
But I was also able to fix all of this, and here's how.
Firstly, do NOT get rid of your old Morrowind folder. Keep this around, at least for a while, even if you think there's nothing useful in there.
--============================================
1a). Rename the old Morrowind folder. For instance, I changed my folder's name from Modded Morrowind to "aModded Morrowind". This is important. If the folder is not renamed, later on when we're trying to reinstall the game it'll keep trying to uninstall from the old folder first. It's doing this so it can reinstall into this folder, which I already know will cause probs. This is what I described toward the end of the paragraph above.
1b). Make a new folder, outside of Program Files (x86). Name it whatever you want. I named this folder Modded Morrowind.
And this is why it's important to keep the old folder, at least for now. Sometimes it's useful to see how folder paths were structured, especially when comparing the old folder to the new one. It's also good to see what's stored in there, for whatever reason. Basically, that old folder becomes a point of reference.
2). Right-click > Install Morrowind from the disc. Follow all the prompts listed by the install wizard as usual. Install the game into your new folder.
Note that my copy of Morrowind is from the Anthology disc set, which included a separate disc for the Construction Set. We won't need to install this disc; the regular Morrowind disc already installs this for us, assuming you've also got the Anthology set. I think this separate CS disc is for those who wish to install only the Construction Set on some other computer.
3a). Remove the Morrowind disc and insert the Tribunal disc. Install, following all prompts. Do the same for the Bloodmoon disc, and don't forget to remove this disc and put the regular Morrowind disc into the tray before trying to start the game!
3b). Cut/paste the Saves folder from the old Morrowind folder to the new one. This is for those gamers who wish to continue a game which is already extant, of course.
>> HOWEVER, if this save included any bad stuff (mods which caused probs in the past, for instance) maybe it's better not to use it. In my case I had a brand-new character, whose game only included Tribunal and Bloodmoon so far. I hadn't added anything else yet, since I was trying to keep her game "pure" for the time being.
That's the vanilla game. At this point, I booted up the save I made from before and tried moving my gal around and stuff, but the same problems listed above were still there. Animations were jerky, especially if I tried to rotate the camera. Several buttons were still not working, unless I tapped them repeatedly.
I was pretty pissed off of course, even the vanilla game is broken??? But being stubborn, I decided to forge ahead with more installs anyway.
Next comes what I like to call the "Big Three" utilities. These are tools which are necessary for a lot of mods, and I installed each one from their original archive files (rather than copy-pasting from the old Morrowind folder).
4). I have https://nexus-mod-manager.com/ (NMM) for Morrowind, because it's light and easy to use. Some folks use Wrye Mash, which is more comprehensive for those who have larger lists of mods, especially if they're beginning to conflict one another. Some folks won't need a manager at all, usually those with barely any additions. I prefer to have one though. Since I only have maybe 20 plug-ins plus a few random non-.esp additions, all I need is NMM.
NMM can be installed anywhere, it's one of those programs which automatically finds whatever games you've got. I prefer to throw its files straight into my Modded Morrowind folder, for convenience. Made a shortcut to desktop, as well.
5). Next comes https://www.nexusmods.com/morrowind/mods/19510, and again, I installed this straight into my Morrowind folder, and then made its executable file to a desktop shortcut. MCP fixes a lot of bugs and also includes a LOT of toggles we can click on or off. A lot of mods depend on MCP for its script extender functions. But it's all those dozens of toggles which can be really fun, not just for functionality, but also for roleplaying options.
For instance, for some characters who aren't thieves, I like going onto MCP's Game Mechanics page, toggling Hidden Traps and Hidden Locks on. This adds immersion. Now, my non-thief characters won't automatically know if some door is locked, or if there's a trap on that chest.
> Make sure to press Apply Chosen Patches at the bottom of the MCP page when done toggling stuff.
6). The last of the Big Three is https://www.nexusmods.com/morrowind/mods/41102, Morrowind Graphics Extender XE. Again, I put this into the Morrowind folder, and sent a shortcut to desktop. This improves graphics in all kinds of ways. We can change resolution for instance, beyond the limited choices the vanilla game gives us. We can use the FPS Limiter to curtail the engine from throwing massive framerates around. I've got this set at 60, which improves overall performance since my Nvida isn't wasting frames.
I also like using its Menu UI Scaling feature. Since my TV is roughly 5 or 6 feet from where I sit while gaming, I jacked this from 1.00 to 1.55. Now I can read the game's menus without my glasses! 👓 Keep in mind that making menus larger can cause other problems. Some stuff can get pushed offscreen for instance, such as the confirmation we need tdo click for Starsigns when rolling a new character.
7). By now I tried starting up my game again and got the "snowflake" error message, which is listed in the tutorial above this one. To fix this I removed the MW disc, inserted Tribunal, and copy/pasted all the files on this disc into my Modded Morrowind folder. Did the same thing with the Bloodmoon disc.
8). Removed Bloodmoon and put Morrowind back in the tray. Went back into the game, and voila... everything was working as it should. Why were the animations jerky? I don't know. Why were the buttons I assigned for Jump, Ready Weapon, Ready Magic, Next Weapon, Next Magic, and Use not working instantly? Not a clue. Why did I not have a Mod Config menu? You got me, pretty sure getting MCP added from its original archive fixed this, though.
So that's it: the vanilla game + its two expansions + the three main utility tools. I found it best to also install most mods from scratch, straight from their archives. I did this rather than copy/pasting my old Data Files folder. This way, I knew everything that's going into my game, and was able to take notes on what goes where, and what does what.
This is also a great chance to eliminate any dead weight. There's usually some stuff which got added at some point in the past which is no longer used. Did not work, or has stopped working. During the passionate moments of gaming I tend to forget about these sort of add-ins.
9). Finally, there might be a few things in the old Morrowind folder which can't be taken out of an archive. Here's a few examples: My Screenshots folder, Readmes folder (which I've organized diligently so everything is in its proper place, rather than scattered all over the MW folder), and also Morrowind Additions.esp, my homemade overhaul mod with hundreds of changes. It's a good idea to keep the old folder around, at least for awhile, deleting whatever's not useful anymore while cut-pasting all the stuff that is.
🍷👑
Those Intervention scrolls sure come in handy.
I was interested in you BSA archive issue. Not only do you have to make sure the Archive and the three BSAs are added to the ini but any mod that uses BSA file will have to be manually added to the ini [Archives] list. Oblivion and Skyrim are a bit better in that reguard although they do have their own BSA quirks.
Oops, I screwed up. Was cleaning the next draft of Joan's story and you weren't supposed to see that!
------------------------------------
Each exterior cell is 4096 units by 4096 units or 192 feet by 192 feet or 58.5 meters by 58.5 meters.
There are approximately 86 cells, counting from a bit below Leyawiin all the way up to the invisible border north of Cloud Ruler Temple.
192 x 86 = 16,512 feet. 5,280 feet = 1 mile. 3 miles = 15,840. So, north to south, the game world of Cyrodiil is slightly larger than three miles.
------------------------------------------------
The language of papyrus can be broken down into a handful of concepts: Objects, Functions, Events, Variables and Properties. The Script File Structure page provides information and examples of these concepts.
Objects: Nouns. Books, Actors, Quests, Weapons, Potions. These are things in their purest forms.
Functions: Verbs. Actions. SetStage(), Kill(), SetValue()
Events: Adverbs. When? etc. OnDeath, OnInIt, OnItemAdded. Basically "When" does X happen?
Values: Adjectives. How much? How many?
Variables: Nouns which lead to adjectives. Whatever value is the answer or result of GetStage, GetActorValue, ModValue, and so on. So not the SetStage but the (5) part which follows it.
Properties: Nouns, but defined in such a way that the game engine can communicate with. Because scripts are separate from data files, properties are used to define these objects (these nouns) so Papyrus can use them for the game engine.
An example: we won't kill Chamany when the time comes, we will assign a property to him, and use that property instead, even if the Property itself is called "Chamany".
The language of papyrus can be broken down into a handful of concepts: Objects, Functions, Events, Variables and Properties. The Script File Structure page provides information and examples of these concepts.
Get a Job! Game: TES V: Skyrim
I wanted to make one of my characters in this game get a job working for https://en.uesp.net/wiki/Skyrim:Corpulus_Vinius of the Winking Skeever in Solitude. The idea is going to be that my lady becomes a barmaid. She shows up looking for work, speaks briefly to Corpulus, who gives her a job. Once she's officially hired my barmaid then goes from patron to patron, asking if they'd like anything. Each patron either declines her service or accepts.
This does seem like a pretty useless idea for a mod, I'll admit. But I wanted to use this scenario to learn how variables work in the Creation Kit. Others out there might want to use some of these ideas for something more adventurous: maybe collecting pelts for a skinner, maybe collecting ores for a smith, and so on.
When I was involved more with TES 4: Oblivion, Sarah Phimm became a 'bar wench' as well, https://i.imgur.com/KItDHS8.jpg. She would make food, give it to Mograk several times during her shift, and make a menial amount of money. I was able to make this happen after installing https://www.nexusmods.com/oblivion/mods/44087, but I also enhanced this mod with my own quest and dialog, so that Sarah could wait tables, making occasional tips (or not). Some customers were grateful, others were rude, and so on. All of this was easy to do. So easy, I didn't even bother writing a homemade tutorial for myself at the time, explaining how this was accomplished.
For Skyrim things are tougher, of course. I installed a jobs mod for Skyrim a few years back, but it required the USLEEP patch, which broke my game. CTDs between cells and worldspaces. Obviously we can't have that. So it's time to make our own content.
Now, there are a myriad of ways this can be made to work. For instance, there could possibly be a barrel full of supplies. Every time somebody asks for, let's say, a beer, she'll go to that barrel and see if there's a beer there. If there is, she returns to the table and delivers the beer, and there'd obviously be dialog for this. If not, there'd be dialog for that.
We can also make it so Corpulus gives a bunch of alcohol right at the beginning of her shift. Every time a sale is made this causes a tally to count. Perhaps we can use GetItemCount for this scenario.
Finally, another way to do this is every time somebody wants a drink, she returns to Corpulus, who gives her one. Then she returns to the alcoholic patron. -- That's the way I'm going to do this: one at a time. Also, I'm going to make this quest so that there's an end possibility of either quitting, or getting fired.
1). Open the Creation Kit and start a quest. Give it an ID (I'm going with aaaBarmaidJob), give it a name, make Priority 40.
I like 40 because what'll happen is the game will put some dialog up top, bumping the "service" dialog I'm about to write down a few notches. This makes many other topics available through that NPC seem more important. And isn't this true of real bars? People get drunk, then they want to tell us their whole life story. Finally, the bartender needs to ask "Can I get you anything?"
Click OK (so other quest tabs open up). Save.
FYI: To figure out how to make something like this operate I found a quest in the Creation Kit called https://en.uesp.net/wiki/Skyrim:Quest_all_Beggars_Have. I wanted to study how this quest works because of its simplicity. Beggar asks for a coin, we give him/her a coin. For this, we get The Gift of Charity, short-lived magical effect which fortifies Persuasion. Simple enough, or so it would seem. Turns out, I had to come up with some other ways to make my idea work, which has zero similarity to that beggar quest.
OBJECT WINDOW > Character > Quest
2). Reopen the quest. On the Quest Data page, choose Side Quests for the Type scroll-bar.
3). Start Game Enabled should be toggled on by default. But toggle Run Once off.
4a). Click on the Quest Stages Tab. Five stages are needed: I'm going with 0, 10, 50, 99, and 100.
Stage 0: Toggle Start Up Stage on. Right-click > New into the top Log Entry box so it says EMPTY.
Stage 10: Right-click > New into the Log Entry box and do nothing else. During this stage we're going to speak to the innkeeper, the shopkeeper, whomever. Dialog will be added, during which we'll ask if there are any jobs. And of course there are.
Stage 50: We're hired on the spot!Right-click > new into Log Entry. In the lower Log Entry box type "I have found a job", or whatever.
Stage 99: Right-click > New, etc. Toggle Shut Down Stage and Fail Quest on. During this stage we can possibly get fired. In real life, we can get terminated for all sorts of reasons: insubordination, not showing up, showing up late, and so on. For the purposes of this tutorial, I'm keeping it simple. The only way we can get fired is if we don't sell any drinks at all. Of course, the possibility of losing our job is near-impossible for obvious reasons. I.e., IT'S A BAR!!!
> Type "I have not made enough money, so I have been let go from my job", or whatever.
> In the Papyrus Fragment box, type Stop()
Stage 100: In this case, we "beat" the quest by quitting.Wouldn't that be nice. Right-click > New into the Log Entry box and type "I have quit my job........"
> Toggle Shut Down Stage and Complete Quest ON.
> In the Papyrus Fragment box, type Stop()
GetStage Quest: aaaBarmaidJob < 10.00 AND
GetIsID Actor: 'CorpulusVinius' == 1.00
GetStage Quest: aaaBarmaidJob == 10.00 AND
GetIsID Actor: 'CorpulusVinius' == 1.00
S GetGlobalValue Global: 'GameHour' > 11.00 AND
S GetGlobalValue Gloval: 'GameHour' < 15.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
S GetGlobalVariable Global: 'aaaDrinksBought' == 0.00 AND
S GetGlobalValue Global: 'GameHour' > 11.00 AND
S GetGlobalValue Gloval: 'GameHour' < 18.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
S GetIsID Actor: 'CorpulusVinius' != 1.00 AND
S GetIsID Actor: 'Lisette' != 1.00 AND
S GetGlobalVariable Global: 'aaaDrinksBought' == 1.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetInCell Cell: 'SolitudeWinkingSkeever' == 1.00
S GetIsID Actor: 'CorpulusVinius' != 1.00 AND
S GetIsID Actor: 'Lisette' != 1.00 AND
S GetGlobalVariable Global: 'aaaDrinksBought' == 1.00 AND
S GetStage Quest: aaaJob == 50.00 AND
S GetInCell Cell: 'SolitudeWinkingSkeever' == 1.00 AND
PL GetItemCount: MiscObject: 'Gold001' >=5.00 AND
S GetGlobalVariable Global: 'aaaDrinksBought' == 2.00 AND
S GetGlobalValue Global: 'GameHour' > 11.00 AND
S GetGlobalValue Gloval: 'GameHour' < 18.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
PL GetItemCount Potion: 'Ale' >= 1.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetInCell Cell: 'SolitudeWinkingSkeever' == 1.00 AND
S GetIsID Actor: 'CorpulusVinius' != 1.00 AND
S GetIsID Actor 'Lisette' != 1.00
S GetGlobalVariable Global: 'aaaDrinksBought' == 1.00 AND
S GetGlobalValue Global: 'GameHour' > 18.00 AND
S GetGlobalValue Global: 'GameHour' < 23.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
S GetGlobalValue Global: 'GameHour' > 18.00 AND
S GetGlobalValue Global: 'GameHour' < 22.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
S GetGlobalVariable Global: 'aaaFiredGlobal == 1.00 AND
S GetGlobalVariable Global: 'aaaDrinksBought' == 1.00 AND
S GetGlobalValue Global: 'GameHour' > 18.00 AND
S GetGlobalValue Global: 'GameHour' < 23.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
S GetGlobalVariable Global: aaaFiredGlobal == 0.00 AND
S GetGlobalValue Global: 'GameHour' > 18.00 AND
S GetGlobalValue Global: 'GameHour' < 23.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
S GetGlobalValue Global: 'GameHour' > 11.00 AND
S GetGlobalValue Global: 'GameHour' < 18.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
S GetGlobalValue Global: 'GameHour' > 18.00 AND
S GetGlobalValue Global: 'GameHour' < 23.00 AND
S GetStage Quest: aaaBarmaidJob == 50.00 AND
S GetIsID Actor: 'CorpulusVinius' == 1.00
Traveling with an NPC. Game: TES V: Skyrim
Here's my next wacky idea. Usually when we've got a companion, he or she is following us. But for this post the opposite is true. My character's going to be following an NPC.
I've got a high elf Healer who's going to be taking her healing skills on the road, by helping travelers she randomly encounters, but also I've got a more specific idea: helping somebody get to another destination. The specific traveler wants my elf to go with him, healing him up as encounters occur, and wounds are suffered.
The idea here is that a random NPC is going to dwell within Whiterun's Bannered Mare. This NPC wants to go to some other location, and wants my healer to accompany him, keeping him full of health. I want this to seem like a somewhat random endeavor, so that the person who tries to hire my healer will be a bit different every time he respawns.
This first travel journey is going to be a test. The NPC will ask my character to walk to Dragonsreach. Once he gets there he'll be satisfied, and dialog will change. He'll give my character some money. In the future, there will be much greater distances being requested: Riverwood, Falkreath, Windhelm, and so on. But let's start off with something basic and easy.
Object window > Character > Class
1a). So, class-wise, which sort of NPC's going to need a healer the most? Warriors, that's who. Warriors, fighters, basically those who've put all their skills into wielding weapons and shields while wearing armor, but have eschewed magical disciplines.
So first thing is to find a Class which already has some of the features I'm wanting. I scrolled the Class window down until I got to CombatWarrior1H. Right-click > Edit this class.
1b) ID is being changed to aaaWarriorClass. I'm clicking OK, choosing "Yes" when it asks if I'd like to make a New Form. Reopen the new class.
Thing is, even though the selections on the Class panel feature 1-handed warriors I'm going to modify this so a 1-handed OR a 2-handed guy can show up.
1c). I'm leaving Full Name as Warrior. The main thing I'm changing are the Skill Weight for Two-Handed, which is being changed from 1 to 3. I also added 2 into the Light Armor slot. Hmm. Nothing else really needs to be changed.
1b). Click OK.
Object window > Character > Faction
2a). Right-click > New. ID = aaaTravellerFaction, Name: Traveller Faction.
2b). Click the General tab. Hidden from PC is toggled on. Right-Click > New into Interfaction Relations and find PlayerFaction in the scroll-bar. Ally can be selected. I'm not choosing Friends and Allies because I don't want the guy to become too helpful to other travelers on the road, who are being attacked.
2c). In the Crime tab we can select any of these toggles (or not), depending if we want somebody who doesn't care what we do at all, to somebody who's a stickler for any sort of criminal activity. All the toggles are self-explanatory.
2d). Click OK, unless more features are desired (training, merchant ability, etc.)
Object window > Actors > Actor
3a). Click on the Actors > Actor section. Right-click > New. I'm going to make a template, which will make it easier to make NPCs from this template in the future. There's going to be more than one NPC who wants my character's services, and templates make it easier to set up multiple people in the gameworld.
ID: aaaWarriorTemplate
Name: Warrior Template.
Stats tab
Auto Calc Stats can be chosen along with the Level slot if a static NPC is desired. I prefer PC Level Mult, with 2.00 in the Level Mult slot. This way, the traveling NPC is always tougher than my healer.
I also used the Class scroll-bar to find the aaaWarriorClass made a few steps ago.
Factions tab
Right-click > New and find the faction just created. aaaTravellerFaction is what I've got.
AI Data tab
Aggression: Aggressive
Confidence: Brave
Assistance: Helps Allies
AI Packages tab
DefaultSanboxCurrentLocation1024 is a good one to choose, since it'll cause the NPC to do random stuff wherever he winds up, but he won't try to return to Bannered Mare. In other words, don't choose an Editor version of Sandbox.
This Sandbox package will become the "base" AI that the NPC will possess during time off. More packages will get added later which will have the ability to override this sandbox package.
Inventory tab
Package tab, Place to Travel: In cell: 'WhiterunDragonsreach'
Flags tab: Must Complete, Preferred Speed: Fast Walk. Everything else off.
Conditions tab: S GetGlobalValue Global: 'aaaTravelDragonsreach' == 1.00
...................... S GetGlobalValue Global: 'aaaWaitGlobal' == 0.00
...................... PL GetDistance <= 1024
Package tab: not used. StayAtCurrentLocation defaults to a standard Wait package, basically.
Flags tab: Must Complete, Allow Idle Chatter, and any of the "fallout" behaviors on the right of the Flags panel are okay.
Conditions tab: S GetGlobalValue Global: 'aaaTravelDragonsreach' == 1.00
..................... S GetGlobalValue Global: 'aaaWaitGlobal == 1.00
ID: aaaDragonsreachTravelQuestWaitID
Branch: aaaDragonsreachTravelQuestWaitIDBranchTopic
Topic: aaaDragonsreachTravelQuestWaitIDTopic
Topic Text: Let's take a rest for just a moment.
Response Text: Alright. I'll be right here.
Hours until reset: 0.00
Flags: Has LIP File, Force Subtitle, Goodbye
Conditions:
S GetGlobalValue Global: 'aaaWaitHereGlobal == 0.00 AND
S GetGlobalValue Global: 'aaaTravelDragonsreach == 1.00 AND
S GetInFaction Faction: 'aaaTravellerFaction' == 1.00
Script Begin Box: ;Party comes to a halt.
Script End Box: aaaWaitHereGlobal.SetValue(1)
ID: aaaDragonsreachTravelQuestContinueID
Branch: aaaDragonsreachTravelQuestIDBranchTopic
Topic: aaaDragonsreachTravelQuestContinueIDTopic
Topic Text: Let's go.
Response Text: Fine. Let us commence.
Hours until reset: 0.00
Flags: Has LIP File, Force Subtitle, Goodbye
Conditions:
S GetGlobalValue Global: 'aaaWaitHereGlobal == 1.00 AND
S GetGlobalValue Global: 'aaaTravelDragonsreach == 1.00 AND
S GetInFaction Faction: 'aaaTravellerFaction' == 1.00
Script Begin Box: ;Party continues to destination.
Script End Box: aaaWaitHereGlobal.SetValue(0)
ID: aaaDragonsreachTravelQuestOpenInventoryID
Branch: aaaDragonsreachTravelQuestOpenInventoryBranchTopic
Topic: aaaDragonsreachTravelQuestOpenInventoryTopic
Topic Text: Can we exchange items?
Response Text: Here's what I got.
Flags: Has LIP File, Force Subtitle.
Conditions:
S GetGlobalValue Global: 'aaaTravelDragonsreach == 1.00 AND
S GetInFaction Faction: 'aaaTravellerFaction' == 1.00
Script Begin Box: ;Opens NPC traveller inventory
Script End Box: NPCPropertyName.OpenInventory()
ID: aaaWarriorArriveDragonsreachID
Branch: aaaWarriorArriveDragonsReachBranch
Topic Text: Looks like we're here.
Response Text: Yes. And looks like I owe some coin.
Flags: Has LIP File, Force Subtitle, Goodbye
Conditions:
PL GetInCell Cell: 'WhiterunDragonsreach' == 1.00
S GetGlobalValue Global: 'aaaTravelDragonsreach' == 1.00 AND
S GetInFaction Faction: 'aaaTravellerFaction' == 1.00
Script Begin Box: ;Warrior makes it to Dragonsreach
Script End Box: aaaTravelDragonsreach.SetValue(2)
Game.GetPlayer().AddItem(Gold001, 5)
NPC.SetPlayerTeamMate(FALSE)
Traveling with an NPC, Additional Locations. Game: TES V: Skyrim
This lesson goes with the one started above. The NPC warrior has been taken to Dragonsreach, and now he wants some downtime. Once he's done doing whatever he's done doing in Dragonsreach, he'll want my healer's services again. He's done in Dragonsreach, and now he wants to go somewhere else, which can be either Ivarstead or Riverwood.
Eventually it's going to be possible to find multiple travelers who want to go to multiple destinations. Silly idea, but hey. It's necessary I learn how to do this for some future ideas I've got in my main Skyrim fanfiction.
Object window > Miscellaneous > Global
1a). Make three new globals: aaaTravelIvarstead, aaaTravelRiverwood, and aaaTimerGlobal. Copy each name and paste it somewhere.
1b) Keep their Short variables, with values of 0.
Time to make the quest. It is possible to use the same quest as before and just add to that. But this also means adding a lot of new Topics as well. It's possible to do use just one quest, but for the sake of organization I'm starting a second. Thing is, this second quest doesn't need to have some of the dialogs found in the first quest, because the assumption is that the NPC and our PC know each other a little by now. Because of this a second ForceGreet is not needed, for instance.
Object Window > Character > Quest
2a). Start a new quest.
ID: aaaRandomTravelQuest
Priority: 50
Type: Miscellaneous
Flags: Start Game Enabled.
Conditions:
PL GetLevel NONE > 5.00
S GetGlobalValue: Global: 'aaaTimerGlobal' >= 1.00
2b). Click OK. Save. Reopen.
2c). Right-click > Add the following into the Text Display Globals window:
aaaAccompanyGlobal
aaaRefuseAccompany
aaaTravelIvarstead
aaaTravelRiverwood
aaaTimerGlobal
aaaWaitGlobal
2d). Click OK.
Now reopen the previous quest, the one which led the NPC to Dragonsreach. In the Quest Data page add aaaTimerGlobal in the Text Display Globals window.
Now open the final dialog, when the NPC paid us for taking him here.
2e). Remove the Goodbye flag. Right-click > Copy All Conditions.
Click OK 2x, closing the quest window. Reopen it. Right-click > Add Topic into the same branch.
ID: aaaWarriorTravelDragonsreachFinalInfo
Topic Text: Thank you for payment.
Response Text: I may need your help in a day or two, going somewhere else. Why don't you return tomorrow?
Flags: Has LIP File, Say Once, Force Subtitle, Goodbye.
Conditions:
PL GetInCell Cell: 'WhiterunDragonsreach' == 1.00
S GetGlobalValue Global: 'aaaTravelDragonsreach == 2.00 AND
S GetInFaction Faction: 'aaaTravellerFaction' == 1.00
Note: the 'Travel Dragonsreach' has been changed from 1.00 to 2.00
2g). Link the existing topic in the Dragonsreach branch to the new topic. Click OK, closing the qeust window.
2h). Now reopen the quest, but this time click on the Quest Stages tab. Make two stages: 0 and 100.
Stage 0: Start Up Stage should be toggled.
Stage 100: Shut Down Stage and Complete Quest toggled on. Right-click > New into the Log Entry and write something like "I have taken some warrior to Dragonsreach. He's now told me he'll want to journey with me again soon. I should meet with him here tomorrow if I'd like to do so."
Next Quest: find aaaRandomTravelQuest (or whatever the next quest started during 2a is named)
How to make Generic NPCs, Game: TES V: Skyrim
Renee's Modding Thread is a bit of a mess during that last post, it's because I'm experimenting, but hit a dead-end. But I have discovered how to make generics in the game of Skyrim. Since the process is rather involved (and I doubt I'd be able to remember it without reminders) here the next tutorial.
Three items are needed to make this happen: a LeveledCharacter list, a NPC template, and an actual NPC.
Now... Bethesda themselves often go way beyond these three basic things. As I was trying to figure this out, I was studying bandits. And found a Leveled list which draws from a leveled list which draws from another leveled list which FINALLY dice-rolls some NPC(s) which have been drawn from their own templates, which have multiple LeveledList items for Inventory, and so on. It gets to be crazy, and it took me over an hour to figure out how all these objects and lists correlate to one another and show up properly in the game.
Ahem. But for the basic idea to work, all that are needed are three factors.
Object window > Actors > LeveledCharacter
1a). Right-click > New. Make an ID. aaaLeveledCharacterList or whatever.
1b). Toggles are described below in Bethesda's own words, from the Creation Kit website. I've put my own comments (in parenthesis) as well.
Calculate from all levels <= PC's level: If checked, the level list will use any item at or below the player's level in the list. If not checked, it uses the closest item or items to the player's level, but not exceeding it.
Calculate for each item in count: If this list is in another leveled list with a count greater than zero, this check box determines if each item in the count is the same, or is recalculated. (Bethesda often has both of the Calculate toggles on.)
Use All: Mutually exclusive with the previous two selections, Use All causes the list to always return all of its contents. (In most cases, this is off).
Special Loot: Whether to select items from this list using the Special Loot formula.
Chance None: The chance that the leveled list will not produce an item at all. This chance can be supplied either as a fixed percentage or as a value in a Global. (0 is chosen if we want to make SURE the NPC always has this item type.)
ID: aaaNPCTemplate
Name: NPC Template.
ActorBase: find the LeveledCharacter list made during step 1a in this scroll-bar, which for my example above is aaaLeveledCharacterList.
Stats tab
Auto calc stats should be toggled on. Level stays at 1 because the Leveled List will handle overall level.
Use the Class scroll-bar to find whichever class is desired: EncBanditMelee1handed or whichever. This all depends what sort of weapon-type will be wielded by enemies, of course. If the generic NPC is not an enemy, Drunk or Monk or whatever can be chosen, although in most cases, this entire process is used for enemies.![]()
Factions tab
Use whatever faction is necessary. If the generic(s) is or are supposed to be placed with the bandits for instance, obviously Add the BanditFaction. Otherwise, go into Object window > Character > Faction and make a new faction if for some reason a new one is needed.
AI Data tab
For most enemies...
Aggression: Very Aggressive
Confidence: Foolhardy
Assistance: Helps Allies or Helps Friends and Allies
AI Packages tab
DefaultSanboxEditorLocation1024 is a good one to choose. In some cases, AI is not added to generic-type NPCs; I think the game will make them mildly sandbox even if they don't have any specific AI.
Dialog Speech Checks Game: TES V: Skyrim
This tutorial comes from https://www.creationkit.com/index.php?title=Tutorial:_Dialogue_Speech_Checks, main difference is I'm going to make this step by step, and add a couple things as well.
There are several ways Speech works in Skyrim. First, we'll discuss Persuasion. An example is from the WERJ02 quest (Thieves Guild Holdup), which has a thief walking up to us as we travel roads, and demanding money. There is a chance to Persuade the thief to leave us alone, as well as chances for Intimidation, walking away, or simply getting into a brawl. I will also include Bribery. We can't bribe the thief, but there are times when bribes can be offered. An example is when we approach the gates of Whiterun for the very first time, and a guard tells us we cannot go into town.
Speech works: You win. I'll leave you be.. for now.
Speech doesn't work: Prepare for your room... erm... doom!!!
Map Marker Tutorial, Game: Fallout 3
Firstly, with some vanilla locations added by Bethesda themselves, these can sometimes be hard to find in the Render window. An example: Nuka Cola Plant. I needed to add the reference ID for its map marker into a script, yet where is the map marker?
Beth likes to sometimes put map markers UNDERNEATH the location, the building, the settlement we're trying to use. I found Nuka Cola's map marker by tapping on the entire Nuka Cola building, and then rotating the entire image until I was viewing under this building. Voila. There's the map marker, and now I can retrieve its Ref ID: NukaColaMapMarker.
The rest of this lesson shall focus on adding making map markers into the game.
1). Find the worldspace location in the Cell or Render windows.
2). In the Object window > World Objects > Static, find MapMarker, and drag it into the Render window.
Note that the marker itself is green, but it has a large yellow circle surrounding it. Walking into this circle is what causes the marker to appear on the map if we discover a new location.
3). Double left-click on the marker and give it a Reference ID. This is optional, and only needed if the marker's going to be used in scripts, like to make it appear in the map and stuff if somebody says "Let me mark that location on your map." 🌎
4). Click on the Marker Data tab. Toggle Marker Data on, and notice there's now a bunch of other toggles to press.
5). Give the marker a name, type this into the Name slot. This name is what will appear when somebody views the map's marker in-game. Very good.
6). Click on whatever sort of area the marker's going to portray, whether it's a factory or a settlement, or a cave, etc. This changes the marker's actual icon, making it easy to distinguish as what type of location is viewed on the map.
7). There are three other toggles underneath the icon panel:
Visible: The marker starts off visible right from the start of the game, even before the area's discovered or referenced in a script.
Can Travel To: If this toggle is ON it means we can immediately fast-travel there, as long as the icon appears on the map and we're in the world somewhere (not in an interior cell). Visible also needs to be toggled on for this to be an immediate option from the start of the game.
"Show All" Hidden: If this is toggled, the map marker will NOT appear if the ShowAllMapMarkers function is called for.
Repeatable Enemy Raids, Game: Fallout 3
I love generic, repeatable quests. We speak to a quest agent who gives us a quest to pwn some enemy boss, we pwn the boss, then return to the agent to get paid. I've made these sort of quests for Oblivion and Skyrim, here's how to do it for Fallout 3.
The process has a lot of similarities to the way it all works in Oblivion, since both games use the Gamebyro engine and similar scripting. But there are enough differences for Fallout that this game deserves its own methods.
First of all, highly recommended to download https://www.nexusmods.com/fallout3/mods/22312, which makes interior locations (Super Duper Mart, for instance) respawn with enemies, but also loot. This mod requires https://www.nexusmods.com/fallout3/mods/8606 for those who don't have it yet.
Once both of those are in place, the way it works: whenever an interior location is entered, go into the character's ITEMS > Aid menus and select Zone Control. There are options to do Nothing, Enable Respawn, and Disable Respawn. If respawn is enabled, the enemies inside will (guess) return the place after 3 days. Most containers will also be restocked with loot. Note that this mod works mostly with vanilla locations. Mod-added locations sometimes can have respawn enabled, sometimes not.
I have also come across one vanilla location (Bethesda Offices East) which did not accept the Enable Respawn command. However, Beth's offices are also supposed to be one of the rare interior locations in the gameworld which respawn by default. EDIT: And now I know why the office could not be Enabled. It's because it's not on Bethesda's "non-respawn" list. To further learn more about this list, click the spoiler tag.
So...the way my idea works is: I use Metro tickets to remind me of which location is currently on the roster; i.e., which location we're supposed to be headed to, to take care of its boss. Metro tickets, Messages, and Quest Objectives are how these reminders work. No quest stages. Repeatable quest stages can probably also be used, but I don't know how to do it that way.
Let's say the first location is a place we're all familiar with: Springvale School. I'm going to put the enemy boss into SpringvaleSchool02 (Springvale School Lower Level).
OBJECT window > Items > Misc Item
1a). Find and then edit MetroTicket.
ID: aaaSpringvaleSchoolTicket
Name: Kill Boss of Springvale School
See? The ticket states exactly what the latest mission is.
1b). Toggle Quest Item on. Don't worry, the way this works, the ticket won't be in the PC's inventory forever.
It is possible to skip this step, of course. Especially for those who want to do the "pack rat" thing; acquire a stack of tickets to be kept in their home. Personally, I can't do it this way. I'd get confused after forgetting to drop my ticket(s). Wait, is my guy on a mission? Which one?
1c). Copy the ID name and paste it onto a Text file or Wordpad file.
1d). Click OK, saving as a New Form.
Object window > Actors > NPC
2a). Make a new NPC, who's going to be the quest agent. If it's your first time doing so, Bethesda's own GECK page is a good place to start: https://geck.bethsoft.com/index.php?title=Category:NPC.
The guy or gal can be pretty minimal; like my other Quest Agents in other games, he/she only needs to handle and deliver a minimal number of lines. In my game, I made the agent a Regulator, who is part of the Regulator Faction (along with a couple Megaton factions). He lives in his own flat in Megaton, has his own little life and so on. But minimally, it's possible just to add somebody who lives in Moriarty's, if simplicity is desired.
2b). The only things I insisted upon was to make my agent's Alignment as Good (he is a Regulator, which means good guy). I gave him one of the DefaultSandboxEditorLocation packages too, just so he wanders around and stuff. Everything's an option.
2c). Put the agent into whichever location is desired.
Cell View window
3). Find the location where the enemy boss will get added. Again, for me this is SpringvaleSchool02, which is the school's basement. I like putting bosses into areas which can possibly be the very last place we search. Don't put a boss near the entry door, for instance. More fun to have to get through the boss's minions and sanctuary first!
Object window > Actor Data > Quest
4a). Start a new quest. This tutorial's assuming those who read this know a lot about the Quest window already.
Quest Name: Generic Wasteland Quests
ID: aaaGenericWastelandQuests
Priority: 30
4b).Start Game Enabled and Script Processing Delay can both be toggled.
4c). Start a script like so...
Scriptname aaaGenericWastelandQuestScript
short DoOnce
4d). Make sure the Script Type scroll-bar is set to Quest, not Object.
Save and close the script, click OK (closing the Quest window) and reopen it. Find the script in the scroll-bar, click OK again.
Object window > Actors > NPC
5a). Make a new NPC.
ID: aaaSpringvaleSchoolBoss
Name: Springvale Headmaster (I like silly names)
Respawn: ON
TRAITS tab
Race: CaucasianRaider
Female: OFF
Voice Type: MaleAdult02*
STATS tab
PC Level Mult: ON
Level Mult: 4.00
FACTIONS tab
I removed the GeneralIdleFaction and MS13CanMez factions. Not needed. Two raider factions remained in this tab's window, and I also left this template's Smoker Faction.
Set aaaSpringvaleSchoolBossRef.dead to 2
Set aaaGenericWastelandQuests.DoOnce to 2
Set StartDay1 to GameDaysPassed
Set Timer1 to 1
Set Timer1 to 0
Set aaaSpringvaleSchoolBossRef.Dead to 0
Repeatable Enemy Raids, Additional Locations. Game: Fallout 3
This time I'm going to put a boss into one of the Metro tunnels. Let's go for FriendshipMetro02. This is the tunnel which comes after the one Moira sends us into, when she's trying to get us to test her stupid mole rat repellant stick. The place is populated by ghouls, so I'm going to drop a Glowing One into one of the tunnel's restrooms.
OBJECT window > Items > Misc Item
1a). Edit the previous Metro ticket. Here is how I'm going to edit it for my game. Since the boss I'm adding is going to be a Glowing One type of ghoul, he's going to be known as "the Glower".
ID: aaaFriendshipMetroTicket
Name: Kill Glower of Friendship Tunnel 2
1b). Copy the ID name and paste it onto a Text file or Wordpad file.
1c). Click OK, saving as a New Form.
Cell View window
2). Find the location where the enemy boss will get added. Again, in my game this is FriendshipMetro02, somewhat towards the end of one of its branches, where the restrooms are.
Since I'm editing a creature this time (rather than an NPC) and I've never outlined how to set one of these up, here's the quick way. There are specific templates for ghouls, but a template is not needed. For those of you who wish to just make an NPC, and use the previous template to set him or her up quickly, have a look at steps 5b through 6a in the above tutorial.
Anyway, to make a quick ghoul, check this out.
Object window > Actors > Creature
3a). Find CFeralGhoulGlowingOne and right-click > Edit it.
ID: aaaFriendshipMetroGlowingOne
Name: Glower of Friendship Metro
No low level processing: OFF
Respawn: ON
Allow PC Dialog: ON
STATS tab
PC Level Mult: On
Level Mult: .25
AI PACKAGES tab: Remove the DefaultPatrolCasual package.
Set aaaFriendshipMetroGlowingOneRef.dead to 2
Set aaaGenericWastelandQuests.DoOnce to 2
Response Text: Long ago before the bombs dropped, Metro tunnels were used as daily transport for the masses.
Now they're inhabited by ghouls! And in this particular tunnel, a Glowing One has been reported!
I can't emphasize how important it is to rid Glowing Ones from the Wasteland. Top priority, soldier.
Set aaaFriendshipMetroGlowingOneRef.dead to 2
Set aaaGenericWastelandQuests.DoOnce to 2
SetObjectiveDisplayed aaaGenericWastelandQuests 3 0
ShowMessage aaaFriendshipMetroBossDeathMessage
SetObjectiveDisplayed aaaGenericWastelandQuests 2 1
aaaFriendshipMetroTopic
aaaNo
Set StartDay1 to GameDaysPassed
Set Timer1 to 1
Set Timer1 to 0
Set aaaSpringvaleSchoolBossRef.Dead to 0
Set StartDay2 to GameDaysPassed
Set Timer2 to 1
Set Timer2 to 0
Set aaaFriendshipMetroGlowingOneRef.dead to 0
Gray Face bug. These are SubRosa's words, Haven't tried this yet but I eventually will.
1.) Create a new NPC
2.) Edit the necessary sections of the face. If there are additional textures installed in actors/character, NPC customization will result into a two toned NPC, move all the extra textures into a back up folder.
3.) Click "Okay" on the character window closing it, Highlight your new NPC in the actors list and press CTRL + F4 to export FacegenData.
4.) Save plugin.
5.) You can confirm success by checking Meshes/Actors/Characters/FaceGenData/FaceGeom/<mod name> folder &Textures/Actors/Characters/FaceGenData/FaceTint/<mod name> folder. If it is simply a change to a vanilla NPC, it will be in the .../FaceGeom/Skyrim.esm subfolder. The file will be a .nif with the same name as the base id in the construction set.
Script Fragments. Game: TES V: Skyrim
I'm not very good with Skyrim scripts yet. I've tried and studied, but I just can't get the hang of full-blown scripting in this game, mostly because nobody in the Skyrim community writes in plain English like I do. Somebody needs to make a "Skyrim Scripting for Dummies" page.
I have gotten pretty good with script fragments, though. Script fragments are small bits of code which are localized (they only affect the specific quest or object they've been placed into). They make very specific changes in the game, usually when a bit of dialog is spoken, or a quest stage gets set, and so on.
There will be a bunch of script fragments on this page when it is done. I will include links to Bethesda's official Creation Kit site for each of these, as well.
-----------------------------------
Let's start with Enable.
https://www.creationkit.com/index.php?title=Enable_-_ObjectReference -------- (click spoiler tag below for my explanations).
https://www.creationkit.com/index.php?title=EvaluatePackage_-_Actor
Making a Door set a Stage -- (Not a script fragment)
https://www.creationkit.com/index.php?title=ObjectReference.MoveTo_(Papyrus)
https://www.creationkit.com/index.php?title=OpenInventory_-_Actor
https://www.creationkit.com/index.php?title=Show_-_Message
https://www.creationkit.com/index.php?title=SetEssential_-_ActorBase
https://www.creationkit.com/index.php?title=StartCombat
Fixing the Sideways Glasses Bug, Game: Fallout 3 & Fallout New Vegas
When putting on mod-added glasses, goggles, and sometimes hats, these items will sometimes hang off the side of the PC's face instead of sitting properly. https://i.imgur.com/mLqCugl.jpg. Look at Cho Zen Wan's glasses (he's the one on the right) which are hanging askew.
Basically, vanilla items (such as Biker Goggles) are fine, but when editing these items in the G.E.C.K. they won't sit properly on our character's nose. Instead, they'll hang sideways.
https://www.youtube.com/watch?v=Exc5pm92akk&t=6s. It's made by Seddon, who makes perhaps the very best video tutorials!
https://www.youtube.com/watch?v=Exc5pm92akk&t=31s. Note that trying to fix this in NV is different from FO3. Essentially, you'll need FNVEdit to fix the problem. https://www.nexusmods.com/newvegas/mods/34703/
Here is my own written fix for Fallout 3, though.
1). Open Fallout 3 GECK, and boot up whichever mod adds the appropriate item(s).
2). SAVE the plug-in from the main toolbar before continuing. Once the mod's been saved, click on Character from (again) the main toolbar. Select "Update FaceGen model availability". This is the second selection from the bottom of the list.
3). Save again. https://i.imgur.com/oWniPfc.jpg.
Nexus Mod Manager - installing and uninstalling
Yeah I know... why is she posting how to use NMM? Isn't that program self-explanatory? Hey, I get lost sometimes... So this lesson shows how to install entire mods from the manager itself (rather than copy/pasting into the Data Files folder, which was what I've been doing up til now). This can be helpful especially when installing or uninstalling lots of files.
Note that NMM is an outdated program which includes several features which don't work correctly. It occasionally gets buggy. Nowadays THE Nexus uses Vortex, which I believe they had to outsource. Personally though, I prefer the original Nexus Mod Manager.
1). Open up Nexus Mod Manager, click on the Mods tab.
2). There should be an orange-colored icon which is called Unassigned. Expand this icon.
3). Click the large + button on the manager's left side. This is the Add Mod from File button. This should open up our Downloads folder. From here, simply navigate to the archive we wish to add.
4). Single left-click on the archive. Now change the Mod Files scroll-bar to All Files (*.*) Might have to left-click on the archive a second time.
5). Click Open. The archive has been transferred into the Mods folder. Right-click on it and select Install and Activate. There we go. This should install the mod's entire folder path (not just the .esp). Larger mods (overhauls and such) might require a few minutes to install.
If the archive contains several .esp files yet we only need one of these, Open the archive itself and delete any files which are not wanted. There is no way to delete them straight from NMM, not that I've found, anyway.
----------------------------------
Here is how to make different Character profiles. When swapping from one guy or gal to the next, we can make it so all the particular mods in their game automatically switch as well. First step is to create a profile. If a profile has already been made and you just want to learn how to swap from one profile to the next, skip to Step 3.
1). Open the Mods tab. At the very top of the toolbar there should be a button for Launch "X", with X being whichever game, and next to this is the Profile button. Click on the little arrow to the RIGHT of the Profile button. This arrow points downwards.
This is tricky to do. Instead of making the actual Profile name the button, we gotta click on the tiny down-arrow to the right of the button.
2). Select New Profile. Name and address this profile somewhere.
Now let's say I've got two characters: one is an archer, the other a paladin-type. I want an Archery specific mod to show up in my archer's game, but not in my paladin's. I am now switching to my archer's list from my paladin's list.
3). Assuming the mod has already been installed from its compressed archive (see the instructions above for how to do this) left-click on the mod we wish to use for this particular 'toon. Now press the Big Green Check Icon on the left toolbar. The mod should install automatically.
Conversely, if we wish for a mod to Uninstall at the same moment, left-click on it and select the Big Red Cancel Icon. Voila.
4). Switch to the Plugins tab. Now click on the little arrow next to the Profile button, and select Save Current Profile.
5). Assuming a second Character Profile has been added, follow steps 3 and 4 again, to Install and/or Uninstall from that character's world as well.
Double-check that each pertinent .esp or .esm has activated. NMM is a buggy program. It Installs and Uninstalls faithfully, but sometimes it won't activate.
Breton Magic Resistance Tweak, Game: TES III: Morrowind
I recently discovered something about the way Magic Resistance works in this game and have come to this conclusion: MR is nearly useless! Well, it's useless against elemental magics: Cold, Fire, and Shock spells do NOT get resisted by base Magic Resistance spells, abilities, potions or scrolls in this game. No wonder the Breton characters I've rolled in TES3 over the years keep getting drastically damaged by elemental magic, even though they've got 50% MR.
Poison and Paralyze also do not get affected by Magic Resistance. This sucks. Granted, MR does protect against plenty other magic types: Absorbs, Damages, Drains, Weakness spells, and a variety of Illusion spells. But not being able to resist against the elemental stuff is huge. As we're getting late into the game, dealing with atronachs and Daedra and some undead, lack of MR against their magics really makes things complicated.
So yeah, it's cheating, but I'm changing at least the elemental magic part. And it's not because MR resists all elemental magic in Oblivion and Skyrim, it's because the alternative to not making the changes below includes carrying a ton of potions and/or scrolls. Or cramming the Magic menu with three extra new resistance spells. My magical characters already have enough potions in their inventories, and spells in their books, which makes it cumbersome to select one of these spells in real-time (I prefer selecting spells in real-time rather than pausing constantly to switch magic).
So here goes. I am not changing the way Magic Resistance spells work; we can already do so with Spellmakers in the game. But I am changing the Breton's Magic Resistance ability. This is relatively easy.
1). In the Object window, select the Spellmaking tab.
2). Find Resist_Magicka_50. I am manipulating the Ability by the way, I'm not talking about any MR spells (though spells can also be tweaked). Resist_Magicka_50 is what Bretons have as a base Ability.
> We can also make tweaks to any Magicka Resistance spells as well, but the problem is this'll drive up Magicka costs in-game, and also lower the chance for a successful cast. Anyway,
3). As we can see, Resist_Magicka_50 already has Resist Magicka as an Effect, and there are seven additional scroll-bars below. To add additional effects, simply select any of the scroll-bars, and find the magical effect desired.
4). Change Magnitude as well. I've selected 50 for Resist Fire, Resist Frost, and Resist Shock.
Save. Voilà.
To double-check click on Character on the main tool bar. Select Race. Make sure the ability just modified corelates to what's shown in the Specials window. Yeup, resist magicka_50 is being shown.
Manipulating Leveled Lists
Here is how to change the leveled lists which reside in any Elder Scrolls or Fallout game made by Bethesda. This helps a lot to manage when certain enemies show up, whether stronger enemies replace weaker ones, and so on.
Do you want Minotaurs to show up in the game even though your character's a total Level 1 weakling? Make it happen. And for those who already have a mod which introduces leveled lists (such as MMM), these lists can be changed as well.
One of my only pet peeves with Oblivion when I was new to that game was the way it would replace weaker enemies with stronger ones, all due to our character attaining a certain level. I don't have a problem with stronger enemies eventually showing up, but what I didn't like was the way a lot of the weaker ones disappeared from the game entirely.
An example: Wolves are in the world of TES4 right away. But once we gain Level 6, ALL of the Wolves vanish, and now we have only Timber Wolves, which are stronger. To me, this seems unrealistic. Even a fantasy world such as Tamriel's should feature weaker and stronger opponents, with weaker enemies outnumbering the stronger ones. 🐺 Alpha monsters basically are at the very top of the food chain; that's Darwinism, baby!
Anyway, here's how to manipulate these lists. It's so easy, too. I am going to manipulate the way skeletons show up in Morrowind for this example. Because lately I notice that we're not seeing any plain Skeletons in my Level 14 character's game if she's in the majority of Shrines; her world is only populated by Skeleton Champions.
OBJECT window
1). Find the area of the window where Leveled Lists are posted. So in Morrowind, this is in the Leveled Creatures tab.
2). Now, find the proper list. So... I am trying to change the list for Skeletons, and there are three lists in the Leveled Creatures page: in_tomb_skele_lev+0, in_tomb_skele_lev+2, and in_tomb_skele_lev-2. 🦴
Selecting in_tomb_skele_lev+0, I can see right away in the list's Creature Name window it looks like this.
1 Skeleton
1 Skeleton Archer
7 Skeleton Warrior
10 Skeleton Champion
The number on the left is our character's level. So from levels 1 through 6, Skeletons and Skeleton Archers are prevalent. From 7 to 9 we've got Skeleton Warriors, and from Level 10 there are Skeleton Champions. No wonder I'm not seeing any weaker variants in my gal's gameworld.
Here's how I'm changing it.
3). Note that every game does this part differently. Let's say I want ordinary Skeletons to show up at any time, along with the stronger variants. For Morrowind, click on the Creature tab. Find Skeleton, and drag this choice over to the Leveled Creature window. Here's what it looks like now.
1 Skeleton
1 Skeleton Archer
7 Skeleton Warrior
10 Skeleton Champion
10 Skeleton
Perfect. Now when my characters go delving into an area where this list is featured, Skeletons Champions are arranged at Level 10, but so are ordinary Skeletons.
4). And to change the Level modifier, left-click on whichever choice is desired, and press F2. I just dragged a second Skeleton into the window, clicked F2, and changed the number from 10 to 7. Now the list looks like this:
1 Skeleton
1 Skeleton Archer
7 Skeleton Warrior
7 Skeleton
10 Skeleton Champion
10 Skeleton
Overall, I came up with this when I was completely done with the in_tomb_skele_lev=0 list.
1 Skeleton
1 Skeleton Archer
7 Skeleton Archer
7 Skeleton Warrior
7 Skeleton
10 Skeleton Champion
10 Skeleton
10 Skeleton
10 Skeleton Archer
I've basically nerfed the lists for skeletons, because to me I'm after overall realism, not overall challenge. Some folks might want to make lists stronger, of course. Sure, this is possible as well.
I'll include guides for some latter games, as well. Each game does things a little differently.
Skooma Dealer, Game: TES IV: Oblivion
I recently returned to Oblivion, decided to return to my very first PC character, Snaat Rayag the Skooma Dealer, originally rolled in 2014. All he does is buy skooma at a discounted rate, and then tries to sell it. You'd think that such a game might become stale rather quickly, but being a skooma dealer is sometimes a bit risky. It's not just buy/sell, there are other factors. Sometimes customers curse at Snaaty, sometimes they even try to pick fights, or call the guards (if they're of higher morals).
I originally had https://www.nexusmods.com/oblivion/mods/31130, by PrettyMurky. Installed it way back in 2014. But recently the mod has stopped working. There's no dialog for skooma selling, even after a fresh uninstall/reinstall the mod stopped working. Began getting frustrated, and so on.
So now here's my version.
1). Start the Construction Set, bla bla bla. I'm assuming a quest needs to be written from scratch.
2a). Press the Q button on the main toolbar, and right-click > New into the Editor window. Give your quest a name. I'm calling it aaaSkoomaDealerQuest.
2b). Here's a quick summary of the Quest Data page.
Quest Name: Skooma Dealer
Priority: 30
Toggle Start Game Enabled and Allow Repeated Conversation Topics on.
Quest Conditions: GetIsPlayableRace == 1.00 AND
GetPlayerInSEWorld == 0.00[/b]
Set Timer to Timer + GetSecondsPassed
Set DoOnce to 0
Set Timer to 0
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)