# rainsillwood/maintenancemorihelper architecture

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

- Interactive diagram: https://gitdiagram.com/rainsillwood/maintenancemorihelper
- Repository: https://github.com/rainsillwood/maintenancemorihelper

## Overview

Maintenance Mori Helper is a Tampermonkey userscript that augments the Maintenance Mori game UI. A player opens a supported game page; the script enhances selected screens, loads game or server data where needed, and presents richer information or editable GvG maps. The repository also contains several historical script variants, sample request/response data, master tables, and images. The README documents the data converter and several enhancements, but the excerpts do not show all their implementation details; those links are documented rather than inferred from imports.

Main entry points: [`MaintenanceMoriHelper.user.js`](https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js) (Current userscript), [`MasterBook`](https://github.com/rainsillwood/maintenancemorihelper/tree/main/MasterBook) (Master tables), [`assets`](https://github.com/rainsillwood/maintenancemorihelper/tree/main/assets) (Game assets), [`FormData`](https://github.com/rainsillwood/maintenancemorihelper/tree/main/FormData) (API examples)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Userscript runtime"]
  node_current["Current userscript"]
end

subgraph group_features["Game enhancements"]
  node_arena["Arena and teams"]
  node_temple["Temple rewards"]
  node_gvg["GvG mapper"]
  node_converter["Data converter"]
  node_clearlist["Clear records"]
end

subgraph group_data["Game data"]
  node_master[("Master tables")]
  node_assets[("Game assets")]
  node_apiforms["API examples"]
end

subgraph group_history["Script variants"]
  node_older["Older helper"]
  node_typo["Older filename variant"]
  node_guild["Guild helper variant"]
end

node_player(("Player"))
node_game(("Maintenance Mori"))

node_player -->|"uses"| node_current
node_current -->|"augments"| node_game
node_player -->|"views"| node_arena
node_player -->|"views"| node_temple
node_player -->|"configures"| node_gvg
node_player -->|"converts"| node_converter
node_player -->|"looks up"| node_clearlist
node_current -.->|"routes to"| node_arena
node_current -.->|"routes to"| node_temple
node_current -.->|"renders"| node_gvg
node_arena -.->|"reads"| node_master
node_temple -.->|"reads"| node_master
node_gvg -.->|"uses data shaped by"| node_apiforms
node_current -.->|"loads tables"| node_master
node_current -.->|"uses"| node_assets

click node_current "https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js"
click node_arena "https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js"
click node_temple "https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js"
click node_gvg "https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js"
click node_converter "https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js"
click node_clearlist "https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js"
click node_master "https://github.com/rainsillwood/maintenancemorihelper/tree/main/MasterBook"
click node_assets "https://github.com/rainsillwood/maintenancemorihelper/tree/main/assets"
click node_apiforms "https://github.com/rainsillwood/maintenancemorihelper/tree/main/FormData"
click node_older "https://github.com/rainsillwood/maintenancemorihelper/blob/main/extend/MaintenanceMoriHelper.user.js"
click node_typo "https://github.com/rainsillwood/maintenancemorihelper/blob/main/extend/MaintanceMoriHelper.user.js"
click node_guild "https://github.com/rainsillwood/maintenancemorihelper/blob/main/extend/GuildHelper.user.js.js"

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_current toneBlue
class node_arena,node_temple,node_gvg,node_converter,node_clearlist toneAmber
class node_master,node_assets,node_apiforms toneMint
class node_older,node_typo,node_guild toneRose
class node_player,node_game toneIndigo
```

## Components

### Userscript runtime

- [Current userscript](https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js): `MaintenanceMoriHelper.user.js`

### Game enhancements

- [Arena and teams](https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js): `MaintenanceMoriHelper.user.js`
- [Temple rewards](https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js): `MaintenanceMoriHelper.user.js`
- [GvG mapper](https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js): `MaintenanceMoriHelper.user.js`
- [Data converter](https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js): `MaintenanceMoriHelper.user.js`
- [Clear records](https://github.com/rainsillwood/maintenancemorihelper/blob/main/MaintenanceMoriHelper.user.js): `MaintenanceMoriHelper.user.js`

### Game data

- [Master tables](https://github.com/rainsillwood/maintenancemorihelper/tree/main/MasterBook): `MasterBook`
- [Game assets](https://github.com/rainsillwood/maintenancemorihelper/tree/main/assets): `assets`
- [API examples](https://github.com/rainsillwood/maintenancemorihelper/tree/main/FormData): `FormData`

### Script variants

- [Older helper](https://github.com/rainsillwood/maintenancemorihelper/blob/main/extend/MaintenanceMoriHelper.user.js): `extend/MaintenanceMoriHelper.user.js`
- [Older filename variant](https://github.com/rainsillwood/maintenancemorihelper/blob/main/extend/MaintanceMoriHelper.user.js): `extend/MaintanceMoriHelper.user.js`
- [Guild helper variant](https://github.com/rainsillwood/maintenancemorihelper/blob/main/extend/GuildHelper.user.js.js): `extend/GuildHelper.user.js.js`

### Other components

- **Player**
- **Maintenance Mori**

## Connections

- Player → Current userscript: uses (evidence: `README.md`)
- Current userscript → Maintenance Mori: augments (evidence: `README.md`)
- Player → Arena and teams: views (evidence: `README.md`)
- Player → Temple rewards: views (evidence: `README.md`)
- Player → GvG mapper: configures (evidence: `README.md`)
- Player → Data converter: converts (evidence: `README.md`)
- Player → Clear records: looks up (evidence: `MaintenanceMoriHelper.user.js`)
- Current userscript → Arena and teams: routes to (evidence: `MaintenanceMoriHelper.user.js`)
- Current userscript → Temple rewards: routes to (evidence: `MaintenanceMoriHelper.user.js`)
- Current userscript → GvG mapper: renders (evidence: `MaintenanceMoriHelper.user.js`)
- Arena and teams → Master tables: reads
- Temple rewards → Master tables: reads
- GvG mapper → API examples: uses data shaped by
- Current userscript → Master tables: loads tables
- Current userscript → Game assets: uses
