> For the complete documentation index, see [llms.txt](https://lethium.gitbook.io/lethium-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lethium.gitbook.io/lethium-docs/gameplay/tutorial.md).

# Tutorial

The new-player cinematic tour: how it plays, the starter reward, and how to edit its script.

File: `plugins/ClickEmCore/modules/tutorial.yml`. Commands: `/tutorial`, `/howtoplay`, `/stoptutorial`, `/skiptutorial`.

The tutorial is an **85 second guided camera flight** over spawn, the first zone, the zone corridor and the end-of-world bosses, followed by a short list of starter goals. World 4 and 5 bosses are **deliberately never shown**, so they stay a surprise.

The flight is played by the **CinematicView** plugin. `tutorial.yml` is the script: every camera position, travel time and the text shown at each shot. ClickEm builds the CinematicView views from it, so you never place a camera by hand.

### When it plays

| When                                        | Setting                                                          |
| ------------------------------------------- | ---------------------------------------------------------------- |
| Automatically the first time a player joins | `first-join.enabled`, waits `delay-ticks` (60) first             |
| Any time by command                         | `/tutorial`, the **How To Play** button in `/clickem`            |
| Skipped                                     | Sneak (Shift) ends the flight, `/tutorial stop`, `/stoptutorial` |

If CinematicView is not installed nothing breaks: players get the plain **chat version** under `chat-fallback`.

### Starter reward

```yaml
first-join:
  reward:
    coins: 750
    essence: 10
    message: "clickem.tutorial.starter-kit"
```

A **one-off** payment when a player finishes or skips the tutorial on their **first** join. It never pays again however often they replay it. It exists because one kill earns about one Coin and the cheapest Upgrade costs a few hundred. Set either value to 0 to turn it off.

### The script (`cinematic:`)

| Key                 | Meaning                                                                               |
| ------------------- | ------------------------------------------------------------------------------------- |
| `view-prefix`       | Prefix of the CinematicView views (`ce_tut`). Acts become `ce_tut_arrival` and so on. |
| `travel-type`       | `smooth` (glides, needs Minecraft 1.21.10 or newer), `teleport` (jumps), `legacy`.    |
| `sound`             | Played once as the flight starts.                                                     |
| `last-shot-seconds` | How long the final shot holds before control returns.                                 |
| `acts`              | The flight, in order. Each act is one continuous flight in **one world**.             |

A shot has:

| Field                | Meaning                                                                                                                                                 |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x`, `y`, `z`        | Where the camera sits.                                                                                                                                  |
| `yaw`, `pitch`       | Where it looks. `yaw`: `-90` east, `90` west, `0` south, `180` north. `pitch`: 0 level, positive down.                                                  |
| `seconds`            | Time to glide **to the next shot**. The shot's text stays up that whole time.                                                                           |
| `title`, `subtitle`  | On-screen text.                                                                                                                                         |
| `text-seconds`       | How long the text stays (default: the glide time, max 20).                                                                                              |
| `message`            | A chat line at this shot. Use it for anything players should be able to scroll back to.                                                                 |
| `beat`               | A staged moment when the camera arrives: `ability`, `mob-element`, `click-plain`, `click-weak`, `click-element`, `echoes`, `pets`, `boss` or `pillars`. |
| `beat-delay-seconds` | Wait before the beat fires.                                                                                                                             |

Advice from the file:

* Give each text line about **one second per three words, plus one**.
* To make the camera "stop and watch", put two shots a block or two apart with a long `seconds` between them.
* Keep long jumps **between acts**, not inside one. A glide faster than about 70 blocks per second outruns chunk loading.

`beats:` (Zone 4 click demo, the ability shown, the Echoes NPC ring and so on) sets where each staged moment happens. `handoff:` is the starter goals list. `chat-fallback:` is the text version.

### Rebuilding after edits

After editing `tutorial.yml`, run **`/tutorial build`** (staff) so the CinematicView views are regenerated. Then test with `/tutorial`.

### How to

* **Change a line of text:** edit `title`, `subtitle` or `message`, then `/tutorial build`.
* **Retime a shot:** change `seconds`.
* **Move a camera:** change `x`, `y`, `z`, `yaw`, `pitch`.
* **Turn it off:** `enabled: false`, or `first-join.enabled: false` to stop it playing automatically.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://lethium.gitbook.io/lethium-docs/gameplay/tutorial.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
