# rayageorgieva1610/undertale-save-analyzer architecture

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

- Interactive diagram: https://gitdiagram.com/rayageorgieva1610/undertale-save-analyzer
- Repository: https://github.com/rayageorgieva1610/undertale-save-analyzer

## Overview

This small Undertale save analyzer consists of three standalone scripts. Each reads the local `file0` save independently: one displays raw lines, one extracts player stats, and one evaluates area kills and route progression. The README documents all three capabilities; source excerpts show their file reads and console output, but no shared processing layer.

Main entry points: [`01save_reader/read_save.py`](https://github.com/rayageorgieva1610/undertale-save-analyzer/blob/main/01save_reader/read_save.py) (Raw save reader), [`02player_stats/player_stats.py`](https://github.com/rayageorgieva1610/undertale-save-analyzer/blob/main/02player_stats/player_stats.py) (Player stats), [`03game_state/game_state.py`](https://github.com/rayageorgieva1610/undertale-save-analyzer/blob/main/03game_state/game_state.py) (Route analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("User"))
node_save["Undertale file0"]
node_reader["Raw save reader<br/>[read_save.py]"]
node_stats["Player stats<br/>[player_stats.py]"]
node_route["Route analysis<br/>[game_state.py]"]
node_console["Console output"]

node_user -->|"runs"| node_reader
node_user -->|"runs"| node_stats
node_user -->|"runs"| node_route
node_reader -->|"reads"| node_save
node_stats -->|"reads"| node_save
node_route -->|"reads"| node_save
node_reader -->|"prints lines"| node_console
node_stats -->|"prints stats"| node_console
node_route -->|"prints route"| node_console

click node_reader "https://github.com/rayageorgieva1610/undertale-save-analyzer/blob/main/01save_reader/read_save.py"
click node_stats "https://github.com/rayageorgieva1610/undertale-save-analyzer/blob/main/02player_stats/player_stats.py"
click node_route "https://github.com/rayageorgieva1610/undertale-save-analyzer/blob/main/03game_state/game_state.py"

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_user toneBlue
class node_save,node_console toneIndigo
class node_reader,node_stats toneTeal
class node_route toneMint
```

## Components

### Other components

- **User**
- **Undertale file0**
- [Raw save reader](https://github.com/rayageorgieva1610/undertale-save-analyzer/blob/main/01save_reader/read_save.py): `01save_reader/read_save.py`
- [Player stats](https://github.com/rayageorgieva1610/undertale-save-analyzer/blob/main/02player_stats/player_stats.py): `02player_stats/player_stats.py`
- [Route analysis](https://github.com/rayageorgieva1610/undertale-save-analyzer/blob/main/03game_state/game_state.py): `03game_state/game_state.py`
- **Console output**

## Connections

- User → Raw save reader: runs
- User → Player stats: runs
- User → Route analysis: runs
- Raw save reader → Undertale file0: reads
- Player stats → Undertale file0: reads
- Route analysis → Undertale file0: reads
- Raw save reader → Console output: prints lines
- Player stats → Console output: prints stats
- Route analysis → Console output: prints route
