Quest list format is being updated

For all talk about quests. Creating, testing, bugs, and development progress.
User avatar
Jay_H
Posts: 2530
Joined: Tue Aug 25, 2015 1:54 am

Re: Quest list format is being updated

Post by Jay_H » Sat Feb 09, 2019 7:32 pm

Good! That'll be a very good way to do things. Thanks.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.
Progress on fixing classic quests here.

User avatar
Jay_H
Posts: 2530
Joined: Tue Aug 25, 2015 1:54 am

Re: Quest list format is being updated

Post by Jay_H » Sat May 25, 2019 3:39 am

Looks like the "startquest" quest action ignores the one-time limit. I'm running a quest list like this:

Code: Select all

schema: *name, group, membership, minReq, flag, notes

JHFG001, FightersGuild, M, 0, 0, starts FG002
JHFG002, FightersGuild, P, 0, 1, one-time-limited
FG002 starts each time 001 does. Would it be possible to ensure the limit in these cases?
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.
Progress on fixing classic quests here.

User avatar
Hazelnut
Posts: 1388
Joined: Sat Aug 26, 2017 2:46 pm
Contact:

Re: Quest list format is being updated

Post by Hazelnut » Sat May 25, 2019 2:25 pm

That's because the startquest action does just that with no logic for chosing from a pool or anything. As I've already said, the quest list entries are used for quest pooling and vending. The start action just starts a quest.

So you want it to silently fail if the quest has already been done? Or is there an alternate action you'd like to take?

Would be good to understand what you're trying to achieve to put this request into context.

User avatar
Jay_H
Posts: 2530
Joined: Tue Aug 25, 2015 1:54 am

Re: Quest list format is being updated

Post by Jay_H » Sat May 25, 2019 7:04 pm

So you want it to silently fail if the quest has already been done?
Precisely this; for there to be some way that a quest can only happen once per character, ever. This sounds more like it's on the quest engine side then, doesn't it?

For a more full context, this is the discussion we had on Discord:
ACNAero
vanilla Daggerfall has missions where the outcome is picked at random from a few options, right? what if some of these seemingly innocuous quests ended up as such?

Jehuty
Yeah, that's the idea. These things won't happen every time (some of them will be limited to once per character), since I want the player to be surprised each time. It could be like a 66% chance of a normal quest and 33% chance of some really unique hook following it up.

ACNAero
(possibly complicated to implement one) The target had serious dirt on the man who gave you the quest, and you were sent to silence the blackmail so said dirt wouldn't come out. you find the proof in a book on his/her person and have to decide what to do from there

ACNAero
if you just want some of these to be once per playthrough, then 1H and 1I might have to be mutually exclusive and make it so the other can't happen if one does. depends if you want to code all that
the lazy in me is saying "i'll pick one and have only that, " but i am very lazy :p

Jehuty
Nah, the more extreme the twist, the less likely I'll have it repeat. Like daedra possession would only ever happen once, but blackmail has got to be fairly common. I'm thinking of branching the probabilities like this:
1. Normal outcome (66%) 2. Surprise twist (33%)
2a. 25% Blackmail 2b. 25% slain by Daedroth which then pursues you 2c. 15% Ancient Vampire 2d. 10% Possessed by daedra (1x only). Theoretical percentages of course just as examples, not using everything we've said here.
So you'd have to play the quest a few times to even see a twist, but to see all of them would take a long time. Some players would write on the forums about things no one has ever discovered before, etc. I want a game to exist with things people haven't ever discovered before.

ACNAero
true. however, repeating the blackmail one repeatedly might be contingent on if you don't turn the proof of corruption in to the local law or something and agree to keep quiet for him. or that it can't happen more than once per giver. or anything like that
or only once per region
or i don't know. but having it happen frequently might devalue it is all i'm saying. feels like something that shouldn't be frequent/too repeatable
or maybe an alternate path for the blackmail is that an outlaw is threatening to frame the quest giver, and he's sending you to shut them up for good. at least then there's no way for the corruption to seem cartoonishly frequent

Jehuty
That's a good point. I might have to deflect the blackmail onto the local monarchy then. I can only make whole quests one-time-only.
Actually, I just thought of one possibility. I could duplicate the quest into a blackmail version that only ever gets offered once. The difference would be indistinguishable and could still use the questgiver as an asset
So the workaround I had thought of was to make a duplicate quest that would only be offered once, making use of the quest list. But there are other ones that wouldn't be offered via any questgiver, that would start through a quest action, that I still want to only happen once (IE: two weeks later, you get a report that the foe you slew was possessed by a daedra, and that daedra is now attacking a settlement, and it's your fault). That's the crux of my question here.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.
Progress on fixing classic quests here.

User avatar
Hazelnut
Posts: 1388
Joined: Sat Aug 26, 2017 2:46 pm
Contact:

Re: Quest list format is being updated

Post by Hazelnut » Sun May 26, 2019 9:31 am

What you need is a way of holding state between multiple runs of the same quest. The one time quest mechanism wont currently do what you need. I'll give it some thought though.

User avatar
Hazelnut
Posts: 1388
Joined: Sat Aug 26, 2017 2:46 pm
Contact:

Re: Quest list format is being updated

Post by Hazelnut » Wed May 29, 2019 8:24 pm

Am I right in thinking that you'd usually use the 'pick one of' action to choose the branch Jay?

So, a version of this action that stores some state so it doesn't choose the same branch several times in a row - is that what you are after here?

User avatar
Jay_H
Posts: 2530
Joined: Tue Aug 25, 2015 1:54 am

Re: Quest list format is being updated

Post by Jay_H » Wed May 29, 2019 9:14 pm

I would use "pick one of." However, I'm not concerned about the same option being picked multiple consecutive times, but multiple times at all. One of the options would have to be possible once and then completely blocked out in the future after it's chosen.

I've already thought of a workaround system for this, where I start with a quest that can only be offered once and then use a "start quest ######" while inside it. I'll accomplish both of my objectives this way, if it lacks a bit of flexibility.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.
Progress on fixing classic quests here.

User avatar
Jay_H
Posts: 2530
Joined: Tue Aug 25, 2015 1:54 am

Re: Quest list format is being updated

Post by Jay_H » Thu Jun 27, 2019 1:33 pm

jayhova pointed out this bug in action with the quest list:

https://youtu.be/9lCfF6bGxsI?t=1018

This quest, JHIMA00, is supposed to only trigger as a consequence of JHIM010:

Code: Select all

schema: *name, group, membership, minReq, flag, notes

JHIM010, Commoners, N, 0, 0, a quest buying a treasure map
JHIMA00, Commoners, P, 0, 0, chopping wood for a peasant via IM010
However, the quest was offered by speaking to a commoner. (It says PQ025 but I failed to update that name; this is the quest in full.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.
Progress on fixing classic quests here.

User avatar
Hazelnut
Posts: 1388
Joined: Sat Aug 26, 2017 2:46 pm
Contact:

Re: Quest list format is being updated

Post by Hazelnut » Tue Jul 23, 2019 11:51 am

I fail to see the bug there Jay. You put an entry into the quest list so the quest can be given out. Okay so you used P for prospect but that is irrelevant for commoner quests since commoners are not a guild that you can be a member of in the first place. If JHIMA00 should only start from JHIM010 then it should not be in the quest list at all.
Hazelnut wrote:
Sat May 25, 2019 2:25 pm
As I've already said, the quest list entries are used for quest pooling and vending.
For some reason this message is not coming over clearly is it? :(

Do you have an init quest in this directory? Where is this quest list in your repo, may be easier for me to take a look there, but currently quests will only be startable if they're in the same directory as any that are configured as InitAtGameStart. That met your needs back then, but possibly not now. Maybe this is why you're adding quests to the lists that are not intended to be given out by NPCs?

User avatar
Jay_H
Posts: 2530
Joined: Tue Aug 25, 2015 1:54 am

Re: Quest list format is being updated

Post by Jay_H » Tue Jul 23, 2019 12:10 pm

My confusion came from earlier editions of the quest list requiring you to include any chained quests (ones that start as a consequence of an ordinary one) as a "P" quest. I didn't test whether it was possible to chain a quest without including it in the quest list. If it isn't necessary, then I'll remove it from the quest list.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.
Progress on fixing classic quests here.

Post Reply