Hi everyone,
I am new to modding Daggerfall.
I have a question about ending quests and linking them. Basically, I want to make a series of interlinked quests that tell a continuing narrative. I want you to have a companion that follows you with multiple possible endings and different fates of that companion. However, it appears that quests are standalone and can trigger quests, but are limited in terms of influence beyond that. Am I right?
Is it possible for one quest to end other quests or would all the ending quests have to be in a single quest?
To complicate it I wanted to have a face on screen during the quests to show your companion and the face cannot be cleared by another quest.
I worry that a single enormous quest file would become buggy, whereas a group of smaller ones are easier to work with. I have five quests so far that work and trigger each other, but if the companion dies in one of the quests the others continue because I don’t know a mechanism to stop them.
Thanks for your help.
Linking and ending multiple quests
- Jay_H
- Posts: 4072
- Joined: Tue Aug 25, 2015 1:54 am
- Contact:
Re: Linking and ending multiple quests
Hello!
Quests have a minimal ability to influence each other; what the main quest uses is a series of "global variables," which are permanent flags stored inside the save game. However, global variables are limited in number so far, which means they aren't very feasible for modded quests. Whether that'll change in the future, I don't know.
One thing you can still do without the use of global variables is a fairly recent quest action added by TheLacus; see it in action here: https://github.com/JayH2971/dfunity-que ... 04.txt#L68
What I'm doing here is starting two quests simultaneously, ANMQ04A and ANMQ04B. I can then run a different action based on whether the quest was completed successfully or unsuccessfully; the first _winnulfaga_ is run for success, and the second _winnulfaga_ is run for failure (it's not a great example since it's the same task I run both times, but it's the only example I have so far). This allows you to run smaller quests as events that'll influence your questline.
Persistent people are easy to create but a little tricky to maintain. You can choose a permanent portrait for that person and keep it on screen as much as you like, but there are certain gaps, such as when one quest ends and another begins, where you have to be mindful as to its temporary disappearance.
Feel free to ask more questions, I'm happy to see someone making the attempt
Quests have a minimal ability to influence each other; what the main quest uses is a series of "global variables," which are permanent flags stored inside the save game. However, global variables are limited in number so far, which means they aren't very feasible for modded quests. Whether that'll change in the future, I don't know.
One thing you can still do without the use of global variables is a fairly recent quest action added by TheLacus; see it in action here: https://github.com/JayH2971/dfunity-que ... 04.txt#L68
Code: Select all
_startquest_ task:
reveal _diren_
reveal _shedun_
run quest ANMQ04A then _winnulfaga_ or _winnulfaga_
run quest ANMQ04B then _winmedora_ or _winmedora_
Persistent people are easy to create but a little tricky to maintain. You can choose a permanent portrait for that person and keep it on screen as much as you like, but there are certain gaps, such as when one quest ends and another begins, where you have to be mindful as to its temporary disappearance.
Feel free to ask more questions, I'm happy to see someone making the attempt
- Hazelnut
- Posts: 3016
- Joined: Sat Aug 26, 2017 2:46 pm
- Contact:
Re: Linking and ending multiple quests
I was not aware of that new action Jay, interesting and I will have a closer look sometime.
Anyway I just wanted to mention that the Mountain Rumors master rank fighters guild quest in my Roleplay & Realism mod is implemented as three separate quest scripts. It's fairly simple with an intro quest that is given out, then the main script which starts when the player arrives at the right place, and a third which deals with DB consequences if you mess up. They all end themselves and don't interact beyond starting the next one, but I figured it might be a helpful example of simple quest chaining. the main reason I split the quest into three separate scripts is that it was getting far to large and complex. The 2nd script (main one) is still pretty horrendous but I was at least able to split parts out that were logically separate.
You can find them on my github repo.
Anyway I just wanted to mention that the Mountain Rumors master rank fighters guild quest in my Roleplay & Realism mod is implemented as three separate quest scripts. It's fairly simple with an intro quest that is given out, then the main script which starts when the player arrives at the right place, and a third which deals with DB consequences if you mess up. They all end themselves and don't interact beyond starting the next one, but I figured it might be a helpful example of simple quest chaining. the main reason I split the quest into three separate scripts is that it was getting far to large and complex. The 2nd script (main one) is still pretty horrendous but I was at least able to split parts out that were logically separate.
You can find them on my github repo.
See my mod code for examples of how to change various aspects of DFU: https://github.com/ajrb/dfunity-mods
-
- Posts: 67
- Joined: Wed Jun 29, 2022 8:54 am
Re: Linking and ending multiple quests
Hi, thanks for your replies, I appreciate the help.
My only experience of making quests before this was Morrowind.
The code you provided is great!
_startquest_ task:
reveal _diren_
reveal _shedun_
run quest ANMQ04A then _winnulfaga_ or _winnulfaga_
run quest ANMQ04B then _winmedora_ or _winmedora_
I could use it to run the ‘side quests’ without having to end the main quest or have huge quest files. As for the main quest I could do as you suggest make it more like a daisy chain with the companion’s face moving from quest to quest. Perhaps with long timers so the quest is silent
for a while but keeps the face.
Instead of being able to do the main quests in any order, I also wondered if something like this would work to add some random quests in between the main quests and make the mod less predictable.
_nextquest_ task:
when _qgclicked_ and _slain_
pick one of _quest1_ _quest2_ _quest3_
_quest1_
start quest DW00001
end quest
_quest2_
start quest DW00002
end quest
_quest3_
start quest DW00003
end quest
I’ve had a look at the mountain rumours quest and I see what you mean about it been long. That’s what I feared would happen with my quest if I had to add them up, but I’m glad I can see how long they can be and still work ok!
I will probably have lots of questions trying to get this done.
One question is how you keep the face portrait the same between quests as that will make the story odd if your companion changes appearance every few weeks?
Thanks for your help
p.s the quest writing tutorial is amazing…
My only experience of making quests before this was Morrowind.
The code you provided is great!
_startquest_ task:
reveal _diren_
reveal _shedun_
run quest ANMQ04A then _winnulfaga_ or _winnulfaga_
run quest ANMQ04B then _winmedora_ or _winmedora_
I could use it to run the ‘side quests’ without having to end the main quest or have huge quest files. As for the main quest I could do as you suggest make it more like a daisy chain with the companion’s face moving from quest to quest. Perhaps with long timers so the quest is silent
for a while but keeps the face.
Instead of being able to do the main quests in any order, I also wondered if something like this would work to add some random quests in between the main quests and make the mod less predictable.
_nextquest_ task:
when _qgclicked_ and _slain_
pick one of _quest1_ _quest2_ _quest3_
_quest1_
start quest DW00001
end quest
_quest2_
start quest DW00002
end quest
_quest3_
start quest DW00003
end quest
I’ve had a look at the mountain rumours quest and I see what you mean about it been long. That’s what I feared would happen with my quest if I had to add them up, but I’m glad I can see how long they can be and still work ok!
I will probably have lots of questions trying to get this done.
One question is how you keep the face portrait the same between quests as that will make the story odd if your companion changes appearance every few weeks?
Thanks for your help
p.s the quest writing tutorial is amazing…
- Jay_H
- Posts: 4072
- Joined: Tue Aug 25, 2015 1:54 am
- Contact:
Re: Linking and ending multiple quests
That's one of the tricky parts. You might use the "face" attribute when defining the person; I've never used it so I don't know how reliable it is, but that's something to experiment with. See this line for an example: https://github.com/Interkarma/daggerfal ... R.txt#L338
Code: Select all
Person _father_ face 5 group Noble male remote anyInfo 1013 rumors 1014
The other alternative is to use a unique NPC sprite, which will never change. You can use it in each quest without concern it'll change: https://github.com/Interkarma/daggerfal ... 1.txt#L109
Code: Select all
Person _lichface_ face 169 named Lord_Darkworth
-
- Posts: 67
- Joined: Wed Jun 29, 2022 8:54 am
Re: Linking and ending multiple quests
Thanks this is all very helpful, I will try to use the
Person _father_ face 5 group Noble male remote anyInfo 1013 rumors 1014
and see if it keeps the same face.
Being able to keep the same NPC sprite will also help. I was thinking of using some of the NPC’s Cliffworms added in the famous faces of the Iliac bay mod, as a good way to get the player to travel across the bay and see these lesser characters.
I am also learning on the job and discovering new actions I can add to quests so I expect a lot of revision as I go (I’ve been looking through as many other quests as I can to see how they are written and what they do).
Person _father_ face 5 group Noble male remote anyInfo 1013 rumors 1014
and see if it keeps the same face.
Being able to keep the same NPC sprite will also help. I was thinking of using some of the NPC’s Cliffworms added in the famous faces of the Iliac bay mod, as a good way to get the player to travel across the bay and see these lesser characters.
I am also learning on the job and discovering new actions I can add to quests so I expect a lot of revision as I go (I’ve been looking through as many other quests as I can to see how they are written and what they do).