> For the complete documentation index, see [llms.txt](https://help.craftsmanplus.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.craftsmanplus.com/play/layers/game-mechanics/endless-runner.md).

# Endless Runner

A three-lane runner. The player swipes left and right to dodge obstacles and grab collectibles.

Endless Runner moves the player's character forward through three lanes while obstacles come toward it. The player swipes left or right to change lanes, dodging obstacles and picking up collectibles. Score climbs every second the player survives.

### Layers

* **Character (Image)** and **Character (Sequence)** are the player's character. The game uses one or the other, depending on **Character Type**.
* **Floating Obstacle 1** to **3**, **Small Side Obstacle 1** to **3**, and **Large Side Obstacle 1** to **3** are the obstacle designs. The game uses as many of each as the matching setting asks for.
* **Collectible Item** is the pickup that adds bonus points. Hidden when **Collectible Item** is off.

### Game Settings

**Layout**

* **Character Type** sets whether the character is a static **Image** or an animated **Sequence**. Default is **Image**.
* **Floating Obstacles** sets how many floating obstacle designs are used, from **0** to **3**. Default is **1**.
* **Small Side Obstacles** sets how many small side obstacle designs are used, from **0** to **3**. Default is **1**.
* **Large Side Obstacles** sets how many large side obstacle designs are used, from **0** to **3**. Default is **1**.
* **Mix Obstacle Types** lets different obstacle types appear in the same row. Default is **on**.

**Mechanics**

* **Hit Obstacle Animation** plays on the character when it hits an obstacle. Default is **Shake**. Also offers **Blink**, **Bounce**, **Bubble**, **Pulse**, **Rotate**, **Slide**, or **None**.
* **Item Spacing** sets the space between rows of obstacles, as a percentage of the play area height, from **1** to **100**. Default is **20**.
* **Player Speed** sets how fast the run moves, from **1** to **20**. Default is **5**.
* **Progressive Speed** speeds the run up over time. Default is **on**.
* **Collectible Item** adds collectibles to the run. Default is **on**.
* **Collectible Density** sets how many collectibles appear: **High**, **Medium**, or **Low**. Default is **Medium**. Only shown when Collectible Item is on.

### Progression

| Variable              | Default | What it does                                 |
| --------------------- | ------- | -------------------------------------------- |
| **Starting Score**    | 0       | The Score the game begins at.                |
| **Score Per Second**  | 1       | Points added for each second of play.        |
| **Collectible Score** | 5       | Points added for each collectible picked up. |
| **Starting Health**   | 10      | The health the player begins with.           |

Triggers can watch **Score** and **Health**.

* **Score** rises every second, and jumps by Collectible Score on each pickup.
* **Health** drops by one each time the character hits an obstacle.

**Example triggers:**

* Score **Reaches** 100, action starts your end card scene.
* Health **Drops to** 0, action starts your try-again scene.

{% hint style="info" %}
Score Per Second keeps adding points even if the player never swipes. Raise the win threshold, or lower Score Per Second, if you want the player to earn the win through collectibles.
{% endhint %}


---

# 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://help.craftsmanplus.com/play/layers/game-mechanics/endless-runner.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.
