> For the complete documentation index, see [llms.txt](https://picnic-in-the-oblivion.gitbook.io/level-editor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://picnic-in-the-oblivion.gitbook.io/level-editor/waypoints-or-hard/transitions-and-waypoints.md).

# Transitions and Waypoints

Let's create transition to that tree! First we start from easy one - teleporting.

<figure><img src="/files/CysUoowllLQ7CH9JqxKd" alt=""><figcaption><p>We want to transition to this tree</p></figcaption></figure>

First - create transition zone, go to ZONES/ folder and drag transition\_zone.tscn to the scene.

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

Then go to HELPERS/ folder and drag transition\_target.tscn to the level.

<figure><img src="/files/q3bkcnLWGD4D2dtfUjm7" alt=""><figcaption><p>Helper - 3D Arrow for player's future position and rotation</p></figcaption></figure>

This helper will be our spawn point when we use transition zone. Let's set transition\_zone parameters inside inspector in Keys.

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

Basic transition zone has:

**last\_point\_is\_end** - used only with waypoints, last point will be the same as target\_object

**name** - must have unique name for scripts

**target\_object** - name of our helper, will teleport player to target position <mark style="color:red;">\*can't be empty</mark>

**waypoints** - play walking animation between points and then at the last point teleport player to target position <mark style="color:red;">\*if empty - only teleport to target</mark>

Let's rename our target helper to "tree\_target"

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

Set same name to **target\_object** in transition\_zone Keys.

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

Let's test. We teleported to the helper and looked at the same direction that the arrow is looking.

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

But let's make it difficult - create some waypoints path.

Click Right mouse button on the level root node and select Add Child Node...

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

Search for the Path3D.

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

Click create.&#x20;

{% hint style="warning" %}
Do not move it from zero XYZ position.
{% endhint %}

When Path3D is selected you'll see that you have new tools at toolbar at right top corner.

<figure><img src="/files/bSUvlIkzmSfl53T8BtUJ" alt=""><figcaption><p>New path3D tools</p></figcaption></figure>

{% hint style="info" %}
First - select point\
Second - Select control point\
Third - Add point\
Fourth - Delete point\
Fifth - Close curve
{% endhint %}

Create first point. with Third button on toolbar (green plus sign with green dot). Also don't forget to switch to top view.

<figure><img src="/files/PF7nJRDkfOCTnH9dnqDF" alt=""><figcaption><p>Top view. Can be switched by clicking on X Y or Z at the right top corner.</p></figcaption></figure>

And put first point.

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

Then go to the inspector and open Curve parameter. Select Points group.

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

Set Y to 1.7, so the next new points will be at the same height.

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

Now draw click new point and place the last one close to helper target.

<figure><img src="/files/3oKH3kV6EIZ3hNpSAM3A" alt=""><figcaption><p>Waypoints</p></figcaption></figure>

Okay, lets name our Path3D with unique name and put same name intro transition\_zone Keys.

<figure><img src="/files/eN2J4PCHOBy75aU5ETnd" alt=""><figcaption><p>Rename Path3D</p></figcaption></figure>

<figure><img src="/files/dZJv1MGJrOWJ9HUzECvd" alt=""><figcaption><p>Set waypoints key with Path3D name</p></figcaption></figure>

Lets test! See, now player walk with these points right into target.

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

Hey, let's delete target helper and will try to make last point of waypoint ours target!

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

Keep waypoints name, but delete target\_object and turn on last\_point\_is\_end.

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

Now, let's make transition trigger with level change function! You can do it in a few ways - manual or using prefab. Let's talk about a manual option.

Select transition zone on the current level and change its "id" from "transition" to "transition\_to\_level" and add a new String key "level" with String value of target level ID. For example - let's set "intro" level from res\://assets/levels/

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

As you can see, after we reach last point of waypoint - we load new level.

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

I recommend to block rooms between for prevent player use triggers through walls.

<figure><img src="/files/jsVjaMwwRjySzoSUNDcP" alt=""><figcaption><p>Orange - blocks between rooms | Screenshot from old level editor</p></figcaption></figure>


---

# 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:

```
GET https://picnic-in-the-oblivion.gitbook.io/level-editor/waypoints-or-hard/transitions-and-waypoints.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
