# onezhazha233/undertale-engine-modded-by-zhazha architecture

> Architecture diagram of the GitHub repository onezhazha233/undertale-engine-modded-by-zhazha, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/onezhazha233/undertale-engine-modded-by-zhazha
- Repository: https://github.com/onezhazha233/undertale-engine-modded-by-zhazha
- Video tour (about a minute): https://gitdiagram.com/onezhazha233/undertale-engine-modded-by-zhazha/video

## Overview

UTE is a GameMaker template for building Undertale-style fan games. The documented player-facing loop spans overworld movement and events, dialogue or encounters, turn-based battles, and persistent player progress; the repository also provides shops, localization, and debugging tools. Paths below use the supplied tree. The README documents capabilities but no source excerpts were provided, so the graph shows only documented relationships and omits uncertain room-to-room and implementation wiring.

Main entry points: [`scripts/Battle_SetState`](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Battle_SetState) (Battle rules), [`scripts/Event_Start`](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Event_Start) (Cutscene events), [`objects/overworld_dialog`](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/overworld_dialog) (Dialogue and typer), [`scripts/Encounter_Start`](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Encounter_Start) (Encounters)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_world["Overworld and events"]
  node_init_room["Game entry"]
  node_world_system["World and movement"]
  node_event_system["Cutscene events"]
  node_prompt_system["Prompts"]
end

subgraph group_battle["Battle systems"]
  node_encounter_system["Encounters"]
  node_battle_room["Battle scene"]
  node_battle_system["Battle rules"]
  node_battle_soul["Soul movement"]
  node_battle_board["Battle board"]
  node_battle_enemy["Enemy behavior"]
end

subgraph group_player["Dialogue and progress"]
  node_dialogue["Dialogue and typer"]
  node_typer["Text rendering"]
  node_player_state["Player stats"]
  node_inventory["Items and inventory"]
  node_save_system["Save and flags"]
  node_shop_system["Shop"]
end

subgraph group_shared["Shared services"]
  node_localization["Localization"]
  node_audio["Audio"]
end

subgraph group_tools["Developer tools"]
  node_debugger["Debugger"]
  node_console["Console"]
  node_demo["Input recording"]
end

node_player_actor(("Player"))

node_player_actor -->|"moves through"| node_world_system
node_player_actor -->|"triggers events"| node_event_system
node_event_system -->|"offers prompts"| node_prompt_system
node_event_system -->|"starts encounters"| node_encounter_system
node_encounter_system -->|"opens battle"| node_battle_room
node_battle_room -->|"runs battle"| node_battle_system
node_battle_system -->|"controls soul"| node_battle_soul
node_battle_system -->|"uses board"| node_battle_board
node_battle_system -->|"manages enemies"| node_battle_enemy
node_player_actor -->|"advances dialogue"| node_dialogue
node_dialogue -->|"renders text"| node_typer
node_battle_system -->|"updates progress"| node_player_state
node_player_state -->|"persists state"| node_save_system
node_player_actor -->|"uses shop"| node_shop_system
node_shop_system -->|"updates items"| node_inventory
node_dialogue -->|"loads localized text"| node_localization
node_player_actor -->|"starts game"| node_init_room

click node_init_room "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/rooms/room_init"
click node_world_system "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/world"
click node_event_system "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Event_Start"
click node_prompt_system "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Prompt_Add"
click node_encounter_system "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Encounter_Start"
click node_battle_room "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/rooms/room_battle"
click node_battle_system "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Battle_SetState"
click node_battle_soul "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/battle_soul"
click node_battle_board "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/battle_board"
click node_battle_enemy "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/battle_enemy"
click node_dialogue "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/overworld_dialog"
click node_typer "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Typer_SetText"
click node_player_state "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Player_GetHp"
click node_inventory "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Item_Add"
click node_save_system "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Flag_Save"
click node_shop_system "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Shop_Menu"
click node_localization "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Lang_LoadLanguage"
click node_audio "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/BGM_Play"
click node_debugger "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/debugger"
click node_console "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Console_Init"
click node_demo "https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Demo_StartRecording"

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_init_room,node_world_system,node_event_system,node_prompt_system toneBlue
class node_encounter_system,node_battle_room,node_battle_system,node_battle_soul,node_battle_board,node_battle_enemy toneAmber
class node_dialogue,node_typer,node_player_state,node_inventory,node_save_system,node_shop_system toneMint
class node_localization,node_audio toneRose
class node_debugger,node_console,node_demo,node_player_actor toneIndigo
```

## Components

### Overworld and events

- [Game entry](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/rooms/room_init): `rooms/room_init`
- [World and movement](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/world): `objects/world`
- [Cutscene events](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Event_Start): `scripts/Event_Start`
- [Prompts](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Prompt_Add): `scripts/Prompt_Add`

### Battle systems

- [Encounters](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Encounter_Start): `scripts/Encounter_Start`
- [Battle scene](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/rooms/room_battle): `rooms/room_battle`
- [Battle rules](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Battle_SetState): `scripts/Battle_SetState`
- [Soul movement](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/battle_soul): `objects/battle_soul`
- [Battle board](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/battle_board): `objects/battle_board`
- [Enemy behavior](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/battle_enemy): `objects/battle_enemy`

### Dialogue and progress

- [Dialogue and typer](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/overworld_dialog): `objects/overworld_dialog`
- [Text rendering](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Typer_SetText): `scripts/Typer_SetText`
- [Player stats](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Player_GetHp): `scripts/Player_GetHp`
- [Items and inventory](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Item_Add): `scripts/Item_Add`
- [Save and flags](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Flag_Save): `scripts/Flag_Save`
- [Shop](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Shop_Menu): `scripts/Shop_Menu`

### Shared services

- [Localization](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Lang_LoadLanguage): `scripts/Lang_LoadLanguage`
- [Audio](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/BGM_Play): `scripts/BGM_Play`

### Developer tools

- [Debugger](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/objects/debugger): `objects/debugger`
- [Console](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Console_Init): `scripts/Console_Init`
- [Input recording](https://github.com/onezhazha233/undertale-engine-modded-by-zhazha/tree/2.0/scripts/Demo_StartRecording): `scripts/Demo_StartRecording`

### Other components

- **Player**

## Connections

- Player → World and movement: moves through
- Player → Cutscene events: triggers events
- Cutscene events → Prompts: offers prompts
- Cutscene events → Encounters: starts encounters
- Encounters → Battle scene: opens battle
- Battle scene → Battle rules: runs battle
- Battle rules → Soul movement: controls soul
- Battle rules → Battle board: uses board
- Battle rules → Enemy behavior: manages enemies
- Player → Dialogue and typer: advances dialogue
- Dialogue and typer → Text rendering: renders text
- Battle rules → Player stats: updates progress
- Player stats → Save and flags: persists state
- Player → Shop: uses shop
- Shop → Items and inventory: updates items
- Dialogue and typer → Localization: loads localized text
- Player → Game entry: starts game
