KicklerOfButts Posted July 28, 2020 Posted July 28, 2020 Long story short: All NPCs should be killable IMO so I'm experimenting in my spare time with a mod to make that possible in practice without directly breaking the game outright. (This is not an announcement or a promise, just stating the circumstances surrounding my question(s).) Currently, I'm working mainly on trying to make sense of Bethesda's spaghetti-code-esque approach to the Quest system. Conundrum of the minute: Does anyone know if these Target References in the quest MQ101 are actually necessary or if they're just specified for clarity's sake but could point to NONE and still function? As far as I can tell, there should be no need for these condition checks to point at those references just to check the status of the quest stages in this very quest. Basically, do you think that setting these references to NONE will break something? I plan to try it myself later if nobody replies, but I figured I'd ask for advice first since fiddling with base Skyrim stuff is all kinds of volatile. Any and all feedback is greatly appreciated. ❤️
walkingwounded Posted July 29, 2020 Posted July 29, 2020 To be honest, I have no idea (the CK is not my skill), but the logic is sound if those values are of the "if exists" nature. I suspect setting them all to one value would trigger multiple conditions or break it entirely. I would interpret the first two lines as: -if Ralof alive/present and you arrive at the Inn, trigger something (scripted dialog) the 110, 120, 180 values are conditional states set earlier (only one state permitted at a time), and you may have to modify those earlier quest stages to create a new 'both dead' or "both alive" conditional state to check here You are very ambitious (a "kill all the things" mod). Morrowind allowed you to bump off NPC's at will, but would tell you sometimes if you broke 'something important' (sort of a "you are screwed now, reload a save" type thing), but you could keep playing if you wanted. This was changed to make 'required=immortal' to prevent breaking quests accidentally (with radiant ai it is possible for NPC's to kill each other, unscripted) and the developers had to check for and handle early death ("oops, that NPC died, now what?"). Main quest NPC's for sure, side quests, less so. In this case if you want to bump off Hadvir or Ralof early (before Riverwood) or let a bear kill them, you have to ensure the conditions for the dragonborn quest are not broken (either nets you some Riverwood reputation points and guides you in the direction of Whiterun). Achievable as long as you can account for the conditions of all quests related to the NPC (that check for their presence). Advice: ADD a new condition rather than disable or remove the exiting ones (no reason to prevent those if they do survive and you could even add a condition where both live) Condition A: Hadvir alive (stage range between 120 and 180) AND arrive at the Mill, do something Condition B: Ralof alive (stage range between 110 to 120) AND arrive at the Inn, do something different Condition C: neither alive (this you would have to create, adjusting or working around the other conditions) Condition D: both alive (same as C, set/check conditions) You can probably drop in some new states between 120 and 180 and adjust the existing conditions to exclude the new states. It's all about satisfying the conditions in a way that prevents a hard block/break. Since the example is a bunch of AND conditions set earlier (in Riften), you have to account for those states, plus your own. Complicated. Immersion: why would you go to Riverwood after escaping Riften if no one guided you in that direction? Why would you report the dragon attack to the Yarl in Whiterun? Unrelated dialog: "we should probably go our separate ways from here" <waits for you to follow, chats with you>
KicklerOfButts Posted July 30, 2020 Author Posted July 30, 2020 Thanks for the reply! To clarify a bit on the "kill all things" mod, the idea is not actually very grand in practice just a lot of work. Let the player kill anyone without breaking the game in non-immersive ways. The only thing technically stopping the PC from killing "immortal" NPCs of any kind is the immortal setting. The idea of the mod is simply to set as many of the immortal NPCs as possible to be mortal in the CK, and to make the bare minimum changes necessary to prevent the game from breaking outright as a result of any of those NPCs dying. For instance, Ralof and Hadvar aren't actually very important characters. Hadvar guides you to Riverwood, talks a bit about the Legion and on a few other occasions can appear in the background as a random NPC during Legion events. Making him killable without breaking the game should, in theory, be fairly straightforward. As for the question mark of "If you kill NPC X then how will you find/start quest Y?" well the answer depends on the NPC. I would argue Ralof and Hadvar don't need any replacement information giver if the PC decides to kill them immediately after being untied, part of the consequence of killing the first friendly face who helps you out is that they, well, are no longer there to help you out. All it would take is really a check in Riverwood so the interactions that are based on Hadvar/Ralof being with you don't trigger and voila, NPC killable with nothing but the natural consequences that would come with it. (Though not really because Legion/Stormcloaks stuff to tweak a bit as well, but that should also be doable.) Really, right now what's proving a challenge is figuring out how to actually make changes in practice since the creation kit doesn't make it very obvious how shit works. Like the screenshot I shared. There really is no reason for the quest to have to check if those individuals are alive right there for this part to do what it needs to do, and yet it seems to do so. Does it do it because it has to, just to clarify which option is for which target, or just because whoever made the quest at Bethesda is inept? It makes me wanna tear my hair out! But yeah, I'll experiment with what you suggested. I think it helped me understand the flow of logic a bit better. Still not promising anything, like I said this is a spare-time project that may or may not go anywhere in the end. Thanks a ton for the feedback though! ❤️
eflat0 Posted July 31, 2020 Posted July 31, 2020 On 7/30/2020 at 5:55 AM, KicklerOfButts said: Thanks for the reply! To clarify a bit on the "kill all things" mod, the idea is not actually very grand in practice just a lot of work. Let the player kill anyone without breaking the game in non-immersive ways. The only thing technically stopping the PC from killing "immortal" NPCs of any kind is the immortal setting. The idea of the mod is simply to set as many of the immortal NPCs as possible to be mortal in the CK, and to make the bare minimum changes necessary to prevent the game from breaking outright as a result of any of those NPCs dying. For instance, Ralof and Hadvar aren't actually very important characters. Hadvar guides you to Riverwood, talks a bit about the Legion and on a few other occasions can appear in the background as a random NPC during Legion events. Making him killable without breaking the game should, in theory, be fairly straightforward. As for the question mark of "If you kill NPC X then how will you find/start quest Y?" well the answer depends on the NPC. I would argue Ralof and Hadvar don't need any replacement information giver if the PC decides to kill them immediately after being untied, part of the consequence of killing the first friendly face who helps you out is that they, well, are no longer there to help you out. All it would take is really a check in Riverwood so the interactions that are based on Hadvar/Ralof being with you don't trigger and voila, NPC killable with nothing but the natural consequences that would come with it. (Though not really because Legion/Stormcloaks stuff to tweak a bit as well, but that should also be doable.) Really, right now what's proving a challenge is figuring out how to actually make changes in practice since the creation kit doesn't make it very obvious how shit works. Like the screenshot I shared. There really is no reason for the quest to have to check if those individuals are alive right there for this part to do what it needs to do, and yet it seems to do so. Does it do it because it has to, just to clarify which option is for which target, or just because whoever made the quest at Bethesda is inept? It makes me wanna tear my hair out! But yeah, I'll experiment with what you suggested. I think it helped me understand the flow of logic a bit better. Still not promising anything, like I said this is a spare-time project that may or may not go anywhere in the end. Thanks a ton for the feedback though! ❤️ Killing Hadvar or Ralof during the civil-war missions is tricky, may require setting of a new npc or cell to "meet up with", because when you look at those particular quest - on taking them they're the target on the quest advance, thus if they're dead between the time of choosing either side to fight on and the mission it may become impossible to finish the civil-war without use of consoling that particular queststage. That is why they were marked on the road out of Helgan via later dialog quest, and later when you choose a side to fight on. The code you're looking at are examining the quest stages of the escape choices the player made... both defining the dialog stage path due "who the player is following... there are no if then else or case statements so decision and iteration have to be handled via one-sided if's.
KicklerOfButts Posted August 2, 2020 Author Posted August 2, 2020 On 7/31/2020 at 11:18 PM, eflat0 said: The code you're looking at are examining the quest stages of the escape choices the player made... both defining the dialog stage path due "who the player is following... there are no if then else or case statements so decision and iteration have to be handled via one-sided if's. Still doesn't answer why the IF checks are pointed specifically at the NPCs as Target Refs when there is no obvious need for them to do so. The Quest Stages being checked are part of the same quest as the IF checks so it should have access to them regardless, and the Target Refs aren't even used to check anything. Question marks like "How to make X work if NPC Y is dead" come later once I have enough of an idea of how all this functions to start making serious changes.
eflat0 Posted August 2, 2020 Posted August 2, 2020 10 hours ago, KicklerOfButts said: Still doesn't answer why the IF checks are pointed specifically at the NPCs as Target Refs when there is no obvious need for them to do so. The Quest Stages being checked are part of the same quest as the IF checks so it should have access to them regardless, and the Target Refs aren't even used to check anything. Question marks like "How to make X work if NPC Y is dead" come later once I have enough of an idea of how all this functions to start making serious changes. Sure it does, what's being controlled there are the spawning and control of the ai packages of the npcs in that single instance - Hadvar waits for you to find equipment, Hadvar says this dialog, Hadvar moves again "Come on let's go", etc... What you also realize is the game in essence is comprised of instances the states of one instance are carried to another further along by game objects in many cases and some those are named npcs. This is actually funny, I had the full options on immerssive patrols loaded. I walked into Riften with Serana and some patrol came in with us - and they were a hostile one toward me... so a fight broke out which wiped out half of Riften. Aside from a few guards It was like a ghost town after that. I eventually loaded an old save later as soon as I realized - finding out in hindsight - that there were no longer enough (five people who counted towards helping the town folk) in order to become thane (without consoling in). Ever drop a bar of gold in the middle of the Riften market-place? Typically I tend to try to save named npcs because they're the only ones interesting... for as many npc's there are, you'd have to admit it's quite sparse (what they call a city is little more than a hamlet) even with additional mods. NPC ai lacks any intelligence it's not really as if they've any rational for self-preservation nor thought behind any of their skills and attributes, even when next to dead they run just a little bit, ball-up and die - even a priest with a healing spell. Certain quest items can be stuck in inventory without the target to remove them. i.e. I had to carry Kahvozein's Fang for quite some time until I could get my alteration skill to 90 so I could talk to Toldir and get the quest to get dragon heartscales... that of course allows him to sell master level spell books afterwards - which of course he's the only place to get them. Generic npcs are of course non-essential, the named npcs often contain varied dialog quest and scripts for possible action driving quests following the story-lines. Obviously, Farengar sets up the initial and end states of the dragonstone quest, if he's not around it's of little use in the story as even when you have it before he initiates the quest - he's a target for the end of the quest. Delphine somehow hears of that and sets up the story behind the horn, the dragon map etc... Even if you set the state by some other means such as "I found a dragonstone, I must research what it's for", I suppose you can point to look in a library for a book. but there is little story as to what it is nor why it's even needed without some means to drive it, and certain npc's are a part of that which is why they're connected to states as targets (ref-id.) just like any other target (ref-id). When Skyrim was first released the main quest-line was terribly broken - you had to console around Esbern, it ticked off quite a few people and many returns from consumers where it was thier first experience with a Bethesda game.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.