# lanterfanten/fable-vaders architecture

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

- Interactive diagram: https://gitdiagram.com/lanterfanten/fable-vaders
- Repository: https://github.com/lanterfanten/fable-vaders

## Overview

FABLE-VADERS is a standalone browser game: the player selects a developer, then moves and fires through an arcade loop that tracks tokens and the time-limit meter. Bot kills, row clears, damage, and meter thresholds change gameplay; the game also supports a local leaderboard, demo mode, and an adaptive theme. The README documents these behaviors, but source excerpts are unavailable, so internal wiring is shown only where documented.

Main entry points: [`index.html`](https://github.com/lanterfanten/fable-vaders/blob/main/index.html) (Game runtime)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_play["Play"]
  node_game["Game runtime<br/>[index.html]"]
  node_controls["Controls<br/>[index.html]"]
  node_character["Character select<br/>[index.html]"]
  node_bots["Claude-bots<br/>[index.html]"]
  node_shields["Destructible shields<br/>[index.html]"]
  node_cannon["Player cannon<br/>[index.html]"]
end

subgraph group_progression["Game progression"]
  node_coin["Coins and tokens<br/>[index.html]"]
  node_limit["Five-hour limit<br/>[index.html]"]
  node_drops["Floppy drops<br/>[index.html]"]
end

subgraph group_extras["Persistence and presentation"]
  node_leaderboard["Leaderboard<br/>[index.html]"]
  node_browser[("Browser storage")]
  node_theme["Bass theme<br/>[index.html]"]
  node_demo["Demo mode<br/>[index.html]"]
end

node_player(("Player"))
node_kaplay["Kaplay"]

node_player -->|"selects"| node_character
node_player -->|"controls"| node_controls
node_controls -->|"drives"| node_game
node_character -->|"remembers choice"| node_browser
node_game -->|"runs"| node_cannon
node_cannon -->|"fires"| node_coin
node_coin -->|"fills"| node_limit
node_coin -->|"hits"| node_bots
node_bots -->|"drop on defeat"| node_drops
node_drops -->|"catch reduces"| node_limit
node_bots -->|"advance toward"| node_shields
node_game -->|"tracks top ten"| node_leaderboard
node_leaderboard -->|"saves locally"| node_browser
node_coin -->|"speeds up"| node_theme
node_game -->|"starts after idle"| node_demo
node_game -.->|"uses"| node_kaplay

click node_game "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_controls "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_character "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_bots "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_shields "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_cannon "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_coin "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_limit "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_drops "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_leaderboard "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_theme "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"
click node_demo "https://github.com/lanterfanten/fable-vaders/blob/main/index.html"

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_game,node_controls,node_character,node_bots,node_shields,node_cannon toneBlue
class node_coin,node_limit,node_drops toneAmber
class node_leaderboard,node_browser,node_theme,node_demo toneMint
class node_player,node_kaplay toneIndigo
```

## Components

### Play

- [Game runtime](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`
- [Controls](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`
- [Character select](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`
- [Claude-bots](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`
- [Destructible shields](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`
- [Player cannon](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`

### Game progression

- [Coins and tokens](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`
- [Five-hour limit](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`
- [Floppy drops](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`

### Persistence and presentation

- [Leaderboard](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`
- **Browser storage**
- [Bass theme](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`
- [Demo mode](https://github.com/lanterfanten/fable-vaders/blob/main/index.html): `index.html`

### Other components

- **Player**
- **Kaplay**

## Connections

- Player → Character select: selects
- Player → Controls: controls
- Controls → Game runtime: drives
- Character select → Browser storage: remembers choice
- Game runtime → Player cannon: runs
- Player cannon → Coins and tokens: fires
- Coins and tokens → Five-hour limit: fills
- Coins and tokens → Claude-bots: hits
- Claude-bots → Floppy drops: drop on defeat
- Floppy drops → Five-hour limit: catch reduces
- Claude-bots → Destructible shields: advance toward
- Game runtime → Leaderboard: tracks top ten
- Leaderboard → Browser storage: saves locally
- Coins and tokens → Bass theme: speeds up
- Game runtime → Demo mode: starts after idle
- Game runtime → Kaplay: uses
