# game-lab-6-0-utp-grupo-1-equipo-3/threadbare architecture

> Architecture diagram of the GitHub repository game-lab-6-0-utp-grupo-1-equipo-3/threadbare, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare
- Repository: https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare

## Overview

1. This is a Godot game project, not a conventional app repo. Runtime content is built from scene files (`.tscn`), resources (`.tres`), scripts (`.gd`, plus a few `.cs`), and imported narrative/dialogue assets. The root `project.godot` defines the engine project and likely autoloads the global services under `scenes/globals`.

2. The main architectural boundary is between reusable engine-like systems and authored game content. Reusable systems live in `scenes/game_logic`, `scenes/game_elements`, `scenes/ui_elements`, and `scenes/globals`; authored gameplay lives under `scenes/quests` and `scenes/world_map`. Most quest scenes are assembled by composing these reusable pieces rather than implementing bespoke mechanics from scratch.

3. Global runtime services are centralized in `scenes/globals`: game state, scene switching, music, pause overlay, mouse management, settings, camera shake, and aspect-ratio handling. These are the cross-cutting dependencies that content scenes rely on for persistence and orchestration across scene transitions.

4. The gameplay layer is content-driven and scene-based. `scenes/quests/story_quests` and `scenes/quests/lore_quests` contain multi-step quest chains, each with intro, stealth, combat, sequence-puzzle, and outro scenes. `scenes/quests/template_quests` provides a reusable template structure for authoring new quests, which suggests quests are designed as modular episodes that plug into the same progression system.

5. The game’s core interaction model appears to be built from a few standardized mechanics: dialogue, stealth, combat with thrown projectiles, sequence puzzles, movement/runner segments, and special “hook/repel” interactions. The corresponding generic implementations are in `scenes/game_logic` and the reusable props under `scenes/game_elements/props`.

6. `scenes/game_elements` is the canonical library of world objects and character components. It contains player, NPC, enemy, prop, and VFX building blocks such as doors, levers, collectibles, checkpoints, projectiles, trees, barrels, signs, and special puzzle objects. Quest scenes selectively instantiate and configure these components to produce specific encounters.

7. `scenes/world_map` is the macro-level exploration layer. It appears to contain the hub/world navigation scene(s), NPC dialogue hooks, quest unlock logic, and tilemap toggles. This likely sits above the quest scenes and uses quest progression from global state to reveal or unlock content.

8. Dialogue is a first-class subsystem. The repository contains many `.dialogue` assets alongside a dialogue-manager addon under `addons/dialogue_manager`. This suggests narrative flow is data-driven: scenes trigger dialogue resources, dialogue managers render/advance them, and quest scripts use dialogue events to gate progression.

9. UI is split into dedicated overlay systems rather than embedded in gameplay scenes. `scenes/ui_elements` contains HUD, dialogue balloon, cinematic UI, input hints, and story quest progress widgets. These pieces are shared across many quests and are likely controlled by the global state and current scene context.

10. Quest-specific scenes frequently define their own content variants: custom tilesets, sprite frame resources, music, and local scripts for special behaviors. That means the repo uses a layered content pattern: generic mechanics from shared systems, then quest-local configuration/assets under each quest folder, then scene assembly around those resources.

11. Editor and authoring support are substantial. The `addons` folder includes plugins for dialogue management, input helper prompts, phantom camera, sprite-frame texture export, Git LFS checking, story-quest bootstrapping, project settings, version labeling, credits tooling, and inspector/import helpers. These are mostly editor-time boundaries, not runtime dependencies, but they matter because they shape how content is created and maintained.

12. Asset organization is also part of the architecture. `assets/first_party` and `assets/third_party` separate original art/audio from licensed external content, with REUSE metadata and per-file license markers. The repo depends on large binary assets via Git LFS, so asset availability is a build/runtime concern as well as a source-control concern.

13. Build and release flow is handled outside the game logic via GitHub Actions and export presets. The repo includes workflows for checks, export, GitHub Pages, and Discord notifications, plus platform build directories for Linux, Windows, and Web. That indicates the project is shipped as a multi-platform Godot export with automated CI/CD.

14. If you are drawing an architecture diagram, the clearest top-level flow is: global services and UI wrap the app shell; the world map and scene switcher move the player between quest episodes; quest scenes compose reusable gameplay components; dialogue/resources drive narrative and progression; and tooling/addons support authoring, localization, and export.

Main entry points: [`scenes/ui_elements`](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/ui_elements) (UI Shell), [`scenes/quests`](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/quests) (Quests), [`scenes/game_elements`](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/game_elements) (Game Elements), [`scenes/globals`](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/globals) (Globals)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Core Runtime"]
  node_project["Project<br/>[project.godot]"]
  node_globals["Globals<br/>runtime services"]
  node_game_state[("Game State<br/>persistent state<br/>[game_state.tscn]")]
  node_scene_switcher["Scene Switcher<br/>transition/orchestration<br/>[scene_switcher.gd]"]
  node_settings["Settings<br/>config runtime<br/>[settings.gd]"]
end

subgraph group_content["Game Content"]
  node_game_logic["Game Logic<br/>mechanics library"]
  node_stealth_logic["Stealth<br/>mechanic"]
  node_sequence_puzzle_logic["Sequence Puzzle<br/>mechanic<br/>[sequence_puzzle.gd]"]
  node_combat_logic["Combat Logic<br/>mechanic"]
  node_world_map["World Map<br/>hub layer<br/>[frays_end.tscn]"]
  node_quest_unlocks["Unlocks<br/>progress gating"]
  node_quest_system["Quests<br/>episode content"]
  node_story_quests["Story Quests<br/>quest set"]
  node_lore_quests["Lore Quests<br/>quest set"]
  node_template_quests["Template Quests<br/>authoring scaffold"]
  node_game_elements["Game Elements<br/>object library"]
  node_player_char["Player<br/>character prefab<br/>[player.tscn]"]
  node_npcs_enemies["NPCs & Enemies<br/>character prefabs"]
  node_props["Props<br/>interactive objects"]
end

subgraph group_ui["UI Layer"]
  node_ui_shell["UI Shell<br/>overlay system"]
  node_dialogue_ui["Dialogue UI<br/>dialogue overlay<br/>[balloon.tscn]"]
  node_hud["HUD<br/>in-game overlay<br/>[hud.tscn]"]
  node_input_hints["Input Hints<br/>prompt overlay<br/>[input_hud.tscn]"]
  node_quest_progress_ui["Quest Progress<br/>progress overlay"]
end

subgraph group_tooling["Tooling"]
  node_addons["Addons<br/>editor plugins"]
  node_dialogue_manager["Dialogue Manager<br/>addon"]
  node_build_ci["Build & CI<br/>automation<br/>[export.yml]"]
end

subgraph group_assets["Assets"]
  node_assets_root["Assets"]
end

node_project -->|"autoloads"| node_globals
node_globals -->|"owns"| node_game_state
node_globals -->|"uses"| node_scene_switcher
node_globals -->|"uses"| node_settings
node_scene_switcher -->|"loads"| node_world_map
node_scene_switcher -->|"loads"| node_quest_system
node_game_state -->|"drives"| node_quest_unlocks
node_quest_unlocks -->|"gates"| node_world_map
node_ui_shell -->|"contains"| node_dialogue_ui
node_ui_shell -->|"contains"| node_hud
node_ui_shell -->|"contains"| node_input_hints
node_ui_shell -->|"contains"| node_quest_progress_ui
node_quest_system -->|"contains"| node_story_quests
node_quest_system -->|"contains"| node_lore_quests
node_quest_system -->|"contains"| node_template_quests
node_story_quests -->|"composes"| node_game_elements
node_lore_quests -->|"reuses"| node_game_logic
node_game_logic -->|"includes"| node_stealth_logic
node_game_logic -->|"includes"| node_sequence_puzzle_logic
node_game_logic -->|"includes"| node_combat_logic
node_game_elements -->|"defines"| node_player_char
node_game_elements -->|"defines"| node_npcs_enemies
node_game_elements -->|"defines"| node_props
node_props -->|"triggers"| node_ui_shell
node_npcs_enemies -->|"talks to"| node_dialogue_manager
node_ui_shell -->|"renders"| node_dialogue_manager
node_addons -->|"includes"| node_dialogue_manager
node_build_ci -->|"packages"| node_assets_root
node_assets_root -->|"feeds"| node_game_elements
node_assets_root -->|"feeds"| node_quest_system

click node_project "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/project.godot"
click node_globals "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/globals"
click node_game_state "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/globals/game_state/game_state.tscn"
click node_scene_switcher "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/globals/scene_switcher/scene_switcher.gd"
click node_settings "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/globals/settings/settings.gd"
click node_ui_shell "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/ui_elements"
click node_dialogue_ui "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/ui_elements/dialogue/balloon.tscn"
click node_hud "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/ui_elements/hud/hud.tscn"
click node_input_hints "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/ui_elements/input_hints/input_hud.tscn"
click node_quest_progress_ui "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/ui_elements/story_quest_progress/story_quest_progress.tscn"
click node_game_logic "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/game_logic"
click node_stealth_logic "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/game_logic/stealth_game_logic.gd"
click node_sequence_puzzle_logic "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/game_logic/sequence_puzzle.gd"
click node_combat_logic "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/game_logic/throw_projectile_behavior.gd"
click node_world_map "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/world_map/frays_end.tscn"
click node_quest_unlocks "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/world_map/components/quest_progress_unlocker.gd"
click node_quest_system "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/quests"
click node_story_quests "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/quests/story_quests"
click node_lore_quests "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/quests/lore_quests"
click node_template_quests "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/quests/template_quests"
click node_game_elements "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/game_elements"
click node_player_char "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/game_elements/characters/player/player.tscn"
click node_npcs_enemies "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/game_elements/characters"
click node_props "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/game_elements/props"
click node_addons "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/addons"
click node_dialogue_manager "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/addons/dialogue_manager"
click node_build_ci "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/.github/workflows/export.yml"
click node_assets_root "https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/assets"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_project,node_globals,node_game_state,node_scene_switcher,node_settings toneBlue
class node_game_logic,node_stealth_logic,node_sequence_puzzle_logic,node_combat_logic,node_world_map,node_quest_unlocks,node_quest_system,node_story_quests,node_lore_quests,node_template_quests,node_game_elements,node_player_char,node_npcs_enemies,node_props toneAmber
class node_ui_shell,node_dialogue_ui,node_hud,node_input_hints,node_quest_progress_ui toneMint
class node_addons,node_dialogue_manager,node_build_ci toneRose
class node_assets_root toneIndigo
```

## Components

### Core Runtime

Engine project setup and cross-cutting services used across scenes.

- [Project](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/project.godot): Godot project · Root engine project and startup configuration. · `project.godot`
- [Globals](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/globals): runtime services · Autoload-style services for state, scene switching, music, pause, mouse, settings, camera shake, and aspect ratio. · `scenes/globals`
- [Game State](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/globals/game_state/game_state.tscn): persistent state · Stores progression, inventory, and session-wide game data. · `scenes/globals/game_state/game_state.tscn`
- [Scene Switcher](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/globals/scene_switcher/scene_switcher.gd): transition/orchestration · Coordinates moving between menus, world map, and quests. · `scenes/globals/scene_switcher/scene_switcher.gd`
- [Settings](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/globals/settings/settings.gd): config runtime · Applies user and project settings, including bus layout and options. · `scenes/globals/settings/settings.gd`

### Game Content

Authored gameplay layers, quests, and world navigation.

- [Game Logic](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/game_logic): mechanics library · Reusable mechanics and behaviors that quest scenes compose. · `scenes/game_logic`
- [Stealth](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/game_logic/stealth_game_logic.gd): mechanic · Shared stealth detection and chase behavior. · `scenes/game_logic/stealth_game_logic.gd`
- [Sequence Puzzle](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/game_logic/sequence_puzzle.gd): mechanic · Rule-driven puzzle system for ordered interactions. · `scenes/game_logic/sequence_puzzle.gd`
- [Combat Logic](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/game_logic/throw_projectile_behavior.gd): mechanic · Projectile throwing and hit handling for combat episodes. · `scenes/game_logic/throw_projectile_behavior.gd`
- [World Map](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/world_map/frays_end.tscn): hub layer · Macro exploration layer that unlocks and routes quests. · `scenes/world_map/frays_end.tscn`
- [Unlocks](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/world_map/components/quest_progress_unlocker.gd): progress gating · Uses global quest progress to reveal map content and options. · `scenes/world_map/components/quest_progress_unlocker.gd`
- [Quests](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/quests): episode content · Story, lore, and template quest episodes assembled from shared systems. · `scenes/quests`
- [Story Quests](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/quests/story_quests): quest set · Main narrative quest chains with intro, gameplay, and outro scenes. · `scenes/quests/story_quests`
- [Lore Quests](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/quests/lore_quests): quest set · Tutorial and side-story quests built from the same modular episode structure. · `scenes/quests/lore_quests`
- [Template Quests](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/quests/template_quests): authoring scaffold · Reusable NO_EDIT quest structure for new content creation. · `scenes/quests/template_quests`
- [Game Elements](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/game_elements): object library · Canonical reusable characters, props, FX, and interactive world objects. · `scenes/game_elements`
- [Player](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/game_elements/characters/player/player.tscn): character prefab · Player character base scene and component behaviors. · `scenes/game_elements/characters/player/player.tscn`
- [NPCs & Enemies](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/game_elements/characters): character prefabs · Reusable NPC, elder, guard, throwing enemy, and special companion/enemy prefabs. · `scenes/game_elements/characters`
- [Props](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/game_elements/props): interactive objects · Doors, levers, collectibles, checkpoints, hooks, barrels, signs, and other world interactions. · `scenes/game_elements/props`

### UI Layer

Shared overlays and presentation systems.

- [UI Shell](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/scenes/ui_elements): overlay system · Shared HUD, dialogue, cinematic, input-hint, and quest-progress overlays. · `scenes/ui_elements`
- [Dialogue UI](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/ui_elements/dialogue/balloon.tscn): dialogue overlay · Dialogue balloon and related presentation used by quest scenes. · `scenes/ui_elements/dialogue/balloon.tscn`
- [HUD](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/ui_elements/hud/hud.tscn): in-game overlay · General heads-up display for gameplay scenes. · `scenes/ui_elements/hud/hud.tscn`
- [Input Hints](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/ui_elements/input_hints/input_hud.tscn): prompt overlay · Contextual control prompts and device-specific input art. · `scenes/ui_elements/input_hints/input_hud.tscn`
- [Quest Progress](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/scenes/ui_elements/story_quest_progress/story_quest_progress.tscn): progress overlay · Shows collected items and quest-step progress. · `scenes/ui_elements/story_quest_progress/story_quest_progress.tscn`

### Tooling

Editor plugins, authoring support, and build/release automation.

- [Addons](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/addons): editor plugins · Dialogue manager and other authoring-time plugins used by the project. · `addons`
- [Dialogue Manager](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/addons/dialogue_manager): addon · Third-party dialogue system used to compile, display, and manage dialogue resources. · `addons/dialogue_manager`
- [Build & CI](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/blob/main/.github/workflows/export.yml): automation · GitHub Actions workflows, export presets, and platform release scaffolding. · `.github/workflows/export.yml`

### Assets

Organized art, audio, and licensed third-party content.

- [Assets](https://github.com/game-lab-6-0-utp-grupo-1-equipo-3/threadbare/tree/main/assets): art/audio assets · First-party and third-party media, organized with licensing metadata. · `assets`

## Connections

- Project → Globals: autoloads · Project config wires global runtime services into the game.
- Globals → Game State: owns · Persistent state lives inside the global runtime layer.
- Globals → Scene Switcher: uses · Scene transitions are coordinated as a global service.
- Globals → Settings: uses · Global settings are applied through runtime services.
- Scene Switcher → World Map: loads · Switches the player between hub and quest scenes.
- Scene Switcher → Quests: loads · Transitions into quest episodes.
- Game State → Unlocks: drives · Quest progress determines what the world map can reveal.
- Unlocks → World Map: gates · Map content is revealed or hidden based on progression.
- UI Shell → Dialogue UI: contains · Dialogue balloons are a shared UI subsystem.
- UI Shell → HUD: contains · HUD is part of the shared overlay layer.
- UI Shell → Input Hints: contains · Input prompts are exposed as reusable overlays.
- UI Shell → Quest Progress: contains · Quest progress widget is part of the common UI shell.
- Quests → Story Quests: contains · Main story quest chains live under the quest system.
- Quests → Lore Quests: contains · Lore and tutorial quests live under the quest system.
- Quests → Template Quests: contains · Quest authoring scaffold is included alongside authored quests.
- Story Quests → Game Elements: composes · Story episodes instantiate shared gameplay objects and characters.
- Lore Quests → Game Logic: reuses · Tutorial quests are built from shared mechanics.
- Game Logic → Stealth: includes · Stealth is a first-class reusable mechanic.
- Game Logic → Sequence Puzzle: includes · Sequence puzzles are implemented as reusable logic.
- Game Logic → Combat Logic: includes · Combat interactions are handled by shared logic.
- Game Elements → Player: defines · Base player prefab and abilities live in the game elements library.
- Game Elements → NPCs & Enemies: defines · NPC and enemy prefabs are centralized here.
- Game Elements → Props: defines · Interactive world objects are implemented as reusable prefabs.
- Props → UI Shell: triggers · Many props surface interaction and progress UI.
- NPCs & Enemies → Dialogue Manager: talks to · NPCs and quest-givers rely on the dialogue system.
- UI Shell → Dialogue Manager: renders · Dialogue UI is driven by the dialogue addon.
- Addons → Dialogue Manager: includes · Dialogue manager is the main addon subsystem.
- Build & CI → Assets: packages · Exports and CI depend on the repository's assets being available.
- Assets → Game Elements: feeds · Shared prefabs are textured and voiced by the asset library.
- Assets → Quests: feeds · Quest-local art, music, and audio are authored inside quest folders.
