# Storyboard

Storyboard-Doku – kompakte, praxisnahe Dokumentation für das scenario.app-Storyboard. Dieses Buch bündelt Grundlagen, Features, Best Practices und Betrieb – klar strukturiert, durchsuchbar und teamtauglich.

Inhalte:

- Einführung: Ziele, Begriffe, Schnellstart
- Grundkonzepte: Szenen, Verbindungen, Karte &amp; Wegpunkte, Medien
- Editor &amp; UI: Oberfläche, Design/Branding, Internationalisierung, Templates
- Features: Waypoint, Pano360, Dialog V2, Embedded Audio/Video, QR/NFC, PhotoCompare, Gamification, Compiler/Runtime
- Hacks &amp; Tipps: CSS/JS-Snippets, Performance, Debugging
- API &amp; Backend: WordPress-Integration, PHP-API, Stripe/Webhooks, Lizenzen
- Deployment &amp; Betrieb: Konfiguration, Backups, Monitoring, Changelog
- FAQ &amp; Troubleshooting: Häufige Fragen &amp; typische Fehlerbilder

So nutzt du die Doku: 1) Einführung lesen, 2) gewünschtes Feature nachschlagen, 3) Hacks übernehmen, 4) Betrieb &amp; Updates beachten. Hinweis: Einige Seiten sind Platzhalter und werden laufend ergänzt. Mitarbeit willkommen – kurze, konkrete Beispiele und Screenshots helfen dem ganzen Team.

# 📘Einführung

# Storyboard-Doku – Start & Inhaltsverzeichnis

> **Kurz gesagt:**<span style="white-space: pre-wrap;"> Diese Doku zeigt dir, wie du mit dem Storyboard von </span>**scenario.app**<span style="white-space: pre-wrap;"> interaktive Erlebnisse baust – von der ersten Szene bis zum Release.</span>

[![Storyboard Screenshot](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/grafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/grafik.png)

<span style="white-space: pre-wrap;">Das </span>**Storyboard**<span style="white-space: pre-wrap;"> ist der visuelle Editor hinter scenario.app. Du erstellst damit Szenen, verknüpfst Orte, Medien &amp; Logik und kompilierst alles zu einem spielbaren Erlebnis (App/Web).</span>  
<span style="white-space: pre-wrap;">Ideal für </span>**Tourismus**<span style="white-space: pre-wrap;">, </span>**Education**<span style="white-space: pre-wrap;">, </span>**Events**<span style="white-space: pre-wrap;">, </span>**Escape-/Rallye-Games**<span style="white-space: pre-wrap;"> und </span>**Location-based Storytelling**.

**Highlights**

- Szenen &amp; Verzweigungen grafisch denken
- Karten &amp; Wegpunkte (statisch + dynamisch)
- Medien nahtlos einbinden (Bild, Audio, Video)
- Feature-Bausteine: Waypoint, Pano360, Dialog V2, Embedded Audio/Video u. v. m.
- Compiler &amp; Runtime rein in JavaScript – schnell, portabel, offline-tauglich

---

## Für wen ist diese Doku?

- **Creator:innen**<span style="white-space: pre-wrap;"> – die schnell produktiv werden wollen</span>
- **Teams/Orgs**<span style="white-space: pre-wrap;"> – die Standards, Workflows &amp; Qualität sichern möchten</span>
- **Dev-Nerds**<span style="white-space: pre-wrap;"> – die tiefer in Compiler/Runtime, API &amp; Deployment einsteigen</span>

---

## So nutzt du diese Doku

1. **Schnellstart**<span style="white-space: pre-wrap;"> lesen → erstes Mini-Projekt bauen.</span>
2. **Grundkonzepte**<span style="white-space: pre-wrap;"> verstehen → Szenen, Karten, Assets.</span>
3. **Features**<span style="white-space: pre-wrap;"> gezielt nachschlagen → Waypoint, Pano360, Dialog V2 etc.</span>
4. **Hacks &amp; Tipps**<span style="white-space: pre-wrap;"> für Feinschliff &amp; Performance.</span>
5. **API &amp; Backend**<span style="white-space: pre-wrap;"> nutzen, wenn du integrierst/automatisierst.</span>

---

# Schnellstart

# In 10 Sekunden zur ersten Szene

> <span style="white-space: pre-wrap;">Dieser Quick-Start führt dich vom Login bis zur </span>**laufenden Vorschau**.  
> <span style="white-space: pre-wrap;">Du brauchst nur einen Account für </span>**storyboard.scenario.app**.

---

<video autoplay="" controls="" height="490" id="bkmrk--2" src="https://docs.scenario.app/attachments/44?open=true" width="871"></video>## 1) Anmelden &amp; Projekt öffnen

1. <span style="white-space: pre-wrap;">Öffne </span>**storyboard.scenario.app**<span style="white-space: pre-wrap;"> und logge dich ein.</span>
2. <span style="white-space: pre-wrap;">Wähle ein vorhandenes Projekt </span>**oder**<span style="white-space: pre-wrap;"> erstelle ein neues.</span>

**Optional:**<span style="white-space: pre-wrap;"> Lege dir eine leere Arbeitsfläche („Canvas“) bereit, damit du die erste Szene frei platzieren kannst.</span>

---

## 2) Erste Szene anlegen

1. **Szene**<span style="white-space: pre-wrap;"> aus der linken Leiste </span>**auf das Canvas ziehen**.
2. <span style="white-space: pre-wrap;">Benenne die Szene (z. B. „Start“). </span>
3. **Doppelklick**<span style="white-space: pre-wrap;"> auf den </span>**Vorschaubereich**<span style="white-space: pre-wrap;"> der Kachel → der </span>**WYSIWYG-Editor**<span style="white-space: pre-wrap;"> öffnet sich.</span>
4. <span style="white-space: pre-wrap;">Fülle </span>**Titel**<span style="white-space: pre-wrap;">, </span>**Text**<span style="white-space: pre-wrap;">, optional </span>**Medien**<span style="white-space: pre-wrap;"> (Bild, Audio, Video) aus.</span>
5. **Speichern**.

<p class="callout info"><span style="white-space: pre-wrap;">Tipp: Halte Szenennamen kurz &amp; sprechend – z. B. </span>`<span class="editor-theme-code">Start</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Brücke</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Fundort_Tag</span>`<span style="white-space: pre-wrap;">. Die erste Szene muss immer </span>`<span class="editor-theme-code">[[Start]]</span>`heißen.</p>

---

## 3) Inhalte bearbeiten (WYSIWYG)

- <span style="white-space: pre-wrap;">Der </span>**Vorschaubereich**<span style="white-space: pre-wrap;"> in der Kachel zeigt dir sofort den Stand.</span>
- Im Editor kannst du Formatierungen, Bilder, Audio/Video, Buttons etc. nutzen.
- <span style="white-space: pre-wrap;">Über </span>**⌘/Ctrl + Z**<span style="white-space: pre-wrap;"> rückgängig, </span>**⌘/Ctrl + S**<span style="white-space: pre-wrap;"> speichert.</span>

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/5k9grafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/5k9grafik.png)

## 4) Szenen verbinden (Logik &amp; Navigation)

<span style="white-space: pre-wrap;">Du kannst Szenen per </span>**Funktion**<span style="white-space: pre-wrap;"> miteinander verknüpfen – einfach </span>**+**<span style="white-space: pre-wrap;"> Button innerhalb der Kachel klicken.</span>

**Typische Verbindungen:**

- **QR-Code:**<span style="white-space: pre-wrap;"> Spielende scannen vor Ort einen Code → nächste Szene.</span>
- **Waypoint (Geo):**<span style="white-space: pre-wrap;"> Eintritt in einen </span>**Standort-Radius**<span style="white-space: pre-wrap;"> schaltet die nächste Szene frei.</span>
- **Dialog/Buttons:**<span style="white-space: pre-wrap;"> Aus der Szene heraus per Button weiterleiten.</span>
- **Zeit/Ereignis:**<span style="white-space: pre-wrap;"> Verzögertes Freischalten, Hinweise, Inventar-Bedingungen.</span>

  
[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/Ez8grafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/Ez8grafik.png)

> Best Practice: Baue kurze, klare Pfade. Lange Ketten erst testen, dann erweitern.

---

## 5) Medien &amp; Extras

- **Bilder**<span style="white-space: pre-wrap;"> (Poster), </span>**Audio**<span style="white-space: pre-wrap;"> (SFX, Voice), </span>**Video**<span style="white-space: pre-wrap;"> (mp4/YouTube) direkt an Szenen binden.</span>
- <span style="white-space: pre-wrap;">Für </span>**360°**<span style="white-space: pre-wrap;">, </span>**Dialog V2**<span style="white-space: pre-wrap;">, </span>**Embedded Audio/Video**: passendes Feature in der Szene öffnen und konfigurieren.
- **QR/NFC**: Codes/Tags im Editor hinterlegen und testen.

---

## 6) Testen in der Vorschau

1. <span style="white-space: pre-wrap;">Rechts oben </span>**„Vorschau“**<span style="white-space: pre-wrap;"> starten.</span>
2. <span style="white-space: pre-wrap;">Durch den Flow klicken </span>**oder**<span style="white-space: pre-wrap;"> QR/Waypoint-Bedingungen mit den Test-Tools simulieren.</span>
3. Ergebnisse notieren, Anpassungen vornehmen, erneut testen.

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/HJkgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/HJkgrafik.png)

---

## Mini-Cheat-Sheet

- **Drag &amp; Drop**: Kacheln frei anordnen; mit Zoom/Fullscreen den Überblick behalten.
- **Doppelklick**<span style="white-space: pre-wrap;"> auf Kachel-Vorschau: Szene im WYSIWYG öffnen.</span>
- **Verbindungen**: Über die Funktionsliste hinzufügen oder bearbeiten.
- **Speichern**<span style="white-space: pre-wrap;">: </span>**⌘/Ctrl + S**.
- **Rückgängig/Wiederholen**<span style="white-space: pre-wrap;">: </span>**⌘/Ctrl + Z**<span style="white-space: pre-wrap;"> / </span>**⌘/Ctrl + Shift + Z**.

---

## Häufige Fragen (kurz)

**Nichts passiert in der Vorschau?**  
<span style="white-space: pre-wrap;">→ Prüfe, ob eine </span>**Verbindung**<span style="white-space: pre-wrap;"> zur nächsten Szene existiert und ob Bedingungen (QR/Waypoint) </span>**erfüllt**<span style="white-space: pre-wrap;"> werden.</span>

**Waypoint triggert nicht?**  
→ Radius groß genug? Test-Position in der Vorschau korrekt gesetzt?

**QR führt ins Leere?**  
<span style="white-space: pre-wrap;">→ Richtigen </span>**Ziel-Knoten**<span style="white-space: pre-wrap;"> gewählt? Szene veröffentlicht/gespeichert?</span>

---

## Nächste Schritte

- **Grundkonzepte**<span style="white-space: pre-wrap;"> lesen (Szenen, Karte &amp; Wegpunkte, Medien).</span>
- **Features**<span style="white-space: pre-wrap;"> im Detail durcharbeiten (Waypoint, QR, Dialog V2, 360°, Embedded Audio/Video).</span>
- **Hacks &amp; Tipps**<span style="white-space: pre-wrap;"> für Performance und Feinschliff übernehmen.</span>

# Begriffe & Glossar

<p class="callout info">Schnelles Nachschlagen zentraler Begriffe rund um das scenario.app-Storyboard.</p>

## Grundbegriffe

**Projekt**  
Container für alle Inhalte (Szenen, Medien, Einstellungen) eines Spiels/Erlebnisses.

**Canvas**  
<span style="white-space: pre-wrap;">Arbeitsfläche, auf der du </span>**Szenen**<span style="white-space: pre-wrap;"> als Kacheln platzierst und verbindest.</span>

**Szene (Node)**  
Inhaltseinheit mit Text/Medien/Interaktionen. Hat Ein- und Ausgänge zu anderen Szenen.

**Vorschau**  
Laufzeit-Simulation deines Projekts. Hier testest du Flows, QR/Waypoint, Medien.

**Feature**  
Erweiterter Funktionsbaustein in einer Szene (z. B. Waypoint, Dialog V2, 360°, Embedded Video/Audio).

**Compiler / Runtime**  
Compiler erzeugt das lauffähige Paket (Web/App); Runtime führt die Logik clientseitig aus.

---

## Elemente &amp; Knoten

**Kachel**  
Visuelle Repräsentation einer Szene auf dem Canvas. Doppelklick → Editor.

**Pin / Connector**  
Andockpunkt an der Kachel für Verbindungen (Pfeile) zu Ziel-Szenen.

**Verbindung (Edge)**  
Kante zwischen zwei Szenen. Kann Bedingungen haben (QR, Geo, Inventar, Timer …).

**Startszene**  
Die erste Szene von deinem Szenario muss immer \[\[Start\]\] heißen. Die Szene mit dem Titel \[\[End\]\] beendet das Spiel.

---

## Navigation &amp; Logik

**Button-Weiterleitung**  
Interaktion innerhalb einer Szene, die zu einer Ziel-Szene führt.

**Bedingung**  
Regel, die erfüllt sein muss, damit eine Verbindung aktiv wird (z. B. „QR gescannt“).

**Timer / Delay**  
Zeitbasierte Bedingung. Schaltet erst nach Ablauf X frei oder zeigt Hinweise an.

**Variablen / Flags**  
<span style="white-space: pre-wrap;">Zustände im Spiel (z. B. </span>`<span class="editor-theme-code">hasKey=true</span>`). Steuern Sichtbarkeit/Verlauf.

---

## Ortsbezogene Funktionen

**Waypoint (Geolocation)**  
Erkennt Betreten eines Geo-Radius (lat/lng + Meter). Löst Verzweigungen aus.

**Geofence**  
Der definierte Radius um einen Punkt; innerhalb davon gilt „am Ort“.

**Simulationsposition**  
<span style="white-space: pre-wrap;">Virtuelle Position in der </span>**Vorschau**, um Waypoints ohne GPS vor Ort zu testen.

---

## Codes &amp; Tags

**QR-Code**  
Optischer Code, der beim Scannen eine Verzweigung oder Aktion auslöst.

**NFC-Tag**  
Kontaktloser Tag, der beim Antippen (Gerät) einen Flow triggert.

---

## Medien

**Posterbild**  
Vorschaubild einer Szene (wird in Kachel/Listen angezeigt).

**Embedded Video/Audio**  
Medien, die innerhalb der Szene abgespielt werden (mp4/YouTube; mp3/Wavesurfer).

**Untertitel**  
Zeitbasierte Texte für Audio/Video. Unterstützt Mehrsprachigkeit.

---

## Dialog &amp; 360°

**Dialog V2**  
Sequenzieller Dialog mit Rollen, Avatar, Farben und Verzweigungen.

**Pano360**  
360-Grad-Bild/Scene mit Hotspots. Unterstützt Navigations-/Info-Hotspots.

---

## Gamification &amp; Inventar

**Punkte &amp; Badges**  
Belohnungssystem. Wird beim Abschluss von Aufgaben/Szenen vergeben.

**Inventar (virtuell)**  
Sammelbare Items, die Logik/Verlauf beeinflussen (z. B. Schlüssel, Hinweise).

---

## Internationalisierung (i18n)

**Locale / Sprache**  
Projekt- bzw. Nutzer-Sprache. Inhalte können pro Sprache gepflegt werden.

**Fallback**  
Ersatzsprache, wenn ein Text in der Ziel-Locale fehlt.

---

## Betrieb &amp; Release

**Build / Release**  
Erzeugtes Paket aus dem Compiler, das veröffentlicht/getestet werden kann.

**Debug-Modus**  
Erweiterte Protokolle &amp; UI zum Fehlersuchen in Vorschau/Laufzeit.

**Changelog**  
Dokumentierte Änderungen pro Version (Features, Fixes, Breaking Changes).

---

## Administration

**Rollen &amp; Rechte**  
Zugriffskontrolle für Bearbeiten, Veröffentlichen, Admin-Funktionen.

**Organisation**  
Team/Unternehmen mit Lizenz, Nutzern, Projekten und ggf. Abrechnung.

---

## Abkürzungen

- **QR**<span style="white-space: pre-wrap;"> – Quick Response Code</span>
- **NFC**<span style="white-space: pre-wrap;"> – Near Field Communication</span>
- **GPS**<span style="white-space: pre-wrap;"> – Global Positioning System</span>
- **i18n**<span style="white-space: pre-wrap;"> – Internationalization (Internationalisierung)</span>
- **CI**<span style="white-space: pre-wrap;"> – Corporate Identity (Branding/Design)</span>
- **UX/UI**<span style="white-space: pre-wrap;"> – User Experience / User Interface</span>

---

## Konventionen (Empfehlungen)

- **Szenennamen:**<span style="white-space: pre-wrap;"> kurz &amp; eindeutig, z. B. </span>`<span class="editor-theme-code">Start</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Bruecke_Nacht</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Station_01</span>`.
- **Medien:**<span style="white-space: pre-wrap;"> web-optimiert, sprechende Dateinamen (</span>`<span class="editor-theme-code">station01_poster.webp</span>`).
- **Farben/Design:**<span style="white-space: pre-wrap;"> zentral definieren (CI), nicht pro Szene neu erfinden.</span>
- **Verbindungen:**<span style="white-space: pre-wrap;"> lieber </span>**kurze Pfade**<span style="white-space: pre-wrap;"> + häufig testen, statt lange Ketten.</span>

---

## Siehe auch

\[\[Schnellstart\]\] • \[\[Szenen &amp; Storyboard\]\] • \[\[Karten &amp; Wegpunkte\]\] • \[\[Features/Waypoint\]\] • \[\[Features/QR &amp; NFC\]\] • \[\[Hacks &amp; Tipps\]\]

# 🧩 Grundkonzepte

# Szenen & Storyboard

<span style="white-space: pre-wrap;">Das </span>**Storyboard**<span style="white-space: pre-wrap;"> ist deine Arbeitsfläche. Jede </span>**Szene**<span style="white-space: pre-wrap;"> ist ein Baustein (Kachel) mit Text, Medien und Funktionen. Durch </span>**Verbindungen**<span style="white-space: pre-wrap;"> (z. B. QR, Wegpunkt, Button) entsteht ein spielbarer Ablauf.</span>

## Grundbegriffe

- **Szene**: Inhaltlicher Schritt (Text, Bild/Video/Audio, UI-Elemente, Logik).
- **Einstiegsszene**: Startpunkt deines Spiels (grün markiert).
- **Verbindung**: Regel, die zur nächsten Szene führt (z. B. „QR X scannen“).
- **Feature**: Zusatz in einer Szene (z. B. Dialog, Countdown, Foto-Challenge).
- **Variablen/Inventar**: Spiellogik &amp; Fortschritt (Zähler, Flags, Items).

## Arbeiten im Storyboard

1. **Szene anlegen**: Szene aus der Werkzeugleiste aufs Canvas ziehen.
2. **Inhalt bearbeiten**: Doppelklick auf die Kachel → Editor (WYSIWYG).
3. **Funktion hinzufügen**: Feature-Modal öffnen → z. B. Button/QR/Wegpunkt.
4. **Verbindung erstellen**: In der Feature-Maske Zielszene wählen (oder im Canvas ziehen).
5. **Vorschau testen**: „Vorschau“ starten, Abfolge und Logik prüfen.

## Szenentypische Inhalte

- **Text**<span style="white-space: pre-wrap;"> (Handlung/Anweisung), </span>**Bild/Video/Audio**
- **UI-Elemente**: Button, Eingabefeld, Dialog/Chat (DialogV2), Szenenanimation
- **Logik**: Variablen setzen/prüfen, Timer/Countdown, Hinweise
- **Interaktion**: QR-Scan, NFC, Wegpunkte (statisch/dynamisch), Foto-(Challenge|Vergleich)
- **Stil**: Hintergrundfarbe/-bild, benutzerdefiniertes CSS/JS (fortgeschritten)

## Flows modellieren

- **Linear**: A → B → C (klassisch, schnell produziert)
- **Verzweigungen**: Entscheidungen / alternative Wege (Buttons, Variablen)
- **Ortsbasiert**: Szenen zwischen Wegpunkten (Navigation + Story)
- **Sammelaufgaben**: Mehrere Ziele in beliebiger Reihenfolge (Variablen zählen)
- **Zeitbasierte Events**: Countdown löst Fallback/Alarm aus

## Best Practices

- **Szenen kurz halten**<span style="white-space: pre-wrap;"> (Mobile-Lesbarkeit).</span>
- **Eine Aufgabe pro Szene**<span style="white-space: pre-wrap;"> (kognitiv klar).</span>
- **Konsistente Benennung**<span style="white-space: pre-wrap;">: </span>`<span class="editor-theme-code">01_Einstieg</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">10_Bridge</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">99_Ende</span>`.
- **Fehlertoleranz**: Fallbacks (Hinweise, alternative Wege).
- **Testen**<span style="white-space: pre-wrap;"> mit echter Bewegung/Gerät (GPS, Scanner, Audio-Lautstärke).</span>

## Veröffentlichung

- <span style="white-space: pre-wrap;">Inhalte fertigstellen → </span>**Release-Cockpit**<span style="white-space: pre-wrap;"> prüfen (Status, Medien, Standort, Preis/Kalender) → </span>**Publish**.

## FAQ

**Mehrsprachig?**<span style="white-space: pre-wrap;"> Pro Sprache eigene Szenen oder Text-Varianten pflegen.</span>  
**Rätsel „soft-lock“ vermeiden?**<span style="white-space: pre-wrap;"> Hinweise/Skip einbauen (Badge/XP entsprechend werten).</span>

# Karten & Wegpunkte

<span style="white-space: pre-wrap;">Karten verbinden deine Story mit der realen Welt. </span>**Wegpunkte**<span style="white-space: pre-wrap;"> markieren Ziele auf der Karte und steuern Fortschritt.</span>

## Wegpunkt-Arten

- **Wegpunkt (statisch)**: Feste Koordinate (Lat/Lng) – ideal für reale Orte/Stationen.
- **Dynamischer Wegpunkt (Locationless)**: Ziel wird relativ zur Spielerlage oder mittels Suche (z. B. „nächste Kirche“) gesetzt.
- **QR/NFC als „Ort“**: Physischer Marker ersetzt GPS-Ankunft.

## Grundworkflow

1. **Startpunkt setzen**<span style="white-space: pre-wrap;"> (Release-Cockpit → Standort).</span>
2. **Wegpunkt-Feature**<span style="white-space: pre-wrap;"> in der Szene hinzufügen:</span>
    - Titel / Beschreibung
    - **Radius**<span style="white-space: pre-wrap;"> (z. B. 30–50 m; Innenstadt kleiner, offenes Gelände größer)</span>
    - <span style="white-space: pre-wrap;">Ggf. </span>**Ankunfts-Aktion**<span style="white-space: pre-wrap;"> (automatisch zur Zielszene springen, Hinweis zeigen)</span>
3. **Zielszene**<span style="white-space: pre-wrap;"> wählen (nach Erreichen).</span>
4. **Test**: Vorschau + reales Gerät (GPS-Genauigkeit, Empfang).

## UX-Tipps

- **Orientierung**: Kurze Anweisung („Gehe zur Brücke, Nordseite“), Bild hilft.
- **Sicherheitszonen**: Keine verbotenen/gefährlichen Bereiche als Ziel.
- **Radius balancieren**: klein = präzise, groß = frustarm; Umfeld entscheidet.
- **Offline-Fähigkeit**: Beschreibungen so formulieren, dass Weg ohne Karte machbar bleibt.

## Dynamische Wegpunkte

- **Anwendungsfälle**: Stadtrallye ab beliebigem Start, spontane Routen.
- **Logik**: Ziel per API/Filter bestimmen → Wegpunkt setzen → Ankunft prüfen.
- **Fallback**: Wenn kein passendes Ziel gefunden → alternative Aufgabe zeigen.

## Zusammenspiel mit QR/NFC

- **Kombination**<span style="white-space: pre-wrap;">: GPS bringt zum Ort, </span>**QR/NFC**<span style="white-space: pre-wrap;"> bestätigt die Station.</span>
- **Anti-Spoofing**: QR/NFC nur am Ort sichtbar/erreichbar platzieren; ggf. Code rotieren.

## Karte &amp; POIs

- **POIs im Release-Cockpit**<span style="white-space: pre-wrap;"> (Parken, Treffpunkt, Einstieg).</span>
- **In-Game Hinweis**: Adresse/Koordinate zusätzlich erwähnen.

## Performance

- **Marker begrenzen**, Cluster nutzen.
- **Bilder komprimieren**<span style="white-space: pre-wrap;"> (Kachel-Overlays, 360°).</span>

## FAQ

**GPS springt?**<span style="white-space: pre-wrap;"> Größeren Radius wählen; hohen Gebäudecanyon beachten.</span>  
**Kein Standortzugriff?**<span style="white-space: pre-wrap;"> Nutzerberechtigung erklären + alternative Hinweise geben.</span>  
**Locationless unscharf?**<span style="white-space: pre-wrap;"> Suchfilter enger fassen oder Mindest-POI-Dichte prüfen.</span>

# Assets & Medien

Medien geben deiner Story Charakter und Lesbarkeit. Nutze sie gezielt und performant.

## Asset-Arten

- **Bilder**: Titelbild, Galerie 1–5, Szenenbilder, Overlays
- **Audio**: Voice-over, Sound-FX, Musik (Wiederholung/lautstärke beachten)
- **Video**: Trailer, Szenen-Clips, eingebettete Sequenzen
- **360°**: Panoramen mit Hotspots (Pannellum-basiert)
- **Dateien**: optionale Downloads (sparsam)

## Anforderungen (Empfehlungen)

- **Bilder**: JPG/WEBP, ≥ 1600 px (Titel 16:9), &lt; 2 MB
- **Audio**: MP3/OGG, 128–192 kbps, mono bei Voice-over
- **Video**: MP4/H.264 oder YouTube-Embed; Trailer 15–60 s
- **360°**: 4k equirectangular, Hotspots dezent

## Titelbild &amp; Galerie

- <span style="white-space: pre-wrap;">Titelbild ist </span>**Pflicht**<span style="white-space: pre-wrap;"> für öffentliche Szenarios (Listen/Karten).</span>
- Galerie zeigt 1–5 zusätzliche Eindrücke (Lightbox).
- **Motivwahl**: hell, kontrastreich, ohne kleinteiligen Text.

## Szenen-Medien

- Über Feature-Modals einfügen (Video/Audio/360°, Hintergrundbild/-farbe).
- **Autoplay dezent**; Nutzerkontrolle priorisieren.
- **Barrierefreiheit**: Untertitel/Transkript bei Voice-over; Alternativtext bei Schlüsselbildern.

## Performance-Tipps

- **Komprimieren**<span style="white-space: pre-wrap;"> (TinyPNG, Squoosh).</span>
- **Lazy-Load**<span style="white-space: pre-wrap;"> in langen Szenen.</span>
- **Wiederverwenden**<span style="white-space: pre-wrap;"> (Asset-Bibliothek statt Mehrfach-Upload).</span>

## Rechte &amp; Sicherheit

- <span style="white-space: pre-wrap;">Nur Medien verwenden, an denen du </span>**Nutzungsrechte**<span style="white-space: pre-wrap;"> hast.</span>
- Keine sensiblen personenbezogenen Inhalte.
- Standortfotos: Privatflächen respektieren.

## 360° Best Practices

- Hotspots klar benennen (Icon + kurzer Text).
- Übergänge zwischen Panoramen mit Pfeilen/Minimap erklären.
- Mobile-Handhabung prüfen (Gyro/Touch).

## Audio Best Practices

- <span style="white-space: pre-wrap;">Lautstärke auf </span>**-16 LUFS**<span style="white-space: pre-wrap;"> (Sprachcontent) normalisieren.</span>
- Musik geloopt? Weicher Loop-Punkt.
- In Außenumgebung: kurze Schnipsel statt Dauerbeschallung.

## Trailer (YouTube)

- <span style="white-space: pre-wrap;">11-stellige ID eintragen, </span>**öffentlich**/„nicht gelistet“.
- <span style="white-space: pre-wrap;">Hook in den ersten </span>**3–5 Sekunden**.
- Untertitel aktivieren.

## FAQ

**Bilder wirken pixelig?**<span style="white-space: pre-wrap;"> Größere Auflösung hochladen, korrektes Seitenverhältnis.</span>  
**Video startet nicht?**<span style="white-space: pre-wrap;"> Mobile Autoplay-Regeln → Nutzerinteraktion verlangen.</span>  
**Audio zu leise?**<span style="white-space: pre-wrap;"> Normalisieren, Headroom prüfen, kein extremes Low-Cut.</span>

# 🎨 Editor & UI

# Oberfläche

<span style="white-space: pre-wrap;">Die </span>**Storyboard-Oberfläche**<span style="white-space: pre-wrap;"> ist deine Leinwand für Szenen, Logik und Medien. Hier erstellst du Flows, verzweigst Entscheidungen und startest die Vorschau.</span>

---

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/7Zngrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/7Zngrafik.png)

## 1) Kopfbereich

- **Breadcrumb / Projekttitel (links)**  
    Zeigt den aktuellen Pfad/Projektnamen.  
    **Tipp:**<span style="white-space: pre-wrap;"> Den Text einfach </span>**anklicken und direkt eintippen**<span style="white-space: pre-wrap;"> → das ist dein </span>**Spieltitel**.
- **Werkzeug-Icons (rechts, projektweit)**  
    Je nach Plan/Rolle u. a.: Styles/Theme, Projekteinstellungen, Medien/Dateien, Analytics.
- **Vorschau (blauer Button)**  
    Startet die Live-Preview des aktuellen Stands.

---

## 2) Arbeitsfläche (Leinwand)

- <span style="white-space: pre-wrap;">Freies </span>**Drag-&amp;-Drop**<span style="white-space: pre-wrap;">-Canvas zum Platzieren und Ordnen deiner </span>**Karten**:
    - **Szenen**<span style="white-space: pre-wrap;"> (Inhalte &amp; Features)</span>
    - **Master / Globale Sektion**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[[ ]]</span>`<span style="white-space: pre-wrap;"> (einmalig)</span>
    - **Bedingungen**<span style="white-space: pre-wrap;"> (Verzweigungen)</span>
    - **Spielende**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[[End]]</span>`<span style="white-space: pre-wrap;"> (einmalig)</span>
    - **Notizen**<span style="white-space: pre-wrap;"> (gelbe Zettel, rein redaktionell)</span>
- <span style="white-space: pre-wrap;">Reihenfolge und Abstand dienen nur der Übersicht; die </span>**Logik entsteht durch Verknüpfungen**<span style="white-space: pre-wrap;"> (Buttons, Wegpunkte, etc.).</span>

---

## 3) Floating-Dock (unten, mittig)

<span style="white-space: pre-wrap;">Von </span>**links nach rechts**:

1. **Neue Szene**<span style="white-space: pre-wrap;"> – Beliebig oft. Normale Content-Szene mit Features.</span>
2. **Master / Globale Sektion `<strong class="editor-theme-bold editor-theme-code">[[ ]]</strong>`**<span style="white-space: pre-wrap;"> – </span>**Einmal pro Projekt**. Enthält globale Elemente (z. B. Stylesheets, Masterszene-JS, Funktionen). Wirkt szenenübergreifend.
3. **Bedingung**<span style="white-space: pre-wrap;"> – Logik-Knoten, der anhand von Variablen/Inventar/Status </span>**verzweigt**<span style="white-space: pre-wrap;"> (z. B. „wenn Schlüssel → A, sonst → B“).</span>
4. **Spielende `<strong class="editor-theme-bold editor-theme-code">[[End]]</strong>`**<span style="white-space: pre-wrap;"> – </span>**Einmal pro Projekt**. Markiert das Ende/den Abschluss.
5. **Notiz**<span style="white-space: pre-wrap;"> – Gelber Zettel für Hinweise/To-dos. Hat keinen Einfluss aufs Spiel.</span>

---

## 4) Ansicht &amp; Navigation (unten rechts)

- **Lupe / + / –**<span style="white-space: pre-wrap;"> → Suche &amp; Zoom.</span>
- **„Fit to screen“**<span style="white-space: pre-wrap;"> → Alles einpassen/zentrieren.</span>
- **Vollbild**<span style="white-space: pre-wrap;"> → Arbeitsfläche maximieren.</span>

---

## 5) Statusleiste (ganz unten)

- Projekt-/Build-Infos, Copyright.
- **Systemstatus**<span style="white-space: pre-wrap;">: API/Compiler </span>**Online/Offline**.
- <span style="white-space: pre-wrap;">Quelle (z. B. </span>**lokal**) &amp; Lizenz.

---

## 6) Typische Aktionen

- **Szenen anlegen**<span style="white-space: pre-wrap;"> über das Dock, per Drag-&amp;-Drop positionieren.</span>
- **Öffnen/Bearbeiten**: Karte anklicken → Szenen-Editor (Features: Wegpunkt, QR/NFC, Dialog, Medien, Inventar, Variablen, Hinweise, Countdown, Team-Sync …).
- **Verknüpfen**: In Szenen Buttons/Zielszene setzen oder Trigger (Wegpunkt, QR/NFC) konfigurieren.
- **Vorschau**<span style="white-space: pre-wrap;"> jederzeit starten, um den Flow zu testen.</span>

---

## 7) Praktische Hinweise

- **Projekttitel**<span style="white-space: pre-wrap;"> schnell ändern: </span>**Breadcrumb-Text anklicken und direkt tippen**.
- **Ordnung**: Benenne Szenen sprechend („01-Intro“, „20-Rätsel-Brücke“, „99-Ende“).
- **Global denken**<span style="white-space: pre-wrap;">: Stylesheets &amp; Masterszene-JS wirken </span>**überall**<span style="white-space: pre-wrap;"> – sparsam, mit Klassen arbeiten.</span>
- **Testen**: Regelmäßig Vorschau nutzen; Entscheidungswege und Fallbacks prüfen.
- **Team-Flows**<span style="white-space: pre-wrap;">: Bei individuellen Schritten </span>**Team-Sync deaktivieren**<span style="white-space: pre-wrap;"> (Feature in der Szene), anschließend wieder zusammenführen.</span>

---

## 8) Mini-Shortcuts

- **Drag-&amp;-Drop**: Karten verschieben, sauber ausrichten.
- **Zoom**: Strg/Cmd + Mausrad (oder Buttons).
- **Fit**: „Alles einpassen“ klick → Überblick zurück.

---

**Merke:**<span style="white-space: pre-wrap;"> Kopfzeile = </span>**Projekt &amp; Vorschau**<span style="white-space: pre-wrap;">, Arbeitsfläche = </span>**Story planen**<span style="white-space: pre-wrap;">, Floating-Dock = </span>**Bausteine anlegen**<span style="white-space: pre-wrap;">, Statusleiste = </span>**Gesundheitscheck**. So behältst du Struktur und kommst schnell von der Idee zur spielbaren Szene.

# Vorschau

# Was du hier alles testen kannst

<span style="white-space: pre-wrap;">Die </span>**Vorschau**<span style="white-space: pre-wrap;"> zeigt deine Story </span>**wie in der App**<span style="white-space: pre-wrap;">, direkt im Browser. Links läuft das Spiel im Smartphone-Frame, rechts hast du </span>**Quicklinks**<span style="white-space: pre-wrap;"> zum gezielten Testen einzelner Trigger.</span>

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/vaOgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/vaOgrafik.png)

---

## Grundbedienung

- **Start / Schließen**<span style="white-space: pre-wrap;"> (oben rechts im Frame) – Vorschau starten bzw. beenden.</span>
- **Live-Reload**: Speichere eine Szene im Editor → die Vorschau lässt sich sofort neu starten.

---

## Quicklinks (rechte Spalte)

<span style="white-space: pre-wrap;">Hier kannst du typische Sensor-/Ortsaktionen </span>**simulieren**, ohne vor Ort zu sein:

- **Wegpunkt → „Gehe zu“**  
    <span style="white-space: pre-wrap;">Simuliert, dass du den Wegpunkt erreichst (innerhalb des Radius). So prüfst du </span>**Autoselect**<span style="white-space: pre-wrap;"> und Folgeszenen.</span>
- **QR-Code → „Scannen“**  
    <span style="white-space: pre-wrap;">Löst einen Scan mit dem hinterlegten </span>**Wert**<span style="white-space: pre-wrap;"> aus (praktisch für Testlauf ohne Kamera).</span>
- <span style="white-space: pre-wrap;">(falls vorhanden) </span>**Weitere Trigger**<span style="white-space: pre-wrap;"> erscheinen analog – du kannst sie gezielt abfeuern und den Flow prüfen.</span>

> <span style="white-space: pre-wrap;">Die Quicklinks sind rein fürs Testen – sie sind in der echten App </span>**nicht sichtbar**.

---

## UI &amp; Funktionen im Phone-Frame

Unten im Spiel-UI findest du – je nach Projekt – u. a.:

- **Karte / Ziele**<span style="white-space: pre-wrap;"> – öffnet die Map mit Wegpunkten.</span>
- **Hinweise**<span style="white-space: pre-wrap;"> – kleines Badge zeigt neue Hinweise/Lösung an (zeitgesteuert testbar).</span>
- **Inventar**<span style="white-space: pre-wrap;"> – Gegenstände ansehen (Bilder </span>**zoombar**).
- **Hilfe/Info**<span style="white-space: pre-wrap;"> – projektspezifische Hilfe.</span>
- **Menü (…)**<span style="white-space: pre-wrap;"> – weitere Aktionen (z. B. Einstellungen, Neustart – abhängig vom Projekt).</span>

Alles verhält sich wie auf dem Gerät: Dialoge, Buttons, Eingabefelder, Medien (Audio/Video), Hotspots, Foto-/Fotovergleich-Flows etc.

---

## Was du in der Vorschau besonders gut testen kannst

- **Szenenfluss &amp; Übergänge**<span style="white-space: pre-wrap;"> (In/Out-Transitions).</span>
- **Bedingungen**<span style="white-space: pre-wrap;"> (Variablen, Inventar-Checks, Pfadverzweigungen).</span>
- **Wegpunkt-Logik**<span style="white-space: pre-wrap;"> (Autoselect vs. manuell) via </span>**„Gehe zu“**.
- **QR-/NFC-Ersatztests**<span style="white-space: pre-wrap;"> (QR über Quicklink; NFC lässt sich in der Vorschau i. d. R. nicht real scannen).</span>
- **Hinweise &amp; Countdown**<span style="white-space: pre-wrap;"> (Zeitpunkte, Texte).</span>
- **Audio/Video**<span style="white-space: pre-wrap;"> inkl. </span>**End-Buttons**<span style="white-space: pre-wrap;"> und </span>**Fallback-Szenen**.
- **Team-Sync deaktivieren**<span style="white-space: pre-wrap;">: Prüfe, ob eine Szene </span>**lokal**<span style="white-space: pre-wrap;"> bleibt und die nächste wieder synchronisiert.</span>

---

## Grenzen der Browser-Vorschau

- **GPS/Kompass**<span style="white-space: pre-wrap;"> werden nicht real genutzt – nutze dafür die </span>**Quicklinks**.
- **Kamera/NFC**<span style="white-space: pre-wrap;"> nur eingeschränkt/gar nicht verfügbar (QR per Quicklink testbar).</span>
- <span style="white-space: pre-wrap;">Geräte-Eigenheiten (Leistung, Displaygröße, Autoplay-Richtlinien) können abweichen – am Ende </span>**immer auf einem echten Gerät**<span style="white-space: pre-wrap;"> testen.</span>

---

## Tipp

<span style="white-space: pre-wrap;">Wenn du schnell zu einer Szene springen willst, setze dort </span>**temporär**<span style="white-space: pre-wrap;"> einen Button „Zur Szene X“ oder nutze Quicklinks für die relevanten Trigger. So iterierst du rasch an Texten, Farben, Übergängen und Logik.</span>

# 🧰 Features

<span>Hier findest du </span>**alle Bausteine des Storyboards**<span> – von Orten &amp; Triggern (Wegpunkte, QR/NFC) über Interaktionen und Medien (Dialog, Eingabe, Foto, Audio/Video) bis zu Layout &amp; Logik (Hintergründe, Hotspots, Inventar, Variablen, Hinweise, Countdown, Team-Sync). Zu jedem Feature: Felder, App-Verhalten und Praxis-Tipps.</span>

# Wegpunkt (Map Waypoint)

<span style="white-space: pre-wrap;">Mit dem </span>**Wegpunkt**-Feature platzierst du einen Punkt auf der Karte, der – je nach Einstellung – eine Szene öffnet oder leise im Hintergrund als „Proximity-Trigger“ arbeitet.

---

### ![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/ya8grafik.png)Felder &amp; Optionen

**Karte &amp; Marker**

- **Marker ziehen/klicken**: Setze die Position direkt in der Karte.
- **Aktuelle Position verwenden**: Übernimmt deine Gerätestandort-Koordinaten.

**Breitengrad / Längengrad**

- Exakte GPS-Koordinaten des Wegpunkts. Du kannst sie manuell eintragen oder aus der Karte übernehmen.

**Zielszene**

- Szene, die beim Auslösen geöffnet wird.

**Popup-Text**

- Kurzer Text, der im Spiel im Karten-Popup erscheint (z. B. „Gehe hierhin und tippe!“ oder Zusatzinfos).

**Radius (Meter)**

- Entfernung, in der der Wegpunkt „erreicht“ gilt.
- <span style="white-space: pre-wrap;">Typische Werte: </span>**7-15 m**<span style="white-space: pre-wrap;"> in Städten, </span>**20–30 m**<span style="white-space: pre-wrap;"> in freiem Gelände.</span>

**Unsichtbar?**

- <span style="white-space: pre-wrap;">Ist aktiv, </span>**wird der Marker nicht auf der Karte angezeigt**.
- Der Wegpunkt wird bei erreichen automatisch ausgelöst. Autoselect nicht erforderlich.

**Automatisch ausgewählt?**

- **An**<span style="white-space: pre-wrap;">: Die Zielszene wird </span>**automatisch**<span style="white-space: pre-wrap;"> geöffnet, sobald die Spielenden </span>**in den Radius**<span style="white-space: pre-wrap;"> kommen (kein Tippen nötig).</span>
- **Aus**<span style="white-space: pre-wrap;">: Die Spielenden müssen den </span>**Marker manuell auf der Karte auswählen**.> <span style="white-space: pre-wrap;">Hinweis: Bei </span>**unsichtbaren**<span style="white-space: pre-wrap;"> Wegpunkten ist dieser Punkt nicht notwendig. </span>

---

### ![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/pcjgrafik.png)Verhalten in der App

1. **Sichtbarer Marker, Auto-Select AN**
    - <span style="white-space: pre-wrap;">Betritt das Team den Radius, </span>**öffnet**<span style="white-space: pre-wrap;"> sich die </span>**Zielszene sofort**.
    - Das Popup ist optional – oft wird gar nicht mehr getippt.
2. **Sichtbarer Marker, Auto-Select AUS**
    - Der Marker ist auf der Karte sichtbar.
3. **Unsichtbarer Marker, Auto-Select AN**
    - Kein Marker auf der Karte.
    - **Silent Trigger**: Beim Betreten des Radius öffnet sich die Zielszene automatisch. Ideal für Überraschungen oder „geheime“ Punkte.

---

## Erstellen aus der Toolbox (scenario.app)

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/2iAgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/2iAgrafik.png)<span style="white-space: pre-wrap;">Wegpunkte lassen sich </span>**direkt aus den Aufzeichnungen**<span style="white-space: pre-wrap;"> der </span>**Toolbox**<span style="white-space: pre-wrap;"> in </span>**scenario.app**<span style="white-space: pre-wrap;"> erzeugen:</span>

- Szenenkachel -&gt; Funktion hinzufügen -&gt; Spot aus Toolbox
- <span style="white-space: pre-wrap;">Wähle einen Punkt aus und </span>**„Als Wegpunkt übernehmen“**.  
    <span style="white-space: pre-wrap;">Die </span>**Koordinaten**<span style="white-space: pre-wrap;"> werden automatisch </span>**vorbefüllt**<span style="white-space: pre-wrap;"> – du ergänzt nur noch Radius, Zielszene, Sichtbarkeit etc.</span>

---

## Praxis-Tipps

- **Radius passend wählen**:
    - Innenstadt: 7–15 m, damit es nicht zufällig auslöst.
    - Park/Wald: 20–30 m, um GPS-Schwankungen abzufangen.
- **Unsichtbar + Auto-Select**<span style="white-space: pre-wrap;"> für unerwartete Ereignisse („Story-Beat“).</span>
- **Sichtbar + Auto-Select AUS**<span style="white-space: pre-wrap;"> für klare Navigation: Spielende sehen das Ziel und müssen es bewusst antippen.</span>
- **Popup-Text**<span style="white-space: pre-wrap;"> kurz und call-to-action-artig halten („Tippe hier, um die Aufgabe zu starten“).</span>
- **Kein GPS?**<span style="white-space: pre-wrap;"> Plane Alternativen (QR/NFC) oder großzügigere Radien bei schwieriger Empfangslage.</span>

---

## Häufige Fragen

**Was passiert, wenn ich Auto-Select aktiviere und die Zielszene fehlt?**  
<span style="white-space: pre-wrap;">Es wird keine Szene geöffnet. Nutze in diesem Fall besser Auto-Select </span>**aus**<span style="white-space: pre-wrap;"> (Info-Marker) oder füge eine Zielszene hinzu.</span>

**Kann ich Wegpunkte nur mit der Karte setzen?**  
<span style="white-space: pre-wrap;">Nein. Du kannst Koordinaten </span>**manuell**<span style="white-space: pre-wrap;"> eintragen oder </span>**aus Toolbox-Aufzeichnungen**<span style="white-space: pre-wrap;"> übernehmen.</span>

**Löst ein Wegpunkt auch aus, wenn er unsichtbar ist?**  
<span style="white-space: pre-wrap;">Ja – immer. Egal ob </span>**Auto-Select**<span style="white-space: pre-wrap;"> aktiv ist oder nicht </span>**und**<span style="white-space: pre-wrap;"> das Team im </span>**Radius**<span style="white-space: pre-wrap;"> steht.</span>

---

## Kurz-Anleitung

1. **Wegpunkt hinzufügen**<span style="white-space: pre-wrap;"> → Marker auf Karte setzen oder </span>**Aktuelle Position**<span style="white-space: pre-wrap;"> nutzen.</span>
2. **Zielszene**<span style="white-space: pre-wrap;"> wählen (optional leer lassen für Info-Punkt).</span>
3. **Popup-Text**<span style="white-space: pre-wrap;"> (optional) eintragen.</span>
4. **Radius**<span style="white-space: pre-wrap;"> festlegen.</span>
5. <span style="white-space: pre-wrap;">Sichtbarkeit &amp; </span>**Auto-Select**<span style="white-space: pre-wrap;"> gemäß gewünschtem Verhalten setzen.</span>
6. Speichern – fertig.

<span style="white-space: pre-wrap;">So steuerst du präzise, </span>**wann**<span style="white-space: pre-wrap;"> und </span>**wie**<span style="white-space: pre-wrap;"> Spielende Inhalte entdecken: sichtbar &amp; interaktiv oder unsichtbar &amp; automatisch.</span>

# Wegpunkt (dynamisch)

<article class="text-token-text-primary w-full focus:outline-none scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="true" data-testid="conversation-turn-4" data-turn="assistant" data-turn-id="request-WEB:0fc5eac8-6adb-4c3b-a661-ad0ea6e6ec89-1" dir="auto" id="bkmrk-dynamischer-osm-wegp" tabindex="-1">### Dynamischer OSM-Wegpunkt

Der **dynamische Wegpunkt** sucht zur **Laufzeit im Spiel** nach echten Objekten in der Nähe (aus **OpenStreetMap**, kurz *OSM*). So kannst du Aufgaben wie „Finde eine **Bushaltestelle** in 400 m“ bauen – ohne die exakten Koordinaten vorher zu kennen. Falls im Suchradius **nichts gefunden** wird, greift ein **Fallback-Ziel** (projektiert aus der aktuellen Spielerposition).

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">---

</div></div></div></div></div></div><table border="1" style="border-collapse: collapse; width: 100%; border-width: 0px;"><colgroup><col style="width: 34.2857%;"></col><col style="width: 65.7143%;"></col></colgroup><tbody><tr><td style="border-width: 0px;">### [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/Pnqgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/Pnqgrafik.png)

  
</td><td style="border-width: 0px;">### Felder &amp; Optionen

**OSM-Kategorie / `key=value` (optional)**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Wähle eine Preset-Kategorie (z. B. **Bushaltestelle**, **Bäckerei**, **Trinkwasser**, **Bankautomat** …).
- Alternativ kannst du rechts ein eigenes **OSM-Tag** eintragen, z. B. `amenity=drinking_water` oder `shop=bakery`.
- Es wird das **nächstgelegene** passende OSM-Objekt im Suchbereich verwendet.

</div></div></div></div></div></div>**Suchradius OSM (m)**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Umkreis, in dem gesucht wird (vom **aktuellen Spielerstandort** aus).
- Je größer, desto höher die Trefferchance – aber ggf. längerer Weg.

</div></div></div></div></div></div>**Titel (Popup)**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Text für das Karten-Popup des **gefundenen** Ziels (z. B. „Ziel in deiner Nähe“).

</div></div></div></div></div></div>**Ankunfts-Radius (m)**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Abstand, in dem das Ziel als **erreicht** gilt.

</div></div></div></div></div></div>**Typ**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- **Sichtbar**: Marker ist auf der Karte sichtbar.
- **Unsichtbar**: Kein Marker – ideal für „Silent-Trigger“ in Kombination mit Autoselect.

</div></div></div></div></div></div>**Autoselect**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- **Ja**: Zielszene öffnet **automatisch**, sobald Spielende im **Ankunfts-Radius** sind.
- **Nein**: Spielende müssen den Marker **manuell** antippen (nur sinnvoll bei **sichtbar**).

---

</div></div></div></div></div></div>
</td></tr></tbody></table>

### Fallback (wenn im Suchradius nichts gefunden wird)

**Distanz (m) &amp; Himmelsrichtung**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Erzeugt ein **projektiertes Ziel** in der gewählten Richtung (**N, NE, E, …**) und Entfernung.
- Bezugspunkt ist die **momentane Spielerposition** beim Erstellen des Ziels.
- Wenn verfügbar, werden projzierte Ziele immer auf Straßen oder Wege gelegt.

</div></div></div></div></div></div>**Fallback-Titel**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Popup-Text des **projektierten** Ziels (z. B. „Projiziertes Ziel“).

</div></div></div></div></div></div>**Zielszene**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Szene, die beim Erreichen (OSM-Treffer **oder** Fallback) geöffnet wird.
- Lässt du die Zielszene leer, fungiert der Punkt nur als Info-/Navigationsziel.

---

</div></div></div></div></div></div>## Verhalten in der App

<p class="callout info">Für die Projektion von Wegpunkten aus der OSM Datenbank ist eine Internetverbindung erforderlich!</p>

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. **Ermitteln des Ziels**
    
    
    - Beim Betreten der Szene wird über OSM das **nächstgelegene Objekt** zur gewählten Kategorie im **Suchradius** gesucht.
    - Wird **etwas gefunden**, wird dieses Objekt als Ziel gesetzt (Marker an dessen Koordinate, Popup-Titel wie oben).
    - Wird **nichts gefunden**, erstellt das Spiel **sofort** das **Fallback-Ziel** in der gewählten Richtung und Distanz.
2. **Navigation &amp; Auslösen**
    
    
    - **Sichtbar + Autoselect = Ja**: Betritt das Team den **Ankunfts-Radius**, öffnet sich die **Zielszene automatisch**.
    - **Sichtbar + Autoselect = Nein**: Marker muss **angetippt** werden (nur innerhalb des Ankunfts-Radius „aktiv“).
    - **Unsichtbar + Autoselect = Ja**: **Silent-Trigger** ohne Markeranzeige.
    - **Unsichtbar + Autoselect = Nein**: Nicht empfohlen (kein klickbares Ziel).
3. **Bewegung &amp; Aktualisierung**
    
    
    - Das Ziel wird **beim Erzeugen** festgelegt und anschließend **beibehalten**, damit alle im Team zum **gleichen** Ziel laufen.
4. **Offline-/Datenlage**
    
    
    - Für die OSM-Suche ist **Netzverbindung** nötig. Ohne Treffer oder ohne Internet greift **sofort** der **Fallback**.

---

</div></div></div></div></div></div>## Praxis-Tipps

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- **Trefferqualität**: Wähle präzise `key=value`-Tags (z. B. `amenity=drinking_water`) statt zu allgemeiner Kategorien.
- **Suchradius**: Stadt: 200–400 m, ländlich: 400–800 m.
- **Ankunfts-Radius** großzügig wählen (10–30 m Stadt, 20–50 m Gelände), um GPS-Drift abzufangen.
- **Unsichtbar + Autoselect** für Überraschungen; **sichtbar + manuell** für bewusstes Interagieren.
- **Fallback** so setzen, dass er **spielbar** bleibt (keine Privatgrundstücke, Gewässer etc.).
- **Team-Konsistenz**: Ziele werden nach der ersten Bestimmung **fixiert**, damit alle dasselbe Ziel sehen.

---

</div></div></div></div></div></div>### OSM-Kategorien für dynamische Wegpunkte

Damit der **dynamische Wegpunkt** ein passendes Ziel findet, muss eine **OSM-Kategorie** gewählt werden. Diese basiert auf den sogenannten **Tags** von [https://wiki.openstreetmap.org/wiki/Map\_features](https://wiki.openstreetmap.org/wiki/Map_features).

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">---

</div></div></div></div></div></div>### Häufig genutzte `key=value` Beispiele

#### Infrastruktur &amp; Transport

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- `highway=bus_stop` → Bushaltestelle
- `railway=station` → Bahnhof
- `amenity=parking` → Parkplatz
- `amenity=bicycle_parking` → Fahrradstellplatz
- `highway=crossing` → Fußgängerüberweg

</div></div></div></div></div></div>#### Versorgung &amp; Alltag

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- `amenity=drinking_water` → Trinkwasserstelle
- `amenity=toilets` → Öffentliche Toilette
- `amenity=bench` → Sitzbank
- `shop=supermarket` → Supermarkt
- `shop=bakery` → Bäckerei
- `amenity=pharmacy` → Apotheke
- `amenity=post_office` → Postamt

</div></div></div></div></div></div>#### Freizeit &amp; Kultur

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- `tourism=attraction` → Sehenswürdigkeit
- `tourism=museum` → Museum
- `leisure=playground` → Spielplatz
- `leisure=pitch` → Sportplatz
- `amenity=theatre` → Theater
- `amenity=cinema` → Kino

</div></div></div></div></div></div>#### Gastronomie

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- `amenity=restaurant` → Restaurant
- `amenity=cafe` → Café
- `amenity=bar` → Bar
- `amenity=fast_food` → Imbiss

</div></div></div></div></div></div>#### Sicherheit &amp; Gesundheit

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- `amenity=police` → Polizeistation
- `amenity=fire_station` → Feuerwehr
- `amenity=hospital` → Krankenhaus
- `amenity=clinic` → Klinik

---

</div></div></div></div></div></div>#### Vollständige Liste

Eine ausführliche Übersicht aller OSM-Tags findest du hier:   
[https://wiki.openstreetmap.org/wiki/Map\_features](https://wiki.openstreetmap.org/wiki/Map_features "OSM Map Wiki") <a class="decorated-link cursor-pointer" data-end="1787" data-start="1712" rel="noopener" target="_new"><span aria-hidden="true" class="ms-0.5 inline-block align-middle leading-none"><svg class="block h-[0.75em] w-[0.75em] stroke-current stroke-[0.75]" data-rtl-flip="" fill="currentColor" height="20" viewbox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M14.3349 13.3301V6.60645L5.47065 15.4707C5.21095 15.7304 4.78895 15.7304 4.52925 15.4707C4.26955 15.211 4.26955 14.789 4.52925 14.5293L13.3935 5.66504H6.66011C6.29284 5.66504 5.99507 5.36727 5.99507 5C5.99507 4.63273 6.29284 4.33496 6.66011 4.33496H14.9999L15.1337 4.34863C15.4369 4.41057 15.665 4.67857 15.665 5V13.3301C15.6649 13.6973 15.3672 13.9951 14.9999 13.9951C14.6327 13.9951 14.335 13.6973 14.3349 13.3301Z"></path></svg></span></a>

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">---

</div></div></div></div></div></div>### Tipp

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Du kannst **einfach eine Preset-Kategorie wählen** (z. B. Bushaltestelle).
- Oder du trägst direkt ein **Tag im Format `key=value`** ein (z. B. `amenity=drinking_water`).
- Je präziser der Wert, desto **genauer die Treffer** im Spiel.

  
</div></div></div></div></div></div><div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">---

</div></div></div></div></div></div>## Kurz-Anleitung

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="21f8d0c3-1642-4268-8644-a74cf26bde9a" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. **Dynamischen Wegpunkt** hinzufügen.
2. **OSM-Kategorie** wählen oder **`key=value`** eintragen.
3. **Suchradius** und **Ankunfts-Radius** festlegen.
4. **Typ** (sichtbar/unsichtbar) und **Autoselect** setzen.
5. **Fallback** definieren (Distanz, Richtung, Titel).
6. **Zielszene** auswählen.
7. **Speichern** – fertig.

</div></div></div></div></div></div>So entstehen ortsabhängige Aufgaben, die sich **an echte Umgebung** anpassen – inklusive robuster **Fallback-Navigation**, falls vor Ort kein passendes OSM-Objekt existiert.

</article>

# 360° / Foto Hotspot-Editor

<span style="white-space: pre-wrap;">Mit dem </span>**Hotspot-Editor**<span style="white-space: pre-wrap;"> platzierst du klickbare Punkte direkt in einem </span>**360°-Panorama**<span style="white-space: pre-wrap;"> oder </span>**normalen Foto**. Hotspots können Szenen öffnen, Infos zeigen oder eigenes JS ausführen.

---

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/JLcgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/JLcgrafik.png)

## Bild &amp; View

- **Bild-URL / Bild wählen**  
    Wähle ein 360°-Bild (equirectangular) oder ein normales Foto. Upload über die Medienauswahl ist möglich.
- **HFOV**  
    <span style="white-space: pre-wrap;">„Horizontal Field of View“ – Zoomstufe der Startansicht (z. B. </span>**100**).
- **Kompass (Ja/Nein)**  
    Blendet einen Kompass/Heading-Indikator ein.

**Tipp:**<span style="white-space: pre-wrap;"> Das Kreuz </span>**„Hier Hotspot erstellen“**<span style="white-space: pre-wrap;"> setzt einen neuen Hotspot an der angeklickten Stelle.</span>

---

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/XtXgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/XtXgrafik.png)

## Hotspot bearbeiten

**Label**  
Beschriftung (z. B. „Weiter“, „Info“).

**Typ**

- **Button**<span style="white-space: pre-wrap;"> – Rechteckiger Button mit Text.</span>
- (Weitere Typen – z. B. Icon/Point – falls in deinem Projekt aktiv – verhalten sich entsprechend.)

**CSS-Klasse**  
<span style="white-space: pre-wrap;">Optionale Klasse zur Feinstilierung (z. B. </span>`<span class="editor-theme-code">hs-primary</span>`, eigenes Theme).

**Yaw / Pitch**  
Exakte Ausrichtung des Hotspots (horizontale/vertikale Winkel). Diese Werte werden beim Platzieren automatisch gesetzt und können feinjustiert werden.

**Zielszene (optional)**  
<span style="white-space: pre-wrap;">Szene, die beim Klick geöffnet wird. Leer lassen = </span>**keine Navigation**<span style="white-space: pre-wrap;"> (nur Popup/JS).</span>

**Farben &amp; Stil**

- **Text/Icon-Farbe**
- **Hintergrund**<span style="white-space: pre-wrap;"> (z. B. </span>`<span class="editor-theme-code">rgba(0,0,0,.5)</span>`<span style="white-space: pre-wrap;"> für halbtransparent)</span>
- **Border-Farbe**
- **Schriftgröße**<span style="white-space: pre-wrap;">, </span>**Radius**<span style="white-space: pre-wrap;">, </span>**Padding**

**Popup verwenden**  
<span style="white-space: pre-wrap;">Zeigt beim Klick ein kleines Popup (Titel/Label). In der Vorschau mit </span>**Shift-Klick**<span style="white-space: pre-wrap;"> testen.</span>

**onClick JS (optional)**  
Eigener JavaScript-Code, der beim Klick ausgeführt wird  
<span style="white-space: pre-wrap;">(z. B. </span>`<span class="editor-theme-code">console.log('clicked')</span>`, Tracking, komplexe Logik).

> <span style="white-space: pre-wrap;">Für Standard-Navigation </span>**nicht nötig**<span style="white-space: pre-wrap;"> – dafür reicht die Zielszene.</span>

**Editor-Shortcuts**

- **Alt-Klick**: onClick-JS sofort testen (im Editor).
- **Shift-Klick**: Popup-Vorschau öffnen.

---

## Verhalten in der App

- <span style="white-space: pre-wrap;">Hotspots liegen </span>**über**<span style="white-space: pre-wrap;"> dem 360°/Foto und folgen der Perspektive.</span>
- Klick/Tap auf den Hotspot:
    1. <span style="white-space: pre-wrap;">führt </span>**onClick JS**<span style="white-space: pre-wrap;"> aus (falls vorhanden),</span>
    2. <span style="white-space: pre-wrap;">öffnet optional das </span>**Popup**,
    3. <span style="white-space: pre-wrap;">navigiert – wenn gesetzt – in die </span>**Zielszene**.
- Kompass und Start-HFOV werden aus den Einstellungen übernommen.

---

## Praxis-Tipps

- **Assets**<span style="white-space: pre-wrap;">: 360° equirectangular </span>**2:1**<span style="white-space: pre-wrap;"> (z. B. 4096×2048). Normale Fotos gern 1920 px Breite+.</span>
- **Lesbarkeit**: Halbtransparente Hintergründe (`<span class="editor-theme-code">rgba</span>`) und ausreichender Kontrast.
- **Fokus**: Wichtige Hotspots nicht zu nah am Zenith/Nadir (starke Verzerrung).
- **Mobile UX**: Wenige, klare Hotspots; Abstand zwischen Hotspots für Touch-Ziele.
- **Navigation**<span style="white-space: pre-wrap;">: Für „Weiter“-Ketten reicht </span>**Zielszene**<span style="white-space: pre-wrap;"> – JS nur bei Sonderfällen.</span>
- **Testing**: HFOV &amp; Startblick einmal am Gerät prüfen; ggf. Yaw/Pitch leicht nachstellen.

---

## Kurz-Workflow

1. **Bild wählen**<span style="white-space: pre-wrap;"> → </span>**HFOV/Kompass**<span style="white-space: pre-wrap;"> setzen.</span>
2. <span style="white-space: pre-wrap;">Im Viewer </span>**„Hier Hotspot erstellen“**<span style="white-space: pre-wrap;"> klicken.</span>
3. **Label**<span style="white-space: pre-wrap;">, </span>**Typ**<span style="white-space: pre-wrap;">, </span>**Zielszene**<span style="white-space: pre-wrap;"> (optional) und </span>**Stil**<span style="white-space: pre-wrap;"> einstellen.</span>
4. <span style="white-space: pre-wrap;">(Optional) </span>**Popup**<span style="white-space: pre-wrap;"> aktivieren oder </span>**onClick JS**<span style="white-space: pre-wrap;"> hinterlegen.</span>
5. **Übernehmen**<span style="white-space: pre-wrap;"> → weitere Hotspots hinzufügen → </span>**Speichern**.

# Dialog V2 – Chat

**Dialog V2**<span style="white-space: pre-wrap;"> simuliert einen echten Chat-Verlauf zwischen frei definierbaren </span>**Charakteren**<span style="white-space: pre-wrap;"> – mit Tipp-Indikator, Pausen, Bildern und Audio. Ideal für Story-Beats, Hinweise „aus dem Off“ oder kurze Gespräche, die sich natürlich anfühlen.</span>

---

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/UR4grafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/UR4grafik.png)

## Editor-Aufbau

**Linke Spalte – Charaktere**

- **Neu**: Charakter anlegen.
- Pro Charakter:
    - **Name**
    - **Avatar**<span style="white-space: pre-wrap;"> (Medienbibliothek/Upload)</span>
    - **Sprechblasen-Farbe**<span style="white-space: pre-wrap;"> (Bubble)</span>
    - **Textfarbe**
    - **Seite**<span style="white-space: pre-wrap;">: </span>**links**<span style="white-space: pre-wrap;"> / </span>**rechts**

> Charaktere kannst du mehrmals in der Sequenz verwenden; Stil &amp; Seite kommen automatisch mit.

**Rechte Spalte – Nachrichten-Sequenz**

- Zeitliche Abfolge des Chats.
- <span style="white-space: pre-wrap;">Über </span>**„Neue Nachricht“**<span style="white-space: pre-wrap;"> fügst du Bausteine hinzu:</span>
    1. **text**<span style="white-space: pre-wrap;"> – Chatnachricht (Emoji &amp; einfache Formatierung erlaubt)</span>
    2. **image**<span style="white-space: pre-wrap;"> – Bild (öffnet sich antippbar in groß)</span>
    3. **audio**<span style="white-space: pre-wrap;"> – MP3 mit kleinem Player</span>
    4. **typing** ***Xms***<span style="white-space: pre-wrap;"> – Tipp-Indikator des gewählten Charakters für </span>**X**<span style="white-space: pre-wrap;"> Millisekunden</span>
    5. **pause** ***Xms***<span style="white-space: pre-wrap;"> – Leerlauf/Verzögerung ohne Tipp-Blase</span>
- Reihenfolge per Drag &amp; Drop ändern.
- <span style="white-space: pre-wrap;">Jede Zeile zeigt: </span>**Charakter**<span style="white-space: pre-wrap;"> + </span>**Aktion**<span style="white-space: pre-wrap;"> (z. B. </span>`<span class="editor-theme-code">Byte · typing 2000ms</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Byte · text: Hallo!</span>`).

**Speichern**<span style="white-space: pre-wrap;"> übernimmt die komplette Chatdefinition in die Szene.</span>

---

## Felder je Nachricht

- **Charakter**: Wer „spricht“ / tippt.
- **Typ**<span style="white-space: pre-wrap;">: </span>`<span class="editor-theme-code">text</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">image</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">audio</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">typing</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">pause</span>`.
- **Inhalt**:
    - `<span class="editor-theme-code">text</span>`: Nachrichtentext
    - `<span class="editor-theme-code">image</span>`: Medienauswahl (ein Bild)
    - `<span class="editor-theme-code">audio</span>`: MP3 aus Medienbibliothek
    - `<span class="editor-theme-code">typing</span>`: Dauer in Millisekunden
    - `<span class="editor-theme-code">pause</span>`: Dauer in Millisekunden

---

<video autoplay="" class="align-left" controls="" height="600" id="bkmrk--4" src="https://docs.scenario.app/attachments/47?open=true" width="300"></video>Verhalten in der App

1. <span style="white-space: pre-wrap;">Läuft </span>**Schritt für Schritt**<span style="white-space: pre-wrap;"> von oben nach unten.</span>
2. `<span class="editor-theme-code">typing</span>`<span style="white-space: pre-wrap;"> zeigt die bekannte </span>**…-Blase**<span style="white-space: pre-wrap;"> des Charakters für die angegebene Dauer.</span>
3. `<span class="editor-theme-code">pause</span>`<span style="white-space: pre-wrap;"> wartet stumm (kein Tipp-Indikator).</span>
4. `<span class="editor-theme-code">text</span>`<span style="white-space: pre-wrap;"> erscheint in der </span>**Bubble**<span style="white-space: pre-wrap;"> des Charakters (links/rechts gemäß Einstellung).</span>
5. `<span class="editor-theme-code">image</span>`<span style="white-space: pre-wrap;"> ist antippbar (Zoom/Lightbox).</span>
6. `<span class="editor-theme-code">audio</span>`<span style="white-space: pre-wrap;"> rendert einen kleinen </span>**Player**<span style="white-space: pre-wrap;"> (Play/Pause).</span>
7. <span style="white-space: pre-wrap;">Der Chat </span>**scrollt automatisch**<span style="white-space: pre-wrap;"> nach unten.</span>

> <span style="white-space: pre-wrap;">Ende der Sequenz = Chat ist abgeschlossen. Für die Navigation hängst du </span>**normale Buttons**<span style="white-space: pre-wrap;"> (oder andere Features) unter den Chat in derselben Szene an – z. B. „Weiter“ oder zwei Entscheidungs-Buttons.</span>

---

## Charakter-Stile

Jeder Charakter bringt sein eigenes „Theme“ mit:

- **Bubble-Farbe**<span style="white-space: pre-wrap;"> (Hintergrund)</span>
- **Textfarbe**<span style="white-space: pre-wrap;"> (Kontrast beachten!)</span>
- **Seite**<span style="white-space: pre-wrap;"> (links/rechts) – schafft visuelle Trennung</span>
- **Avatar**<span style="white-space: pre-wrap;"> (rundet die Chat-Anmutung ab)</span>

Dadurch wirkt der Dialog wie ein echter Messenger-Chat.

---

## Gute Praxis &amp; Tipps

- **Natürlichkeit**<span style="white-space: pre-wrap;">: Kurze </span>`<span class="editor-theme-code">typing</span>`-Phasen (800–2500 ms) vor wichtigen Nachrichten steigern Glaubwürdigkeit.
- **Tempo**<span style="white-space: pre-wrap;">: Nutze </span>`<span class="editor-theme-code">pause</span>`<span style="white-space: pre-wrap;"> zwischendurch als </span>**Atempausen**<span style="white-space: pre-wrap;"> oder Dramaturgie-Beat.</span>
- **Kontrast**: Achte auf gute Lesbarkeit von Text/Bubble (hell/dunkel).
- **Medien sparsam**: Einzelne Bilder/Snippets wirken stärker als ein „Flood“.
- **Audio-Hinweis**: Im Text ankündigen („Hör dir das an: 🎧“), damit Spielende wissen, dass ein Player folgt.
- **Entscheidungen**<span style="white-space: pre-wrap;">: Direkt nach dem Chat </span>**Buttons**<span style="white-space: pre-wrap;"> hinzufügen (z. B. „Zur Karte“, „Hinweis ansehen“, „Mission starten“).</span>
- **Team-Konsistenz**<span style="white-space: pre-wrap;">: Die Sequenz ist deterministisch – alle sehen </span>**denselben Ablauf**.

---

## Kurz-Workflow

1. **Charakter(e)**<span style="white-space: pre-wrap;"> anlegen (Name, Avatar, Farben, Seite).</span>
2. <span style="white-space: pre-wrap;">In der </span>**Nachrichten-Sequenz**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">typing</span>`/`<span class="editor-theme-code">pause</span>`<span style="white-space: pre-wrap;"> und </span>`<span class="editor-theme-code">text</span>`/`<span class="editor-theme-code">image</span>`/`<span class="editor-theme-code">audio</span>`<span style="white-space: pre-wrap;"> in gewünschter Reihenfolge anlegen.</span>
3. **Speichern**.
4. <span style="white-space: pre-wrap;">Unter dem Chat bei Bedarf </span>**Buttons**<span style="white-space: pre-wrap;"> (separates Feature) hinzufügen, um zur nächsten Szene zu führen.</span>

Fertig – Dialog V2 liefert dir glaubwürdige, fein getimte Chats, die sich perfekt in deine Story einfügen.

# Video einbetten (Embedded Video)

<span style="white-space: pre-wrap;">Spiele ein </span>**MP4-Video**<span style="white-space: pre-wrap;"> direkt in der Szene ab – mit Posterbild, optionalem Vollbild, Seek-Sperre und </span>**Aktionen nach Videoende**<span style="white-space: pre-wrap;"> (Text + Buttons).</span>

---

## ![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/q70grafik.png)Felder

**MP4-URL**  
Direkter Link zur MP4-Datei (H.264/AVC + AAC empfohlen).

**Poster-URL**<span style="white-space: pre-wrap;"> </span>**(optional)**  
Bild, das vor dem Start angezeigt wird (Vorschaubild/Thumbnail).

**Rahmenfarbe / Hintergrundfarbe / Textfarbe**  
Stil des Players (Rahmen), der Fläche um den Player und von Player-Textelementen/Hinweisen.

**Vollbild erlauben**  
Schaltet den Vollbild-Button ein/aus.

**Springen im Video erlauben**

- **An**: Nutzer dürfen scrubben/kapitelweise springen.
- **Aus**: Seek gesperrt → lineares Ansehen (z. B. für Pflicht-Clips/Story).

**Fallback bei Fehler – Zielszene**  
<span style="white-space: pre-wrap;">Wenn das Video </span>**nicht geladen**<span style="white-space: pre-wrap;"> oder </span>**abgespielt**<span style="white-space: pre-wrap;"> werden kann (Offline, Codec, URL), wird diese Szene geöffnet (z. B. „Alternative Aufgabe“).</span>

---

## Aktionen nach Videoende

**Text über Buttons**<span style="white-space: pre-wrap;"> </span>**(optional)**  
Kurzer Hinweis über den End-Buttons (z. B. „Wie möchtest du weiter machen?“).

**+ Button hinzufügen**  
<span style="white-space: pre-wrap;">Beliebig viele End-Buttons mit </span>**Beschriftung**<span style="white-space: pre-wrap;"> und </span>**Zielszene**.

- <span style="white-space: pre-wrap;">Der </span>**„Wiederholen“**-Button ist (falls eingeblendet) der Standard-Rücksprung und startet das Video erneut.
- <span style="white-space: pre-wrap;">Die Buttons erscheinen </span>**erst, wenn das Video wirklich zu Ende ist**<span style="white-space: pre-wrap;"> (kein Timer-Trick).</span>

---

<video class="align-left" controls="" height="600" id="bkmrk--3" src="https://docs.scenario.app/attachments/49?open=true" width="300"></video>## Verhalten in der App

1. <span style="white-space: pre-wrap;">Posterbild wird angezeigt, bis der/die Spieler:in </span>**Play**<span style="white-space: pre-wrap;"> drückt.</span>
2. <span style="white-space: pre-wrap;">Abhängig von der Seek-Einstellung kann man </span>**spulen**<span style="white-space: pre-wrap;"> oder sieht das Video </span>**linear**.
3. **Am Ende**<span style="white-space: pre-wrap;"> blendet die App – falls konfiguriert – </span>**Text + End-Buttons**<span style="white-space: pre-wrap;"> ein.</span>
4. <span style="white-space: pre-wrap;">Tritt ein </span>**Fehler**<span style="white-space: pre-wrap;"> auf, wird die </span>**Fallback-Zielszene**<span style="white-space: pre-wrap;"> geöffnet.</span>

---

## Best Practices

- **Encoding:**<span style="white-space: pre-wrap;"> MP4 (H.264, AAC), </span>**720p**/1080p; Bitrate moderat (2–6 Mbit/s).
- **Größe/Ladezeit:**<span style="white-space: pre-wrap;"> Möglichst &lt; 50 MB; bei Mobilfunk eher 5–20 MB anstreben.</span>
- **Poster:**<span style="white-space: pre-wrap;"> Ruhiges, klares Motiv; Seitenverhältnis = Video.</span>
- **Barrierefreiheit:**<span style="white-space: pre-wrap;"> Untertitel separat anbieten (z. B. als „Untertitel anzeigen“-Button).</span>
- **Didaktik:**<span style="white-space: pre-wrap;"> „Springen erlauben“ AUS für Pflicht-Briefings; EIN für freie Tutorials.</span>
- **Fallback testen:**<span style="white-space: pre-wrap;"> Einmal Flugmodus aktivieren → prüfen, ob deine Fallback-Szene logisch weiterführt.</span>

---

## Kurz-Workflow

1. <span style="white-space: pre-wrap;">MP4 &amp; Poster hochladen → </span>**URLs eintragen**.
2. <span style="white-space: pre-wrap;">Player-Farben wählen, </span>**Vollbild/Seek**<span style="white-space: pre-wrap;"> konfigurieren.</span>
3. **Fallback-Zielszene**<span style="white-space: pre-wrap;"> setzen.</span>
4. **Aktionen nach Videoende**: Info-Text + Buttons (z. B. „Zur Aufgabe“, „Wiederholen“).
5. Speichern, auf Gerät testen.

# AudioPlayer mp3 (embedded Audio)

<span style="white-space: pre-wrap;">Mit </span>**Audio einbetten**<span style="white-space: pre-wrap;"> spielst du eine </span>**MP3**<span style="white-space: pre-wrap;"> direkt in der Szene ab – optional mit </span>**Posterbild**<span style="white-space: pre-wrap;">, verschiedenen </span>**Player-Styles**<span style="white-space: pre-wrap;">, </span>**Fallback-Szene**<span style="white-space: pre-wrap;"> und </span>**Buttons nach Ende**<span style="white-space: pre-wrap;">. Außerdem kannst du </span>**Untertitel/Transkripte**<span style="white-space: pre-wrap;"> pro Zeitbereich hinterlegen.</span>

---

## ![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/IYAgrafik.png)Felder

**MP3-URL**  
Direkter Link zur MP3. (Empf.: 128–192 kbps, stereo, &lt; 10–20 MB)

**MP3-Datei auswählen oder hochladen**  
Öffnet die Medienauswahl mit Upload.

**Poster-URL**<span style="white-space: pre-wrap;"> </span>**(optional)**  
Bild, das über/bei dem Player gezeigt wird (z. B. Cover, Sprecher:in).

**Posterbild auswählen oder hochladen**  
Medienauswahl für das Poster.

**Player-Style**

- **Standard (mit Poster)**<span style="white-space: pre-wrap;"> – Player unter einem Posterbild.</span>
- **Embedded**<span style="white-space: pre-wrap;"> – flacher Player ohne großes Poster (kompakt).</span>
- **Round**<span style="white-space: pre-wrap;"> </span>**(falls verfügbar)**<span style="white-space: pre-wrap;"> – runder Play-Button mit Mini-Waveform.</span>

**Fallback-Szene**  
<span style="white-space: pre-wrap;">Wird geöffnet, wenn die Audiodatei </span>**nicht geladen**<span style="white-space: pre-wrap;"> oder </span>**abgespielt**<span style="white-space: pre-wrap;"> werden kann (offline/URL/Codec).</span>

**Untertitel**<span style="white-space: pre-wrap;"> → </span>**Untertitel bearbeiten**  
Öffnet den Untertitel-Editor (siehe unten).

**Text über Buttons**<span style="white-space: pre-wrap;"> </span>**(optional)**  
<span style="white-space: pre-wrap;">Kurzer Hinweis, der </span>**nach dem Abspielen**<span style="white-space: pre-wrap;"> über den End-Buttons erscheint (z. B. „Wie möchtest du weiter machen?“).</span>

**Textfarbe**  
<span style="white-space: pre-wrap;">Farbe des obigen Hinweistexts (Hex, z. B. </span>`<span class="editor-theme-code">#FFF</span>`).

**+ Button hinzufügen**  
<span style="white-space: pre-wrap;">Fügt </span>**End-Buttons**<span style="white-space: pre-wrap;"> mit </span>**Beschriftung**<span style="white-space: pre-wrap;"> und </span>**Zielszene**<span style="white-space: pre-wrap;"> hinzu.</span>

> <span style="white-space: pre-wrap;">Die Buttons erscheinen </span>**erst, wenn das Audio wirklich zu Ende ist**<span style="white-space: pre-wrap;"> – nicht per Timer.</span>

---

## Untertitel-Editor

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/5wIgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/5wIgrafik.png)

- <span style="white-space: pre-wrap;">Oben siehst du eine </span>**Waveform**.
- **Bereich markieren**<span style="white-space: pre-wrap;"> → unten Text eintippen → Eintrag wird erzeugt.</span>
- <span style="white-space: pre-wrap;">Jeder Eintrag zeigt </span>**Start–Ende**<span style="white-space: pre-wrap;"> und </span>**Text**; mit ► spielst du den Ausschnitt ab.
- **Untertitel importieren (VTT)**<span style="white-space: pre-wrap;">: Lade eine </span>**WEBVTT**-Datei, die automatisch in Zeitbereiche + Texte übernommen wird.
- **Fertig – Untertitel speichern**: übernimmt alle Einträge in die Szene.

> Untertitel werden synchron zum Audio angezeigt (barrierearm, auch für laute Umgebungen).

---

<video class="align-left" controls="" height="600" id="bkmrk--4" src="https://docs.scenario.app/attachments/50?open=true" width="300"></video>## Verhalten in der App

1. Poster (falls gesetzt) + Player werden angezeigt.
2. <span style="white-space: pre-wrap;">Play startet die Wiedergabe; je nach Style wird eine </span>**Waveform**<span style="white-space: pre-wrap;"> mit Laufzeitregler gezeigt.</span>
3. **Untertitel**<span style="white-space: pre-wrap;"> laufen synchron mit.</span>
4. <span style="white-space: pre-wrap;">Nach </span>**Audioende**<span style="white-space: pre-wrap;"> blendet die App – falls konfiguriert – </span>**Hinweistext + End-Buttons**<span style="white-space: pre-wrap;"> ein.</span>
5. <span style="white-space: pre-wrap;">Bei Lade-/Abspielfehler öffnet die </span>**Fallback-Szene**.

---

## Best Practices

- **Audioqualität**: 44.1 kHz, 128–192 kbps MP3 reicht mobil völlig.
- **Trimmen**: Stille am Anfang/Ende entfernen → schnelleres Empfinden.
- **Lautheit**: Auf ~–16 LUFS normalisieren, Clipping vermeiden.
- **Poster**: Ruhiges, kontrastreiches Motiv; wirkt professioneller.
- **Untertitel**: Kurze, sinnvolle Segmente (2–6 s), Satzumbrüche vermeiden.
- **Didaktik**: Buttons „Wiederholen“, „Weiter zur Aufgabe“, „Zur Karte“ anbieten.

---

## Kurz-Workflow

1. **MP3**<span style="white-space: pre-wrap;"> und optional </span>**Poster**<span style="white-space: pre-wrap;"> wählen/hochladen.</span>
2. **Player-Style**<span style="white-space: pre-wrap;"> setzen, </span>**Fallback-Szene**<span style="white-space: pre-wrap;"> wählen.</span>
3. **Untertitel bearbeiten**<span style="white-space: pre-wrap;"> (oder </span>**VTT importieren**).
4. **Text über Buttons**<span style="white-space: pre-wrap;"> + </span>**End-Buttons**<span style="white-space: pre-wrap;"> definieren.</span>
5. **Speichern**<span style="white-space: pre-wrap;"> und auf dem Gerät testen.</span>

# QR-Codes

<span style="white-space: pre-wrap;">Mit der </span>**QR-Code**<span style="white-space: pre-wrap;">-Funktion verknüpfst du einen Code mit einer Szene oder nutzt ihn als universellen Einstieg ins Spiel. Codes können direkt im Editor erzeugt </span>**oder aus der Toolbox-Aufzeichnung übernommen**<span style="white-space: pre-wrap;"> werden (praktisch, wenn du QR-Spots vor Ort bereits gescannt/geloggt hast).</span>

### ![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/HxDgrafik.png)Felder &amp; Regeln

**Wert**

- <span style="white-space: pre-wrap;">Muss </span>**alphanumerisch**<span style="white-space: pre-wrap;"> sein (A–Z, a–z, 0–9).</span>
- **Keine**<span style="white-space: pre-wrap;"> Leer-, Sonder- oder Umlautzeichen.</span>
- <span style="white-space: pre-wrap;">Frei wählbar </span>**oder**<span style="white-space: pre-wrap;"> über </span>**„Zufall“**<span style="white-space: pre-wrap;"> automatisch generierbar (empfohlen).</span>
    - <span style="white-space: pre-wrap;">Tipp: Verwende 10–16 Zeichen, z. B. </span>`<span class="editor-theme-code">SCN_RIcey42kYX</span>`.

**Zielszene**

- <span style="white-space: pre-wrap;">Szene, die nach dem Scan </span>**geöffnet**<span style="white-space: pre-wrap;"> wird.</span>

---

## Verhalten in der App

**Im Spiel scannen**

- QR wird über den In-Game-Scanner gelesen.
- <span style="white-space: pre-wrap;">Bei gültigem Wert öffnet sich </span>**direkt die Zielszene**.

**Über die „QR-Code suchen“-Funktion**

- <span style="white-space: pre-wrap;">Codes können </span>**außerhalb**<span style="white-space: pre-wrap;"> eines laufenden Spiels gescannt werden.</span>
- <span style="white-space: pre-wrap;">Die App zeigt dann die </span>**Spielbeschreibung**<span style="white-space: pre-wrap;"> des Spiels an, in dem dieser Code verwendet wird</span>  
    **(Ausnahme:* **private** *oder* **unveröffentlichte** *Spiele werden nicht angezeigt).**

---

## Aus der Toolbox übernehmen

- <span style="white-space: pre-wrap;">In der </span>**Toolbox**<span style="white-space: pre-wrap;"> gescannte Codes (Aufzeichnungen/Spots) kannst du im Storyboard </span>**1-Klick**<span style="white-space: pre-wrap;"> übernehmen.</span>
- <span style="white-space: pre-wrap;">Der </span>**Wert**<span style="white-space: pre-wrap;"> wird vorgefüllt; du ergänzt nur noch die </span>**Zielszene**.

---

## Druck &amp; Platzierung – Praxis-Tipps

**Empfohlene mobile QR-Drucker (unterwegs, Akku, App-Druck):**

- folgt...

**Material &amp; Tarnung**

- **Laminierte Zettel**<span style="white-space: pre-wrap;"> (Loch + Kabelbinder) – wetterfest, schnell austauschbar.</span>
- **Magnet-Etiketten**<span style="white-space: pre-wrap;"> – für Metallflächen (Geländer, Container).</span>
- **Vinyl-Aufkleber**<span style="white-space: pre-wrap;"> (matt) – hohe Kontraste, kein Glanz.</span>
- **Acryl-Plättchen**<span style="white-space: pre-wrap;"> mit Aufkleber hinten (von vorne „glasig“).</span>
- **Epoxy-Domes**<span style="white-space: pre-wrap;"> – schlagfest, leicht erhaben.</span>
- **Holz/Metall graviert**<span style="white-space: pre-wrap;"> + kleiner </span>**aufgeklebter**<span style="white-space: pre-wrap;"> QR (Gravur allein ist oft zu kontrastarm).</span>
- **QR-Mini-Sticker**<span style="white-space: pre-wrap;"> im Prop verstecken: unter Deckel, hinter Schieber, unter UV-Klappe etc.</span>
- **NFC+QR Kombi-Tag**<span style="white-space: pre-wrap;"> – als plan B bei schlechtem Licht/Geräte-Kameras.</span>
- **Hinweise/Redundanz**: Dupliziere kritische Codes (A/B-Ort) und nummeriere sie intern.

**Druck-Best Practices**

- <span style="white-space: pre-wrap;">Hoher Kontrast: </span>**Schwarz auf Weiß**, matte Oberfläche.
- <span style="white-space: pre-wrap;">Mindestgröße: ab </span>**25–30 mm**<span style="white-space: pre-wrap;"> Kantenlänge (Armreichweite ~40–60 cm).</span>
- <span style="white-space: pre-wrap;">Genug </span>**Rand (Quiet Zone)**<span style="white-space: pre-wrap;"> um den Code lassen (≥ 4 Module).</span>
- <span style="white-space: pre-wrap;">Kein „künstlerisches“ Verbiegung/Logo im Code – Priorität ist </span>**Zuverlässigkeit**.
- Draußen: UV-beständige Medien, Laminat oder Schutzlack.

---

## Sicherheit &amp; Verwaltung

- <span style="white-space: pre-wrap;">Verwende </span>**zufällige**<span style="white-space: pre-wrap;"> Werte (kein Muster wie </span>`<span class="editor-theme-code">QR1</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">QR2</span>`<span style="white-space: pre-wrap;"> …), um </span>**Raten**<span style="white-space: pre-wrap;"> zu verhindern.</span>
- <span style="white-space: pre-wrap;">Hinterlege Codes in deiner </span>**Asset-Liste**<span style="white-space: pre-wrap;"> (Wert → Standort → Szene) oder als Notiz im Storyboard.</span>
- <span style="white-space: pre-wrap;">Ändere Codes für </span>**öffentliche**<span style="white-space: pre-wrap;"> Bereiche regelmäßig oder nutze Einmal-Codes, wenn nötig.</span>

---

## Kurz-Checkliste

1. <span style="white-space: pre-wrap;">Code </span>**anlegen**<span style="white-space: pre-wrap;"> oder </span>**aus Toolbox übernehmen**.
2. **Alphanumerischen Wert**<span style="white-space: pre-wrap;"> setzen (oder </span>**Zufall**<span style="white-space: pre-wrap;"> drücken).</span>
3. **Zielszene**<span style="white-space: pre-wrap;"> wählen.</span>
4. **Testscan**<span style="white-space: pre-wrap;"> im Editor/auf dem Gerät.</span>
5. **Drucken**, wetterfest anbringen, Standort in der Doku notieren.

<span style="white-space: pre-wrap;">Fertig – deine Spielenden können den Code im Spiel scannen </span>**oder**<span style="white-space: pre-wrap;"> über die </span>**QR-Suche**<span style="white-space: pre-wrap;"> zur Spielbeschreibung finden (sofern öffentlich).</span>

# Fotovergleich (photoCompare)

<span style="white-space: pre-wrap;">Mit </span>**Fotovergleich**<span style="white-space: pre-wrap;"> lässt du Spielende ein </span>**Live-Foto**<span style="white-space: pre-wrap;"> aufnehmen und es automatisch mit einem </span>**Referenzbild**<span style="white-space: pre-wrap;"> vergleichen. Abhängig vom </span>**Ähnlichkeitswert**<span style="white-space: pre-wrap;"> (0–100) leitest du in eine </span>**Erfolgs-**<span style="white-space: pre-wrap;"> oder </span>**Fehl-Zielszene**<span style="white-space: pre-wrap;"> weiter. Ideal für „Finde exakt diesen Ort“, „Rekonstruiere den Blickwinkel“ oder „Suche dieses Objekt“.</span>

---

## ![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/7Fegrafik.png)Felder

**Referenzbild-URL / Bild auswählen/hochladen**  
<span style="white-space: pre-wrap;">Wähle oder lade das </span>**Referenzfoto**, mit dem verglichen wird. (Dieses Bild ist die „richtige“ Vorlage.)

**Schwellenwert (0–100)**  
<span style="white-space: pre-wrap;">Grenzwert, ab dem der Vergleich als </span>**bestanden**<span style="white-space: pre-wrap;"> gilt.</span>

- **Niedriger**<span style="white-space: pre-wrap;"> = toleranter (leichter zu schaffen)</span>
- **Höher**<span style="white-space: pre-wrap;"> = strenger (exaktere Übereinstimmung nötig)</span>  
    <span style="white-space: pre-wrap;">Richtwerte: Stadt/Outdoor </span>**60–75**<span style="white-space: pre-wrap;">, Innenraum/markante Motive </span>**70–85**.

**Retry erlauben**

- **An**<span style="white-space: pre-wrap;">: Nach Fehlversuch darf sofort </span>**neu fotografiert**<span style="white-space: pre-wrap;"> werden.</span>
- **Aus**<span style="white-space: pre-wrap;">: Bei Fehlversuch geht’s direkt in die </span>**Fehl-Zielszene**.

**Erfolgs-Zielszene**  
<span style="white-space: pre-wrap;">Szene, die bei </span>**erreichtem Schwellenwert**<span style="white-space: pre-wrap;"> geöffnet wird.</span>

**Fehl-Zielszene**  
<span style="white-space: pre-wrap;">Szene, die bei </span>**nicht erreichtem Schwellenwert**<span style="white-space: pre-wrap;"> geöffnet wird (Tipp/Hinweis, erneute Anweisung).</span>

**Notiz (optional)**  
Interne Notiz für die Redaktion (wird Spielern nicht angezeigt).

---

## Verhalten in der App

1. <span style="white-space: pre-wrap;">Die App öffnet die </span>**Kamera**<span style="white-space: pre-wrap;"> und zeigt das </span>**Referenzbild**<span style="white-space: pre-wrap;"> als Vorschau/Leithilfe.</span>
2. <span style="white-space: pre-wrap;">Das Team macht ein Foto → die App berechnet einen </span>**Ähnlichkeitswert (0–100)**.
3. **Wert ≥ Schwellenwert**<span style="white-space: pre-wrap;"> → </span>**Erfolgs-Zielszene**.
4. **Wert &lt; Schwellenwert**<span style="white-space: pre-wrap;"> →</span>
    - <span style="white-space: pre-wrap;">mit </span>**Retry**: neuer Versuch möglich,
    - <span style="white-space: pre-wrap;">ohne </span>**Retry**<span style="white-space: pre-wrap;">: </span>**Fehl-Zielszene**.

> Hinweis: Kamera-/Speicherrechte müssen erlaubt sein. Für diese Funktion ist zwingend eine Interverbindung erforderlich. Der Fotovergleich erfolgt per künstlicher Intelligenz.

---

## Gute Praxis &amp; Tipps

- **Referenz wählen:**<span style="white-space: pre-wrap;"> Klare, kontrastreiche Motive mit unverwechselbaren Kanten/Strukturen funktionieren am besten.</span>
- **Bildaufbau:**<span style="white-space: pre-wrap;"> Referenz möglichst </span>**frontal**<span style="white-space: pre-wrap;"> und ohne starke Perspektiv-Verzerrung anlegen.</span>
- **Toleranz:**<span style="white-space: pre-wrap;"> Starte mit </span>**70**<span style="white-space: pre-wrap;"> und teste vor Ort; bei wechselndem Licht/GPS-Drift ggf. </span>**65–75**<span style="white-space: pre-wrap;"> wählen.</span>
- **Hinweise kombinieren:**<span style="white-space: pre-wrap;"> Gib optional </span>**Hinweise**<span style="white-space: pre-wrap;"> in der Szene („Stell dich an den Poller“, „Schwenke leicht nach links“).</span>
- **Fehl-Pfad nützlich machen:**<span style="white-space: pre-wrap;"> In der </span>**Fehl-Zielszene**<span style="white-space: pre-wrap;"> kurze Tipps + Button „Erneut versuchen“ (falls Retry aus).</span>
- **Performance:**<span style="white-space: pre-wrap;"> Große Referenzbilder werden automatisch skaliert; sinnvolle Uploadgröße </span>**≤ 2000px**<span style="white-space: pre-wrap;"> Kantenlänge.</span>
- **Datenschutz:**<span style="white-space: pre-wrap;"> Auf öffentlichen Plätzen keine identifizierbaren Personen als Referenz verwenden.</span>

---

## Kurz-Workflow

1. **Referenzbild**<span style="white-space: pre-wrap;"> wählen/hochladen.</span>
2. **Schwellenwert**<span style="white-space: pre-wrap;"> setzen (z. B. 70).</span>
3. **Retry**<span style="white-space: pre-wrap;"> entscheiden.</span>
4. **Erfolgs-**<span style="white-space: pre-wrap;"> und </span>**Fehl-Zielszene**<span style="white-space: pre-wrap;"> festlegen.</span>
5. **Speichern**<span style="white-space: pre-wrap;"> und </span>**vor Ort testen**<span style="white-space: pre-wrap;"> – Schwelle ggf. feinjustieren.</span>

So machst du reale Orte/Objekte spielrelevant – präzise, motivierend und leicht verständlich.

# Gamification

# Gamification

*Platzhalter – Inhalte folgen.*

# Compiler & Runtime

# Compiler &amp; Runtime

*Platzhalter – Inhalte folgen.*

# NFC-Tags

Mit **NFC-Tags** löst du Szenen per Berührung aus – ideal in lauten, dunklen oder beengten Locations, wo QR-Codes schwer zu scannen sind. Tags können direkt im Editor angelegt **oder aus der Toolbox** (vor Ort gescannte/geloggte Tags) **übernommen** werden.

---

### [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/U1Igrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/U1Igrafik.png)Felder &amp; Regeln

**Wert**

- Alphanumerisch (A–Z, a–z, 0–9), **keine** Leer- oder Sonderzeichen.
- Frei definierbar **oder** über **„Zufall“** generieren (empfohlen).
- Beispiel: `SCN_TMP_ST1`

**Zielszene**

- Szene, die nach dem Antippen des Tags **geöffnet** wird.

---

## Verhalten in der App

1. Spielende tippen in der App auf **„NFC scannen“** (Android &amp; iOS).
2. Gerät an den Tag halten → bei **passendem Wert** wird die **Zielszene sofort** ausgelöst (oder deine Meta-Logik).
3. Der Wert wird einmalig in der Szene geladen und für das Team konsistent ausgewertet.
4. NFC-Tags können in Szenen wieder entfernt werden.

---

## Import aus der Toolbox

- In der **Toolbox** erfasste NFC-Scans/Spots kannst du im Storyboard **übernehmen**.
- Der **Wert** wird vorbefüllt; du ergänzt **Zielszene**, falls nötig.

---

## NFC-Tags beschreiben (schreiben)

Die App liest **NDEF-Text** (Plain Text) oder **NDEF-URI** nicht – sie vergleicht **den gespeicherten Wert**, den du auf den Tag schreibst. Schreibe daher **genau den Wert** (z. B. `SCN_A1B2C3`) als **NDEF-Textrecord** auf den Tag.

### Geeignete Tags

- **NTAG213/215/216** (ISO 14443-A) – Standard, günstig, weit verbreitet
- **On-Metal/Anti-Metal** Tags für metallische Oberflächen
- Formen: Sticker, Coins, Keyfobs, Karten, Epoxy-Domes (wetterfest)

### Empfohlene Apps/Tools (Android &amp; iOS)

- **NFC Tools** (Wakdev): *Write* → **Add a record** → **Text** → Wert eintragen → **Write**
- **NXP TagWriter**: *Write tags* → **New NDEF message** → **Plain Text** → Wert → **Write**
- (iOS) Achte darauf, dass die App **Schreiben** unterstützt; viele tun das (NFC Tools, NXP TagWriter).

### Schreib-Schritte (Beispiel mit NFC Tools)

1. App öffnen → **Write**
2. **Add a record** → **Text**
3. Exakt **den Wert** eintragen (z. B. `SCN_X9K7M4`)
4. **OK** → **Write** → Telefon an Tag halten
5. **(Optional, nach Tests)**: Tag **locken**/schreibschützen – **irreversibel!**

**Wichtig:** Verwende **nur den Wert**, **keine URLs** oder formatierte Inhalte. Groß-/Kleinschreibung zählt, also exakt übernehmen.

---

## Platzierung &amp; Praxis

- **Position** markieren (Stickerpunkt/kleiner Pfeil), damit klar ist, wo gehalten werden muss.
- **On-Metal** Version auf Metallflächen verwenden.
- **Wetterfest**: Epoxy-Domes, vergossene Coins, laminiert hinter Plexi.
- **Verstecken**: Unter Tischkante, hinter Türschild, im Buchrücken, unter einer Klappe, hinter Holzschieber, in 3D-gedruckter Kapsel.
- **Redundanz**: Kritische Tags doppelt (A/B-Spot) anbringen; Werte dokumentieren.
- **Reichweite**: 0–3 cm. Dünne Abdeckungen (Papier, dünnes Holz, Acryl) sind ok; Metall nur mit On-Metal-Tags.

---

## Druck &amp; Kennzeichnung (optional)

- Kleines **Icon „NFC“** neben dem Spot hilft.
- QR+NFC **Kombi**: Falls NFC nicht erkannt wird, kann ein **Backup-QR** daneben helfen.
- Keine Magnete direkt **zwischen** Telefon und Tag (stört Antenne).

---

## Checkliste

1. **Wert** (alphanumerisch) vergeben oder **Zufall** nutzen.
2. **Zielszene** wählen.
3. Tag mit App als **NDEF-Text** exakt mit diesem Wert **beschreiben**.
4. **Testen** (Android &amp; iOS), dann ggf. **locken**.
5. Wetterfest anbringen, **Standort &amp; Wert** in deiner Doku notieren.

So bindest du robuste, schnelle **Berühr-Triggers** in deine Erlebnisse ein – perfekt als Alternative oder Ergänzung zu QR-Codes.

# Spot aus Toolbox übernehmen

Mit **Spot aus Toolbox übernehmen** holst du bereits vor Ort erfasste Punkte (z. B. aus deiner Szenario-Toolbox) direkt ins **Storyboard** – ohne Koordinaten, Codes oder Medien noch einmal eintippen zu müssen.

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/bbkgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/bbkgrafik.png)

---

## Was kann übernommen werden?

- **Wegpunkt (GPS)** – Koordinaten, Name, optional Bild
- **QR-Code** – Wert (alphanumerisch), Name/Bild
- **NFC-Tag** – Wert (alphanumerisch), Name/Bild
- (optional) **Ordner/Projektzuordnung** wird als Tag/Notiz mitgegeben

> Hinweis: Werte von QR/NFC bleiben **unverändert** übernommen. Koordinaten kommen 1:1 aus der Toolbox.

---

## So funktioniert’s

1. **Modal öffnen** → *Spot aus Toolbox übernehmen*.
2. **Projekt/Ordner wählen** (oben per „Zurück zu Projekten“ navigierbar).
3. In der Liste:
    
    
    - Vorschau, Name und Typ-Icon sehen (📍 GPS, 🧾 QR, 📶 NFC).
    - **Einfügen** klicken, um den Spot zu übernehmen.
    - **Bearbeiten** öffnet den Spot in der Toolbox (falls du ihn vor der Übernahme anpassen willst).
4. Nach dem Einfügen erscheint der passende **Feature-Dialog** im Storyboard:
    
    
    - **Wegpunkt**: Breiten-/Längengrad sind **vorgefüllt**; setze **Radius**, **Sichtbarkeit** und **Autoselect** und wähle die **Zielszene**.
    - **QR-Code**: **Wert** ist gesetzt; optional Zielszene wählen.
    - **NFC-Tag**: **Wert** ist gesetzt; optional Zielszene wählen.
5. **Speichern** – fertig. Der Spot ist nun als Feature in deiner Szene.

---

## Was wird genau übernommen?

- **Name** → als interner Titel/Notiz
- **Bild** (falls vorhanden) → als Vorschau/Popup-Bild (je nach Feature)
- **Koordinaten** (bei GPS-Spots)
- **Code-Wert** (bei QR/NFC, unverändert)
- **Metadaten** (Zeitstempel, Ordner) → als Notiz

---

## Doppelte Spots &amp; Aktualisierung

- **Mehrfach übernehmen** ist möglich (z. B. gleicher QR an mehreren Stellen).
- Änderungen in der **Toolbox nach der Übernahme** werden **nicht automatisch** ins Storyboard gespiegelt – bei Bedarf Spot erneut übernehmen.

---

## Tipps aus der Praxis

- **Feldarbeit zuerst**: Scanne/erfasse draußen alle Punkte in der Toolbox, **sortiere sie in Ordner**, füge Fotos hinzu – danach importierst du sie flüssig ins Storyboard.
- **Benennung**: Kurze, sprechende Namen („Brücke Nord – QR“, „Werkhalle – NFC“) erleichtern die Auswahl.
- **Qualitätssicherung**: Vor dem Einfügen kurz **Bearbeiten** nutzen, um falsche Koordinaten oder Tippfehler im Code zu korrigieren.
- **Team-Konsistenz**: Übernommene Wegpunkte sind „fixe“ Ziele – ideal, damit alle Spielenden denselben Punkt ansteuern.

---

## FAQ

**Kann ich beim Einfügen die Zielszene frei wählen?**  
Ja – die Toolbox gibt nur Daten vor. Die **Zielszene legst du im Storyboard** fest.

**Was, wenn ein QR-/NFC-Wert gegen die Regeln verstößt?**  
Beim Einfügen wird geprüft: **alphanumerisch, keine Leer-/Sonderzeichen**. Passe den Wert in der Toolbox an oder editiere ihn im Feature-Dialog.

**Kann ich mehrere Spots auf einmal übernehmen?**  
Aktuell **einzeln** per **Einfügen**. (Für Massenimporte: erst in der Toolbox sammeln und dann nacheinander übernehmen – geht sehr schnell.)

# Button

Mit dem **Button**-Element führst du Spielende per Tap zur **nächsten Szene** – klassisch für „Weiter“, Auswahl­optionen, Abzweigungen oder Bonus-Aktionen. Oben im Dialog siehst du eine **Live-Vorschau** deiner aktuellen Einstellungen.

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/b4dgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/b4dgrafik.png)Felder

**Text**  
Beschriftung des Buttons (z. B. „Weiter“, „Zur Aufgabe“, „Norden wählen“).  
Tipp: Kurze Verben + Nutzen („Öffnen“, „Lösen starten“).

**Zielszene**  
Die Szene, die beim Tippen **geöffnet** wird.

- Üblich ist, hier **immer** eine Szene zu wählen.
- Wenn du bewusst **ohne Ziel** speicherst, verhält sich der Button wie ein „stummer“ UI-Button und löst keine Navigation aus (nur sinnvoll für Speziallogik).

**Hintergrundfarbe**  
Hex-Wert für die Buttonfläche, z. B. `#68bfdd` (Brand Color).

**Textfarbe**  
Hex-Wert für die Beschriftung, z. B. `#ffffff`.

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/sEGgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/sEGgrafik.png)Verhalten in der App

- **Tap** auf den Button öffnet **sofort** die gewählte **Zielszene**.
- Mehrere Buttons in einer Szene werden automatisch **untereinander** (mobilfreundlich) gerendert; die **Reihenfolge** entspricht der Reihenfolge im Editor.
- Buttons reagieren direkt; es ist **kein** GPS/Scan nötig (anders als bei Wegpunkten/QR/NFC).
- Buttons werden mit einem Sicherheitsabstand unterhalb von Content eingefügt.
- Position des Buttons kann mit DIV Klasse `customButtonPosition` gesteuert werden: ```
    <div class="customButtonPosition"></div>
    ```

---

## Einsatzmuster

- **Lineares Weiter**: „Weiter“ → nächste Szene.
- **Entscheidungen/Abzweigungen**: Mehrere Buttons mit unterschiedlichen Ziel­szene(n) („Tür A“, „Tür B“).
- **Optionale Inhalte**: „Mehr erfahren“, „Hinweis anzeigen“, „Zur Karte“.
- **Rücksprung**: „Zur Übersicht“/„Zurück zur Karte“.

---

## Gestaltungs- &amp; UX-Tipps

- **Kontrast** sicherstellen: Helle Schrift auf dunklem Hintergrund oder umgekehrt (AA-Kontrast ≥ 4.5:1 anstreben).
- **Konsistenz**: Primäre Aktion (z. B. „Weiter“) immer gleiche Farbe; sekundäre Aktionen in neutralen Tönen.
- **Größe/Touch-Ziel**: Genug Platz (mind. ~44 px Höhe) und Abstand zwischen mehreren Buttons.
- **Icon-Hilfe**: Du kannst vor dem Text **Emoji** nutzen (z. B. 🔍 „Suchen“, 🧭 „Zur Karte“).
- **Deaktivierte Logik**: Wenn ein Button erst nach Bedingung aktiv sein soll, blende ihn vorher aus oder ersetze ihn durch Hinweistext (statt „toter“ Buttons).

---

## Kombinationen

- **Mit Wegpunkten**: Button erst nach Erreichen eines Wegpunkts anzeigen (Story-Gating).
- **Mit QR/NFC**: Button bietet Wahl: „Scannen“ oder „Überspringen (Hinweis)“.
- **Mit Dialogen/Medien**: Unter Text, Bild, Audio oder Video als klare Call-to-Action platzieren.

---

## Kurz-Checkliste

1. **Text** setzen (klar &amp; kurz).
2. **Zielszene** auswählen.
3. **Farben** (Brand) wählen, Kontrast prüfen.
4. Vorschau checken → **Speichern**.

Fertig – der Button führt die Spielenden zuverlässig zur nächsten Station deiner Story.

# Abfragefeld (Eingabe prüfen)

Mit dem **Abfragefeld** fragst du einen Code, ein Wort oder eine Zahl ab. Nach dem Tippen auf **„Lösung prüfen“** wird die Eingabe validiert – bei Erfolg öffnet sich die **Zielszene** (falls gesetzt).

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/Yuxgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/Yuxgrafik.png)Felder

**Lösung**

- Erwartete richtige Eingabe.
- Tipp: Kurz und eindeutig (z. B. `MORSE`, `4711`, `BOLTZMANN`).

**Button**

- Beschriftung des Prüfen-Buttons (Standard: „Lösung prüfen“).

**Prüfung**

- **vereinfacht**: Groß/Kleinschreibung wird ignoriert; führende/folgende Leerzeichen werden entfernt; mehrere Leerzeichen werden zusammengefasst;
- **exakt** (falls gewählt): 1-zu-1-Vergleich – **alles** muss exakt übereinstimmen.

**Darstellung**

- **Eingabefeld**: Freitext (Buchstaben/Zahlen).
- **Zahlenfeld** (falls verfügbar): Zeigt ein numerisches Keyboard, limitiert auf Ziffern – ideal für Codes/Kombinationen.

**Zielszene**

- Szene, die bei **korrekter Lösung** geöffnet wird.
- Lässt du sie leer, kannst du über Szenenlogik/Badge o. Ä. selbst reagieren.

**Hintergrundfarbe / Textfarbe**

- Farben des **Prüfen-Buttons** (Hex-Werte, z. B. `#256d85` / `#ffffff`).

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/R6Qgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/R6Qgrafik.png)Verhalten in der App

1. Spielende tippen ihre Lösung ein und drücken **„Lösung prüfen“**.
2. Die Eingabe wird gemäß **Prüfmodus** verglichen.
3. **Richtig** → (optional) kurzer Erfolgseffekt, **Zielszene** wird geöffnet.
4. **Falsch** → (optional) Hinweis „Leider falsch“ / erneuter Versuch.
5. Eingabefeld wird mit Sicherheitsabstand unter dem Content eingefügt.
6. Position des Eingabefelds kann mit der DIV Klasse `customInputPosition` umgeleitet werden:  
    ```
    <div class="customInputPosition"><div>
    ```

---

## Praxis-Tipps

- **Eindeutigkeit:** Vermeide Lösungen, die leicht zu raten sind („JA“, „OK“).
- **Toleranz:** Nutze **„vereinfacht“**, wenn Tippfehler durch Groß-/Kleinschreibung nicht entscheidend sind.
- **Zahlenrätsel:** Wähle **Darstellung → Zahlenfeld** (falls verfügbar), damit direkt das Ziffern-Keyboard erscheint.
- **Barrierefreiheit:** Button-Kontrast hoch halten (helle Schrift auf dunklem Button oder umgekehrt).
- **Feedback:** In der Szene kurz erklären, **wo** die Lösung zu finden ist („Die Antwort steht auf dem Typenschild“).

---

## Kurz-Checkliste

1. **Lösung** eintragen (ggf. Varianten mit `|`).
2. **Prüfung** wählen (**vereinfacht** für tolerant, **exakt** für streng).
3. **Darstellung** festlegen (Eingabe/Zahl).
4. **Zielszene** setzen.
5. Button-**Text** und **Farben** anpassen → **Speichern**.

# Dialog

Mit **Dialog** zeigst du einen oder mehrere Textbausteine mit optionalen **Buttons** an – ideal für kurze Erklärungen, Zwischentexte, Entscheidungen oder Abzweigungen. Oben siehst du im Editor eine **Live-Vorschau** von Text &amp; Button-Stil.

---

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/T6lgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/T6lgrafik.png)[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/dTzgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/dTzgrafik.png)[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/K2Kgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/K2Kgrafik.png)

## Tabs &amp; Felder

### 1) Texte

- **Text (mehrfach)**  
    Füge beliebig viele Einträge hinzu („Text 1“, „Text 2“, …).  
    Jeder Eintrag wird in der App **nacheinander** angezeigt.
    
    
    - Zeilenumbruch wird übernommen.
    - Emojis sind erlaubt.
- **Ablauf**
    
    
    - Spieler:innen tippen auf **„…/Weiter“** (oder irgendwo in den Dialogbereich), um zum **nächsten Textelement** zu wechseln.
    - Nach dem letzten Text bleibt der Dialog stehen; Buttons (falls vorhanden) sind weiterhin sichtbar.

### 2) Buttons

- **Button (mehrfach)**
    
    
    - **Szene**: Zielszene, die beim Tippen geöffnet wird.
    - **Text**: Beschriftung (z. B. „Weiter“, „Zurück“, „Abzweigung A“).
- **Verhalten**
    
    
    - Buttons werden **unter dem Text** angezeigt.
    - Du kannst **mehrere** Buttons gleichzeitig verwenden (Entscheidungen).
    - Lässt du **alle Szenen leer**, tun die Buttons nichts (nur sinnvoll, wenn du eigene Logik verwendest).

### 3) Einstellungen

- **Textfarbe** – Farbe der Dialogtexte (Hex).
- **Hintergrundfarbe-Button** – Hintergrund der Buttons (Hex).
- **Textfarbe-Button** – Beschriftungsfarbe der Buttons (Hex).

---

## <video class=" align-left" controls="controls" height="166" src="https://docs.scenario.app/attachments/45?open=true" style="width: 300px; height: 600px;" width="300"></video>Verhalten in der App

- Die Texte erscheinen **sequenziell**; ein Tap auf den Dialog/Weiter-Button zeigt den **nächsten Text**.
- Buttons sind die **Call-to-Action** unter dem Text. Ein Tap öffnet sofort die gewählte **Zielszene**.
- Gibt es **keine Buttons**, dient der Dialog als **reiner Infoblock** (Spielfluss geht weiter, wenn du in der Szene weitere Elemente hast).

---

## Einsatzmuster

- **Storybeat/Erklärung:** Mehrere kurze Sätze als einzelne Textschritte, darunter „Weiter“.
- **Entscheidung:** Zwei oder mehr Buttons („Tür A“, „Tür B“) mit unterschiedlichen Ziel­szenen.
- **Rücksprung/Navi:** „Zur Karte“, „Zur Übersicht“.
- **Hinweis nach Rätsel:** Text + Button „Aufgabe starten“.

---

## UX-Tipps

- **Kurz &amp; konkret** – lieber 2–3 kurze Texte als eine Textwand.
- **Kontrast prüfen** – Button- und Textfarben mit ausreichendem Kontrast wählen.
- **Primäraktion konsistent** – z. B. immer dieselbe Farbe für „Weiter“.
- **Reihenfolge beachten** – die Anzeige folgt exakt der Reihenfolge im Tab **Texte**.
- **Barrierefreiheit** – Buttons groß genug (min. ~44 px Höhe) und mit klaren Labels.

---

## Kurz-Checkliste

1. Texte in sinnvoller Reihenfolge anlegen.
2. Buttons (Zielszene + Label) hinzufügen – oder weglassen für Info-Dialoge.
3. Farben in **Einstellungen** setzen.
4. Vorschau prüfen → **Speichern**.

Fertig – dein Dialog führt sauber durch Textschritte und lenkt mit Buttons zur passenden nächsten Szene.

# Hintergrundbild

<article class="text-token-text-primary w-full focus:outline-none scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="true" data-testid="conversation-turn-24" data-turn="assistant" data-turn-id="751e9b17-40a5-4421-8923-afb5b3f465b4" dir="auto" id="bkmrk-mit%C2%A0hintergrundbild-" tabindex="-1">Mit **Hintergrundbild** legst du ein Bild **vollflächig als Cover** hinter deine Szene.  
Beim Anklicken öffnet sich die **Medienauswahl** (mit optionalem Upload). In der Liste hat jedes Bild einen Button **„als Hintergrund einfügen“** – ein Klick setzt es sofort als Szenen-Hintergrund.

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="3132f5a4-9697-4400-9ab5-7202068551ba" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">---

</div></div></div></div></div></div>## Wie es funktioniert

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="3132f5a4-9697-4400-9ab5-7202068551ba" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Öffne **Hintergrundbild** → **Medienauswahl** erscheint.
- Wähle ein vorhandenes Bild **oder** lade ein neues hoch.
- Klicke **„als Hintergrund einfügen“** beim gewünschten Bild.
- Das Bild wird **als Cover** gesetzt:
    
    
    - füllt die gesamte Fläche,
    - **beschneidet** bei abweichendem Seitenverhältnis,
    - ist **zentriert** (Fokus Mitte).

</div></div></div></div></div></div>> Das Hintergrundbild beeinflusst keine anderen Elemente – Buttons, Dialoge, Texte etc. liegen **darüber**.

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="3132f5a4-9697-4400-9ab5-7202068551ba" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">---

</div></div></div></div></div></div>## Unterstützte Formate (empfohlen)

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="3132f5a4-9697-4400-9ab5-7202068551ba" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- **JPG / JPEG** – Fotos, kleinste Dateigröße
- **PNG** – Grafiken mit Transparenz
- **WebP** – moderne Alternative (klein + scharf)

---

</div></div></div></div></div></div>## Best Practices

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="3132f5a4-9697-4400-9ab5-7202068551ba" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- **Größe &amp; Schärfe**
    
    
    - Ziel: **≤ 1 MB** pro Bild (schnelle Ladezeiten).
    - **1440×2560** (hochkant).
- **Sichere Bildmitte**
    
    
    - Wichtige Motive in die **Mitte** legen – Ränder können durch „Cover“ beschnitten werden.
- **Kontrast für Lesbarkeit**
    
    
    - Heller Text auf dunklem Bild, dunkler Text auf hellem Bild.
    - Wenn nötig: dezent **abdunkeln** (z. B. mit halbtransparentem Element/Gradient darüber).
- **Motivruhe**
    
    
    - Ruhige, unscharfe Hintergründe lenken weniger ab und lassen UI klar wirken.
- **Mehrere Sprachen/Szenen**
    
    
    - Keine eingebrannten Texte ins Bild – nutze dafür Szenen-Text/Features, damit Übersetzungen einfach bleiben.

---

</div></div></div></div></div></div>## Häufige Fragen

**Kann ich das Bild ausrichten?**  
Standard ist **zentriert**. Wenn der Fokus stark außerhalb der Mitte liegt, nimm eine Variante, die mittig wirkt – wegen Cover-Beskneidung.

**Was passiert auf kleinen Displays?**  
Das Bild bleibt **vollflächig**; Ränder können je nach Gerät abgeschnitten sein (Design daher mittig planen).

**Kann ich später wechseln?**  
Ja – **Hintergrundbild** erneut öffnen und ein anderes Bild **„als Hintergrund einfügen“**.

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="3132f5a4-9697-4400-9ab5-7202068551ba" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">---

</div></div></div></div></div></div>## Kurz-Checkliste

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="3132f5a4-9697-4400-9ab5-7202068551ba" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. **Hintergrundbild** öffnen → Bild wählen/hochladen.
2. **„als Hintergrund einfügen“** klicken.
3. Kontrast und Lesbarkeit der Szene prüfen.
4. Speichern.

</div></div></div></div><div class="z-0 flex min-h-[46px] justify-start">  
</div></div></div></article>

# Hintergrundfarbe

Mit **Hintergrundfarbe** gibst du deiner Szene einen einfarbigen oder **zweifarbigen Verlauf**.  
Hinweis: **Wenn ein Hintergrundbild gesetzt ist, überschreibt es die Hintergrundfarbe** (Bild hat Vorrang).

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/u91grafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/u91grafik.png)Felder

**Farbe 1 / Farbe 2**

- Hex-Werte (`#RRGGBB`, z. B. `#84bee2`, `#1a767a`).
- Für **einfarbig**: in beide Felder **denselben** Wert eintragen.

**Verlaufsrichtung**

- Steuert, wie der Verlauf verläuft:
    
    
    - **Horizontal** (links → rechts)
    - **Vertikal** (oben → unten)
    - **Diagonal nach unten rechts** (oben-links → unten-rechts)
    - **Diagonal nach unten links** (oben-rechts → unten-links)

Live-Vorschau oben zeigt das Ergebnis der aktuellen Auswahl.

---

## Verhalten in der App

- Ohne Hintergrundbild füllt die Farbe/der Verlauf die Szene **vollflächig**.
- **Mit Hintergrundbild** bleibt die Farbe unsichtbar (als Fallback im Hintergrund vorhanden).
- Alle anderen Elemente (Texte, Buttons, Dialoge etc.) liegen **darüber**.

---

## Design-Tipps

- **Kontrast**: Wähle Farben so, dass Texte/Buttons gut lesbar sind (ggf. helle/dunkle Varianten testen).
- **Ruhige Flächen**: Sanfte Verläufe lenken weniger ab als harte Kontraste.
- **Branding**: Nutze eure Primär- (z. B. `#68bfdd`) und Sekundärfarben konsistent über alle Szenen.
- **Fallback**: Setze immer eine sinnvolle Hintergrundfarbe – falls ein Bild später entfernt wird, bleibt die Szene stimmig.

---

## Kurz-Checkliste

1. Farben wählen (einfarbig = Farbe1 = Farbe2).
2. Verlaufsrichtung festlegen.
3. Vorschau prüfen → **Speichern**.
4. Falls **Hintergrundbild** aktiv ist: beachten, dass dieses die Farbe überlagert.

# Szenen-Übergang (pageTransition)

Mit **Szenen-Übergang** legst du fest, **wie eine Szene erscheint** (In-Transition) und **wie sie verschwindet** (Out-Transition). Die Animation läuft jeweils beim Betreten bzw. Verlassen der Szene auf dem gesamten Szenen-Container. (Hintergrundbild/-farbe, Texte, Buttons usw. animieren damit gemeinsam.)

---

## <video class=" align-left" controls="controls" height="600" src="https://docs.scenario.app/attachments/48?open=true" width="300"></video>

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/uHugrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/uHugrafik.png)

---

## Felder

- **Einblendung (In-Transition)** – Animation beim **Öffnen** der Szene.
- **Ausblendung (Out-Transition)** – Animation beim **Wechsel** zu einer anderen Szene.
- **none** = keine Animation (schnellste Option, Standard).

---

## Verfügbare Optionen

### In-Transitions

- `fadeInScene` – sanft einblenden
- `zoomInScene` – leicht hineinzoomen
- `slideInLeftScene` / `slideInRightScene` – von links/rechts einschieben
- `bounceInScene` – federnde Einblendung
- `rotateInScene` – leicht hereinrotieren
- `magicScaleInScene` – Skalierungs-/Weichzeichner-Effekt
- `iphoneBounceInScene` – iOS-artiger Bounce
- `macSlideInScene` – macOS-artiger Slide
- `materialExpandInScene` – Material-Expand (Card wird groß)
- `androidSlideUpInScene` – Android-Slide von unten
- `rippleInScene` – Wellen-/Ripple-Eintritt
- `cardStackInScene` – Kartenstapel kommt nach vorn
- `materialFlipInScene` – Material-Flip nach vorn

### Out-Transitions

- `fadeOutScene` – sanft ausblenden
- `zoomOutScene` – leicht herauszoomen
- `slideOutLeftScene` / `slideOutRightScene` – nach links/rechts heraus schieben
- `bounceOutScene` – federnde Ausblendung
- `rotateOutScene` – herausrotieren
- `magicScaleOutScene` – Magic-Scale zurück
- `iphoneBounceOutScene` – iOS-artiger Bounce out
- `macSlideOutScene` – macOS-artiger Slide out
- `materialExpandOutScene` – Material-Shrink/Collapse
- `androidSlideDownOutScene` – Android-Slide nach unten
- `rippleOutScene` – Ripple-Ausgang
- `cardStackOutScene` – zurück in Kartenstapel
- `materialFlipOutScene` – Material-Flip nach hinten

---

## Empfohlene Paare (stimmige Kombis)

- **Fade:** `fadeInScene` ⇄ `fadeOutScene` (ruhig, universell)
- **Slide links/rechts:** `slideInLeftScene` ⇄ `slideOutRightScene` *(oder umgekehrt für Gegenrichtung)*
- **Zoom:** `zoomInScene` ⇄ `zoomOutScene`
- **Material/Card:** `materialExpandInScene` ⇄ `materialExpandOutScene` / `cardStackInScene` ⇄ `cardStackOutScene`
- **Platform-Look:**
    
    
    - iOS: `iphoneBounceInScene` ⇄ `iphoneBounceOutScene`
    - Android: `androidSlideUpInScene` ⇄ `androidSlideDownOutScene`
    - macOS: `macSlideInScene` ⇄ `macSlideOutScene`

---

## Hinweise &amp; Best Practices

- **Konsistenz:** Wähle für ein Projekt 1–2 Animationsstile und bleibe dabei.
- **Tempo &amp; Performance:** Dezente Effekte wirken professioneller und laden schneller. Auf älteren Geräten ist `none`/`fade` am flüssigsten.
- **Richtung beachten:** Wenn der Spielfluss „vorwärts“ geht, nutze z. B. **In von rechts → Out nach links** (oder umgekehrt), um eine klare Bewegungslogik zu erzeugen.
- **Barrierefreiheit:** Übertreibe Rotationen/Bounce nicht – sie können empfindliche Nutzer stören.
- **Konflikte vermeiden:** Kombiniere keine starken In/Out-Stile, die gegeneinander arbeiten (z. B. `rotateIn` mit `slideOutRight` kann unruhig wirken).

---

## Kurz-Checkliste

1. **In**- und **Out**-Transition wählen (oder `none`).
2. In der Vorschau prüfen, ob es zum **Ton der Szene** passt.
3. Einheitlich im gesamten Spiel anwenden.
4. Bei Performance-Problemen: auf **fade/none** wechseln.

# Inventar

Mit **Inventar** gibst du Spieler:innen Gegenstände an die Hand – z. B. Schlüssel, Hinweise, Karten oder Fotos (zoombar). Items können **gesammelt**, **verbraucht** oder **für Bedingungen** in Szenen verwendet werden.

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/KgBgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/KgBgrafik.png)Felder

**Bild**  
Optionales Vorschaubild. Bilder können im Inventar **vollbild/zoombar** geöffnet werden – ideal für Karten, Notizen, Codes.

**Name**  
Eindeutige Bezeichnung des Gegenstands (z. B. „Rostiger Schlüssel“, „Karte Nordwald“).

**Beschreibung**  
Kurzer Begleittext (Hinweis, Notiz, Nutzungshinweis).

**Anzahl**  
Startmenge (Standard **1**). Kann im Spiel erhöht/gesenkt werden.

---

<table border="1" id="bkmrk-verhalten-in-der-app" style="border-collapse: collapse; width: 100%; border-width: 0px;"><colgroup><col style="width: 40.4762%;"></col><col style="width: 59.5238%;"></col></colgroup><tbody><tr><td style="border-width: 0px;"><video controls="controls" height="600" src="https://docs.scenario.app/attachments/51?open=true" width="300"></video></td><td style="border-width: 0px;">## Verhalten in der App

- Items erscheinen im **Inventar-Menü** der App.
- Tippen auf ein Item öffnet **Detailansicht** mit **Zoom** für das Bild (falls vorhanden) und Beschreibung.
- Mengenänderungen werden live angezeigt (z. B. „Seil ×2“).

  
</td></tr></tbody></table>

## Verhalten in der App

- Items erscheinen im **Inventar-Menü** der App.
- Tippen auf ein Item öffnet **Detailansicht** mit **Zoom** für das Bild (falls vorhanden) und Beschreibung.
- Mengenänderungen werden live angezeigt (z. B. „Seil ×2“).

---

## Logik im Spiel

Du kannst Inventar **abfragen** und **verändern**:

**Bedingungen (typische Checks)**

- *hat Item*: „Wenn **Karte Nordwald** vorhanden → Button anzeigen / Szene freigeben“
- *Menge*: „Wenn **Batterie** ≥ 2 → Taschenlampe aktivieren“
- *nicht vorhanden*: „Wenn **Schlüssel** fehlt → Hinweis anzeigen“

**Aktionen (typische Manipulationen)**

- **Hinzufügen**: Item neu ins Inventar legen (mit Startmenge)
- **Erhöhen/Verringern**: Menge +1/–1 oder um einen festen Wert
- **Setzen**: Menge exakt auf n stellen
- **Entfernen**: Item komplett aus dem Inventar löschen

> Praxis: Nach dem Benutzen eines „Einweg“-Items (z. B. Sicherung) die Menge **–1** setzen. Bei wiederverwendbaren Items (z. B. Schlüsselbund) die Menge belassen.

---

## Einsatzbeispiele

- **Schlüssel &amp; Schlösser**
    
    
    - Szene fragt: *„Schlüssel vorhanden?“* → Ja: Tür öffnet, Nein: Hinweis „Suche den Schlüssel“.
- **Fotos/Belege als Hinweis**
    
    
    - Item „Foto Schaltschrank“ (zoombar) enthält eine abfotografierte Zahlenfolge → späteres Rätsel.
- **Karte/Plan**
    
    
    - Zoombare Karte im Inventar, die jederzeit aufgerufen werden kann.
- **Ressourcen**
    
    
    - „Batterie ×3“ – wird beim Einschalten der UV-Lampe schrittweise verbraucht.

---

## Design- &amp; UX-Tipps

- **Eindeutige Namen &amp; Icons**: schneller Wiedererkennungswert.
- **Kurze Beschreibung** mit klarer Funktion („Öffnet Tür im Keller“).
- **Wichtige Bilder** hochauflösend genug für Zoom, aber &lt; 1 MB wenn möglich.
- **Tutorial-Hinweis**: Einmal erklären, dass Inventar über das Rucksack-Symbol erreichbar ist.

---

## Kurz-Workflow

1. **Bild** wählen (optional, zoombar), **Name**, **Beschreibung**, **Anzahl** setzen.
2. In späteren Szenen **Bedingungen** auf dieses Item legen (vorhanden / Menge ≥ n).
3. Bei Bedarf per Aktion **Menge ändern** oder Item **entfernen**.

So steuerst du Spielfortschritt, Rätsel und Hinweise elegant über ein flexibles, sichtbares **Inventar-System**.

# Inventar – Menge anpassen

Mit **Menge anpassen** veränderst du die Anzahl eines vorhandenen Inventar-Items – entweder **relativ** (±) oder als **fester Wert**. So kannst du Verbrauchsmaterialien abziehen, Belohnungen geben oder Zählerstände steuern.

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/4Uvgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/4Uvgrafik.png)Felder

**Inventar**  
Wähle das Item, dessen Menge geändert werden soll.

**Modus**

- **+/− (relativ):** addiert oder subtrahiert den eingegebenen Wert.
    
    
    - Beispiele: `+1` = einen Schlüssel erhalten, `-1` = Batterie verbrauchen.
- **fester Wert:** setzt die Menge exakt auf den eingegebenen Wert.
    
    
    - Beispiel: `0` = Item leeren/aufgebraucht, `3` = exakt drei Stück besitzen.

**Menge**  
Ganzzahl (negativ erlaubt im ±-Modus).

---

## Verhalten in der App

- Die Anpassung passiert **sofort**, wenn die Szene/Interaktion mit dieser Aktion ausgeführt wird (also sofort wenn eine Szene aufgerufen wird.).
- Mengen werden auch als **negativ** behandelt: fällt das Ergebnis unter 0, wird also auch -1 angezeigt.
- Optionales Projektverhalten: Wenn eine Menge 0 erreicht, kann das Item im Inventar **ausgeblendet** oder **entfernt** werden (je nach Projekteinstellung).

---

## Typische Use-Cases

- **Verbrauch:** „UV-Lampe einschalten“ → Batterie **−1**.
- **Belohnung:** Rätsel gelöst → Münzen **+3**.
- **Reset/Zwangswert:** Beim Levelstart „Seile = 2“ (fester Wert).
- **Schlüsselabgabe:** Tür geöffnet → Schlüssel 0 (fester Wert) oder **−1**.

---

## Praxis-Tipps

- **Vor dem Abziehen prüfen:** Kombiniere mit einer **Bedingung** („Menge ≥ 1?“), um Fehlzustände zu vermeiden.
- **Klar kommunizieren:** Zeige nach Anpassungen eine kurze Rückmeldung („Batterie −1“).
- **Balancing:** Nutze feste Werte für Checkpoints, relative Werte für dynamisches Gameplay.
- **Testfälle:** Prüfe Grenzwerte (von 1 → 0, mehrfaches Klicken, Offline-Wiederaufnahme).

---

## Kurz-Workflow

1. Aktion **Menge anpassen** zur gewünschten Szene/Interaktion hinzufügen.
2. **Inventar-Item**, **Modus** (± oder fester Wert) und **Menge** setzen.
3. Optional: Vorher **Bedingung** (Menge ≥ n) und/oder danach **Hinweis** anzeigen.
4. Speichern – fertig.

# Variablen

**Variablen** sind interne Spielwerte – für Spielende **unsichtbar** – mit denen du Logik, Zustände und Verzweigungen steuerst (Flags, Zähler, Punkte, Fortschritt).

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/D73grafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/D73grafik.png)Anlegen

**Name** – frei wählbar (nur Buchstaben/Zahlen/\_), z. B. `Szene_gesehen`, `punkte`, `tresor_fehlversuche`.  
**Anzahl** – Startwert (Ganzzahl, Standard 0/1).

> Verwende `0/1` als **Boolean-Flag**: `Szene_gesehen = 1` bedeutet „Intro schon gezeigt“.

---

## Verhalten &amp; Reichweite

- Gilt **projektweit** für den aktuellen Durchlauf/Spielstand.
- Für Spielende **nicht sichtbar** (nur für Bedingungen &amp; Aktionen nutzbar).
- Bleibt erhalten, bis du sie änderst oder den Spielstand zurücksetzt.

---

## Nutzung in Bedingungen

Du kannst Variablen an jeder Stelle abfragen, um Elemente/Wege zu steuern.  
Unterstützte Vergleiche (typisch):

- `==` gleich `!=` ungleich
- `>` größer `<` kleiner
- `>=` mindestens `<=` höchstens

**Beispiele**

- Intro überspringen: nur anzeigen, **wenn** `Szene_gesehen == 0`.
- Bonus freischalten: Button zeigen, **wenn** `punkte >= 50`.
- Sicherheitslogik: Hinweis zeigen, **wenn** `tresor_fehlversuche >= 3`.

---

## Variablen ändern (Aktionen)

- **Erhöhen/Verringern**: `punkte += 10`, `tresor_fehlversuche += 1`.
- **Setzen**: `Szene_gesehen = 1` (Flag aktivieren), `timer = 0` (reset).
- **Beispiel-Workflow**: Beim Szenenstart `Szene_gesehen = 1`; beim richtigen Code `punkte += 20`; beim falschen Code `tresor_fehlversuche += 1`.

---

## Muster &amp; Best Practices

- **Benennung**: klein\_schreiben\_mit\_unterstrich (eindeutig &amp; sprechend).
- **Flags statt Text**: nutze Zahlen (0/1) statt Strings – schneller &amp; fehlerarm.
- **Initialisierung**: setze Startwerte bewusst zu Beginn des Spiels/Levels.
- **Sicherheit**: prüfe vor dem Abziehen auf Grenzwerte (z. B. nicht unter 0).
- **Dokumentation**: kurze Tabelle deiner Variablen (Name, Bedeutung, Startwert).

---

## Mini-Beispiele

- **Intro-Once**
    
    
    - Bedingung: „Intro-Dialog nur, wenn `intro_seen == 0`“
    - Aktion beim Anzeigen: `intro_seen = 1`
- **Punktesystem**
    
    
    - Rätsel gelöst: `punkte += 10`
    - Bonuspfad: sichtbar, wenn `punkte >= 30`
- **Fehlversuche**
    
    
    - Bei falscher Eingabe: `fails += 1`
    - Zeige Hilfe, wenn `fails >= 2`

Mit Variablen baust du vom simplen „Schon gesehen?“ bis zur komplexen Quest-Logik alles sauber und wiederverwendbar.

# Elemente entfernen

Mit **Elemente entfernen** kannst du während des Spiels bereits platzierte, dynamische Elemente **ausblenden bzw. deaktivieren**. So steuerst du, was nach einer Aktion noch sichtbar/benutzbar ist.

**Unterstützte Typen**

- **Wegpunkt** (Map-Marker)
- **QR-Code**
- **NFC-Tag**
- **Countdown**
- **Inventar-Gegenstand**

> Der Effekt gilt für den **aktuellen Spielstand/Teamlauf**. Andere Teams/Spielstände bleiben unberührt.

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/W8Hgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/W8Hgrafik.png)Bedienung

1. **+ Element** → Typ wählen (z. B. *Inventar*).
2. Je nach Typ das **konkrete Ziel** auswählen (z. B. Inventar-Item „Byte“ oder Wegpunkt „Brücke“).
3. Mehrere Elemente können in **einem Schritt** hinzugefügt und entfernt werden.
4. **Speichern** – die Entfernung passiert, **wenn diese Szene/Aktion ausgeführt** wird.

---

## Verhalten pro Typ

- **Wegpunkt**: Marker verschwindet; Auto-Select/Proximity löst nicht mehr aus.
- **QR/NFC**: Code/Tag ist für diesen Lauf **inaktiv** (Scan hat keine Wirkung).
- **Countdown**: Läuft nicht weiter und wird aus der UI entfernt.
- **Inventar**: Item wird **aus dem Inventar gelöscht** (entspricht Menge → 0 und ausblenden).

Wenn ein anvisiertes Element **nicht (mehr) existiert**, passiert still **nichts** (idempotent).

---

## Typische Einsatzfälle

- Nach Betreten eines Wegpunkts den **Marker entfernen**, damit die Karte clean bleibt.
- Ein **einmaliger QR/NFC** soll nur für den ersten Fund zählen.
- **Rätsel verbraucht** ein Item → Item aus dem Inventar entfernen.
- **Countdown** bei Pfadwechsel stoppen und ausblenden.

---

## Best Practices

- **Klarer Zeitpunkt**: Entfernen meist **nach** Abschluss eines Tasks (z. B. am Ende der Erfolgs-Szene).
- **Feedback** geben: „Wegpunkt erreicht – Marker entfernt“, „Schlüssel abgegeben“.
- **Sicherheit**: Entfernen von QR/NFC nur, wenn der Folgeschritt garantiert erreichbar ist (kein Soft-Lock).
- **Testen**: Lauf zweimal spielen – prüfen, dass entfernte Elemente nicht unerwartet wieder auftauchen.

---

## Kurz-Checkliste

1. In der Szene **Elemente entfernen** hinzufügen.
2. **Typ** und **Ziel** wählen (ggf. mehrere).
3. Platzierung prüfen (wann soll es passieren?).
4. Speichern → auf dem Gerät testen.

# Countdown

Mit dem **Countdown** gibst du einer Szene (oder einer ganzen Aufgaben-Sequenz) ein **Zeitlimit**. Der Timer läuft sichtbar in der App herunter. Er startet, sobald die Szene mit dem Countdown **betreten** wird und läuft weiter, bis er **abgelaufen** ist oder du ihn **entfernst**.

<div class="flex max-w-full flex-col grow" id="bkmrk-"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9365cf69-c5ea-45ed-bf86-1ad204df00f3" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">---

</div></div></div></div>## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/dfOgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/dfOgrafik.png)Felder

**Zeit (in Min.)**  
Gib die Dauer in **Minuten** an (z. B. `1`, `5`, `15`).  
Tipp: Kurze Tests immer mit `1`–`2` Minuten anlegen.

**Zielszene** *(optional)*  
Szene, die **automatisch geöffnet** wird, wenn der Countdown 0 erreicht.

<div class="flex max-w-full flex-col grow" id="bkmrk-setzt-du-keine-ziels"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9365cf69-c5ea-45ed-bf86-1ad204df00f3" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Setzt du keine Zielszene, endet der Countdown ohne Szenenwechsel (du kannst z. B. selbst Hinweise/Buttons in der Szene platzieren, was passieren soll).

---

</div></div></div></div><table border="1" id="bkmrk-verhalten-in-der-app" style="border-collapse: collapse; width: 100%; border-width: 0px;"><colgroup><col style="width: 40.1667%;"></col><col style="width: 59.9286%;"></col></colgroup><tbody><tr><td style="border-width: 0px;"><video controls="controls" height="600" src="https://docs.scenario.app/attachments/52?open=true" width="300"></video></td><td style="border-width: 0px;">## Verhalten in der App

<div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9365cf69-c5ea-45ed-bf86-1ad204df00f3" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling"><div class="flex max-w-full flex-col grow" id="bkmrk-startet-beim-szenena"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9365cf69-c5ea-45ed-bf86-1ad204df00f3" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- Startet beim **Szenenaufruf** und zählt **sichtbar** herunter.
- Läuft **szenenübergreifend weiter**, wenn du es so planst (z. B. durch direktes Weiterleiten ohne Entfernen).
- Bei **Ablauf**:
    
    
    - **mit** Zielszene → sofortiger Wechsel in diese Szene (z. B. „Zeit abgelaufen“).
    - **ohne** Zielszene → Timer stoppt bei 0; du kannst den nächsten Schritt selbst steuern.

</div></div></div></div></div></div></div></div>> Hinweis: Du kannst einen aktiven Countdown später mit **„Elemente entfernen“** gezielt beenden/ausblenden.

</td></tr></tbody></table>

<div class="flex max-w-full flex-col grow" id="bkmrk--1"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9365cf69-c5ea-45ed-bf86-1ad204df00f3" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">---

</div></div></div></div>## Typische Einsätze

<div class="flex max-w-full flex-col grow" id="bkmrk-zeitdruck-f%C3%BCr-r%C3%A4tsel"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9365cf69-c5ea-45ed-bf86-1ad204df00f3" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- **Zeitdruck für Rätsel** (z. B. 3 Minuten zum Entschlüsseln).
- **Bonusfenster**: Nur innerhalb von 2 Minuten gibt’s Extra-Punkte / alternative Szene.
- **Pacing**: Nach 10 Minuten automatisch zur nächsten Story-Phase springen.

---

</div></div></div></div>## Best Practices

<div class="flex max-w-full flex-col grow" id="bkmrk-klar-kommunizieren%3A-"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9365cf69-c5ea-45ed-bf86-1ad204df00f3" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">- **Klar kommunizieren**: In der Szene kurz erwähnen, was beim Ablauf passiert.
- **Fallback planen**: Eine **Zielszene** für „Zeit abgelaufen“ wirkt sauberer als ein „stiller“ Ablauf.
- **Nicht stapeln**: Parallel laufende Timer verwirren – nutze **einen** aktiven Countdown gleichzeitig.
- **Entfernen nach Erfolg**: Wenn das Team die Aufgabe vorzeitig schafft, den Countdown mit **Elemente entfernen → Countdown** stoppen, damit er nicht weiterläuft.
- **Playtests**: Zeiten real testen (Wegstrecken, Eingaben, GPS-Latenz berücksichtigen).

---

</div></div></div></div>## Kurz-Workflow

<div class="flex max-w-full flex-col grow" id="bkmrk-countdown-hinzuf%C3%BCgen"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9365cf69-c5ea-45ed-bf86-1ad204df00f3" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. **Countdown** hinzufügen → **Zeit** setzen.
2. (Empfohlen) **Zielszene** für Ablauf wählen.
3. In Erfolgs-/Abbruchpfaden ggf. **Countdown entfernen**.
4. Speichern → auf Gerät testen.

</div></div></div></div><div class="mt-3 w-full empty:hidden" id="bkmrk--3"><div class="text-center"><div class="mx-auto"><div><div class="inline-flex rounded-xl border border-gray-100 dark:border-gray-700"><div class="me-12 flex items-center px-4 py-3 text-start"><svg class="icon-lg text-token-main-surface-primary-inverse" fill="currentColor" height="20" viewbox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M7.91667 3.33331C8.60702 3.33331 9.16667 3.89296 9.16667 4.58331V15.4166C9.16667 16.107 8.60702 16.6666 7.91667 16.6666C7.22631 16.6666 6.66667 16.107 6.66667 15.4166V4.58331C6.66667 3.89296 7.22631 3.33331 7.91667 3.33331ZM12.0833 5.83331C12.7737 5.83331 13.3333 6.39296 13.3333 7.08331V12.9166C13.3333 13.607 12.7737 14.1666 12.0833 14.1666C11.393 14.1666 10.8333 13.607 10.8333 12.9166V7.08331C10.8333 6.39296 11.393 5.83331 12.0833 5.83331ZM3.75 7.49998C4.44036 7.49998 5 8.05962 5 8.74998V11.25C5 11.9403 4.44036 12.5 3.75 12.5C3.05964 12.5 2.5 11.9403 2.5 11.25V8.74998C2.5 8.05962 3.05964 7.49998 3.75 7.49998ZM16.25 7.49998C16.9404 7.49998 17.5 8.05962 17.5 8.74998V11.25C17.5 11.9403 16.9404 12.5 16.25 12.5C15.5596 12.5 15 11.9403 15 11.25V8.74998C15 8.05962 15.5596 7.49998 16.25 7.49998Z" fill-rule="evenodd"></path></svg><div class="ms-4"><div class="text-token-main-surface-primary-inverse text-sm font-semibold"></div></div></div></div></div></div></div></div>

# Hinweise (Hints)

Mit **Hinweisen** gibst du zeitgesteuerte Hilfe zu einer Szene – bis hin zur **Lösung**. Du kannst bis zu **3 Hinweise** und **1 Lösung** definieren. Die Freigabe erfolgt **automatisch nach Zeit** (ab Betreten der Szene).

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/MqXgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/MqXgrafik.png)Felder

**Hinweis 1–3**

- **Zeit (in Minuten):** Nach wie vielen Minuten der Hinweis **verfügbar** wird.
    
    
    - `0` = sofort verfügbar.
    - Feld leer lassen = Hinweis wird **nicht** verwendet.
- **Text:** Inhalt des Hinweises.

**Lösung**

- **Zeit (in Minuten):** Freigabezeit für die **komplette Lösung** (meist deutlich später als die Hinweise).
- **Text:** Lösungstext.

---

<table border="1" id="bkmrk-verhalten-in-der-app" style="border-collapse: collapse; width: 100%; border-width: 0px;"><colgroup><col style="width: 42.5343%;"></col><col style="width: 57.4398%;"></col></colgroup><tbody><tr><td style="border-width: 0px;"><video controls="controls" height="600" src="https://docs.scenario.app/attachments/53?open=true" width="300"></video></td><td style="border-width: 0px;">## Verhalten in der App

- Die Uhr startet **beim Eintritt in die Szene**.
- Sobald ein Hinweis freigegeben ist, erscheint in der UI das **Hinweis-Badge** (mit Zähler) – Spielende können ihn dann **öffnen**.
- Hinweise bleiben nach Freigabe **dauerhaft verfügbar** (auch wenn die Szene kurz verlassen wird).
- **Gelesen/ungelesen** wird getrackt; das Badge-Icon zeigt den Status (z. B. noch ausstehende/neu verfügbare Hinweise).
- Erreicht die Szene das Lösungs-Zeitfenster, wird zusätzlich **„Lösung“** angeboten.
- Wenn du einzelne Felder leer lässt, werden sie **übersprungen**.

> Tipp: Die Hinweiszeiten sind **relativ** und **unabhängig** voneinander. Beispiel: H1 nach 2 min, H2 nach 5 min, Lösung nach 10 min.

---

</td></tr></tbody></table>

---

## Gute Praxis

- **Staffelung:**
    
    
    - H1: kleiner Schubs (z. B. Richtung/Ort).
    - H2: konkreterer Tipp.
    - H3: fast direkt vor die Nase.
    - Lösung: vollständig.
- **Zeiten real testen:** GPS-/Wegzeiten und Gruppen-Tempo berücksichtigen.
- **Klar &amp; kurz schreiben:** Ein Hinweis = ein Gedanke.
- **Keine Spoiler in H1:** Spannung erhalten.
- **Mit Countdown kombinieren:** Bei engem Zeitlimit Lösung ggf. früher anbieten.
- **Barrierefrei:** Wichtige Zahlen/Begriffe eindeutig (keine reinen Farbhilfen).

---

## Beispiele

- Stadt-Rätsel: `H1 2′` „Schau auf Augenhöhe an der Tür.“, `H2 4′` „Links neben der Klingel.“, `Lösung 7′` „Code: 4711“.
- Suchaufgabe im Wald: `H1 3′` „Folge dem schmalen Pfad.“, `H2 6′` „Moosiger Stein rechts.“

---

## Kurz-Checkliste

1. Für jede Szene sinnvolle **H1–H3 + Lösung** planen.
2. **Zeiten** eintragen (nicht benötigte Felder leer lassen).
3. **Texte** klar formulieren.
4. Szene testen → Zeiten ggf. anpassen.

# Foto-Challenge

Mit der **Foto-Challenge** sollen Spielende ein **neues Foto** aufnehmen, das zu deiner **Aufgabenbeschreibung** passt (z. B. „Brücke **und** Kirchturm gemeinsam im Bild“). Das Foto wird automatisch bewertet; je nach **Score** (0–100) leitest du in eine **Erfolgs-** oder **Fehl-Zielszene** weiter.

---

## [![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/55Ggrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/55Ggrafik.png)Felder

**Aufgabenbeschreibung**  
Kurze, klare Anweisung, was auf dem Foto zu sehen sein soll.  
Beispiele:

- „Rotes Fahrrad **vor** dem Brunnen“
- „Zwei Straßenschilder **im selben Bild**“
- „Teammitglied hält Ticket **lesbar** in die Kamera“

**Schwellenwert (0–100)**  
Grenze, ab der die Challenge als **bestanden** gilt.

- **Niedriger** = toleranter, **höher** = strenger.
- Praxiswerte: Outdoor 60–75, nahe/klare Motive 70–85.

**Retry erlauben**

- **An**: Nach Fehlversuch direkt **neues Foto** möglich.
- **Aus**: Bei Fehlversuch geht es sofort in die **Fehl-Zielszene**.

**Erfolgs-Zielszene / Fehl-Zielszene**  
Szenen für **bestehen** bzw. **nicht bestehen** (z. B. „Gut gemacht!“ / „Versuch’s noch mal – Tipp“).

**Notiz (optional)**  
Interne Redaktionsnotiz (für dich, nicht sichtbar im Spiel).

---

## Verhalten in der App

1. Die App öffnet die **Kamera** und zeigt die Aufgabenbeschreibung.
2. Nach dem Auslösen wird das Bild **automatisch bewertet** (Score 0–100).
3. **Score ≥ Schwellenwert** → **Erfolgs-Zielszene**.
4. **Score &lt; Schwellenwert** → mit **Retry** neuer Versuch, sonst **Fehl-Zielszene**.
5. (Optionales Projektverhalten) Aufgenommene Fotos können im **Verlauf/Upload** erscheinen.

> Kamera-/Speicherrechte müssen erlaubt sein. Diese Funktion erfordert zwingend eine Internetverbindung. Die Aufgabenprüfung erfolgt mit künstlicher Intelligenz.

---

## Gute Aufgaben schreiben (wirkt direkt auf den Score)

- **Konkret statt vage:** „Brücke **und** Kirche im selben Bild“ statt „Macht ein schönes Foto“.
- **Objekte &amp; Beziehungen nennen:** „Person hält **Zeitung** **vor** Café-Schild“.
- **Zählwörter verwenden:** „**Zwei** Straßenschilder“, „**eine** rote Blume“.
- **Meide Negationen:** „ohne Menschen“ ist schwer zuverlässig prüfbar – besser positiv formulieren.
- **Lesbarkeit/Qualität:** Wenn Text erkennbar sein soll, schreibe „**Text lesbar**“.
- **Kontext nutzen:** Ortsmerkmale (Brunnen, Turm, Logo) sind leichter prüfbar als Stimmungen.

---

## Praxis-Tipps

- **Schwelle testen:** Starte mit **70** und prüfe vor Ort unterschiedliche Licht-/Winkel-Situationen.
- **Hinweise kombinieren:** Nutze das **Hinweise**-Feature, falls Teams häufiger scheitern.
- **Cheat-Sicherheit:** Galerie-Import deaktivieren (falls Projektoption vorhanden) → nur **Live-Foto**.
- **Klare Kommunikation:** Kurz sagen, was bei Misserfolg passiert („Du kannst es gleich nochmal versuchen“).
- **Datenschutz:** Keine identifizierbaren Personen als Pflichtobjekt in sensiblen Bereichen.

---

## Kurz-Workflow

1. **Aufgabenbeschreibung** formulieren.
2. **Schwellenwert** setzen (z. B. 70), **Retry** wählen.
3. **Erfolgs-** und **Fehl-Zielszene** festlegen.
4. Speichern und **vor Ort testen** → Schwelle ggf. feinjustieren.

So baust du flexible Foto-Missionen, die ohne Referenzbild auskommen und trotzdem automatisch bewertet werden.

# Javascript

Mit **Javascript** kannst du Szenen mit eigener Logik erweitern – z. B. UI anpassen, kleine Effekte einbauen, Zeiten messen oder externe Schnittstellen triggern.

> **Wichtig:** JS ist **inkonstant** – beim Betreten **jeder** Szene wird es **neu** ausgeführt. Teile, die überall gelten sollen, gehören in die **Masterszene** `[[ ]]`.  
> Starte dein Script immer **leicht verzögert**, damit die Szene fertig gerendert ist:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">  
</div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```
setTimeout(function () { // dein Code hier }, 300); 
```

---

## Gute Praxis (sehr wichtig)

- **Idempotent denken:** Code darf mehrfach laufen, ohne doppelten Effekt zu erzeugen.  
    Nutze einen „Once“-Guard:
    
    <div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
    </div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-built_in">setTimeout</span>(<span class="hljs-keyword">function</span> () {  <span class="hljs-keyword">if</span> (<span class="hljs-variable language_">window</span>.<span class="hljs-property">__sceneOnce</span>) <span class="hljs-keyword">return</span>;  <span class="hljs-variable language_">window</span>.<span class="hljs-property">__sceneOnce</span> = <span class="hljs-literal">true</span>;  <span class="hljs-comment">// init …</span>}, <span class="hljs-number">200</span>);`</div></div>
- **Aufräumen:** Wenn du `setInterval`/Event-Listener setzt, räume sie auf (oder nutze `{ once:true }` bei `addEventListener`).
- **Robust warten:** Wenn du ein Element brauchst, das evtl. später kommt, warte kurz darauf:
    
    <div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
    </div></div></div><div class="overflow-y-auto p-4" dir="ltr">  
    </div></div>```
    function waitSel(sel, cb, tries=20){ const el = document.querySelector(sel); if (el) return cb(el); if (tries--) return setTimeout(()=>waitSel(sel, cb, tries), 100); } setTimeout(()=>waitSel('.btn-primary', btn=>{ btn.classList.add('pulse'); }), 200); 
    ```
- **Keine Blocker:** Lange Schleifen vermeiden; lieber Timings/Promises verwenden.
- **Fallbacks:** Netzaufrufe können an CORS/Offline scheitern → Fehler behandeln.

---

## Häufige Mini-Rezepte

### 1) Button-Label/Style anpassen

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-settimeout%28function--1"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-built_in">setTimeout</span>(<span class="hljs-keyword">function</span> () {  <span class="hljs-keyword">const</span> btn = <span class="hljs-variable language_">document</span>.<span class="hljs-title function_">querySelector</span>(<span class="hljs-string">'button'</span>);  <span class="hljs-keyword">if</span> (!btn) <span class="hljs-keyword">return</span>;  btn.<span class="hljs-property">textContent</span> = <span class="hljs-string">'Los geht’s'</span>;  btn.<span class="hljs-property">style</span>.<span class="hljs-property">filter</span> = <span class="hljs-string">'drop-shadow(0 6px 12px rgba(0,0,0,.25))'</span>;}, <span class="hljs-number">200</span>);`</div></div>### 2) Szene nach X Sekunden automatisch fortsetzen

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-settimeout%28function--2"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-built_in">setTimeout</span>(<span class="hljs-keyword">function</span> () {  <span class="hljs-comment">// z.B. per Klick auf einen Weiter-Button simulieren</span>  <span class="hljs-keyword">const</span> next = <span class="hljs-variable language_">document</span>.<span class="hljs-title function_">querySelector</span>(<span class="hljs-string">'[data-action="next"], .btn-continue'</span>);  <span class="hljs-keyword">if</span> (next) next.<span class="hljs-title function_">click</span>();}, <span class="hljs-number">10000</span>); <span class="hljs-comment">// 10 s</span>`</div></div>### 3) Einfache „Einmal“-Animation

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-settimeout%28function--3"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-built_in">setTimeout</span>(<span class="hljs-keyword">function</span> () {  <span class="hljs-keyword">const</span> el = <span class="hljs-variable language_">document</span>.<span class="hljs-title function_">querySelector</span>(<span class="hljs-string">'.dialog, .content'</span>);  <span class="hljs-keyword">if</span> (!el) <span class="hljs-keyword">return</span>;  el.<span class="hljs-title function_">animate</span>([{<span class="hljs-attr">opacity</span>:<span class="hljs-number">0</span>, <span class="hljs-attr">transform</span>:<span class="hljs-string">'translateY(8px)'</span>},{<span class="hljs-attr">opacity</span>:<span class="hljs-number">1</span>, <span class="hljs-attr">transform</span>:<span class="hljs-string">'none'</span>}],             {<span class="hljs-attr">duration</span>:<span class="hljs-number">400</span>, <span class="hljs-attr">easing</span>:<span class="hljs-string">'ease-out'</span>});}, <span class="hljs-number">150</span>);`</div></div>### 4) Soft-Gate per Tageszeit (Beispiel)

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-settimeout%28function--4"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-built_in">setTimeout</span>(<span class="hljs-keyword">function</span> () {  <span class="hljs-keyword">const</span> h = <span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>().<span class="hljs-title function_">getHours</span>();  <span class="hljs-keyword">if</span> (h < <span class="hljs-number">8</span> || h > <span class="hljs-number">20</span>) {    <span class="hljs-title function_">alert</span>(<span class="hljs-string">'Tipp: Diese Aufgabe klappt am besten bei Tageslicht.'</span>);  }}, <span class="hljs-number">250</span>);`</div></div>### 5) Ereignis mitzählen (lokal)

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-settimeout%28function--5"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-built_in">setTimeout</span>(<span class="hljs-keyword">function</span> () {  <span class="hljs-keyword">const</span> k = <span class="hljs-string">'tries_safe_open'</span>;  <span class="hljs-keyword">const</span> n = <span class="hljs-number">1</span> + +(<span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">getItem</span>(k) || <span class="hljs-number">0</span>);  <span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">setItem</span>(k, n);  <span class="hljs-keyword">if</span> (n >= <span class="hljs-number">3</span>) {    <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'3 Fehlversuche – zeige Hilfe.'</span>);    <span class="hljs-comment">// hier könntest du z.B. einen Hilfe-Button einblenden</span>  }}, <span class="hljs-number">200</span>);`</div></div><div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--3"><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>---

## Typische Stolperfallen

- **Doppelte Listener**: Bei jeder Rückkehr in die Szene wird JS neu ausgeführt → `once`-Option nutzen:
    
    <div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
    </div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-variable language_">window</span>.<span class="hljs-title function_">addEventListener</span>(<span class="hljs-string">'click'</span>, handler, { <span class="hljs-attr">once</span>:<span class="hljs-literal">true</span> });`</div></div>
- **Zu früher Zugriff**: Ohne Delay (`setTimeout`) existieren DOM-Elemente evtl. noch nicht.
- **Starke Manipulation am Layout**: Bedenke, dass die App auf vielen Displaygrößen läuft – nur sanft stylen.
- **Blockierende Prompts/Alerts**: Sparsam einsetzen; sie unterbrechen den Flow.

---

## Checkliste

1. **Delay** einbauen (`setTimeout` 150–300 ms).
2. **Idempotent** &amp; ggf. **Once-Guard** verwenden.
3. Wo nötig: **waitSel**/Observer nutzen.
4. Netz-/Fehlerfälle abfangen.
5. Auf mehreren Geräten testen.

Damit bekommst du stabile, kleine Scripts, die zuverlässig mit der Szenenlogik zusammenspielen.

Gute Beispiele "ready to use" findest du auch unter [Hacks](https://docs.scenario.app/books/storyboard/chapter/hacks-tipps "05 Hacks & Tipps").

# Stylesheets (Benutzerdefinierte Stile)

Mit **Stylesheets** kannst du eigenes **CSS** einbinden.  
Wichtig: **Stylesheets sind konstant** – einmal geladen, wirken sie **im ganzen Spiel** (alle Szenen). Plane also **global** und arbeite bevorzugt mit **Klassen**, nicht mit generischen Element-Selektoren.

---

## Grundprinzipien

- **Global &amp; dauerhaft**: Regeln gelten szenenübergreifend, bis du sie änderst oder entfernst.
- **Mit Klassen arbeiten**: Viele Features (z. B. 360°-Hotspot) haben ein Feld **„CSS-Klasse“** – dort trägst du Klassen wie `hs-primary` ein und definierst sie hier im Stylesheet.
- **Schonend stylen**: Keine globalen Resets wie `*{ margin:0 }` oder `button{… }`, das kann UI-Elemente der App unerwartet verändern.
- **Spezifität niedrig halten**: Lieber `.hs-primary` als `div .container .hs-primary`. So bleibt es wartbar.

---

## Beispiele

### 1) Eigene Hotspot-/Button-Stile

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--2"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```
/* im Feature als CSS-Klasse: hs-primary */ .hs-primary{ background: #3faace; color:#fff; border:1px solid rgba(0,0,0,.25); border-radius:10px; padding:.5rem .75rem; box-shadow:0 6px 16px rgba(0,0,0,.15); } .hs-primary:hover{ transform:translateY(-1px); }
```

### 2) Utility-Klassen für Inhalte

Nutze sie in Textblöcken, Dialogen, etc. (wo Klassen gesetzt werden können).

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--3"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```
.u-shadow { box-shadow:0 8px 24px rgba(0,0,0,.18); } .u-round { border-radius:16px; } .u-muted { opacity:.75 } .u-center { text-align:center } .u-spacious { padding:1rem } 
```

### 3) Farb-Theme per CSS-Variablen

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--4"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```
:root{ --brand:#68bfdd; --brand-ink:#fff; } .btn-primary{ background:var(--brand); color:var(--brand-ink); }
```

### 4) Sanfte Szene-Einstiegsanimation (klasse auf Container setzen)

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--5"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```
.scene-fadein{ animation:scnFade .45s ease-out both; } 
@keyframes scnFade{ from{ opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } } 
```

---

## Best Practices

- **Scoping**: Wenn möglich, gib Szenen/Features eigene Klassen und style **nur** diese (`.quiz-intro .u-muted`).
- **Kontrast &amp; Lesbarkeit**: Farben so wählen, dass AA-Kontrast (≥ 4.5:1) erreicht wird – besonders bei Buttons/Links.
- **Animationen sparsam**: Kurze, dezente Effekte (≤ 500 ms, `ease-out`).
- **Testen auf Geräten**: Unterschiedliche Displays, Dark-Mode und Zoomstufen durchprobieren.
- **Rollback**: Wenn etwas „zu global“ wirkt, überschreibe gezielt oder entferne die Regel (Stylesheets wirken sofort in allen Szenen).

---

## Mini-Checkliste

1. Klassen in Features vergeben (z. B. **CSS-Klasse** im Hotspot-Editor).
2. Passende Regeln hier definieren (keine globalen Tag-Selektoren).
3. Responsiv &amp; kontrastreich gestalten.
4. Auf mehreren Geräten testen.

So bleibt dein Look konsistent – und trotzdem präzise steuerbar pro Feature/Szene.

# Team-Sync deaktivieren

Mit **Team-Sync** werden Szenenwechsel können normalerweise **für das ganze Team gespiegelt** werden.  
Das Feature **„Team-Sync deaktivieren“** unterbricht diese Synchronisierung **für die aktuelle Szene**.

---

## Was passiert genau?

- **In dieser Szene gilt:**  
    Jeder spielt **lokal** auf seinem Gerät. **Szenenwechsel**, Button-Klicks, Medien-Starts usw. werden **nicht** an die anderen Teamgeräte gespiegelt.
- **Danach:**  
    Verlässt man die Szene (oder in der nächsten Szene ohne dieses Feature), greift der normale **Team-Sync wieder**.
- **Spielstand:**  
    Globale Zustände (z. B. Punkte/Variablen/Inventar, die du per Logik setzt) bleiben **teamweit** konsistent – du unterdrückst nur die **Navigation/Sync der Szene**, nicht deine eigenen Spielregeln.

> Kurz: **Navigation &amp; UI-Interaktionen lokal**, **deine Variablen/Inventar-Logik weiterhin global** (so wie du sie definierst).

---

## Typische Einsätze

- **Geheime Auswahl / Voting**  
    Jede Person wählt erst **alleine**; danach führst du per Logik wieder zusammen (z. B. Auswertungsszene).
- **Parallele Aufgaben**  
    Zwei Hinweise/Wege werden separat gelöst, ohne dass ein Gerät die anderen „mitzieht“.
- **Medien in Ruhe ansehen**  
    Video/Audio individuell abspielen, ohne dass ein „Weiter“ alle anderen rauswirft.

---

## So nutzt du es

1. **Feature „Team-Sync deaktivieren“** in **die betreffende Szene** einfügen.
2. Buttons/Navigation normal anlegen – sie wirken **nur lokal**.
3. In der Folgeszene (ohne dieses Feature) kann das Team wieder synchronisieren.

---

## Best Practices

- **Kommuniziere es im Text**: „Ihr entscheidet jetzt **jeweils für euch**.“
- **Wieder zusammenführen**: Plane eine **gemeinsame Folgeszene** (z. B. Auswertung), in der Team-Sync wieder aktiv ist.
- **Soft-Locks vermeiden**: Achte darauf, dass jede lokale Entscheidung **einen Weg zurück** oder **einen klaren Abschluss** hat.
- **Status trotzdem speichern**: Nutze Variablen/Inventar, um individuelle Eingaben zu sichern und später auszuwerten.
- **Karten/Orts-Trigger**: Wenn in dieser Szene noch Wegpunkte/QR/NFC genutzt werden, lösen sie **nur auf dem jeweiligen Gerät** aus – plane die Folgeaktionen entsprechend.

---

## Muster

- **Geheime Wahl**: Team-Sync aus → alle wählen A/B → Variable pro Gerät setzen → Sammelszene liest Variablen aus und zeigt Ergebnis.
- **Parallel-Lesen**: Jeder öffnet ein anderes Dokument/Foto im Inventar → danach gemeinsamer Button „Fertig – weiter“.

Mit „**Team-Sync deaktivieren**“ verhinderst du gezielt das Mitziehen der Gruppe – perfekt für individuelle Schritte innerhalb eines gemeinsamen Spiels.

# 🛠️ Hacks & Tipps

Kleine Kniffe mit großer Wirkung: hier findest du kompakte Rezepte, Code-Snippets und Best-Practices, die Szenen schneller schöner und smarter machen. Ideal zum Nachbauen – von Mini-Effekten bis zu cleveren Utilities.

# Passwort-Abfrage innerhalb einer Szene

Wenn du eine eigene Passwort- oder Wertabfrage implementieren möchtest, dann erstelle zunächst eine neue, leere Szene.

1. Füge die Funktion "Javascript" hinzu:

```javascript
    window.passwort = function () {
    
    let content = '<input type="text" id="passwort" name="name" required size="10" placeholder="Passwort?">'
    
    $.confirm({
        title: 'Bitte gib ein gültiges Passwort ein:',
        content: content,
        buttons: {
            'Flug suchen': {
                text: 'Passwort prüfen',
                btnClass: 'btn-blue',
                action: function () {
                    var passwort = this.$content.find('#passwort').val();
                    if(!passwort){
                        $.alert('Bitte gib ein Passwort ein!');
                        return false;
                    }
                    if(passwort == "123456") {
                        // do something!
                        $.alert('Richtig!');
                        window.story.go('ZIELSZENE'); // Hier den Titel deiner Ziel-Szene eingeben
                    } else {
                        $.alert('Das Passwort ' + name + ' ist leider falsch!');
                    }
                }
            },
            'Abbrechen': function () {
                //close
            },
        },
        onContentReady: function () {
            // bind to events
            var jc = this;
            this.$content.find('form').on('submit', function (e) {
                e.preventDefault();

            });
        }
    });
    };


```

2\. Editiere in deiner Szene den HTML Code und füge folgenden Coder an einer beliebigen Stelle ein:

```html
<button name="test" onClick="window.passwort();">Passwort</button>
```

# Typewriter Effekt

#### Demo

####  <video class=" align-left" controls="controls" height="270" src="https://docs.scenario.app/attachments/36?open=true" width="480"></video>

Wenn der Text in einer Szene wie von einer Schreibmaschine getippt werden soll, dann kann dieser Effekt mit einem Javascript Code in einer globalen Sektion erreicht werden:

#### Globale Sektion -&gt; Funktion Javascript

```javascript
window.showSpeechBubble = function (text) {
    var output = document.getElementById("output");

    // Sprechblase erstellen
    var bubble = document.createElement("div");
    bubble.classList.add("speech-bubble");
    output.appendChild(bubble);

    // Text Typing Effekt
    let index = 0;
    bubble.style.opacity = 1; // Blendet die Sprechblase ein
    
    function typeWriter() {
        // HTML-Interpretation sicherstellen
        bubble.innerHTML = text.substring(0, index);

        if (index < text.length) {
            index++;
            setTimeout(typeWriter, 50); // Geschwindigkeit des Tippens
        }
    }

    typeWriter();
}
```

#### Globale Sektion -&gt; Stylesheet

\*optional, damit sieht der Text ähnlich wie eine Sprechblase aus.

```css
.speech-bubble {
    position: absolute;
    top:100px;
    left: 5%;
    max-width: 90%;
    padding: 10px;
    background-color: white;
    border-radius: 10px;
    border: 2px solid black;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
    font-family: mom;
    font-size: 14px;
    color: black;
    line-height: 1.4;
    opacity: 0; /* Startet unsichtbar */
    transition: opacity 0.5s; /* Sanftes Einblenden */
}

.speech-bubble::after {

    position: absolute;

    left: 5%;
    width: 0;
    height: 0;
    border: 10px solid transparent;
    border-top-color: white;
    border-bottom: 0;
    border-left: 0;
    margin-left: -5px;
}
```

#### Szene -&gt; Funktion Javascript

```javascript
setTimeout(function() {
    window.showSpeechBubble('HIER DER TEXT, DER GETIPPT WERDEN SOLL');
},2000);
```

####   

# KI-Generator

Der **KI-Generator** baut dir aus einer kurzen Beschreibung einen **Story-Entwurf** mit **Szenenstruktur, Titeln und Textideen**. Perfekt, um schnell vom leeren Board zu einem spielbaren Rohling zu kommen.

---

## <video class=" align-center" controls="controls" height="434" src="https://docs.scenario.app/attachments/54?open=true" style="width: 773px; height: 434px;" width="773"></video>

## Felder

**Beschreibe dein Szenario**  
Freitext-Prompt: Worum geht’s? Wo spielt es? Welche Orte/Elemente sollen vorkommen?  
Beispiel:

> „Erstelle eine Geschichte vom verschwundenen Gold in der Braunschweiger Innenstadt, die zu den 3 wichtigsten Sehenswürdigkeiten führt.“

**Max. Szenen**  
Obergrenze für die erzeugte Szenenzahl (z. B. *10*). Die KI versucht, darunter zu bleiben.

**Sprache**  
Sprache des Entwurfs (z. B. *Deutsch*, *Englisch* …).

**Tageslimit**  
Oben siehst du, wie viele **Generierungen heute** noch möglich sind (z. B. *0 verwendet • übrig: 20/Tag*).

**Buttons**

- **Generieren** – startet die Erstellung.
- **Abbrechen** – schließt ohne Ergebnis.

---

## Ergebnis – was erzeugt wird

- **Szenen** mit **Titeln** und **Kurztexten/Dialogschnipseln**
- **lineare oder leichte Verzweigungen** (je nach Prompt)
- **Platzhalter** für Interaktionen (z. B. „Hier QR/Wegpunkt einsetzen“)
- **Ideen** für Hinweise, Rätsel oder Medien

> Der Entwurf ist absichtlich **leichtgewichtig**: Du verfeinerst danach Inhalte, fügst echte Trigger (Wegpunkt, QR/NFC), Medien und Logik hinzu.

---

## Typischer Workflow

1. **Prompt schreiben** → *Generieren*.
2. Entwurf prüfen: **Reihenfolge**, **Ton**, **Länge**.
3. Szenen öffnen und mit Features füllen (Wegpunkte, Dialoge, Eingaben, Medien …).
4. **Feintuning**: Namen, Orte, Hinweise, Inventar/Variablen ergänzen.
5. **Vorschau** starten und iterieren.

---

## Gute Prompts – Tipps

- **Ort + Ziel + Stimmung**:  
    *„Outdoor-Rätsel für Familien im Stadtzentrum, 60–90 Min., freundlich-entspannt.“*
- **Pflichtstationen nennen**:  
    *„Muss Rathaus, Dom und Burgplatz enthalten.“*
- **Interaktionstypen** nennen\*\*:\*\*  
    *„Mind. 2 QR-Scans, 1 Foto-Challenge, 1 Dialog.“*
- **Grenzen setzen**:  
    *„Max. 8 Szenen, keine Horror-Elemente, barrierearm formulieren.“*

---

## Bearbeiten &amp; Regenerieren

- Du kannst **jeden erzeugten Knoten** (Szene/Notiz) normal bearbeiten.
- Unpassendes einfach löschen; bei Bedarf **erneut generieren** (gleicher oder angepasster Prompt).
- Mehrere Läufe lassen sich **kombinieren** (Entwürfe mischen).

---

## Hinweise &amp; Grenzen

- **Echtwelt-Daten** (Koordinaten, Öffnungszeiten etc.) sind **Platzhalter** – prüfe sie und setze echte Wegpunkte/Trigger.
- **Konsistenz**: Namen/Begriffe ggf. vereinheitlichen.
- **Urheberrecht**: Für Bilder/Audio/Video eigene Assets nutzen.
- **Datenschutz**: Keine sensiblen Personendaten in Prompts verwenden.

---

## Kurz-Checkliste

- Klarer Prompt (Ort, Ziel, max. Szenen, Stil).
- Generieren → Entwurf sichten.
- Features &amp; Logik ergänzen.
- Vorschau testen, iterieren.

So kommst du in Minuten vom **Nichts** zu einem **spielbaren Grundgerüst** – und kannst dich aufs kreative Feintuning konzentrieren.

# 🖥️ Backend + kommerzielle Features

Admin-Werkzeuge und Business-Features für Betrieb, Auswertung und Monetarisierung.

# Modul: Statistik

<span style="white-space: pre-wrap;">Das </span>**Statistik-Modul**<span style="white-space: pre-wrap;"> bündelt alle Messwerte rund um deine Spiele – vom Spielverlauf (Starts/Abschlüsse/Abbrüche) über Besucherzahlen bis zu Commerce-Daten (Bestellungen/Umsatz) und Standort-Insights. Du kannst Zeiträume filtern, nach „day/week/month“ gruppieren, mehrere Spiele vergleichen und die Daten exportieren.</span>

---

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/kjBgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/kjBgrafik.png)

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/KR4grafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/KR4grafik.png)

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/7jFgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/7jFgrafik.png)

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/nZmgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/nZmgrafik.png)

---

## Oberfläche &amp; Funktionen

**Spiele (Org)**

- Wähle 1…n Spiele aus deiner Organisation.
- **Tipp:**<span style="white-space: pre-wrap;"> Ohne Auswahl nutzt das Modul automatisch das </span>**aktuell geladene Spiel**.

**Zeitraum &amp; Gruppierung**

- **Start/Ende**<span style="white-space: pre-wrap;"> wählen (Schnellfilter: </span>**heute, diese Woche, letzte 7 Tage, …**).
- **group by:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">day | week | month</span>`<span style="white-space: pre-wrap;"> (verdichtet Daten für lange Zeiträume).</span>
- **Skalierung:**<span style="white-space: pre-wrap;"> </span>**auto**<span style="white-space: pre-wrap;"> (achsenabhängig) oder feste Skalen.</span>

**Aktionen**

- **Aktualisieren**<span style="white-space: pre-wrap;"> – neuen Query ausführen.</span>
- **CSV / PDF**<span style="white-space: pre-wrap;"> – Export der aktuell gefilterten Ansicht.</span>

**Übersicht (KPI-Kacheln)**

- **Gestartet**<span style="white-space: pre-wrap;"> · </span>**Abgeschlossen**<span style="white-space: pre-wrap;"> · </span>**Abgebrochen**<span style="white-space: pre-wrap;"> · </span>**Ø-Zeit**<span style="white-space: pre-wrap;"> (Sek.)</span>
- **Besucher (App)**<span style="white-space: pre-wrap;"> · </span>**Besucher (Browser)**
- **Bestellungen**<span style="white-space: pre-wrap;"> · </span>**Umsatz (€)**<span style="white-space: pre-wrap;"> · </span>**Unlocks**
- **Gebucht**<span style="white-space: pre-wrap;"> · </span>**Terminiert**  
    Farblegende unterhalb der Kacheln entspricht den Farben in den Charts.

**Charts &amp; Tabellen**

- Balkendiagramm je Periode (entspr. group by).
- <span style="white-space: pre-wrap;">Tabellen </span>**Playlog je Periode**<span style="white-space: pre-wrap;"> und </span>**Commerce &amp; Termine je Periode**<span style="white-space: pre-wrap;"> mit denselben Kennzahlen.</span>

**Top-Listen &amp; Heatmap**

- **Top Locations**<span style="white-space: pre-wrap;"> (Geostandorte, anonymisiert/aggregiert).</span>
- **Top Browser / User-Agents**<span style="white-space: pre-wrap;"> (Technik-Profil deiner Nutzer:innen).</span>
- **Heatmap (Top-Standorte)**<span style="white-space: pre-wrap;"> auf OSM-Karte – Dichteverteilung deiner Reichweite.</span>

**Rechtehinweis**

- <span style="white-space: pre-wrap;">Im Footer siehst du dein </span>**Lizenz-Level**<span style="white-space: pre-wrap;"> und ob du </span>**Admin**<span style="white-space: pre-wrap;"> bist (Admin = voller Zugriff innerhalb deiner Org).</span>

---

## Metriken – Definition (Kurz)

- **Gestartet**: Spielstarts (Sessions).
- **Abgeschlossen**<span style="white-space: pre-wrap;">: Erreichtes </span>`<span class="editor-theme-code">[[End]]</span>`.
- **Abgebrochen**: Verlassene Sessions, die nicht im Endknoten landen.
- **Ø-Zeit**: Durchschnittliche Spieldauer (Start → Ende/Abbruch) in Sekunden.
- **Besucher (App/Browser)**: Reichweite nach Plattform.
- **Bestellungen / Umsatz (€)**: Commerce-Events aus verbundenem Shop/Checkout.
- **Unlocks**: Freischaltungen (z. B. Paid Unlocks, Codes).
- **Gebucht / Terminiert**: Terminbuchungen / angesetzte Termine (falls Modul aktiv).

> **Datenlatenz:**<span style="white-space: pre-wrap;"> Aggregationen können je nach Volumen einige Minuten verzögert sein.</span>

---

## Lizenz-Matrix (vorläufig)

> **Alle unten genannten Statistik-Funktionen sind grundsätzlich in allen Lizenzmodellen nutzbar.**  
> <span style="white-space: pre-wrap;">Unterschiede (z. B. Limits, Export-Optionen, Vergleich über mehrere Spiele) staffeln wir hier schon vor – </span>**konkrete Kontingente/Größen tragen wir im Lizenz-Kapitel nach**.

<table id="bkmrk-statistik-funktionfr"><colgroup><col></col><col></col><col></col><col></col><col></col><col></col></colgroup><tbody><tr><th>Statistik-Funktion

</th><th>Free

</th><th>Basic

</th><th>Pro

</th><th>Enterprise

</th><th>Notizen

</th></tr><tr><td>Dashboard/KPIs, Charts, Tabellen

</td><td>-

</td><td>✓

</td><td>✓

</td><td>✓

</td><td>Zeitraum + group by

</td></tr><tr><td>Mehrere Spiele auswählen/vergleich

</td><td>–

</td><td>◐

</td><td>✓

</td><td>✓

</td><td>Vergleich/Benchmark

</td></tr><tr><td>CSV-Export

</td><td>-

</td><td>-

</td><td>-

</td><td>✓

</td><td>Umfang/Limits je Lizenz

</td></tr><tr><td>PDF-Export

</td><td>–

</td><td>-

</td><td>-

</td><td>✓

</td><td>Branding/Logo ab Pro

</td></tr><tr><td>Top-Locations &amp; Top-Browser

</td><td>-

</td><td>-

</td><td>-

</td><td>✓

</td><td>Abh. von Datenlage

</td></tr><tr><td>Heatmap (Top-Standorte)

</td><td>-

</td><td>-

</td><td>-

</td><td>✓

</td><td>Bei geringer Datenmenge ggf. ausgeblendet

</td></tr><tr><td>Commerce-Metriken (Bestellungen/Umsatz)

</td><td>–

</td><td>-

</td><td>✓

</td><td>✓

</td><td>Wenn Commerce integriert

</td></tr><tr><td>Termine (Gebucht/Terminiert)

</td><td>–

</td><td>✓

</td><td>✓

</td><td>✓

</td><td>Wenn Terminmodul aktiv

</td></tr><tr><td>API-Zugriff auf Statistikdaten

</td><td>–

</td><td>–

</td><td>–

</td><td>**✓**

</td><td>**Enterprise:**

<span style="white-space: pre-wrap;"> direkter API-Endpoint</span>

</td></tr></tbody></table>

**Legende:**<span style="white-space: pre-wrap;"> ✓ = enthalten · ◐ = enthalten mit Limit (Details im Lizenz-Kapitel) · – = nicht enthalten.</span>

> **Enterprise:**<span style="white-space: pre-wrap;"> Zusätzlich zu UI/Export ist der </span>**direkte Zugriff per API**<span style="white-space: pre-wrap;"> möglich (Authentifizierung via JWT-Token; Endpunkte für aggregierte Zeitreihen, Top-Listen und Roh-Events). Damit kannst du BI-Tools (z. B. Power BI, Looker, Grafana) oder interne Dashboards anbinden.</span>

---

## Best Practices

- **Kurze Reviews**: Für laufende Kampagnen „letzte 7 Tage, group by day“.
- **Monatsreports**<span style="white-space: pre-wrap;">: „dieser/letzter Monat, group by day/week“, Export als </span>**PDF**<span style="white-space: pre-wrap;"> für Stakeholder.</span>
- **A/B-Vergleich**<span style="white-space: pre-wrap;">: Zwei Spiele/Varianten markieren → </span>**Vergleich**<span style="white-space: pre-wrap;"> aktivieren (ab Stufe, siehe Matrix).</span>
- **Qualität messen**<span style="white-space: pre-wrap;">: </span>**Abgeschlossen/gestartet**<span style="white-space: pre-wrap;"> (Completion-Rate) und </span>**Ø-Zeit**<span style="white-space: pre-wrap;"> im Blick behalten.</span>
- **Reichweite verstehen**: Top-Locations &amp; Browser helfen bei Sprach- und Geräte-Optimierung.
- **Daten sauber halten**: Test-Sessions in getrenntem Spiel/Zeitraum laufen lassen, damit Produktionszahlen sauber bleiben.

---

## Datenschutz &amp; Compliance

- <span style="white-space: pre-wrap;">IP-basierte Standortdaten werden </span>**anonymisiert/aggregiert**.
- <span style="white-space: pre-wrap;">Personendaten aus Commerce/Terminen unterliegen der </span>**DSGVO**<span style="white-space: pre-wrap;"> und erscheinen nur </span>**aggregiert**<span style="white-space: pre-wrap;"> im Statistik-Modul.</span>
- <span style="white-space: pre-wrap;">API-Zugriff (Enterprise) erfolgt über </span>**rollenbasierte Tokens**; Logs sind revisionsfähig.

# Modul: Organisation- und Lizenzverwaltung

<span style="white-space: pre-wrap;">Im </span>**Organisation verwalten**<span style="white-space: pre-wrap;">-Bereich administrierst du </span>**Firma/Team, Benutzer:innen, Gruppen, Boards**<span style="white-space: pre-wrap;"> sowie dein </span>**Abo/Lizenzmodell**<span style="white-space: pre-wrap;">. Alles, was hier eingestellt wird, gilt </span>**org-weit**<span style="white-space: pre-wrap;"> für alle Projekte.</span>

---

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/j3jgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/j3jgrafik.png)

## Aufbau

### Seitenleiste (links)

- **Übersicht**<span style="white-space: pre-wrap;"> – Kompakte Org-Karte mit Nutzer-/Gruppenzählern, aktivem Abo &amp; Feature-Flags, Kontaktdaten, Logo.</span>
- **Abo &amp; Lizenzen**<span style="white-space: pre-wrap;"> – Plan, Limits, Abrechnung (Zahlart, Rechnungen), Upgrade/Downgrade.</span>
- **Planung**<span style="white-space: pre-wrap;"> – (falls gebucht) Termin-/Slot-Einstellungen für Commerce &amp; Events.</span>
- **Benutzer**<span style="white-space: pre-wrap;"> – Mitglieder &amp; Gäste verwalten.</span>
- **Gruppen**<span style="white-space: pre-wrap;"> – Teams/Abteilungen, Rechte-Bündelung.</span>
- **Boards**<span style="white-space: pre-wrap;"> – Projekt-Boards der Organisation (Besitz, Freigabe, Archiv).</span>

### Übersicht (mittig)

- **Benutzer**<span style="white-space: pre-wrap;">: z. B. </span>`<span class="editor-theme-code">8 / 100</span>`<span style="white-space: pre-wrap;"> → aktueller Stand vs. </span>**User-Limit**.
- **Gruppen**<span style="white-space: pre-wrap;">: z. B. </span>`<span class="editor-theme-code">3 / 10</span>`<span style="white-space: pre-wrap;"> → aktueller Stand vs. </span>**Group-Limit**.
- **Abo/Features**<span style="white-space: pre-wrap;"> (Beispiel „Enterprise – AKTIV“): Badges wie</span>  
    `<span class="editor-theme-code">Can Release Public</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Can Release Private</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">User Limit 100</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Stripe Connect</span>`,  
    `<span class="editor-theme-code">Can Allow Guests</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Can View Stats</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Can Release Badges</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Group Limit 10</span>`<span style="white-space: pre-wrap;"> …</span>
- **Kontaktdaten &amp; Logo**: Firmendaten pflegen, Logo hochladen (erscheint in Freigaben/Rechnungen, je nach Plan).

---

## Benutzer

- **Einladen**<span style="white-space: pre-wrap;"> per E-Mail (Rolle wählen):</span>
    - **orgAdmin**– volle Org-Rechte inkl. Abo/Abrechnung.
    - **grpAdmin**<span style="white-space: pre-wrap;"> – Spiele/Boards bearbeiten, keine Abo-Rechte.</span>
    - **Nutzer**<span style="white-space: pre-wrap;"> – kann seine eignen Boards sehen und bearbeiten, aber nicht die anderer Nutzer.</span>
- **Aktionen**: Rolle ändern, deaktivieren/reaktivieren, entfernen.
- **Limits**<span style="white-space: pre-wrap;">: Das </span>**User-Limit**<span style="white-space: pre-wrap;"> ergibt sich aus deinem Plan (Anzeige auf der Übersicht).</span>

## Gruppen

- <span style="white-space: pre-wrap;">Dienen zur </span>**Rechte-Bündelung**<span style="white-space: pre-wrap;"> (z. B. „Filiale Berlin“, „Marketing“).</span>
- **Mitglieder zuweisen**<span style="white-space: pre-wrap;">, </span>**Standard-Rollen**<span style="white-space: pre-wrap;"> pro Gruppe definieren.</span>
- **Zugriff auf Boards/Spiele**<span style="white-space: pre-wrap;"> gruppenweise vergeben.</span>
- **Group-Limit**<span style="white-space: pre-wrap;"> laut Lizenz (Anzeige auf der Übersicht).</span>

## Boards

- **Anlegen/Umbenennen**<span style="white-space: pre-wrap;">, </span>**Besitz**<span style="white-space: pre-wrap;"> zuweisen (Org/Person), </span>**freigeben**<span style="white-space: pre-wrap;"> (Gruppen/Benutzer), löschen.</span>

## Abo &amp; Lizenzen

- **Planstatus**<span style="white-space: pre-wrap;"> (z. B. </span>**Enterprise – aktiv**<span style="white-space: pre-wrap;">), </span>**Laufzeit**<span style="white-space: pre-wrap;">, </span>**Zahlart**<span style="white-space: pre-wrap;">, </span>**Rechnungen**<span style="white-space: pre-wrap;"> (Download).</span>
- **Upgrade/Downgrade**<span style="white-space: pre-wrap;"> mit Vorschau der neuen </span>**Limits &amp; Features**.
- **Stripe Connect**<span style="white-space: pre-wrap;"> (falls aktiv) für Commerce-Auszahlungen.</span>
- **Freigabe-Arten**: öffentlich/privat (abhängig vom Plan).
- **Feature-Flags**<span style="white-space: pre-wrap;"> sind im UI sichtbar – so erkennst du, was dein Plan erlaubt.</span>

> **Hinweis:**<span style="white-space: pre-wrap;"> Manche Funktionen (z. B. Gäste, Commerce, Badges) benötigen den passenden Plan/Flag. Die </span>**konkreten Kontingente**<span style="white-space: pre-wrap;"> (z. B. max. Nutzer, max. Gruppen) stehen im Abo-Kästchen und im Lizenz-Kapitel der Doku.</span>

---

## Rollen &amp; Rechte (Kurz)

<table id="bkmrk-bereichorgadmingrpad"><colgroup><col></col><col></col><col></col><col></col></colgroup><tbody><tr><th>Bereich

</th><th>orgAdmin

</th><th>grpAdmin

</th><th>Nutzer

</th></tr><tr><td>Abo/Abrechnung

</td><td>✓

</td><td>–

</td><td>–

</td></tr><tr><td>Benutzer/ Gruppen verwalten

</td><td>✓

</td><td>✓

</td><td>–

</td></tr><tr><td>Boards/Spiele bearbeiten

</td><td>✓

</td><td>✓

</td><td>✓ (eigene)

</td></tr><tr><td>Boards/Spiele ansehen (Preview)

</td><td>✓

</td><td>✓

</td><td>✓ (eigene)

</td></tr><tr><td>Releases/Publizierung

</td><td>✓

</td><td>✓

</td><td>–

</td></tr></tbody></table>

<span style="white-space: pre-wrap;">\* </span>**Gast**<span style="white-space: pre-wrap;"> nur, wenn Lizenz „Allow Guests“ aktiv; Umfang projektabhängig (◐).</span>

---

## Lizenzunterschiede (vorläufige Matrix)

> <span style="white-space: pre-wrap;">Alle Kernfunktionen der Org-Verwaltung sind in jedem Plan vorhanden; </span>**Limits &amp; Freigaben**<span style="white-space: pre-wrap;"> unterscheiden sich. Die genauen Zahlen/Optionen füllen wir im Lizenz-Kapitel aus; das UI zeigt deine </span>**aktuellen Limits**<span style="white-space: pre-wrap;"> (z. B. </span>**User Limit 100**<span style="white-space: pre-wrap;">, </span>**Group Limit 10**).

<table id="bkmrk-feature%2Flimitfreesta"><colgroup><col></col><col></col><col></col><col></col><col></col></colgroup><tbody><tr><th>Feature/Limit

</th><th>Free

</th><th>Standard

</th><th>Pro

</th><th>Enterprise/Education

</th></tr><tr><td>Öffentliche Releases

</td><td>✓

</td><td>✓

</td><td>✓

</td><td>✓

</td></tr><tr><td>Private Releases

</td><td>-

</td><td>✓

</td><td>-

</td><td>✓

</td></tr><tr><td>Gäste zulassen

</td><td>–

</td><td>-

</td><td>-

</td><td>✓

</td></tr><tr><td>Nutzer-Limit

</td><td>-

</td><td>-

</td><td>2

</td><td>100

</td></tr><tr><td>Gruppen-Limit

</td><td>-

</td><td>-

</td><td>-

</td><td>10

</td></tr><tr><td>Stripe Connect (Commerce)

</td><td>–

</td><td>-

</td><td>✓

</td><td>✓

</td></tr><tr><td>Statistik-Zugriff (UI)

</td><td>-

</td><td>✓

</td><td>✓

</td><td>✓

</td></tr><tr><td>Statistik-API (direkt)

</td><td>–

</td><td>–

</td><td>–

</td><td>**✓**

</td></tr></tbody></table>

Legende: ✓ enthalten · ◐ enthalten mit Limit · – nicht enthalten · • je Plan definiert.

---

## Best Practices

- **Org sauber halten**: Inaktive Nutzer entfernen, Gruppen klar benennen.
- **Rechte minimal**<span style="white-space: pre-wrap;"> vergeben (Viewer statt Editor, wenn kein Edit nötig).</span>
- **Brand konsistent**: Logo &amp; Kontaktdaten pflegen – erscheinen in Freigaben/Belegen.
- **Limits im Blick**: Bei Erreichen von User/Group-Limit frühzeitig upgraden.
- **Auditing**: Admin-Zugriffe nur an wenige, dokumentierte Personen vergeben.

<span style="white-space: pre-wrap;">So behältst du </span>**Team, Rechte und Plan**<span style="white-space: pre-wrap;"> im Griff – und siehst jederzeit, welche Features deine Lizenz freischaltet.</span>

# Modul: Stripe-Zahlungen (via Stripe-Connect)

> <span style="white-space: pre-wrap;">Verfügbar in </span>**Professional**<span style="white-space: pre-wrap;"> und </span>**Enterprise**.  
> <span style="white-space: pre-wrap;">Voraussetzung: </span>**aktive Lizenz**<span style="white-space: pre-wrap;"> + verknüpftes </span>**Stripe-Connect-Konto**<span style="white-space: pre-wrap;"> (pro Organisation).</span>

<span style="white-space: pre-wrap;">Mit Stripe kannst du </span>**kostenpflichtige Spiele**<span style="white-space: pre-wrap;"> anbieten (Buchungen </span>**nur mit Kalender/Terminen**<span style="white-space: pre-wrap;">). Die </span>**Preise**<span style="white-space: pre-wrap;"> legst du </span>**pro Spiel**<span style="white-space: pre-wrap;"> und – falls gewünscht – </span>**pro Zeitslot**<span style="white-space: pre-wrap;"> fest.</span>

---

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/O1Dgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/O1Dgrafik.png)

## Erlöse &amp; Auszahlungen

- **Revenue-Split:**<span style="white-space: pre-wrap;"> </span>**60 %**<span style="white-space: pre-wrap;"> des </span>**Netto-Verkaufspreises**<span style="white-space: pre-wrap;"> gehen an den Anbieter (deine Organisation).</span>
- **Auszahlung:**<span style="white-space: pre-wrap;"> innerhalb von </span>**10 Tagen**<span style="white-space: pre-wrap;"> nach </span>**Ablauf**<span style="white-space: pre-wrap;"> des gebuchten Termins (nicht nach Kaufzeitpunkt).</span>
- **Übersicht „Deine Auszahlungen“**
    - **Gebucht – Auszahlung folgt nach Ablauf:**<span style="white-space: pre-wrap;"> künftige/abzurechnende Buchungen mit </span>**voraussichtlichem Auszahlungsdatum**.
    - **Bereits bezahlt, aber noch nicht gebucht:**<span style="white-space: pre-wrap;"> Zahlungen ohne verbindlichen Slot – Auszahlung </span>**nach Buchung &amp; Ablauf**.

> Steuern, Gebühren, Rückerstattungen oder Chargebacks werden gemäß Stripe-Einstellungen verrechnet.

---

## Einrichtung (Kurz)

1. **Lizenz prüfen:**<span style="white-space: pre-wrap;"> Professional/Enterprise aktiv.</span>
2. **Stripe Connect verbinden:**<span style="white-space: pre-wrap;"> in </span>**Organisation → Abo &amp; Lizenzen**<span style="white-space: pre-wrap;"> (oder Commerce-Einstellungen).</span>
3. **Kalender aktivieren**<span style="white-space: pre-wrap;"> und </span>**Zeitslots**<span style="white-space: pre-wrap;"> anlegen.</span>
4. **Preis festlegen:**<span style="white-space: pre-wrap;"> im Spiel (Basispreis).</span>
5. <span style="white-space: pre-wrap;">Veröffentlichung: Spiel </span>**öffentlich**<span style="white-space: pre-wrap;"> anbieten – Buchung &amp; Zahlung laufen anschließend über Stripe.</span>

---

## Workflow für Buchungen

1. <span style="white-space: pre-wrap;">Spieler:in wählt </span>**Spiel + Zeitslot**<span style="white-space: pre-wrap;"> → bezahlt über Stripe.</span>
2. Buchung erscheint im Kalender; Status in der Auszahlungsübersicht wird geführt.
3. **10 Tage nach Slot-Ablauf**<span style="white-space: pre-wrap;"> wird die </span>**Auszahlung**<span style="white-space: pre-wrap;"> an dein Stripe-Konto angewiesen.</span>

---

## Hinweise &amp; Best Practices

- **Stornobedingungen**<span style="white-space: pre-wrap;"> klar kommunizieren; Stornierung über die scenario.app vor Termin ablauf jederzeit möglich.</span>
- **Preislogik**: Peak-Zeiten teurer, Off-Peak günstiger → pro Slot definieren.
- **Accounting**<span style="white-space: pre-wrap;">: Exportiere Zahlungen/Buchungen für deine Buchhaltung; Statistik-Modul zeigt </span>**Bestellungen &amp; Umsatz**<span style="white-space: pre-wrap;"> aggregiert.</span>
- **Compliance**: Achte auf korrekte Steuereinstellungen in Stripe (Land, USt-Satz, Belege).
- **Support**<span style="white-space: pre-wrap;">: Bei fehlenden Auszahlungen zuerst </span>**Slot-Ablaufdatum**<span style="white-space: pre-wrap;"> und </span>**10-Tage-Fenster**<span style="white-space: pre-wrap;"> prüfen.</span>

So bietest du deine Spiele „ready to sell“ an – mit klaren Auszahlungsfristen, flexiblen Preisen und automatischer Abwicklung über Stripe Connect.

# Modul: Badges (Belohnungen)

**Badges** sind **Auszeichnungen**, die **Spieler:innen automatisch** erhalten, wenn sie bestimmte **Leistungen** oder **Serien** schaffen – z. B.:

- eine **Serie von Spielen** einer Stadt/Route erfolgreich abschließen
- ein Spiel **unter einer Zielzeit** schaffen

> **Lizenz-Hinweis:** **Nur Nutzer:innen mit Storyboard-Lizenz** können eigene Badges **erstellen und einreichen**. Ohne Lizenz ist das **nicht** möglich.

---

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/TwLgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/TwLgrafik.png)

---

## Oberfläche

- **+ Neues Badge** – neues Badge anlegen.
- **Statusfilter** (rechts): **Entwurf** · **In Prüfung** · **Freigeschaltet**.

---

## Badge anlegen (was du definierst)

- **Titel &amp; Icon** (Grafik/Emoji) – Name und Erscheinungsbild der Auszeichnung.
- **Beschreibung** – kurz, wofür das Badge verliehen wird.
- **Kriterien/Regeln** – wann das Badge vergeben wird, z. B.:
    
    
    - **Serien-Kriterium:** *Alle Spiele aus Set X abgeschlossen*.
    - **Zeit-Kriterium:** *Spiel Y in ≤ N Minuten beendet*.

> Regeln greifen **automatisch** auf Basis der Spiel-Events (Start/Ende/Abbruch, Zeiten, usw.).

---

## Workflow &amp; Freigabe

1. **Erstellen**: Badge mit Titel, Icon, Beschreibung, Regeln.
2. **Einreichen**: Status **„In Prüfung“** (org-interner Review).
3. **Freigeben**: Nach Freigabe **„Freigeschaltet“** – Regeln sind aktiv.
4. **Vergabe**: Ab jetzt erhalten Spieler:innen das Badge **automatisch**, sobald die Kriterien erfüllt sind (auch über mehrere Spiele hinweg).

---

## Anzeige &amp; Wirkung

- Badges erscheinen bei Spieler:innen im **Profil / Erfolgsbildschirm** (je nach App-Ansicht) und können die **Motivation** steigern (Sammeln/Serien).
- Optional kannst du in deinen Spielen auf vorhandene Badges **referenzieren** („Schaff’s unter 45 min für **Speedrunner**!“).

---

## Best Practices

- **Klar &amp; erreichbar:** Regeln so formulieren, dass sie verstanden und realistisch erreichbar sind.
- **Progression:** Mischung aus **leicht** (schnelle Erfolgserlebnisse) und **selten/episch** (Langzeitmotivation).
- **Serien sinnvoll bündeln:** z. B. 3–5 thematisch passende Spiele.
- **Transparenz:** In Spieltexten kurz erklären, **wie** man das Badge bekommt.
- **Duplikate vermeiden:** Ähnliche Badges zusammenfassen oder staffeln (Bronze/Silber/Gold).

---

## Rechte &amp; Lizenzen (Kurz)

<div class="_tableContainer_1rjym_1" id="bkmrk-aktion-ohne-lizenz-m"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="2753" data-start="2531" style="width: 106.786%;"><thead data-end="2579" data-start="2531"><tr data-end="2579" data-start="2531"><th data-col-size="sm" data-end="2540" data-start="2531" style="width: 47.6644%;">Aktion</th><th data-col-size="sm" data-end="2554" data-start="2540" style="width: 24.8996%;">Ohne Lizenz</th><th data-col-size="sm" data-end="2579" data-start="2554" style="width: 27.5313%;">Mit Storyboard-Lizenz</th></tr></thead><tbody data-end="2753" data-start="2596"><tr data-end="2639" data-start="2596"><td data-col-size="sm" data-end="2630" data-start="2596" style="width: 47.6644%;">Badges erhalten (als Spieler:in)</td><td class="align-center" data-col-size="sm" data-end="2634" data-start="2630" style="width: 24.8996%;">✓</td><td class="align-center" data-col-size="sm" data-end="2639" data-start="2634" style="width: 27.5313%;">✓</td></tr><tr data-end="2671" data-start="2640"><td data-col-size="sm" data-end="2662" data-start="2640" style="width: 47.6644%;">Badge **erstellen**</td><td class="align-center" data-col-size="sm" data-end="2666" data-start="2662" style="width: 24.8996%;">–</td><td class="align-center" data-col-size="sm" data-end="2671" data-start="2666" style="width: 27.5313%;">✓</td></tr><tr data-end="2720" data-start="2672"><td data-col-size="sm" data-end="2711" data-start="2672" style="width: 47.6644%;">Badge **einreichen** / Status ändern</td><td class="align-center" data-col-size="sm" data-end="2715" data-start="2711" style="width: 24.8996%;">–</td><td class="align-center" data-col-size="sm" data-end="2720" data-start="2715" style="width: 27.5313%;">✓</td></tr><tr data-end="2753" data-start="2721"><td data-col-size="sm" data-end="2744" data-start="2721" style="width: 47.6644%;">Badge-Regeln pflegen</td><td class="align-center" data-col-size="sm" data-end="2748" data-start="2744" style="width: 24.8996%;">–</td><td class="align-center" data-col-size="sm" data-end="2753" data-start="2748" style="width: 27.5313%;">✓</td></tr></tbody></table>

</div></div>

# 🚀 Release & Betrieb

Das Release-Cockpit ist dein Steuerzentrum für Inhalte, Medien und Veröffentlichung. Hier verwaltest du Status, Beschreibung, Standort, Medien, Attribute, Kategorie sowie Preis &amp; Kalender – inkl. QR-Direktzugriff und Kopier-Tools. Ideal zum finalen Check vor dem Publish.

# Übersicht

<span style="white-space: pre-wrap;">Die </span>**Übersicht**<span style="white-space: pre-wrap;"> ist deine Startseite im Release-Cockpit. Hier findest du den </span>**Direktzugriff**<span style="white-space: pre-wrap;"> per QR, die </span>**öffentliche URL**<span style="white-space: pre-wrap;">, die </span>**Short-URL (SCN-Link)**<span style="white-space: pre-wrap;">, den </span>**SCN-Code**<span style="white-space: pre-wrap;"> sowie die </span>**interne ID**<span style="white-space: pre-wrap;"> deines Spiels. Außerdem kannst du den QR-Code als PNG speichern und alle Werte per Klick kopieren.</span>

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/SGOgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/SGOgrafik.png)

---

## Zweck

- Schnell teilen, testen oder supporten (QR/Links/IDs sofort griffbereit).
- Prüfen, ob das Spiel privat/öffentlich erreichbar ist (Hinweis unter dem QR).
- <span style="white-space: pre-wrap;">Basis für Kommunikation: </span>**SCN-Code**<span style="white-space: pre-wrap;"> und </span>**ID**<span style="white-space: pre-wrap;"> werden im Support und in Logs verwendet.</span>

---

## Elemente auf der Seite

### 1) Titel

<span style="white-space: pre-wrap;">Zeigt den aktuellen </span>**Spiel-Titel**<span style="white-space: pre-wrap;"> (wie im Editor gespeichert).</span>  
**Tipp:**<span style="white-space: pre-wrap;"> Ein klarer, kurzer Titel erleichtert das Auffinden in Suche und Listen.</span>

### 2) Direktzugriff (QR)

- Öffnet das Spiel direkt in der App / im Web.
- **Privat-Spiele:**<span style="white-space: pre-wrap;"> Der QR ist die </span>**einzige**<span style="white-space: pre-wrap;"> Zugriffsmöglichkeit (kein Listing).</span>
- <span style="white-space: pre-wrap;">Button </span>**„QR als PNG speichern“**: lädt den aktuell dargestellten Code als Bild.

> **Hinweis:**<span style="white-space: pre-wrap;"> Nach einem Titel- oder Sichtbarkeitswechsel musst du die Seite neu laden, damit ein neuer QR/Link angezeigt wird.</span>

### 3) Link-Karte (URL, Short-URL, SCN-Code, ID)

<span style="white-space: pre-wrap;">Jedes Feld hat rechts einen </span>**Kopieren-Button**.

<table id="bkmrk-feldbedeutungurllang"><colgroup><col></col><col></col></colgroup><tbody><tr><th>Feld

</th><th>Bedeutung

</th></tr><tr><td>**URL**

</td><td><span style="white-space: pre-wrap;">Lange, technische Adresse der Detailseite (z. B. </span>

`<span class="editor-theme-code">https://scen.ar/io/?p=197858</span>`

).

</td></tr><tr><td>**Short-URL**

</td><td><span style="white-space: pre-wrap;">Kurzer, sprechender Link für das Teilen (z. B. </span>

`<span class="editor-theme-code">https://scen.ar/io/SCNKBI</span>`

).

</td></tr><tr><td>**SCN-Code**

</td><td><span style="white-space: pre-wrap;">Der </span>

**Kurzcode**

<span style="white-space: pre-wrap;"> (z. B. </span>

`<span class="editor-theme-code">SCNKBI</span>`

). Ideal für Support und manuelle Eingabe.

</td></tr><tr><td>**ID**

</td><td><span style="white-space: pre-wrap;">Interne </span>

**Datenbank-ID**

<span style="white-space: pre-wrap;"> (z. B. </span>

`<span class="editor-theme-code">197858</span>`

). Nützlich in Logs, Exporten und bei API-Anfragen.

</td></tr></tbody></table>

---

## Typische Workflows

- **Teilen an Tester:innen**  
    <span style="white-space: pre-wrap;">QR einscannen </span>**oder**<span style="white-space: pre-wrap;"> Short-URL kopieren → per Messenger/E-Mail senden.</span>
- **Support-Anfrage beantworten**  
    **SCN-Code**<span style="white-space: pre-wrap;"> oder </span>**ID**<span style="white-space: pre-wrap;"> kopieren → im Ticket/Chat angeben.</span>
- **Printmaterial**  
    **QR als PNG speichern**<span style="white-space: pre-wrap;"> → in Flyer, Poster, Aufsteller einbauen.</span>

---

## Sichtbarkeit &amp; Zugriff (Kurzinfo)

- **Öffentlich:**<span style="white-space: pre-wrap;"> URL &amp; Short-URL sind normal erreichbar; Spiel erscheint in Listen/Maps (abh. von Status/Kategorie).</span>
- **Privat:**<span style="white-space: pre-wrap;"> Spiel ist </span>**nicht gelistet**<span style="white-space: pre-wrap;">. Zugriff </span>**nur**<span style="white-space: pre-wrap;"> über QR/Short-URL.</span>
- **Status wirkt erst auf veröffentlichte Szenarios**<span style="white-space: pre-wrap;"> (siehe Bereich </span>**Status**):
    - **Aktiv**: Start möglich
    - **Hinweis**: Hinweisbanner sichtbar, Start möglich
    - **Temporär deaktiviert**<span style="white-space: pre-wrap;">: Hinweisbanner sichtbar, Start </span>**nicht**<span style="white-space: pre-wrap;"> möglich</span>

---

## Häufige Fragen (FAQ)

**Warum sehe ich keine Short-URL / kein SCN-Code?**  
Für neue oder importierte Spiele kann die Short-URL erst nach dem ersten Speichern/Sync erscheinen. Seite neu laden.

**QR funktioniert, aber die App zeigt „nicht verfügbar“**  
<span style="white-space: pre-wrap;">Prüfe </span>**Status**<span style="white-space: pre-wrap;">, </span>**Kategorie**<span style="white-space: pre-wrap;"> und ggf. </span>**Preis/Kalender**-Pflichten. Bei Privat-Spielen unbedingt den aktuellen QR/Short-Link nutzen.

**Short-URL führt auf alten Inhalt**  
Browser-Cache oder Weiterleitungs-Cache leeren. Short-URLs werden systemseitig synchronisiert – nach größeren Änderungen die Seite neu öffnen.

---

## Best Practices

- **Short-URL**<span style="white-space: pre-wrap;"> fürs Teilen, </span>**SCN-Code**<span style="white-space: pre-wrap;"> für Support/Doku verwenden.</span>
- **QR-PNG**<span style="white-space: pre-wrap;"> in Drucksachen immer mit ausreichend Weißraum und mind. 3 cm Kantenlänge.</span>
- <span style="white-space: pre-wrap;">Bei </span>**Privat-Szenarios**<span style="white-space: pre-wrap;"> QR/Short-URL nur gezielt verteilen (kein Listing!).</span>

---

**Stand: aktuell. Änderungen an Bezeichnungen oder Layout sind möglich; die Funktionen bleiben gleich (Kopieren, QR-Download, Direktzugriff).**

# Status

<span style="white-space: pre-wrap;">Im Bereich </span>**Status**<span style="white-space: pre-wrap;"> steuerst du, </span>**ob und wie**<span style="white-space: pre-wrap;"> ein veröffentlichtes Scenario gestartet werden kann – inklusive optionaler Hinweis-Nachricht.</span>

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/Cbzgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/Cbzgrafik.png)

---

## Zweck

- Temporäre Infos für Spieler anzeigen (z. B. Bauarbeiten, Wetter, Wartung).
- <span style="white-space: pre-wrap;">Start eines Spiels </span>**erlauben**<span style="white-space: pre-wrap;"> oder </span>**sperren**, ohne Inhalte zu ändern.
- <span style="white-space: pre-wrap;">Follower automatisch im </span>**Gaming-Feed**<span style="white-space: pre-wrap;"> informieren.</span>

---

## Felder

### Spielstatus

Wähle, wie sich das veröffentlichte Scenario verhalten soll:

- **Aktiv**  
    <span style="white-space: pre-wrap;">Spiel kann in der App </span>**gestartet**<span style="white-space: pre-wrap;"> werden.</span>
- **Hinweis**  
    <span style="white-space: pre-wrap;">Deine </span>**Nachricht**<span style="white-space: pre-wrap;"> erscheint </span>**oberhalb**<span style="white-space: pre-wrap;"> der Spielbeschreibung; </span>**Start ist möglich**.
- **Temporär deaktiviert**  
    <span style="white-space: pre-wrap;">Deine </span>**Nachricht**<span style="white-space: pre-wrap;"> erscheint </span>**oberhalb**<span style="white-space: pre-wrap;"> der Spielbeschreibung; </span>**Start ist nicht möglich**<span style="white-space: pre-wrap;"> (Start-Button ausgeblendet/gesperrt).</span>

> **Wichtig:**<span style="white-space: pre-wrap;"> Der Status hat </span>**nur Einfluss auf veröffentlichte**<span style="white-space: pre-wrap;"> Szenarios (Entwürfe sind ohnehin nicht sichtbar).</span>

### Nachricht

Freitext, der – je nach Status – als Banner über der Spielbeschreibung angezeigt wird.  
Typische Inhalte: Gründe, Dauer/Zeitraum, Alternativen, Kontakt.

- Kurz &amp; klar formulieren (1–3 Sätze).
- Optional Datum/Uhrzeit angeben („Heute 14–18 Uhr gesperrt“).

---

## Wirkung in der App / im Web

- **Anzeigeort:**<span style="white-space: pre-wrap;"> oberhalb der Spielbeschreibung als farbiges Hinweisfeld.</span>
- **Starten:**
    - **Aktiv**<span style="white-space: pre-wrap;"> → Start möglich</span>
    - **Hinweis**<span style="white-space: pre-wrap;"> → Start möglich</span>
    - **Temporär deaktiviert**<span style="white-space: pre-wrap;"> → Start </span>**nicht**<span style="white-space: pre-wrap;"> möglich</span>
- **Gaming-Feed:**<span style="white-space: pre-wrap;"> Bei </span>**Hinweis**<span style="white-space: pre-wrap;"> und </span>**Temporär deaktiviert**<span style="white-space: pre-wrap;"> wird die Nachricht zusätzlich im Feed aller Nutzer angezeigt, die dem Scenario </span>**folgen**.

---

## Best Practices

- <span style="white-space: pre-wrap;">Nutze </span>**Hinweis**<span style="white-space: pre-wrap;"> für kurzfristige Einschränkungen (Wetter, Umleitungen).</span>
- <span style="white-space: pre-wrap;">Nutze </span>**Temporär deaktiviert**<span style="white-space: pre-wrap;">, wenn das Spiel aktuell </span>**nicht sinnvoll spielbar**<span style="white-space: pre-wrap;"> ist (z. B. Station defekt).</span>
- <span style="white-space: pre-wrap;">Erwähne – wenn absehbar – </span>**Zeitrahmen**<span style="white-space: pre-wrap;"> und ggf. </span>**Alternative**<span style="white-space: pre-wrap;"> (andere Route/Spiel).</span>
- <span style="white-space: pre-wrap;">Nach Ende der Einschränkung Status wieder auf </span>**Aktiv**<span style="white-space: pre-wrap;"> setzen.</span>

---

## Beispiele für Nachrichten

- „Wegen Stadtfest heute bis 18 Uhr eingeschränkter Zugang zum 3. Checkpoint.“
- „Baustelle am Park. Bitte alternative Route über Nordtor nutzen.“
- „Starker Sturm: Spiel heute vorübergehend deaktiviert. Morgen voraussichtlich wieder aktiv.“

---

## Hinweise für Teams

- <span style="white-space: pre-wrap;">Änderungen am Status greifen </span>**sofort**<span style="white-space: pre-wrap;"> nach Speichern.</span>
- <span style="white-space: pre-wrap;">Prüfe bei Support-Fällen zuerst </span>**Status + Nachricht**.
- <span style="white-space: pre-wrap;">In Listen/Maps bleibt das Spiel sichtbar; die </span>**Startbarkeit**<span style="white-space: pre-wrap;"> richtet sich nach dem Status.</span>

# Beschreibung & Informationen

<span style="white-space: pre-wrap;">Im Bereich </span>**Beschreibung**<span style="white-space: pre-wrap;"> erklärst du dein Scenario für Spieler. Es gibt zwei Reiter:</span>

- **Handlung**<span style="white-space: pre-wrap;"> – Story-Teaser: Worum geht’s? Was ist die Mission?</span>
- **Informationen**<span style="white-space: pre-wrap;"> – Praktisches: Startpunkt, Dauer, Sprache, Ausrüstung, Sicherheit usw.</span>

<span style="white-space: pre-wrap;">Beide Texte erscheinen in der Detailansicht des Spiels (App/Web). </span>**Handlung**<span style="white-space: pre-wrap;"> steht oben, </span>**Informationen**<span style="white-space: pre-wrap;"> darunter.</span>

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/JfUgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/JfUgrafik.png)

---

## Handlung

**Ziel:**<span style="white-space: pre-wrap;"> Neugierig machen und den Einstieg setzen.</span>

**Empfehlungen**

- <span style="white-space: pre-wrap;">Länge: </span>**400–800 Zeichen**<span style="white-space: pre-wrap;"> (3–6 Sätze).</span>
- <span style="white-space: pre-wrap;">Schreibe im </span>**Präsens**<span style="white-space: pre-wrap;"> und </span>**aktiv**<span style="white-space: pre-wrap;"> („Du folgst…“, „Finde…“).</span>
- <span style="white-space: pre-wrap;">Vermeide Spoiler; nenne </span>**Hook + Setting + Ziel**.
- Optional: 1–2 passende Emojis für Stimmung (🌧️🏙️🕵️).

**Beispiel**

> <span style="white-space: pre-wrap;">Eine alte Spur führt dich entlang des Staudamms. In vergessenen Notizen taucht der Name </span>**Wendefurth**<span style="white-space: pre-wrap;"> auf – und ein verschlüsselter Hinweis. Finde die Marker, löse die Rätsel und entscheide, wem du trauen kannst. Bist du bereit?</span>

---

## Informationen

**Ziel:**<span style="white-space: pre-wrap;"> Erwartungsmanagement &amp; Orientierung.</span>

**Checkliste (frei anpassen)**

- **Startpunkt:**<span style="white-space: pre-wrap;"> Adresse/Koordinaten, Treffpunkt, Parken/ÖPNV</span>
- **Dauer:**<span style="white-space: pre-wrap;"> ca. 60–90 min (je nach Tempo)</span>
- **Teamgröße/Alter:**<span style="white-space: pre-wrap;"> z. B. 1–5 Personen, ab 10+</span>
- **Ausrüstung:**<span style="white-space: pre-wrap;"> geladener Akku, Kopfhörer, Taschenlampe bei Dämmerung</span>
- **Gelände/Barrierefreiheit:**<span style="white-space: pre-wrap;"> Treppen/Steigung, Schotter, indoor/outdoor</span>
- **Öffnungszeiten/Hinweise:**<span style="white-space: pre-wrap;"> Zutritt nur bis 20 Uhr, Wetterabhängigkeit</span>
- **Sicherheit/Regeln:**<span style="white-space: pre-wrap;"> Betreten auf eigene Gefahr, Privatgelände meiden, keine Kletteraktionen</span>
- **Sprache(n):**<span style="white-space: pre-wrap;"> DE / EN</span>

**Tipp:**<span style="white-space: pre-wrap;"> Nutze kurze Absätze oder Aufzählungen – das verbessert die Lesbarkeit auf dem Handy.</span>

---

## Formatierung &amp; Tipps

- **Klartext reicht.**<span style="white-space: pre-wrap;"> Fett/Kursiv/Listen sind möglich, halte es schlicht.</span>
- Keine externen Links zu Ticketshops o. ä. (Verkauf läuft über „Preis &amp; Kalender“).
- **Ton:**<span style="white-space: pre-wrap;"> freundlich, motivierend; vermeide interne Begriffe und Technik-Jargon.</span>
- <span style="white-space: pre-wrap;">Prüfe nach dem Speichern die </span>**Vorschau**.

---

## Häufige Fragen

**Wo erscheint die Nachricht aus „Status“?**  
<span style="white-space: pre-wrap;">Als Banner </span>**über**<span style="white-space: pre-wrap;"> der Beschreibung. Sie kann Start erlauben oder sperren (siehe </span>**Status**).

**Mehrsprachig?**  
Wenn dein Spiel mehrere Sprachen hat, pflege Handlung/Informationen je Sprache entsprechend deiner Projekteinrichtung.

---

## Mini-Vorlage (zum Kopieren)

**Handlung**

> Du erhältst eine mysteriöse Nachricht aus Wendefurth. Folge versteckten Markern am Stausee, knacke Codes und finde heraus, was damals geschah. Schaffst du es in 60 Minuten? 🕵️‍♀️

**Informationen**

- **Start:**<span style="white-space: pre-wrap;"> Parkplatz Wendefurth, Am Stausee 1</span>
- **Dauer:**<span style="white-space: pre-wrap;"> ca. 60–90 min • </span>**Team:**<span style="white-space: pre-wrap;"> 1–5 • </span>**Alter:**<span style="white-space: pre-wrap;"> 10+</span>
- **Ausrüstung:**<span style="white-space: pre-wrap;"> Smartphone mit Daten, Kopfhörer, Taschenlampe bei Dämmerung</span>
- **Gelände:**<span style="white-space: pre-wrap;"> überwiegend eben, einzelne Stufen</span>
- **Hinweis:**<span style="white-space: pre-wrap;"> Bei Sturm/Unwetter nicht spielen • Privatflächen meiden</span>

---

**Stand: aktuell. UI-Bezeichnungen können leicht variieren; die Funktion ist identisch.**

# Standort

Im Bereich **Standort** legst du den **Startpunkt** deines Scenarios fest und kannst optionale **Points of Interest (POIs)** wie **Parken**, ergänzen.

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/sb7grafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/sb7grafik.png)

---

## Karte &amp; Haupt-Marker

- **Marker ziehen**: Ziehe den blauen Pin auf der Karte an die gewünschte Position.
- **Aktuelle Position verwenden**: Setzt den Marker auf deine GPS-Position (Browser-Freigabe nötig).
- **Zoom &amp; Pan**: Mit `+ / –` zoomen, mit Drag verschieben.

**Koordinaten unter der Karte**

- **Breite / Länge**: werden beim Verschieben automatisch aktualisiert; du kannst sie auch **manuell eingeben** (WGS84, Dezimal).
- **Adresse (grauer Text)**: orientierende Rückmeldung aus Reverse-Geocoding.

> **Pflicht:** Für **Classics, Extreme** und **Shorties** ist ein genauer Startpunkt erforderlich.  
> Bei **Virtual** und **Locationless** kannst du keinen/ungefähren Punkt setzen.

---

## Zusätzliche Punkte (POIs)

Unterhalb der Koordinaten kannst du beliebig viele Punkte anlegen – z. B. **„Hier parken“**, **„Treffpunkt“**, **„Einstieg“**.

**Felder**

- **Text** – Bezeichnung, die Spieler sehen (z. B. „Hier parken“).
- **Breite / Länge** – Koordinaten des POI.

**Aktionen (Buttons rechts in der Zeile)**

- 🎯 **Auf Kartenmitte setzen** – übernimmt die aktuelle Kartenmitte als Koordinate.
- 📍 **Vom Haupt-Marker übernehmen** – nimmt die Koordinaten des blauen Pins.
- 🗂️ **Duplizieren/Kopieren** – erstellt eine Kopie der Zeile (falls vorhanden).
- 🗑️ **Löschen** – entfernt den POI.

> POIs werden in der App in der Detailansicht/Anreisehilfe angezeigt und können auf der Karte eingeblendet werden.

---

## Best Practices

- **Genauigkeit:** 5–6 Nachkommastellen reichen (≈ 1–10 m).
- **Sichtbarkeit:** Wähle gut auffindbare Punkte (Eingang, Parkplatz, markante Ecke).
- **Zugänglichkeit:** Keine Privatgrundstücke als Start/POI verwenden.
- **Test auf dem Handy:** Prüfe die Position in der **Vorschau** vor Veröffentlichung.
- **Barrierefreiheit:** Ergänze bei Bedarf Hinweise (Stufen, Steigung) im Bereich *Informationen* der Beschreibung.

---

## Häufige Fragen

**Koordinaten lassen sich nicht setzen?**  
Browser-Ortungsfreigabe prüfen oder Koordinaten manuell eintragen.

**Brauche ich für Virtual/Locationless einen Punkt?**  
Nein – optional. Du kannst einen **symbolischen Treffpunkt** angeben (z. B. Stadtzentrum) oder das Feld leer lassen.

---

*Stand: aktuell. Funktionen/Bezeichnungen können leicht variieren; die Grundbedienung (Marker ziehen, Koordinaten eingeben, POIs verwalten) bleibt gleich.*

# Medien

Im Bereich **Medien** pflegst du das **Titelbild**, bis zu **5 Galerie-Bilder** sowie optional einen **Trailer** (YouTube).

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/pMlgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/pMlgrafik.png)

---

## Bilder

### Titelbild

- Wird in **Listen, Karten, Empfehlungen** und oben auf der Detailseite angezeigt.
- **Pflicht** für öffentliche Szenarios (sonst Platzhalter).

### Galerie 1–5

- Zusätzliche Bilder für die Detailseite (wischbare Galerie / Lightbox).
- **Optional**, Reihenfolge entspricht der Nummerierung.

**So fügst du Bilder hinzu**

1. Klicke auf eine Kachel (z. B. *Titelbild* oder *Galerie 1*).
2. Wähle ein vorhandenes Bild **oder** lade ein neues hoch.
3. Speichern – die Kachel zeigt danach die Vorschau.  
    (Nochmal klicken ⇒ Bild austauschen.)

**Empfehlungen**

- **Format:** JPG/WEBP (Fotos), PNG (Grafiken).
- **Größe:** mind. **1600 px** an der langen Kante (besser 1920 px).
- **Seitenverhältnis:** 16:9 ist ideal fürs Titelbild.
- **Motiv:** hell, kontrastreich, **ohne kleinen Text** (wird auf Handys schlecht lesbar).
- Keine geschützten Logos/Personen ohne Rechte.

---

## Trailer (YouTube)

Du kannst einen kurzen Trailer einbinden. Er erscheint unter der Galerie und wird direkt im Detail angezeigt.

**So trägst du ihn ein**

1. Öffne dein YouTube-Video und kopiere die **11-stellige Video-ID** (alles hinter `v=`).
    
    
    - Beispiel: `https://youtube.com/watch?v=AbCdEfGhIjK` → **`AbCdEfGhIjK`**
2. Trage die ID in das Feld ein und klicke **Prüfen**.
3. Bei Erfolg wird die Vorschau angezeigt.

**Hinweise**

- Nur **öffentliche** oder **nicht gelistete** Videos funktionieren.
- Ideale Länge: **15–60 Sek.** (Teaser).
- Ton sollte **auch ohne Text** verständlich sein (Untertitel empfohlen).

---

## Best Practices

- **Titelbild zuerst**: Es entscheidet über den ersten Eindruck in Listen.
- **Konsistente Optik**: ähnliche Farb-/Lichtstimmung in allen Bildern.
- **Story zeigen**: 1–2 Bilder mit Menschen/Interaktion funktionieren gut.
- **Performance**: Große Bilder vor dem Upload verkleinern/komprimieren.
- **Barrierefreiheit**: Keine irreführenden Fotos (z. B. Orte, die gar nicht vorkommen).

---

## FAQ

**Ich sehe nur Platzhalter-Kacheln.**  
Es sind noch keine Bilder gesetzt. Klicke die Kacheln an und wähle/hochlade Dateien.

**Welche Dateigröße ist erlaubt?**  
Orientiere dich an deinem Upload-Limit (Server/WordPress). Als Faustregel &lt; **2 MB** pro Bild.

**Mein Trailer spielt nicht ab.**  
Prüfe die 11-stellige **ID**, die **Sichtbarkeit** des Videos (öffentlich/nicht gelistet) und ob Einbettung erlaubt ist.

---

*Stand: aktuell. UI-Bezeichnungen können leicht variieren; die Funktionen bleiben gleich (Kacheln anklicken, Bild wählen/hochladen, Trailer per YouTube-ID prüfen).*

# Attribute

Im Bereich **Attribute** beschreibst du Spielrahmen und Anspruch. Die Werte erscheinen in der öffentlichen Detailansicht und werden in Suche/Filtern genutzt.

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/tLOgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/tLOgrafik.png)

---

## Felder

- **Teamgröße**  
    Empfohlene **maximale** Spielerzahl (z. B. 1–6). Richtwert, kein Hard-Limit.
- **Alter**  
    **Mindestalter-Empfehlung**. `0+` heißt: keine Einschränkung.
- **Zeit**  
    Ungefähre **Spieldauer in Minuten** (vom Start bis Ziel, ohne Pausen).  
    *Hinweis für Shorties:* muss **&lt; 15 Minuten** bleiben.
- **Schwierigkeit**  
    Rätsel-/Logikanspruch **1–5**  
    `1 = sehr leicht` · `5 = sehr schwer`.
- **Gelände**  
    Physische Anforderungen **1–5**  
    `1 = sehr leicht/stadttauglich` · `5 = anspruchsvoll/uneben/Steigung`.

Die runden Badges zeigen den aktuellen Wert (Icon + Zahl). Regler/Eingabefeld aktualisieren die Anzeige live.

---

## Wirkung in der App

- Werte werden auf der **Detailseite** angezeigt und in **Filtern** (z. B. „Dauer ≤ 60 min“, „Schwierigkeit 3–4“) verwendet.
- Konservative Angaben helfen Enttäuschungen zu vermeiden (lieber **eine Stufe höher** bewerten).

---

## Empfehlungen

- **Teamgröße:** Plane realistisch (Kommunikation, Wartezeiten).
- **Alter:** Inhalt, Weg, Verkehr, Dunkelheit berücksichtigen.
- **Zeit:** Interne Testläufe + 10–20 % Puffer.
- **Schwierigkeit:** Mischungen möglich, bewerte den **durchschnittlichen** Anspruch.
- **Gelände:** Nenne Besonderheiten zusätzlich in *Beschreibung → Informationen* (Treppen, Steigung, Nacht, Taschenlampe o. Ä.).

---

## FAQ

**Warum ist meine Zeitangabe wichtig?**  
Sie steuert Erwartung &amp; Filter. Zu niedrige Zeiten führen zu Abbrüchen/negativen Bewertungen.

**Ändert die Teamgröße die Spielmechanik?**  
Nein, sie ist eine Empfehlung. Mechaniken steuerst du im Storyboard.

**Kann ich 0 bei Zeit angeben?**  
Nein – setze eine realistische Mindestdauer. Für sehr kurze Inhalte nutze **Shorties** (&lt; 15 min).

# Kategorie

Im Bereich **Kategorie** ordnest du dein Scenario ein und vergibst optionale **Schlagwörter** sowie einen **Hashtag** fürs Sharing.

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/Y3dgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/Y3dgrafik.png)

---

## Kategorie (Auswahlfeld)

**Kurz erklärt**

- **Virtual** – von zuhause spielbar (keine reale Location nötig).
- **Locationless** – überall draußen spielbar (kein fester Startpunkt).
- **Classics** – immer **outdoor** &amp; **ortsbezogen** (fester Startpunkt erforderlich).
- **Originals** – systeminterne Kategorie, **nicht** vom Nutzer wählbar.
- **Privat** – nur per **QR/Direct-Link** aufrufbar, **nicht gelistet**; gedacht für private Nutzung  
    *(Storyboard-Lizenz erforderlich).*
- **Shorties** – **outdoor &amp; ortsbezogen**; muss in **&lt; 15 Minuten** spielbar sein.

**Wirkung**

- Steuert, **wo** und **wie** das Spiel gelistet/gefunden wird (Suche, Karten, Filter).
- **Privat** blendet das Spiel aus öffentlichen Listen aus; Zugriff nur via QR/Short-URL.
- **Classics/Shorties** benötigen einen **Startpunkt** im Bereich *Standort*.

---

## Schlagwörter

Freitext-Tags, die **nicht sichtbar** angezeigt werden, aber die **Suche** verbessern.

- Beispiel: `Lost-Place`, `Familie`, `Indoor`, `Rätsel`, `Wald`.
- Kurze, treffende Begriffe verwenden; Marken- und Personennamen vermeiden.
- Mehrere Schlagwörter möglich (einzeln hinzufügen).

---

## Hashtag

Ein **einmaliger Begriff** für Social-Media-Sharing.

- Wird unter der Spielbeschreibung angezeigt (Teilen).
- Ohne `#` eingeben – die App rendert das automatisch.
- Beispiel: `WendefurthQuest`, `HarzGeheimnis`.

---

## Best Practices

- **Classics vs. Locationless**: Wähle *Classics*, wenn das Erlebnis an **konkreten Ort** gebunden ist; sonst *Locationless*.
- **Shorties** nur setzen, wenn realistisch in **&lt; 15 min** lösbar (intern testen!).
- **Schlagwörter** sparsam und relevant; 3–7 gut gewählte Begriffe genügen.
- **Hashtag** kurz, eindeutig, ohne Sonderzeichen/Leerzeichen.

---

## FAQ

**Warum kann ich „Originals“ nicht auswählen?**  
Diese Kategorie wird von scenario.app verwaltet.

**Mein Privat-Spiel ist über die Suche nicht auffindbar – ist das korrekt?**  
Ja. **Privat** bedeutet: nur via QR/Short-URL erreichbar.

**Wirkt sich die Kategorie auf Preis/Kalender aus?**  
Nein – Preis &amp; Buchbarkeit stellst du separat unter *Preis &amp; Kalender* ein.  
(*Hinweis:* Bei gesetztem Preis ist ein **Kalender** erforderlich.)

# Preis & Kalender

In diesem Bereich legst du fest, ob dein Scenario **kostenpflichtig** ist, verwaltest den **Buchungskalender** und (optional) erlaubst **Gast-Spiel** ohne Login.

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/RZpgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/RZpgrafik.png)

---

## 1) Preis

- **Preis (EUR)** – Endpreis pro Buchung/Zeitslot.
- Sobald ein Preis gesetzt ist, wird ein **Kalender zwingend erforderlich** (Hinweis erscheint).

**Voraussetzungen für Zahlungen**

- Stripe-Zahlungen sind nur mit **Professional** oder **Enterprise** Lizenz verfügbar.
- Auszahlungen an Anbieter über **Stripe Connect**.
- Spiele können **kostenpflichtig nur mit Kalender** angeboten werden.
- **Auszahlung:** 60 % vom **Netto-Verkaufspreis** an den Anbieter, i. d. R. **innerhalb von 10 Tagen** nach Ablauf des gebuchten Termins.

> **Tipp:** Preis wird pro **Zeitslot** hinterlegt (über die Kalender-Einstellungen).

---

## 2) Kalender

- **Kalender aktivieren/deaktivieren** – steuert, ob Buchungen möglich sind.
- **Kalender erstellen** – legt einen neuen Spiel-Kalender an.
- **Kalendereinstellungen** – Zeitslots, Kapazitäten, Preise, Stornoregeln.
- **Buchungen** – Einsicht in alle anstehenden/vergange­nen Termine.
- **Benachrichtigung** – E-Mail/Push bei neuen Buchungen (sofern eingerichtet).

**Wichtig**

- **Preis gesetzt ⇒ Kalender Pflicht.**
- Ohne Kalender **keine kostenpflichtigen** Buchungen.

---

## 3) Gast-Option

- „**Spiel kann auch als Gast (ohne Login) gespielt werden**“  
    – Verfügbar nur mit **Enterprise/Education** **und** **ohne** Preis/Kalender.
- Ideal für niederschwellige Demos/Testläufe.

---

## Workflows

**Kostenlos spielbar**

1. Preis leer lassen (0,00).
2. Kalender **deaktiviert** lassen.
3. Optional Gast-Option aktivieren (Enterprise/Education).

**Bezahltes Spiel mit Terminen**

1. Preis setzen (EUR).
2. Kalender erstellen &amp; konfigurieren (Slots, Kapazität, Preise).
3. Stripe-Connect-Konto verbinden (Provider).
4. Veröffentlichen.

---

## FAQ

**Warum ist der Kalender gesperrt, sobald ich einen Preis eintrage?**  
Er ist nicht gesperrt, sondern **erforderlich** – erst **Kalender erstellen/aktivieren**, dann ist Bezahlen/Buchen möglich.

**Kann ich verschiedene Preise pro Slot vergeben?**  
Ja, über die **Kalendereinstellungen** (z. B. Hauptzeit/Happy-Hour).

**Wie schnell erfolgt die Auszahlung?**  
In der Regel **innerhalb von 10 Tagen** nach dem **Ablauf des Termins** (Stripe-Connect).

**Gast-Spiel mit Preis möglich?**  
Nein. Gast-Spiel ist nur **ohne** Preis/Kalender und nur bei **Enterprise/Education** erlaubt.

**Ich nutze Privat-Kategorie – brauche ich einen Kalender?**  
Nur dann, wenn du einen **Preis** verlangst. Privat steuert die Sichtbarkeit, nicht die Buchbarkeit.

# Hilfe / Support

Diese Kontaktdaten werden **während des Spiels** in der App im Menü **„Hilfe“** angezeigt. Spieler können dich bei Fragen oder Problemen schnell erreichen. Alle Felder sind **optional** – nur ausgefüllte Kanäle erscheinen.

[![grafik.png](https://docs.scenario.app/uploads/images/gallery/2025-09/scaled-1680-/cBsgrafik.png)](https://docs.scenario.app/uploads/images/gallery/2025-09/cBsgrafik.png)

---

## Felder &amp; Format

- **Telefon**  
    Wird als *tel:*-Link angezeigt (Tippen ⇒ Anruf).  
    **Format:** international empfohlen, z. B. `+49 30 1234567`.
- **SMS**  
    Wird als *sms:*-Link angezeigt (Tippen ⇒ SMS-App).  
    **Format:** wie Telefon, idealerweise international (`+49…`).
- **E-Mail**  
    *mailto:*-Link (Tippen ⇒ E-Mail-App mit Empfänger).  
    **Format:** `support@beispiel.de`.
- **WhatsApp**  
    Direkter Chat über `wa.me`.  
    **Format:** **ohne** Plus/Leerzeichen/Sonderzeichen, nur Landesvorwahl + Nummer, z. B.  
    `491511234567` (statt `+49 151 1234567`).  
    *Beispiel aus Screenshot:* `49-151-1234567` → besser speichern als `491511234567`.

> **Hinweis:** Wenn ein Feld leer ist, wird der Kanal in der App nicht angezeigt.

---

## Empfehlungen

- **Erreichbarkeit definieren:** z. B. „Täglich 10–18 Uhr“.  
    (Am besten in *Status → Nachricht* kommunizieren, falls temporär abweichend.)
- **Ein Kanal reicht**, zwei sind besser (Telefon **oder** WhatsApp + E-Mail).
- **Internationales Format** nutzen, damit Links auf allen Geräten funktionieren.
- **Datenschutz:** Keine privaten Nummern – eigene Support-Nummer/E-Mail verwenden.

---

## Häufige Fragen

**Wo genau sehen Spieler das?**  
Im Spiel unter **Menü → Hilfe** (App &amp; Web). Tippen öffnet direkt die passende App/den Anruf.

**Kann ich nur WhatsApp angeben?**  
Ja. Trage nur den WhatsApp-Wert ein – die anderen Felder leer lassen.

**WhatsApp-Link öffnet nicht?**  
Prüfe die Nummer **ohne** `+`, Leerzeichen oder Bindestriche (`4915…`). Manche Geräte benötigen installierte WhatsApp-App.

---

## Beispiel

- Telefon: `+49 30 1234567`
- SMS: `+49 151 1234567`
- E-Mail: `support@mein-scenario.de`
- WhatsApp: `491511234567`

# 💡 FAQ & Troubleshooting

# FAQ

### 1) Wie starte ich ein neues Spiel?

<span style="white-space: pre-wrap;">Lege eine </span>**Einstiegsszene**<span style="white-space: pre-wrap;"> an (als Start markieren), verbinde sie mit weiteren Szenen (Buttons, QR, Wegpunkte) und teste in der </span>**Vorschau**.

### 2) Woran erkenne ich die Einstiegsszene?

<span style="white-space: pre-wrap;">Sie ist speziell markiert (z. B. grün). Genau </span>**eine**<span style="white-space: pre-wrap;"> Szene sollte Start sein.</span>

### 3) Wie verbinde ich Szenen?

<span style="white-space: pre-wrap;">Über das jeweilige </span>**Feature**<span style="white-space: pre-wrap;"> (Button, QR, Wegpunkt, Eingabe etc.) eine </span>**Zielszene**<span style="white-space: pre-wrap;"> auswählen. Alternativ per Verbindung im Canvas.</span>

### 4) Lineare Story oder Verzweigungen?

<span style="white-space: pre-wrap;">Beides. Lineare Pfade sind am schnellsten, Verzweigungen baust du mit </span>**Buttons**<span style="white-space: pre-wrap;"> oder </span>**Bedingungen (Variablen)**.

### 5) Was sind Variablen – und wofür nutze ich sie?

<span style="white-space: pre-wrap;">Kleine Speicherwerte (Zähler/Flags), z. B. „Schlüssel gefunden = true“, „Hinweise = 2“. Damit steuerst du </span>**Sichtbarkeit**<span style="white-space: pre-wrap;">, </span>**Pfade**<span style="white-space: pre-wrap;"> und </span>**Erfolge**.

### 6) Inventar vs. Variablen?

**Inventar**<span style="white-space: pre-wrap;"> ist sichtbar („Gegenstände“), </span>**Variablen**<span style="white-space: pre-wrap;"> sind intern (Logik). Häufig kombiniert: Item einsammeln → Variable setzen.</span>

### 7) Wie verhindere ich „Soft-Locks“?

<span style="white-space: pre-wrap;">Immer </span>**Fallbacks**<span style="white-space: pre-wrap;"> anbieten: Hinweise, alternative Lösung, Skip mit Punktabzug/Badge-Logik.</span>

### 8) Wie teste ich zuverlässig?

<span style="white-space: pre-wrap;">Regelmäßig in der </span>**Vorschau**<span style="white-space: pre-wrap;"> und auf </span>**echtem Gerät**. Für GPS/QR-Szenen draußen testen; Caches nach größeren Änderungen leeren.

### 9) Wegpunkt erreicht, aber nichts passiert?

**Radius**<span style="white-space: pre-wrap;"> zu klein? GPS springt? Radius leicht erhöhen (z. B. 30–50 m), Zielszene prüfen, Standortfreigabe aktivieren.</span>

### 10) QR wird nicht erkannt?

<span style="white-space: pre-wrap;">Ausreichend groß &amp; kontrastreich drucken, Spiegelungen vermeiden, korrekten </span>**SCN-Code/Link**<span style="white-space: pre-wrap;"> nutzen. Bei Dunkelheit Taschenlampe.</span>

### 11) Medien – welche Größen?

<span style="white-space: pre-wrap;">Bilder ≥ </span>**1600 px**<span style="white-space: pre-wrap;">, möglichst </span>**WEBP/JPG**<span style="white-space: pre-wrap;"> komprimiert (&lt; 2 MB). Audio </span>**128–192 kbps**, Video kurz halten. 360° möglichst 4k equirectangular.

### 12) Das Spiel wirkt langsam – was tun?

<span style="white-space: pre-wrap;">Bilder komprimieren, Videos sparsam, </span>**Lazy-Load**<span style="white-space: pre-wrap;"> nutzen, keine übergroßen 360°-Serien in einer Szene, CSS/JS minimal halten.</span>

### 13) Kann ich eigenes CSS/JS einbinden?

Ja (fortgeschritten). Nur gezielt einsetzen, Namespaces nutzen, keine globalen Resets, Performance &amp; Sicherheit beachten.

### 14) Mehrsprachigkeit – wie organisieren?

<span style="white-space: pre-wrap;">Entweder </span>**eigene Szenen je Sprache**<span style="white-space: pre-wrap;"> oder </span>**Textvarianten**<span style="white-space: pre-wrap;">. Einheitliche Benennung (z. B. </span>`<span class="editor-theme-code">DE_…</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">EN_…</span>`) hilft beim Pflegen.

### 15) Wie arbeite ich im Team?

<span style="white-space: pre-wrap;">Szenen klar benennen, </span>**Status/Badges**<span style="white-space: pre-wrap;"> für interne Meilensteine, Merge-Konflikte vermeiden (nicht gleichzeitig an derselben Szene).</span>

### 16) Kann ich Szenen/Module wiederverwenden?

<span style="white-space: pre-wrap;">Ja: </span>**Duplizieren**<span style="white-space: pre-wrap;"> oder aus </span>**Toolbox/Template**<span style="white-space: pre-wrap;"> importieren. Danach IDs/Ziele prüfen.</span>

### 17) Wie mache ich ein Rätsel fair?

<span style="white-space: pre-wrap;">Ein Ziel, klare Anweisung, </span>**ein**<span style="white-space: pre-wrap;"> Lösungsweg (+ optional Hinweise), Eingaben robust prüfen (Trim/Case-insensitive, Varianten erlauben).</span>

### 18) Timer/Countdown sinnvoll einsetzen?

<span style="white-space: pre-wrap;">Kurz &amp; mit Bedeutung (z. B. Druck/Spannung). Immer eine </span>**Auffangszene**<span style="white-space: pre-wrap;"> definieren, falls Zeit abläuft.</span>

### 19) Welche Rolle spielt die Kategorie?

<span style="white-space: pre-wrap;">Steuert </span>**Listing &amp; Erwartungen**<span style="white-space: pre-wrap;"> (Virtual/Locationless/Classics/Shorties/Privat). Für Classics/Shorties </span>**Startpunkt**<span style="white-space: pre-wrap;"> setzen (Standort).</span>

### 20) Was bewirkt der Status (Aktiv/Hinweis/Temporär)?

<span style="white-space: pre-wrap;">Beeinflusst </span>**startbar**<span style="white-space: pre-wrap;"> ja/nein + Hinweisbanner (und ggf. Feed). Gilt nur für </span>**veröffentlichte**<span style="white-space: pre-wrap;"> Szenarien.</span>

### 21) Privat vs. öffentlich?

**Privat**: nicht gelistet, nur via QR/Short-URL. Öffentlich: normal auffindbar gemäß Status/Kategorie.

### 22) Preis &amp; Kalender – was ist Pflicht?

<span style="white-space: pre-wrap;">Sobald ein </span>**Preis**<span style="white-space: pre-wrap;"> gesetzt ist, braucht das Spiel einen </span>**Kalender**<span style="white-space: pre-wrap;"> (Buchung/Slots). Zahlungen nur mit passender Lizenz &amp; Stripe-Connect.</span>

### 23) Was sollte in die Beschreibung?

**Handlung**<span style="white-space: pre-wrap;"> (Teaser, ohne Spoiler) + </span>**Informationen**<span style="white-space: pre-wrap;"> (Dauer, Teamgröße, Ausrüstung, Barrierefreiheit, Öffnungszeiten).</span>

### 24) Gibt es Limits (Szenen/Größe)?

<span style="white-space: pre-wrap;">Praktisch: Performance-Grenzen. Lieber </span>**mehr, kleinere Szenen**<span style="white-space: pre-wrap;"> statt eine überladene; Assets komprimieren.</span>

### 25) Wie kann ich Fehler schneller finden?

In kleinen Schritten arbeiten, nach jedem Block testen, Variablenwerte in Debug-Szenen ausgeben, konsistente Namen/IDs.

### 26) Wie sichere ich meinen Fortschritt?

<span style="white-space: pre-wrap;">Regelmäßig </span>**speichern**<span style="white-space: pre-wrap;">, Meilensteine </span>**duplizieren**<span style="white-space: pre-wrap;"> (Backup-Kopie), ggf. Versionierung/Export, klare Changelogs im Team.</span>

### 27) Barrierefreiheit – was beachten?

<span style="white-space: pre-wrap;">Kontraste, große Touchziele, keine Pflicht zum Audio, Alternativtexte/Untertitel, stufenarme Wege in </span>**Infos**<span style="white-space: pre-wrap;"> nennen.</span>

### 28) Darf ich reale Orte/Personen zeigen?

<span style="white-space: pre-wrap;">Nur mit </span>**Rechten**<span style="white-space: pre-wrap;"> und unter Beachtung von </span>**Sicherheit/Privatsphäre**. Keine privaten Höfe/verborgene Gefahren als Ziel.

### 29) Kann ich Belohnungen vergeben?

<span style="white-space: pre-wrap;">Ja, über </span>**Badges**/Erfolge. Kriterien klar definieren (Zeit, Abschluss, Sammelaufgaben) und kommunizieren.

### 30) Was prüfe ich vor dem Publish?

<span style="white-space: pre-wrap;">Titel, Medien (Titelbild), Standort(e), Attribute, Kategorie, Status, ggf. Preis/Kalender, Support-Kontakt – danach </span>**Vorschau**<span style="white-space: pre-wrap;"> + Testlauf.</span>

# Feature-Matrix (vorläufig)

> Alle unten aufgeführten Features sind **in allen Lizenzmodellen verfügbar**.  
> Die Spalten **Free /Basic / Pro / Enterprise** sind Platzhalter – wir füllen Unterschiede/Limits später in der Doku nach.

<div class="_tableContainer_1rjym_1" id="bkmrk-feature-kurzbeschrei"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="3072" data-start="241"><thead data-end="339" data-start="241"><tr data-end="339" data-start="241"><th data-col-size="sm" data-end="251" data-start="241">Feature</th><th data-col-size="md" data-end="270" data-start="251">Kurzbeschreibung</th><th data-col-size="sm" data-end="278" data-start="270">Free</th><th data-col-size="sm" data-end="289" data-start="278">Basic</th><th data-col-size="sm" data-end="295" data-start="289">Pro</th><th data-col-size="sm" data-end="308" data-start="295">Enterprise</th><th data-col-size="sm" data-end="339" data-start="308">Notiz (für spätere Details)</th></tr></thead><tbody data-end="3072" data-start="374"><tr data-end="491" data-start="374"><td data-col-size="sm" data-end="385" data-start="374">Wegpunkt</td><td data-col-size="md" data-end="448" data-start="385">Statischer Kartenpunkt mit Radius, Sichtbarkeit &amp; Autoselect</td><td class="align-center" data-col-size="sm" data-end="452" data-start="448">✓</td><td class="align-center" data-col-size="sm" data-end="456" data-start="452">✓</td><td class="align-center" data-col-size="sm" data-end="460" data-start="456">✓</td><td class="align-center" data-col-size="sm" data-end="464" data-start="460">✓</td><td data-col-size="sm" data-end="491" data-start="464">Aus Toolbox übernehmbar</td></tr><tr data-end="596" data-start="492"><td data-col-size="sm" data-end="519" data-start="492">Dynamischer OSM-Wegpunkt</td><td data-col-size="md" data-end="562" data-start="519">Sucht OSM-Ziel live; Fallback-Projektion</td><td class="align-center" data-col-size="sm" data-end="566" data-start="562">✓</td><td class="align-center" data-col-size="sm" data-end="570" data-start="566">✓</td><td class="align-center" data-col-size="sm" data-end="574" data-start="570">✓</td><td class="align-center" data-col-size="sm" data-end="578" data-start="574">✓</td><td data-col-size="sm" data-end="596" data-start="578">key=value Tags</td></tr><tr data-end="697" data-start="597"><td data-col-size="sm" data-end="607" data-start="597">QR-Code</td><td data-col-size="md" data-end="658" data-start="607">Code → Zielszene; auch per QR-Suche (öffentlich)</td><td class="align-center" data-col-size="sm" data-end="662" data-start="658">✓</td><td class="align-center" data-col-size="sm" data-end="666" data-start="662">✓</td><td class="align-center" data-col-size="sm" data-end="670" data-start="666">✓</td><td class="align-center" data-col-size="sm" data-end="674" data-start="670">✓</td><td data-col-size="sm" data-end="697" data-start="674">Wert alphanumerisch</td></tr><tr data-end="780" data-start="698"><td data-col-size="sm" data-end="708" data-start="698">NFC-Tag</td><td data-col-size="md" data-end="736" data-start="708">NDEF-Textwert → Zielszene</td><td class="align-center" data-col-size="sm" data-end="740" data-start="736">✓</td><td class="align-center" data-col-size="sm" data-end="744" data-start="740">✓</td><td class="align-center" data-col-size="sm" data-end="748" data-start="744">✓</td><td class="align-center" data-col-size="sm" data-end="752" data-start="748">✓</td><td data-col-size="sm" data-end="780" data-start="752">Aus Toolbox importierbar</td></tr><tr data-end="874" data-start="781"><td data-col-size="sm" data-end="811" data-start="781">Spot aus Toolbox übernehmen</td><td data-col-size="md" data-end="854" data-start="811">GPS/QR/NFC-Spots direkt ins Board ziehen</td><td class="align-center" data-col-size="sm" data-end="858" data-start="854">✓</td><td class="align-center" data-col-size="sm" data-end="862" data-start="858">✓</td><td class="align-center" data-col-size="sm" data-end="866" data-start="862">✓</td><td class="align-center" data-col-size="sm" data-end="870" data-start="866">✓</td><td data-col-size="sm" data-end="874" data-start="870"> </td></tr><tr data-end="932" data-start="875"><td data-col-size="sm" data-end="884" data-start="875">Button</td><td data-col-size="md" data-end="912" data-start="884">Navigation/CTA mit Farben</td><td class="align-center" data-col-size="sm" data-end="916" data-start="912">✓</td><td class="align-center" data-col-size="sm" data-end="920" data-start="916">✓</td><td class="align-center" data-col-size="sm" data-end="924" data-start="920">✓</td><td class="align-center" data-col-size="sm" data-end="928" data-start="924">✓</td><td data-col-size="sm" data-end="932" data-start="928"> </td></tr><tr data-end="1027" data-start="933"><td data-col-size="sm" data-end="957" data-start="933">Abfragefeld (Eingabe)</td><td data-col-size="md" data-end="993" data-start="957">Lösung prüfen (vereinfacht/exakt)</td><td class="align-center" data-col-size="sm" data-end="997" data-start="993">✓</td><td class="align-center" data-col-size="sm" data-end="1001" data-start="997">✓</td><td class="align-center" data-col-size="sm" data-end="1005" data-start="1001">✓</td><td class="align-center" data-col-size="sm" data-end="1009" data-start="1005">✓</td><td data-col-size="sm" data-end="1027" data-start="1009">Zahl-/Textfeld</td></tr><tr data-end="1090" data-start="1028"><td data-col-size="sm" data-end="1037" data-start="1028">Dialog</td><td data-col-size="md" data-end="1070" data-start="1037">Mehrere Textschritte + Buttons</td><td class="align-center" data-col-size="sm" data-end="1074" data-start="1070">✓</td><td class="align-center" data-col-size="sm" data-end="1078" data-start="1074">✓</td><td class="align-center" data-col-size="sm" data-end="1082" data-start="1078">✓</td><td class="align-center" data-col-size="sm" data-end="1086" data-start="1082">✓</td><td data-col-size="sm" data-end="1090" data-start="1086"> </td></tr><tr data-end="1176" data-start="1091"><td data-col-size="sm" data-end="1110" data-start="1091">Dialog V2 – Chat</td><td data-col-size="md" data-end="1156" data-start="1110">Chat-Sequenzen mit typing/pause, Bild/Audio</td><td class="align-center" data-col-size="sm" data-end="1160" data-start="1156">✓</td><td class="align-center" data-col-size="sm" data-end="1164" data-start="1160">✓</td><td class="align-center" data-col-size="sm" data-end="1168" data-start="1164">✓</td><td class="align-center" data-col-size="sm" data-end="1172" data-start="1168">✓</td><td data-col-size="sm" data-end="1176" data-start="1172"> </td></tr><tr data-end="1276" data-start="1177"><td data-col-size="sm" data-end="1195" data-start="1177">Hintergrundbild</td><td data-col-size="md" data-end="1229" data-start="1195">Szene-Cover (Bild füllt Fläche)</td><td class="align-center" data-col-size="sm" data-end="1233" data-start="1229">✓</td><td class="align-center" data-col-size="sm" data-end="1237" data-start="1233">✓</td><td class="align-center" data-col-size="sm" data-end="1241" data-start="1237">✓</td><td class="align-center" data-col-size="sm" data-end="1245" data-start="1241">✓</td><td data-col-size="sm" data-end="1276" data-start="1245">Überlagert Hintergrundfarbe</td></tr><tr data-end="1356" data-start="1277"><td data-col-size="sm" data-end="1306" data-start="1277">Hintergrundfarbe (Verlauf)</td><td data-col-size="md" data-end="1336" data-start="1306">Vollflächige Farbe/Gradient</td><td class="align-center" data-col-size="sm" data-end="1340" data-start="1336">✓</td><td class="align-center" data-col-size="sm" data-end="1344" data-start="1340">✓</td><td class="align-center" data-col-size="sm" data-end="1348" data-start="1344">✓</td><td class="align-center" data-col-size="sm" data-end="1352" data-start="1348">✓</td><td data-col-size="sm" data-end="1356" data-start="1352"> </td></tr><tr data-end="1416" data-start="1357"><td data-col-size="sm" data-end="1375" data-start="1357">Szenen-Übergang</td><td data-col-size="md" data-end="1396" data-start="1375">In/Out-Animationen</td><td class="align-center" data-col-size="sm" data-end="1400" data-start="1396">✓</td><td class="align-center" data-col-size="sm" data-end="1404" data-start="1400">✓</td><td class="align-center" data-col-size="sm" data-end="1408" data-start="1404">✓</td><td class="align-center" data-col-size="sm" data-end="1412" data-start="1408">✓</td><td data-col-size="sm" data-end="1416" data-start="1412"> </td></tr><tr data-end="1504" data-start="1417"><td data-col-size="sm" data-end="1441" data-start="1417">Video einbetten (MP4)</td><td data-col-size="md" data-end="1484" data-start="1441">Poster, Seek-Lock, Fallback, End-Buttons</td><td class="align-center" data-col-size="sm" data-end="1488" data-start="1484">✓</td><td class="align-center" data-col-size="sm" data-end="1492" data-start="1488">✓</td><td class="align-center" data-col-size="sm" data-end="1496" data-start="1492">✓</td><td class="align-center" data-col-size="sm" data-end="1500" data-start="1496">✓</td><td data-col-size="sm" data-end="1504" data-start="1500"> </td></tr><tr data-end="1606" data-start="1505"><td data-col-size="sm" data-end="1529" data-start="1505">Audio einbetten (MP3)</td><td data-col-size="md" data-end="1576" data-start="1529">Poster, Player-Styles, **Untertitel-Editor**</td><td class="align-center" data-col-size="sm" data-end="1580" data-start="1576">✓</td><td class="align-center" data-col-size="sm" data-end="1584" data-start="1580">✓</td><td class="align-center" data-col-size="sm" data-end="1588" data-start="1584">✓</td><td class="align-center" data-col-size="sm" data-end="1592" data-start="1588">✓</td><td data-col-size="sm" data-end="1606" data-start="1592">VTT-Import</td></tr><tr data-end="1714" data-start="1607"><td data-col-size="sm" data-end="1634" data-start="1607">360°/Foto-Hotspot-Editor</td><td data-col-size="md" data-end="1668" data-start="1634">Klickbare Hotspots in 360°/Foto</td><td class="align-center" data-col-size="sm" data-end="1672" data-start="1668">✓</td><td class="align-center" data-col-size="sm" data-end="1676" data-start="1672">✓</td><td class="align-center" data-col-size="sm" data-end="1680" data-start="1676">✓</td><td class="align-center" data-col-size="sm" data-end="1684" data-start="1680">✓</td><td data-col-size="sm" data-end="1714" data-start="1684">Zielszene/Popup/onClick JS</td></tr><tr data-end="1793" data-start="1715"><td data-col-size="sm" data-end="1731" data-start="1715">Fotovergleich</td><td data-col-size="md" data-end="1773" data-start="1731">Live-Foto vs. Referenz, Schwelle, Retry</td><td class="align-center" data-col-size="sm" data-end="1777" data-start="1773">✓</td><td class="align-center" data-col-size="sm" data-end="1781" data-start="1777">✓</td><td class="align-center" data-col-size="sm" data-end="1785" data-start="1781">✓</td><td class="align-center" data-col-size="sm" data-end="1789" data-start="1785">✓</td><td data-col-size="sm" data-end="1793" data-start="1789"> </td></tr><tr data-end="1880" data-start="1794"><td data-col-size="sm" data-end="1811" data-start="1794">Foto-Challenge</td><td data-col-size="md" data-end="1860" data-start="1811">Bewertet neues Foto gegen Aufgabenbeschreibung</td><td class="align-center" data-col-size="sm" data-end="1864" data-start="1860">✓</td><td class="align-center" data-col-size="sm" data-end="1868" data-start="1864">✓</td><td class="align-center" data-col-size="sm" data-end="1872" data-start="1868">✓</td><td class="align-center" data-col-size="sm" data-end="1876" data-start="1872">✓</td><td data-col-size="sm" data-end="1880" data-start="1876"> </td></tr><tr data-end="1944" data-start="1881"><td data-col-size="sm" data-end="1892" data-start="1881">Hinweise</td><td data-col-size="md" data-end="1924" data-start="1892">Zeitgesteuerte Tipps + Lösung</td><td class="align-center" data-col-size="sm" data-end="1928" data-start="1924">✓</td><td class="align-center" data-col-size="sm" data-end="1932" data-start="1928">✓</td><td class="align-center" data-col-size="sm" data-end="1936" data-start="1932">✓</td><td class="align-center" data-col-size="sm" data-end="1940" data-start="1936">✓</td><td data-col-size="sm" data-end="1944" data-start="1940"> </td></tr><tr data-end="2013" data-start="1945"><td data-col-size="sm" data-end="1957" data-start="1945">Countdown</td><td data-col-size="md" data-end="1993" data-start="1957">Timer mit optionaler Ablauf-Szene</td><td class="align-center" data-col-size="sm" data-end="1997" data-start="1993">✓</td><td class="align-center" data-col-size="sm" data-end="2001" data-start="1997">✓</td><td class="align-center" data-col-size="sm" data-end="2005" data-start="2001">✓</td><td class="align-center" data-col-size="sm" data-end="2009" data-start="2005">✓</td><td data-col-size="sm" data-end="2013" data-start="2009"> </td></tr><tr data-end="2094" data-start="2014"><td data-col-size="sm" data-end="2032" data-start="2014">Inventar (Item)</td><td data-col-size="md" data-end="2074" data-start="2032">Sichtbare Items (zoombare Bilder, Text)</td><td class="align-center" data-col-size="sm" data-end="2078" data-start="2074">✓</td><td class="align-center" data-col-size="sm" data-end="2082" data-start="2078">✓</td><td class="align-center" data-col-size="sm" data-end="2086" data-start="2082">✓</td><td class="align-center" data-col-size="sm" data-end="2090" data-start="2086">✓</td><td data-col-size="sm" data-end="2094" data-start="2090"> </td></tr><tr data-end="2164" data-start="2095"><td data-col-size="sm" data-end="2123" data-start="2095">Inventar – Menge anpassen</td><td data-col-size="md" data-end="2144" data-start="2123">± oder fester Wert</td><td class="align-center" data-col-size="sm" data-end="2148" data-start="2144">✓</td><td class="align-center" data-col-size="sm" data-end="2152" data-start="2148">✓</td><td class="align-center" data-col-size="sm" data-end="2156" data-start="2152">✓</td><td class="align-center" data-col-size="sm" data-end="2160" data-start="2156">✓</td><td data-col-size="sm" data-end="2164" data-start="2160"> </td></tr><tr data-end="2234" data-start="2165"><td data-col-size="sm" data-end="2177" data-start="2165">Variablen</td><td data-col-size="md" data-end="2214" data-start="2177">Unsichtbare Flags/Zähler für Logik</td><td class="align-center" data-col-size="sm" data-end="2218" data-start="2214">✓</td><td class="align-center" data-col-size="sm" data-end="2222" data-start="2218">✓</td><td class="align-center" data-col-size="sm" data-end="2226" data-start="2222">✓</td><td class="align-center" data-col-size="sm" data-end="2230" data-start="2226">✓</td><td data-col-size="sm" data-end="2234" data-start="2230"> </td></tr><tr data-end="2322" data-start="2235"><td data-col-size="sm" data-end="2256" data-start="2235">Elemente entfernen</td><td data-col-size="md" data-end="2302" data-start="2256">Wegpunkt/QR/NFC/Countdown/Item deaktivieren</td><td class="align-center" data-col-size="sm" data-end="2306" data-start="2302">✓</td><td class="align-center" data-col-size="sm" data-end="2310" data-start="2306">✓</td><td class="align-center" data-col-size="sm" data-end="2314" data-start="2310">✓</td><td class="align-center" data-col-size="sm" data-end="2318" data-start="2314">✓</td><td data-col-size="sm" data-end="2322" data-start="2318"> </td></tr><tr data-end="2397" data-start="2323"><td data-col-size="sm" data-end="2348" data-start="2323">Team-Sync deaktivieren</td><td data-col-size="md" data-end="2377" data-start="2348">Szene lokal, ohne Teamsync</td><td class="align-center" data-col-size="sm" data-end="2381" data-start="2377">✓</td><td class="align-center" data-col-size="sm" data-end="2385" data-start="2381">✓</td><td class="align-center" data-col-size="sm" data-end="2389" data-start="2385">✓</td><td class="align-center" data-col-size="sm" data-end="2393" data-start="2389">✓</td><td data-col-size="sm" data-end="2397" data-start="2393"> </td></tr><tr data-end="2485" data-start="2398"><td data-col-size="sm" data-end="2411" data-start="2398">Javascript</td><td data-col-size="md" data-end="2436" data-start="2411">Szenen-JS (inkonstant)</td><td class="align-center" data-col-size="sm" data-end="2440" data-start="2436">✓</td><td class="align-center" data-col-size="sm" data-end="2444" data-start="2440">✓</td><td class="align-center" data-col-size="sm" data-end="2448" data-start="2444">✓</td><td class="align-center" data-col-size="sm" data-end="2452" data-start="2448">✓</td><td data-col-size="sm" data-end="2485" data-start="2452">Globale Funktionen in `[[ ]]`</td></tr><tr data-end="2585" data-start="2486"><td data-col-size="sm" data-end="2506" data-start="2486">Stylesheets (CSS)</td><td data-col-size="md" data-end="2541" data-start="2506">Globales Styling, klassenbasiert</td><td class="align-center" data-col-size="sm" data-end="2545" data-start="2541">✓</td><td class="align-center" data-col-size="sm" data-end="2549" data-start="2545">✓</td><td class="align-center" data-col-size="sm" data-end="2553" data-start="2549">✓</td><td class="align-center" data-col-size="sm" data-end="2557" data-start="2553">✓</td><td data-col-size="sm" data-end="2585" data-start="2557">Wirkt szenenübergreifend</td></tr><tr data-end="2681" data-start="2586"><td data-col-size="sm" data-end="2621" data-start="2586">Master / Globale Sektion `[[ ]]`</td><td data-col-size="md" data-end="2653" data-start="2621">Ein globaler Block je Projekt</td><td class="align-center" data-col-size="sm" data-end="2657" data-start="2653">✓</td><td class="align-center" data-col-size="sm" data-end="2661" data-start="2657">✓</td><td class="align-center" data-col-size="sm" data-end="2665" data-start="2661">✓</td><td class="align-center" data-col-size="sm" data-end="2669" data-start="2665">✓</td><td data-col-size="sm" data-end="2681" data-start="2669">Einmalig</td></tr><tr data-end="2761" data-start="2682"><td data-col-size="sm" data-end="2694" data-start="2682">Bedingung</td><td data-col-size="md" data-end="2741" data-start="2694">Verzweigung nach Regeln (Variablen/Inventar)</td><td class="align-center" data-col-size="sm" data-end="2745" data-start="2741">✓</td><td class="align-center" data-col-size="sm" data-end="2749" data-start="2745">✓</td><td class="align-center" data-col-size="sm" data-end="2753" data-start="2749">✓</td><td class="align-center" data-col-size="sm" data-end="2757" data-start="2753">✓</td><td data-col-size="sm" data-end="2761" data-start="2757"> </td></tr><tr data-end="2839" data-start="2762"><td data-col-size="sm" data-end="2784" data-start="2762">Spielende `[[End]]`</td><td data-col-size="md" data-end="2811" data-start="2784">Ein Endknoten je Projekt</td><td class="align-center" data-col-size="sm" data-end="2815" data-start="2811">✓</td><td class="align-center" data-col-size="sm" data-end="2819" data-start="2815">✓</td><td class="align-center" data-col-size="sm" data-end="2823" data-start="2819">✓</td><td class="align-center" data-col-size="sm" data-end="2827" data-start="2823">✓</td><td data-col-size="sm" data-end="2839" data-start="2827">Einmalig</td></tr><tr data-end="2898" data-start="2840"><td data-col-size="sm" data-end="2848" data-start="2840">Notiz</td><td data-col-size="md" data-end="2878" data-start="2848">Gelber Zettel für Redaktion</td><td class="align-center" data-col-size="sm" data-end="2882" data-start="2878">✓</td><td class="align-center" data-col-size="sm" data-end="2886" data-start="2882">✓</td><td class="align-center" data-col-size="sm" data-end="2890" data-start="2886">✓</td><td class="align-center" data-col-size="sm" data-end="2894" data-start="2890">✓</td><td data-col-size="sm" data-end="2898" data-start="2894"> </td></tr><tr data-end="2977" data-start="2899"><td data-col-size="sm" data-end="2910" data-start="2899">Vorschau</td><td data-col-size="md" data-end="2957" data-start="2910">Browser-Preview mit Quicklinks (Wegpunkt/QR)</td><td class="align-center" data-col-size="sm" data-end="2961" data-start="2957">✓</td><td class="align-center" data-col-size="sm" data-end="2965" data-start="2961">✓</td><td class="align-center" data-col-size="sm" data-end="2969" data-start="2965">✓</td><td class="align-center" data-col-size="sm" data-end="2973" data-start="2969">✓</td><td data-col-size="sm" data-end="2977" data-start="2973"> </td></tr><tr data-end="3072" data-start="2978"><td data-col-size="sm" data-end="2993" data-start="2978">KI-Generator</td><td data-col-size="md" data-end="3030" data-start="2993">Erstellt Szenen-Entwurf aus Prompt</td><td class="align-center" data-col-size="sm" data-end="3034" data-start="3030">✓</td><td class="align-center" data-col-size="sm" data-end="3038" data-start="3034">✓</td><td class="align-center" data-col-size="sm" data-end="3042" data-start="3038">✓</td><td class="align-center" data-col-size="sm" data-end="3046" data-start="3042">✓</td><td data-col-size="sm" data-end="3072" data-start="3046">Tageslimit pro Account</td></tr></tbody></table>

</div></div>**Legende:** ✓ = verfügbar.

# Veröffentlichen (Publish) – Ablauf

## Vor dem Klick auf „Veröffentlichen“

- **Spielbarkeit prüfen:** Szenenfluss, Wegpunkte/QR, Hinweise/Skip, keine Soft-Locks.
- **Titel &amp; Beschreibung:** aussagekräftiger **Titel**, mindestens **ein Titelbild** und **Beschreibung** gesetzt.
- **Kategorie/Attribute/Standort** passend gepflegt.

## Nach dem Klick

1. **AGB/Nutzungsbedingungen zustimmen.**
2. **Review durch uns:**
    
    
    - Grundsätzliche **Spielbarkeit** und **Logik** (Start → Ziel, Fallbacks).
    - **Richtlinien-Check:** keine radikalen/hetzerischen Inhalte, kein Schadcode, keine Urheberrechtsverstöße.
    - **Hosting:** Grafiken/Medien sind bei **scen.ar/io** gehostet (keine externen, unsicheren Quellen).
    - **Kategorie korrekt** (Virtual, Locationless, Classics, Shorties, Privat).
    - Kleine, offensichtliche **Korrekturen** nehmen wir ggf. direkt vor.

## Ergebnis

- Alles ok → **Veröffentlichung** und Listing auf der Plattform.
- Üblicher Durchlauf: **1–2 Tage**, in Einzelfällen **bis zu einer Woche** (bitte rechtzeitig planen).

## Falls etwas nicht passt

- Wir melden uns **direkt per E-Mail** beim Autor mit konkreten Hinweisen/To-dos.
- Nach Anpassung erneut **Veröffentlichen** anstoßen.

**Tipp:** Vorab einen vollständigen **Testlauf** auf dem Handy durchführen (GPS/QR/Medien) und die **Vorschau** im Storyboard nutzen.

# 🧬 Anhang

# Roadmap

# ... kommt bald.

Wir haben noch so einige Ideen für das Storyboard!

# Lizenz & Danksagung

## Lizenz

- **Dokumentation:**<span style="white-space: pre-wrap;"> sofern nicht anders gekennzeichnet, unter </span>**\[CC BY 4.0\]**<span style="white-space: pre-wrap;"> (Namensnennung erforderlich).</span>
- **Code-Beispiele &amp; Snippets:**<span style="white-space: pre-wrap;"> sofern nicht anders gekennzeichnet, unter </span>**\[MIT-Lizenz\]**.
- **Screenshots &amp; UI-Abbildungen:**<span style="white-space: pre-wrap;"> © </span>**\[scenario.app / AdventureKingz GmbH\]**, nur zur internen Doku/Fortbildung.

## Marken &amp; Inhalte

- <span style="white-space: pre-wrap;">Marken- und Produktnamen (u. a. </span>**Stripe**<span style="white-space: pre-wrap;">, </span>**YouTube**<span style="white-space: pre-wrap;">, </span>**WhatsApp**) sind Eigentum der jeweiligen Rechteinhaber.
- <span style="white-space: pre-wrap;">Bitte verwende nur Medien (Bilder/Audio/Video), an denen du </span>**Nutzungsrechte**<span style="white-space: pre-wrap;"> besitzt. Externe, unsichere Quellen sind nicht erlaubt; Medien sollten über </span>**scen.ar/io**<span style="white-space: pre-wrap;"> gehostet werden.</span>

## Danksagung (Open-Source &amp; Daten)

Ein großes Dankeschön an die Projekte und Communities, auf deren Schultern wir stehen:

- **OpenStreetMap**<span style="white-space: pre-wrap;"> – Geodaten © OpenStreetMap-Mitwirkende (ODbL).</span>
- **Mapbox**<span style="white-space: pre-wrap;"> – Kartenkacheln/Imagery.</span>
- **Leaflet**<span style="white-space: pre-wrap;"> – JavaScript-Bibliothek für interaktive Karten (BSD-2-Clause).</span>
- **Bootstrap**<span style="white-space: pre-wrap;"> – UI-Framework (MIT).</span>
- **Pannellum**<span style="white-space: pre-wrap;"> – 360°-Panorama-Viewer (MIT)</span>
- **Squiffy**<span style="white-space: pre-wrap;"> - textadventures.co.uk (MIT)</span>

## Kontakt

<span style="white-space: pre-wrap;">Fragen zur Lizenz oder Nutzung? </span>**-&gt; Kontakt**

# Kontakt

**AdventureKingz GmbH**  
Unter den Linden 7  
38112 Braunschweig  
Deutschland

**E-Mail:**<span style="white-space: pre-wrap;"> </span>[hallo@adventurekingz.de](#bkmrk-tiktok%3A-%40scenario.ap)<span style="white-space: pre-wrap;"> · </span>[hilfe@scenario.app](#bkmrk-tiktok%3A-%40scenario.ap)  
**Telefon:**<span style="white-space: pre-wrap;"> +49 531 1805200</span>  
<span style="white-space: pre-wrap;">(Weitere Kontaktwege siehe „Hilfe/Support“ in der App.) </span>[Google Play+1](https://play.google.com/store/apps/details?hl=en_US&id=app.scenario.storyboard&utm_source=chatgpt.com)

---

# Impressum (Angaben gem. § 5 TMG)

**AdventureKingz GmbH**  
Unter den Linden 7, 38112 Braunschweig, Deutschland.  
**Vertreten durch die Geschäftsführer:**<span style="white-space: pre-wrap;"> David Wright, David Nacke.</span>  
**Registereintrag:**<span style="white-space: pre-wrap;"> Amtsgericht Braunschweig, HRB 209111.</span>

**Kontakt:**  
<span style="white-space: pre-wrap;">E-Mail: </span>[hallo@adventurekingz.de](#bkmrk-tiktok%3A-%40scenario.ap)<span style="white-space: pre-wrap;"> · </span>[hilfe@scenario.app](#bkmrk-tiktok%3A-%40scenario.ap)  
Telefon: +49 531 1805200

**USt-IdNr.:**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(0, 0, 0);">DE341655463</span>

**Verantwortlich für den Inhalt nach § 18 Abs. 2 MStV:**  
AdventureKingz GmbH, Anschrift wie oben.

---

## Streitbeilegung / Verbraucherschlichtung

Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit: ec.europa.eu/consumers/odr. Wir sind nicht verpflichtet und nicht bereit, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen.

---

## Urheberrecht &amp; Bildnachweise

<span style="white-space: pre-wrap;">Alle Inhalte, Marken und Logos sind Eigentum der AdventureKingz GmbH oder entsprechend gekennzeichneten Rechteinhaber. Medien innerhalb der Plattform werden auf </span>**scen.ar/io**<span style="white-space: pre-wrap;"> gehostet.</span>

---

<span style="white-space: pre-wrap;">Spielen: </span>**scen.ar/io® -** [**scenario.app**](https://scen.ar/io)

<span style="white-space: pre-wrap;">Gestalten: </span>**Storyboard** [**storyboard.scenario.app**](https://storyboard.scenario.app/)

**Instagram:** [**@scenario.app**](https://www.instagram.com/scenario.app/)

**Facebook:** [**@scenarioadventureapp**](https://www.facebook.com/scenarioadventureapp/)

**YouTube:** [**@scenarioapp**](https://www.youtube.com/@scenarioapp)

**Threads:** [**@scenario.app**](https://www.threads.net/@scenario.app)

**TikTok:** [**@scenario.app**](https://www.tiktok.com/@scenario.app)