Quests on Dialogue System

Announcements, support questions, and discussion for the Dialogue System.
germanosk
Posts: 6
Joined: Sun Nov 10, 2024 7:29 pm

Quests on Dialogue System

Post by germanosk »

Hi folks

I'm trying to prototype a small adventure game and decide to use your plugins to help, it has been impressive and I found a lot of useful features.

I'm aiming for something really simple for my quests, like tracking some activated items, if talked to some people, which options to choose and the current skin being used, so basically boolean, integer and text variables.

My first question is, given how simple my quests intend to be, should I use both Dialogue System and Quest Machine? I currently own both anyways but I'm not sure if it is better or worse to have both and how easy it is to make them communicate.

Second, while looking to better understand the quest inside the Dialogue system, I found this post https://pixelcrushers.com/phpbb/viewto ... ck+entries. But compared with my quests, I don't have the option to track variables in the quest entries
screenshot_dialogue_system_quest.PNG
screenshot_dialogue_system_quest.PNG (67.65 KiB) Viewed 214 times
. So, did something change, and those got removed, or is it related to the code in that post that enables these possibilities?

Thanks in advance for the support and congrats for the really good assets!
Last edited by germanosk on Mon Nov 11, 2024 5:29 am, edited 1 time in total.
User avatar
Tony Li
Posts: 22112
Joined: Thu Jul 18, 2013 1:27 pm

Re: Quests on Dialogue System

Post by Tony Li »

Hi,

Quest Machine makes it easier to manage quests at runtime, and it can also procedurally generate quests, but the tradeoff is that you have to learn it and set up the integration. Here's a video tutorial if you want to go that route: Dialogue System + Quest Machine (+ Love/Hate, but you can skip tutorial 3 if you're not using Love/Hate).

For basic quests, the Dialogue System is more than adequate.

The URL in your post doesn't quite for work me. However, to answer your question, nothing was removed. If you want to show the value of a variable in any quest text, such as the Description field or an Entry field, use the [var=variable] markup tag.

Useful links:
germanosk
Posts: 6
Joined: Sun Nov 10, 2024 7:29 pm

Re: Quests on Dialogue System

Post by germanosk »

Hi Toni

Yeah, I went a couple of years without using PHPBB, and I totally forgot and messed up with the link. Now it is fixed, and it should probably add a little bit more context.

My question about the variables is more about how to automatically change the state of a quest or a quest entry to success instead of manually checking and setting each entry as successful and then marking the quest as successful.
User avatar
Tony Li
Posts: 22112
Joined: Thu Jul 18, 2013 1:27 pm

Re: Quests on Dialogue System

Post by Tony Li »

germanosk wrote: Mon Nov 11, 2024 5:34 amMy question about the variables is more about how to automatically change the state of a quest or a quest entry to success instead of manually checking and setting each entry as successful and then marking the quest as successful.
The Dialogue System is designed to manually change quest states. (See the link "How To: Set Up Quests Without Conversations" for a way to automate it, although setup is not as streamlined as Quest Machine.)

In your case, you may want to use Quest Machine for your quests. A quest in Quest Machine is entirely different from a quest in the Dialogue System. You can define counters in Quest Machine quests that can automatically increment based on various activity. You can set the quest to advance when a counter reaches a certain value. There are many other ways you can make quests advance automatically, too.
germanosk
Posts: 6
Joined: Sun Nov 10, 2024 7:29 pm

Re: Quests on Dialogue System

Post by germanosk »

Thanks a lot Toni, I'll shift to the Quest machine then. Congrats on your work both plugins are really nice to work with.
User avatar
Tony Li
Posts: 22112
Joined: Thu Jul 18, 2013 1:27 pm

Re: Quests on Dialogue System

Post by Tony Li »

Thanks!
germanosk
Posts: 6
Joined: Sun Nov 10, 2024 7:29 pm

Re: Quests on Dialogue System

Post by germanosk »

I need a clarification, it is not clear on the tutorial neither in the docs.

On this tutorial Dialogue System + Quest Machine uses the Quest Machine UI to display both the journal and the HUD? If yes, is there a way to use the Dialogue System UI instead?

I managed to create my own quest, use the variables from LUA, trigger the quest from the dialogue system and completing, but I noticed that Quest Machine HUD was being used to display the quest progress and the Dialogue System journal was displaying the Dialogue System version of the quest. Just wondering if it is my mistake or if it is like this.
User avatar
Tony Li
Posts: 22112
Joined: Thu Jul 18, 2013 1:27 pm

Re: Quests on Dialogue System

Post by Tony Li »

Hi,

It's no mistake. Please use the Quest Machine HUD. To do that, simply add content to the quest's Active > HUD Text section.
germanosk
Posts: 6
Joined: Sun Nov 10, 2024 7:29 pm

Re: Quests on Dialogue System

Post by germanosk »

Nice, so I got this bit right then :D
So what is idea related to the Menu when integrating Quest Machine + Dialogue System? Right now when I press ESC, I get the Dialogue System, am I missing something that would trigger the Quest Machine instead? Or should I replace just the Quest Log button in the Dialogue System Menu?

Pic for reference
screenshot_dialogue_system_quest2.PNG
screenshot_dialogue_system_quest2.PNG (528.87 KiB) Viewed 147 times
User avatar
Tony Li
Posts: 22112
Joined: Thu Jul 18, 2013 1:27 pm

Re: Quests on Dialogue System

Post by Tony Li »

Consider using a more advanced menu system than the DemoMenu script. It's fine for early testing or if you don't need anything more than what it provides. If the DemoMenu is sufficient for your needs, you can make a copy of the script and change the first section in the WindowFunction() method from this:

Code: Select all

            if (GUI.Button(new Rect(10, 60, windowRect.width - 20, 48), "Quest Log"))
            {
                if (closeWhenQuestLogOpen) SetMenuStatus(false);
                OpenQuestLog();
            }
to this:

Code: Select all

            if (GUI.Button(new Rect(10, 60, windowRect.width - 20, 48), "Quest Journal"))
            {
                if (closeWhenQuestLogOpen) SetMenuStatus(false);
                GameObjectUtility.FindFirstObjectByType<QuestMachine.QuestJournal>().ShowJournalUI();
            }
Then use your custom copy in place of DemoMenu.
Post Reply