Question about Entries

Announcements, support questions, and discussion for Quest Machine.
Post Reply
OliverWoody
Posts: 1
Joined: Thu Apr 25, 2024 9:38 pm

Question about Entries

Post by OliverWoody »

I am making a project that uses the dialogue system. One of the quests in this project requires you to talk to multiple NPCs to complete. I tried to do this by using multiple entries (subtasks) for one quest. I have it so when you talk to each character, one of entries is completed. This does work, when I talk to a character, that entry is completed in the quest log. But when all the entries are completed, the main quest isn't completed. It still shows up as active in the quest log. I want it where when all the entries are completed, the main quest is completed. It there a way to make this happen with entries? Am I misunderstanding what entries are? And if using entries aren't the best way to go about this quest, what is the best way?
User avatar
Tony Li
Posts: 20698
Joined: Thu Jul 18, 2013 1:27 pm

Re: Question about Entries

Post by Tony Li »

Hi,

Quest entries are the way to go.

Here's an example scene:

DS_TalkToNPCsQuestExample_2024-04-25.unitypackage

It works similarly to How To: Set Up Quests Without Conversations. Each of the NPCs runs a conversation that sets its quest entry to success. Each NPC also has a Dialogue System Events component whose OnConversationEnd() event uses another Dialogue System Trigger on a separate GameObject named "Check Quest". This Dialogue System Trigger checks if all of the quest entries are in the success state. If so, it sets the main quest state to success.

It's admittedly simpler in Quest Machine, where you'd set up a node for each talk-to-NPC requirement, and link those to a node that requires all of the parent nodes to be true (i.e., player has talked to all NPCs):

qmTalkToNPCs.png
qmTalkToNPCs.png (27.55 KiB) Viewed 39 times

But it's still very do-able in the Dialogue System.
Post Reply