Page 1 of 1

Looking for Guidance on Combining Custom Quest Mechanics with a Dialogue System

Posted: Thu Dec 12, 2024 8:05 am
by Callitiya
Hello Everyone,

I'm currently working on a game that heavily relies on both branching dialogue and custom quest systems. I've been exploring Pixel Crushers' Dialogue System and it seems like a fantastic solution for handling conversations, but I'm having some trouble figuring out how to integrate it with my custom quest mechanics.

Specifically, I want to trigger specific quest events from within dialogue choices. For example, if a player selects a certain dialogue option, it should either advance the quest or unlock specific objectives tied to the character or world state. My quest system is a custom solution I've built, and I want to make sure it's fully compatible with the Dialogue System without introducing too much complexity.

I’m looking for advice or best practices on the following:
  • How do I efficiently link quest objectives and dialogue choices? Ideally, I’d like to avoid overly complex scripts or excessive code duplication.
  • Is there a way to manage the state of multiple quests or characters in the Dialogue System without creating redundant data structures?
I also checked this: Dialogue system for unitymsbi but didn't get any exact clarification on this.

Any resources or documentation that might help me with this integration would be greatly appreciated.
Additionally, if anyone has experience combining custom systems with the Dialogue System, I would love to hear about your approach and any challenges you faced during integration. I’ve already gone through the basic tutorials, but it seems like there may be more advanced techniques to make this integration smoother.

Thanks in advance for your help!

Re: Looking for Guidance on Combining Custom Quest Mechanics with a Dialogue System

Posted: Thu Dec 12, 2024 11:24 am
by Tony Li
Hi,

I'll assume you have some basic C# methods to manage quests, such as IsQuestActive("questname") and SetQuestActive("questname"). Simply register these methods with Lua and use them in dialogue entries' Conditions and Script fields. (This is the same thing that the Dialogue System's built-in quest system does.) You can configure a CustomLuaFunctionInfo (also covered in the link above) so you don't have to type the function names.