Page 1 of 1
Set Up Dialogue-Based Quests?
Posted: Thu Oct 13, 2022 11:20 am
by DrewThomasArt
How would I set up quests that are entirely based on talking to different NPCs?
For example, you must talk to and receive a quest from Batman to go talk to Superman. And then when you talk to Superman (thus completing the quest upon reaching the end of the conversation), Batman's dialogue is updated when you return to him.
What would be the method or sequence to call to change these NPCs dialogue. Thank you!
Edit: Seems like Quest Machine would be helpful to get? But I still wouldn't know how to make dialogue-based quests
Re: Set Up Dialogue-Based Quests?
Posted: Thu Oct 13, 2022 12:02 pm
by Tony Li
Hi,
This is the best type of quest for the Dialogue System.
Define your quest in the Dialogue Editor's Quests section. The example below has two quest entries: one for Superman, one for Batman:
- jlaQuest.png (43.79 KiB) Viewed 338 times
The Superman entry starts active. When the player talks to Superman (I got the order flipped from your example), the node to ask about the quest has Conditions that Superman's entry is active. If the player chooses this, the Superman entry becomes successful and the Batman entry becomes active:
- supermanConversation.png (73.33 KiB) Viewed 338 times
Then you can set up a similar conversation for Batman.
If you only need to talk to Superman to complete the quest, then you don't need those quest entries. You can just set the whole quest to success when the player talks to Superman. Your Batman conversation can check if the quest's state is success.
Re: Set Up Dialogue-Based Quests?
Posted: Thu Oct 13, 2022 12:38 pm
by DrewThomasArt
Tony Li wrote: ↑Thu Oct 13, 2022 12:02 pm
Hi,
This is the best type of quest for the Dialogue System.
Define your quest in the Dialogue Editor's Quests section. The example below has two quest entries: one for Superman, one for Batman:
jlaQuest.png
The Superman entry starts active. When the player talks to Superman (I got the order flipped from your example), the node to ask about the quest has Conditions that Superman's entry is active. If the player chooses this, the Superman entry becomes successful and the Batman entry becomes active:
supermanConversation.png
Then you can set up a similar conversation for Batman.
If you only need to talk to Superman to complete the quest, then you don't need those quest entries. You can just set the whole quest to success when the player talks to Superman. Your Batman conversation can check if the quest's state is success.
I love this, thank you.
How can I make it so that the Quest Tracker appears on the side of the UI when the quest is active?
Re: Set Up Dialogue-Based Quests?
Posted: Thu Oct 13, 2022 12:54 pm
by Tony Li
Hi,
Tick the quest's Trackable and Track On Start checkboxes.
The Dialogue Manager GameObject's Instantiate Prefabs component instantiates a basic quest tracker HUD prefab. You can duplicate this prefab, customize it, and assign the duplicate to Instantiate Prefabs instead of the original, or you can remove the prefab from the Instantiate Prefabs component's list and add your quest tracker HUD directly to the Dialogue Manager's Canvas (or even create a new Canvas in the Dialogue Manager just for the HUD).
Re: Set Up Dialogue-Based Quests?
Posted: Thu Oct 13, 2022 6:04 pm
by DrewThomasArt
EDIT: IT WORKS NOW. I forgot to set the entire quest group to active on the completion of the first dialogue. For anyone looking in the future, make sure to set both the Quest group and the quest entry to active for it to show on the quest tracker
And for alerts, click on the Alert settings in the dialogue manager and make "Allow Alerts during conversations" is checked
Original comment: They're checked. I made it so the tracker appears when the game begins, but it doesn't visually update when the quest is set to active. It just stays blank. I also can't see the "Talk to Batman" alert that is set to appear, which I'm guessing is for the same reason.
But the quest is definitely getting set to active and functions correctly. It's just the visuals aren't showing. Do you have any idea what this issue could be?