jet4571 Posted February 23, 2012 Share Posted February 23, 2012 (edited) I need some assistance with creating quests for a mod I am creating and I have no idea how to make a quest except for the tutorial one that is completely unlike what I want to have. I have no prior experience with creating quests much less scripting for any ES game. Scripting looks like PHP and that is gobbledygook to me. and the tutorials explain how to make 1 quest and do so half ass. * Main quest would be pick up a note, read it, find the key, and unlock the door and its complete you now own the property. * Second quest is have servants/workers/guards at the first quest location available for hire by talking to the bartender in Rorikstead. NPC's at the property would be initially disabled. Maybe a quest starter via a note with the keys or starts when the initial quest ends. Find note: "Staff left to Rorikstead, maybe someone there can have them return to work?" Instant start: "I should hire some staff to take care of the place, Maybe someone in Rorikstead knows where I can find some?" * Third quest is find the corpse, loot to get a note, read the note, kill bad guy, talk to maiden in distress, end quest with ownership to cabin, makes maiden potential marriage partner by setting relationship high enough. Maiden then says she will bury her brother. brother's corpse vaporizes and headstone appears after a few days. * There is a fourth but I think its too small to worry about an actual quest since you read a note at a door, take the key, go inside and kill someone because he attacks on sight. house is yours now. Here are the assets that are already in place:http://skyrim.nexusmods.com/downloads/file.php?id=9512 Thanks for any help. Edited February 23, 2012 by jet4571 Link to comment Share on other sites More sharing options...
jet4571 Posted February 23, 2012 Author Share Posted February 23, 2012 Nobody has any links that would help get me started? I am not asking for someone to do it for me. Link to comment Share on other sites More sharing options...
Pifanjr Posted February 23, 2012 Share Posted February 23, 2012 You should probably read the script tutorials and then look in the creation kit at quests that do roughly the same thing. Link to comment Share on other sites More sharing options...
SinderionsBones Posted February 23, 2012 Share Posted February 23, 2012 quick tips while I'm here, you can find how to do these things at creationkit.com: To start with this could all be done in one quest. To keep it easy to manage for your first quest. You do have "you now own the property" several times, which makes it confusing. I'm kinda assuming this is all the same building minus maybe the bad guy that killed the corpse. Some notes on how I would set it up for example no attempt made to make it intriguing: Anything that doesn't ring a bell, this is basic quest stuff, so go to creationkit.com and familiarize yourself with it first :D will help you on any quests you do. Stages:0 ;startup stage10 I Found a note looking for a key ;Starts quest, triggered by reading the note, in notes ALIAS script fragment(not base, easier to keep track of), sets objective 10 displayed on pickup with conditions that the stage is less than 1020 I Found the key, I'll check inside;When you pick up the key, on key alias fragment, on added to player inventory stage 10, set's objective 10 complete, shows 2030 Hey a free house, sweet;When you enter house trigger this when stage is 20. set obj 20 complete, shows obj 3040 This place even comes with staff. All I have to do is go to Rorikstead and hire them back.;When you pick up the staff note(in notes alias fragment, with conditions yaddayaddayadda). obj 30-4050 Ok, hopefully they'll come out of hiding, time to get back to the house.;Triggered from the dialog you put in just for the staff guy in rorikstead. obj 40-50, enable the staffers60 Wow, no such thing as a free lunch; When you pick up the note from the corpse. complete obj 50, show 6070 I found a note on the dead guy. Maybe it will say how to get rid of a STUPID DEAD BODY IN MAH NEW HOUSE!!; After picking up, and before reading the note on the corpse. complete obj 60, show obj 70 and 80 90 I've rescued the maiden and killed the bad guy. I should return to the house.; after you've killed bad guy and rescued maiden. show obj 90 (70 and 80 are completed in the maiden and bad guy alias scripts) remember to set the maiden to follow you after you kill bad guy.100 Oh what a surprise with this house.. there's a crazy man; triggered maybe when you open the door, or read the note on the door. complete 90, display 100110 This god forsaken house seems to be mine. Pending any more horrible discoveries at least; shutdown stage. triggered from the crazy mans ALIAS fragment when you kill him.Objectives:10 Find the key to whatever house; points to the key to the house.20 Enter whatever house; points to something in house to get the marker to point inside.30 Check out the new house; points... anywhere, maybe the the note related to the staff.40 Talk to guy in Rorikstead about rehiring staff; points to the guy in rorikstead.50 Return to check on your staff;points to the corpse for the next part. you'll see your staff on the way :D60 Read the note you found on the ded guy; Points to note.70 Kill bad guy; points to bad guy, same time next obj80 Rescue maiden; points to maiden, same time as last obj90 Return to house; points to house, maybe the door with the crazy man behind it.100 kill the crazy man; points to crazy man 1. Create Aliases in your quest for the starting note, the key, all the staff npc's, the guy to hire the staff, the corpse, the corpses note, the maiden, the tombstone, the note on the door, and the attack on site guy.2. Enter the objectives and stages you want, rough sketch of them above. The stuff before the ; is for the text/journal entry respectively, after is notes on quest progression management don't worry about that yet.3. For the objectives, in each ones "target" list, put in the appropriate ALIAS that you created in step one.4. Place the code for the actions described above after the ; in the stages and alias fragments. These should all be clear after going through all the quest tutorials on creationkit.com. Anything unclear should be cleared up with a quick look at the script reference. If not repost here I guess lol. Good practice note: All code for manipulating the quest objectives and stage, should, if possible, be in the quest stage script fragment. The only thing the scripts in the Alias fragments should do is decide when to change the stage, and then change it. oh, and when enabling the staff, you may have to do something like Alias_BobSmith.GetReference().Enable() instead of just Alias_BobSmith.Enable(). I'm not certain, but otherwise it may just not work, or may only enable him during the quest or something... I've only tried with an npc that I wanted to disappear once the quest was complete. If you make an alias for the staff people, make sure to click "allow disabled" so it will still pick them up even if they're disabled. Again, if this doesn't make 100% sense, hit the books! It's rly not complicated once you have it explained. Ok that ended up being way more than tips. A good excercise in putting ideas into quest form though thanks lol. I've only done half a dozen or so so far for skyrim and still keep missing little details here and there constantly. Tips to help while trying it out in game: Say your quests ID is WFHMQ (Waterfall Home Main Quest) you can go to the console (~) and type "Setstage WFHMQ 30" to go to stage 30. It will act as if you just entered the house for that first time and run the appropriate actions. This is essential to fully testing your quests, or getting past bugs you find, so you can get on with testing the rest of the quest. Link to comment Share on other sites More sharing options...
jet4571 Posted February 24, 2012 Author Share Posted February 24, 2012 Thanks SinderionBones. That's very helpful. It would actually be 3 separate quests because there are 3 houses that are unrelated to each other. Waterfall Home has 7 outbuildings and a mine. Pineview which is the rescue the maiden one is a cabin with a stable. and Water View is just one building. I will be adding more places to stay throughout Skyrim in this one mod all with similar quests to either of the first 3. Just nothing as complex as the main house with that many people. One would say an ultimate housing mod. Link to comment Share on other sites More sharing options...
jet4571 Posted February 24, 2012 Author Share Posted February 24, 2012 Ok how do you get the objectives for each stage to use one of 2 scripts thats on the item? I want the notes where you pick them up and it starts a new stage requiring you to read the note. I used script parts from the tutorial site and added them to the items so i am not sure if they work. Reason is I am doing it this way is that players can be dumb as dirt and thinking just picking up the note is good enough. this way the game tells them to read the note to advance the quest. waterfallnotepickup : Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) if !akSourceContainer Debug.Trace("I picked up " + aiItemCount + "x " + akBaseItem + " from the chair at Waterfall home") endIf endEvent waterfallReadNote : Event OnRead() Debug.Trace("Find the key to Waterfall Home") endEvent waterfallFoundKey : Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) if !akSourceContainer Debug.Trace("I picked up " + aiItemCount + "x " + akBaseItem + " from Orotheim") endIf endEvent waterfallFoundJournal : Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) if !akSourceContainer Debug.Trace("I picked up " + aiItemCount + "x " + akBaseItem + " from the storage room") endIf endEvent waterfallReadjournal : Event OnRead() Debug.Trace("I need some staff to take care of the place while I am gone. Maybe someone in Rorikstead knows of any. I will check Frostfruit Inn.") endEvent Link to comment Share on other sites More sharing options...
jet4571 Posted February 24, 2012 Author Share Posted February 24, 2012 (edited) Do I insert MyQuest.SetObjectiveCompleted(10) in the item script and not into the quest? and how exactly would I do that? I dont know what the f*** any of that s*** above means, I dont know where the f*** that s*** belongs. And I dont f***ing know what the f*** I am doing. Everything about scripts, program languages is complete f***ing gibberish to me! This is frustrating as hell and the f***ing editor should have the basic choices of is in inventory or is read with true/false checkboxes and then stage complete go to next. Edited February 24, 2012 by jet4571 Link to comment Share on other sites More sharing options...
SinderionsBones Posted February 24, 2012 Share Posted February 24, 2012 (edited) The "Code" you have to use advance basic quests is really mostly just the objective completed stuff and set stage stuff. You were asking where it should go. It should go in the quest item alias script, and the quest stage script fragment boxes depending on what it does and when you want it to happen. The most obvious problem with that stuff you posted, if you weren't aware, is that all that Debug.trace() does is write what you say to a log file so you can get a detailed check of if it's working or not. The above code doesn't actually do anything but write lines to a file in your skyrim logs directory. When I referred to showing, and completing objectives above I meant literally the functions SetObjectiveDisplayed() and SetObjectiveCompleted(). Look those up. There really isn't as much to learning the very basics of the scripting as you may think. Don't get stuck on properties either, I have professionally programmed and know several programming languages pretty well and I still get confused at how exactly and where exactly properties are taken care of if you're not writing the complete script yourself. Just pay attention to the basic things you need. Tips: In most quest stage fragment boxes, you will see only something like this:SetObjectiveCompleted(20)SetObjectiveDisplayed(30)That litterally just completes objective 20, and displays objective 30 and points the player to 30. That's all many quest stages do. The players journal is updated with the text in the journal entry box automatically. the events go in the quest items alias script3. The alias concept is a little bit to get used to I know, but read about it a few times and you'll get the idea. What you really want is something like (assuming OnRead() is an event, I haven't tried that yet): This, with the correct stage, in the notes alias script: Event OnRead() GetOwningQuest().SetStage(30) endEvent On the keys alias script: Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) if !akSourceContainer GetOwningQuest().SetStage(40) endIf endEvent I also just realized there isn't an alias fragment duh. It's still straightforward enough. Either put it in the items script fragment instead of the alias, or you have to make an actual script for the alias. http://www.creationkit.com/Bethesda_Tutorial_Quest_Aliases That shows you what to do but kind of rolls over how to get into the script for the alias. 1. Click add script over on the right hand side.2. Select [New Script]3. Name it, put a description if you like, click ok.4. Now the script will be in /data/scripts/source/yourscript.psc You can go to that and open it up with notepad, it's just a text file. Add in your code snippets after the stuff that's in there, save, and see if it works. Edited February 24, 2012 by SinderionsBones Link to comment Share on other sites More sharing options...
jet4571 Posted February 24, 2012 Author Share Posted February 24, 2012 Yeah helps if I knew what the scrips meant when i look at them. I have alias and all that but no scripts on them. the beginner tutorial said to put the script on the amulet so i thought the scripts went on the object. One of the reasons I was wondering if there was a tutorial closer to what i want to happen rather than bendu olo retrieve quest. looking at it and I was this has nothing to do with what I want so how can it teach me? So i will need 2 more alias's. 1 for the note and 1 for the journal. first set does on pickup and second would be on read? so when the objective looks for the alias there is one script set thats does the true/false variable... Link to comment Share on other sites More sharing options...
jet4571 Posted February 25, 2012 Author Share Posted February 25, 2012 Ok here is what i did i duplicated the journal and note alias. one has the read script and the other has the pickup script. event 10 has the note pickup script. event 20 has the read script. event 30 has the key script. event 40 has the journal pickup script. event 50 has the journal read script. event 60 has the dialogue script for the bartender Mralki in Rorikstead (used the bendu olo tutorial as that was the only useful part of that whole thing is the beginning dialogue). event 60 is not made yet and it will be the NPC's activation. last one is mission complet hooray you own the place and have staff. So far using the code you wrote should get me to Rorikstead and should work in sequence I hope. 3 pickups and 2 reads, 5 aliases 5 objectives, and five stages. I used to do event creation that was scripts but the editor made the scripts and I could do the whole thing without ever touching notepad or my keyboard. you opened a window in the editor. inside the window were 3 boxes. left box was a list from 0 to who knows. you right clicked there and selected new. in the other 2 boxes which were stacked on the right you had if on the top and the then on the bottom. on the ifs you right clicked and selected new which brings up a box where you chose who what when where variables, as in pick the variable that is possible such as if item is picked up true/false and/or checks. and finally the item the event deals with such as a briefcase. in the then window you have the same thing as the if except the variable are all then variables. such as set waypoint to #. Next event could be for the if event 0 is true and player reaches waypoint # then mission complete. last event would be if event 0 is false and player reaches waypoint # then mission failed. You could make 100's of events that control everything, and have events that have many variables. Every possible variable was in the choices, you pick one and check the 2 boxes that apply. Once you setup all the variables you hit the ok button and it created the script, This was back in 1998 and the editor used wireframes for object placement and NO drag and drop ability or widgets to move an item. now here it is 2012 and they couldn't make the scripts built by the editor but they can have the editor create whole new NPC's from scratch??? i am amazed! Link to comment Share on other sites More sharing options...
Recommended Posts