Quests#

A player quest will be created from a defined a QuestDefinition that will include requirements for both unlocking and completion as well as rewards. These can be created for a player via multiple paths, the main path is from a Telemetry Event for a personaUid / userId that matches the type of either a requirement or unlockRequirement or can be created from the QuestRoute.

Requirements#

There are two types of QuestRequirement that define the requirement or requirements to unlock or complete a quest for a player. This is tracked for unlock via the unlockProgress array and completion via progress array. These requirements are satisfied via Telemetry Events, see processor for more information. The requirement type matches to a Telemetry Events’s type and it computes if the requirement is completed by the leveraging the value field.

Unlocking#

Once all the requirements are met in the unlockProgress array a quest will be marked as unlocked. If the QuestDefinition is defined as autostart and the configuration apply_event_on_autostart is set to true, the quest dateLastStarted will be filled out with the current time and current event will be applied to the progress array.

Completion#

Once all the requirements are met in the progress array, completions are incremented, dateLastCompleted is set to current time and dateLastStarted is unset. If defined, quest rewards will be awarded.

Rewards#

Quest rewards come in three different types ITEMS, PROGRESS and QUEST defined in the type. Rewards types of QUEST and PROGRESS will issue Telemetry Events to be processed downstream by appropriate system. For these two types entity would map to the Quest/Progression type defined in that systems definition requirements and value will will be used for the progressing the requirements. For ITEM type rewards, entity will map to a resource uid and value will be the quantity. The item types will make a transaction rest request with the economy services using the bank as the form to award items.