A Quest is the structure that allows you to create missions and storylines for your game. Quest Development is divided in two stages, creating the skeleton of the Quest, and implementing the Quest inside the game.
The Skeleton of the Quest is created through the Quest Editor Window by describing and creating the Quest Stages, while the implementation of the quest (the actual things that happens in the game) are carried by Dialogues, NPCs, Items, Behaviours and in general any other element of the RPG Creation Kit.
A Quest can serve several different purposes, it can act as a main quest, side quest, guild quest or any other type of quest you can imagine. Storylines and questlines are created by concatenating quests one after the other in the game.
As it happens for the Demo, you can easily create a branched storyline, where the player can decide what to do and how to shape the world. While joining one side may prevent the other side's quests to be played, you can still fill the world with secondary quests or secondary storylines that lives by their own.
To create a New Quest, right click in the Project Window -> Create -> RPG Creation Kit -> Quests-> New Quest
To open a Quest inside the Quest Editor Window, simply click the "Configure Quest" button in the inspector while a quest is selected.
The Quest Data refers to the first tab of the Quest Editor Window and it represents the base information of the quest, such as its ID, Name, Description, and so on. Let's analyze every element in detail:
- Quest Name: The name of the quest, what will also be displayed in game.
- Quest ID: The ID of the quest, this MUST be unique and not shared with any other quest.
- Quest Description: The description of the quest, displayed in game through the Journal.
- Quest Priority: determines the priority of the quest, it is currently unused.
- Quest Script: the Quest Script that will run periodically while this quest is active.
- First Stage is Default Stage: check this box if the first stage you create is the first one that should be played when this quest is added.
- Allow Repeated Stages: check this box if the player may fail and repeat stages.
- Quests Conditions: Conditions for this quest to be added, if the conditions are not matched, the quest will not be added.
Quest Stages represents the objectives of each quest, they can be linear or branched in base of the Player actions. Everytime a Quest Stage is set, if checked, the Log Entry will be displayed on the UI for the player to see. If set, the Result Script will run as soon as the Quest Stage is set.
A Quest Stage has two main events that happens for them:
- Set: Happens when a new objective is set for the player to accomplish.
- Complete: Happens when the player has just completed the objective.
When you'll switch to the Quest Stages tab in the Quest Editor, you'll see on the left a list containing all the stages of the Quest. Click on any stage and on the right you'll be able to configure it.
Every Quest Stage is identified with a number, Stage 10, Stage 20, Stage 30, and so on and so forth.
You should to use increments of tens instead of "Stage 1 -> Stage 2 -> Stage 3" because if in the future you decide to add a new stage between two existing stages, you'll have to shift IDs for everything, which is a terrible thing to do.
- [QUEST STAGES]: the collection of Quest Stages for the current quest.
- Description: the description of the curret stage, displayed for the player.
- Complete Quest: check this box if upon completing this stage, the quest itself is completed.
- Fail Quest: currently unused.
- Display Log Entry: check this box if you want the player to be prompted with the description of the stage as soon as it gets set.
- Result Script: the Quest Stage Script that will run as soon as the stage gets set.
- Quest Stage Conditions: the Conditions that must be matched for the quest stage to be set.
NPCs and Dialogues tabs
Currently the NPCs and Dialogues tabs are unused.
The Current Stage of the Quest
As the Player plays through a quest, the Current Stage of the Quest becomes the last set objective. If we Set the stage of the quest to be 20, the Quest's Current Stage will have the value 20. This is an extremily useful variable that will let you determine at which stage of a quest the player is.
For example, you may want some dialogue option to show up only if the player is at a determined stage of a quest, maybe because he learned something he didn't knew before arriving at that stage of the quest.
If a Quest has never been added for the Player, it will have a Current Stage value of 0.
To know more of how a quest is made, see the tutorials: