> For the complete documentation index, see [llms.txt](https://docs.viverse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.viverse.com/playcanvas-toolkit/building-with-playcanvas-toolkit/quests.md).

# Quests

***

## About

PlayCanvas Toolkit comes with an integrated Quest System, unlocking a new dimension of interactive storytelling for creators. Each Quest can feature multiple Tasks, which can be completed by the Player in any order. Once all Tasks for a given Quest are completed, the Quest is marked as done, which can advance the experience further by triggering some Action — for example opening a locked door in your World, or granting the Player a new weapon.

## Usage

The Quest Configurator can be found under <img src="/files/LIbvRsU51N1QmihzQ3AD" alt="" data-size="line"> VIVERSE Menu, which is located in the left sidebar. You can have multiple Quests, each featuring multiple dedicated Tasks, as long as you devise unique names for all of them.

In order to control Quest flow in your experience, you should use [Actions](/playcanvas-toolkit/building-with-playcanvas-toolkit/actions.md#usage) of type `Quest`, which provide a useful set of commands:

{% columns %}
{% column width="75%" %}

* **Start Quest** — start a particular Quest with a given `Quest Name`. Starting the Quest will display Quest UI Overlay in your experience, showing current Quest Title, Description, and a list of Tasks that Player should complete in order to resolve this Quest. If you're already running another Quest while starting a new one, this Action will be ignored
* **Complete Task** — mark Simple Task with a given `Task Name` as completed. This leads to crossing off that Task in Quest UI todo list. Once Task is completed, it cannot be completed again until the entire Quest is reset
* **Add Task Progress** — advance Progress Task with a given `Task Name` by 1 step. This leads to incrementing a counter related that Task in Quest UI todo list. Once the counter reaches `Total Progress`, the Task is marked as completed and is crossed off todo list
* **Reset Quest** — reset a particular Quest with a given `Quest Name`. Resetting the Quest will erase its current progress if any. If Quest is already marked as completed — this property will be reset as well
  {% endcolumn %}

{% column width="25%" %}

<figure><img src="/files/dwhW3XvIb0aPndGY1oNi" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2dmnaz1MS1KC4Acos3n0" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/TKX9R7P6QrHVT3BLoVxy" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/T0S5qAxtoZ3rgzbs9LdZ" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

## Task Reference

***

{% columns %}
{% column width="16.666666666666664%" %}
`Simple`<br>
{% endcolumn %}

{% column width="50%" %}
The Simple Task represents a single activity, like collecting an item or opening a door. To complete it, the Player should trigger an **Action** of type `Quest` with `CompleteTask` command
{% endcolumn %}

{% column width="33.33333333333332%" %}

<div><figure><img src="/files/faRxyI3DCAPz1IG9gjAV" alt=""><figcaption></figcaption></figure> <figure><img src="/files/PnzccSRIKaI4y2UDWiTt" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

***

{% columns %}
{% column width="16.666666666666664%" %}
`Progress`<br>
{% endcolumn %}

{% column width="50%" %}
The Progress Task represents sequential activity, where multiple actions can contribute to task's progress — like collecting 3 gems, or killing 10 zombies. To advance a Progress Task, the Player should trigger an **Action** of type `Quest` with `AddTaskProgress` command
{% endcolumn %}

{% column width="33.33333333333332%" %}

<div><figure><img src="/files/UMi21jdBPqjDiiyGREtG" alt=""><figcaption></figcaption></figure> <figure><img src="/files/B57ohzCug2tOq5LXilr2" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.viverse.com/playcanvas-toolkit/building-with-playcanvas-toolkit/quests.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
