Architecture

This page explains the various classes and structs in the quest system plugin, their purposes and how they work with the other classes.

  • Action: Anything that gets added to the quest graph is an action. Actions are the basic building blocks of a quest.

    Actions are object instances that can execute logic synchronously or asynchronously. Actions can have functions as input exec pins and delegates as output exec pins. The flow of a quest is decided by delegates calling functions inside a quest graph. The quest editor can be used to connect delegates with functions to establish the quest flow.

    Actions can also have properties exposed in the nodes as input and output pins. The input pins of an action node get their values from the connected pins when the action is activated.

  • Objective: This is an action that represents an objective in a quest.

  • ActionSequence: These are actions that can hold multiple actions as children.

  • Quest: This is a specialised action sequence that is recognised as a quest by the Quest System. This is the class for the assets that will be directly managed by the quest system.

  • Quest Manager: This is a component for the game state class that manages replicating quests to clients. This component is optional.

  • Dialogue: This is an action that represents a dialogue.

  • Dialogue Entities: These are the building blocks for a dialogue. All dialogue entities have one input pin. This is the play pin used to play the entity. Dialogue entities can have multiple output pins which can be used to branch the dialogue.

  • Dialogue Player: This class handles playing the dialogue. These are created for each dialogue instance that is being played by the dialogue manager. These only exist on the server.

  • Dialogue Component: This class handles showing the dialogue entities to the player. This handles showing dialogue text on the screen and playing audio.

  • Dialogue Manager: This is a component that should be added to the game state class. This manages the lifetime of all dialogues that are currently being played.

  • Notebook: These are containers for properties that are used by the quest system.