# fearezmegmi/classrpg architecture

> Architecture diagram of the GitHub repository fearezmegmi/classrpg, 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/fearezmegmi/classrpg
- Repository: https://github.com/fearezmegmi/classrpg

## Overview

This repository provides the ClassRPG multiplayer game mode, intended to be run with friends or inspected as Pawn source; the README describes it as an OpenMP-compatible version of the last source the author had from around 2018–2019. The tree identifies gameplay, player-facing systems, world objects, and shared game infrastructure. Source excerpts were not available, so the graph groups these responsibilities without asserting internal call chains or undocumented feature behavior.

Main entry points: [`Script/code/game/init.pwn`](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/init.pwn) (ClassRPG mode)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_gameplay["Gameplay systems"]
  node_commands["Commands<br/>[commands.pwn]"]
  node_bonus["Bonus system"]
  node_marks["Marks system"]
  node_minigame["Minigames"]
end

subgraph group_player["Player systems"]
  node_client["Client systems<br/>[system_client.pwn]"]
  node_clothes["Clothing<br/>[system_clothes.pwn]"]
  node_weapons["Weapons<br/>[system_weapons.pwn]"]
  node_donate["Donations<br/>[system_donate.pwn]"]
end

subgraph group_world["World content"]
  node_objects["Object systems<br/>[core.pwn]"]
  node_vehicle_callbacks["Vehicle callbacks<br/>[public_vehicle.pwn]"]
end

subgraph group_runtime["Game runtime"]
  node_gamemode["ClassRPG mode<br/>[init.pwn]"]
  node_core["Core definitions<br/>[definition.pwn]"]
  node_callbacks["Game callbacks<br/>[callback.pwn]"]
  node_mysql_config["MySQL config<br/>[config_mysql.pwn]"]
end

node_players(("Players"))
node_server{{"OpenMP server"}}

node_players -->|"play on"| node_server
node_server -->|"runs"| node_gamemode

click node_gamemode "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/init.pwn"
click node_core "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/core/definition.pwn"
click node_callbacks "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/function/callback.pwn"
click node_mysql_config "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/core/config_mysql.pwn"
click node_commands "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/commands.pwn"
click node_bonus "https://github.com/fearezmegmi/classrpg/tree/master/Script/code/game/system/bonus"
click node_marks "https://github.com/fearezmegmi/classrpg/tree/master/Script/code/game/system/mark"
click node_minigame "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_minigame.inc"
click node_client "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_client.pwn"
click node_clothes "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_clothes.pwn"
click node_weapons "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_weapons.pwn"
click node_donate "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_donate.pwn"
click node_objects "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/filterscript/object/core.pwn"
click node_vehicle_callbacks "https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/function/public_vehicle.pwn"

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_commands,node_bonus,node_marks,node_minigame toneBlue
class node_client,node_clothes,node_weapons,node_donate toneAmber
class node_objects,node_vehicle_callbacks,node_server toneMint
class node_gamemode,node_core,node_callbacks,node_mysql_config toneRose
class node_players toneIndigo
```

## Components

### Gameplay systems

- [Commands](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/commands.pwn): `Script/code/game/system/commands.pwn`
- [Bonus system](https://github.com/fearezmegmi/classrpg/tree/master/Script/code/game/system/bonus): `Script/code/game/system/bonus`
- [Marks system](https://github.com/fearezmegmi/classrpg/tree/master/Script/code/game/system/mark): `Script/code/game/system/mark`
- [Minigames](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_minigame.inc): `Script/code/game/system/system_minigame.inc`

### Player systems

- [Client systems](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_client.pwn): `Script/code/game/system/system_client.pwn`
- [Clothing](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_clothes.pwn): `Script/code/game/system/system_clothes.pwn`
- [Weapons](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_weapons.pwn): `Script/code/game/system/system_weapons.pwn`
- [Donations](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/system/system_donate.pwn): `Script/code/game/system/system_donate.pwn`

### World content

- [Object systems](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/filterscript/object/core.pwn): `Script/code/filterscript/object/core.pwn`
- [Vehicle callbacks](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/function/public_vehicle.pwn): `Script/code/game/function/public_vehicle.pwn`

### Game runtime

- [ClassRPG mode](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/init.pwn): `Script/code/game/init.pwn`
- [Core definitions](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/core/definition.pwn): `Script/code/game/core/definition.pwn`
- [Game callbacks](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/function/callback.pwn): `Script/code/game/function/callback.pwn`
- [MySQL config](https://github.com/fearezmegmi/classrpg/blob/master/Script/code/game/core/config_mysql.pwn): `Script/code/game/core/config_mysql.pwn`

### Other components

- **Players**
- **OpenMP server**

## Connections

- Players → OpenMP server: play on
- OpenMP server → ClassRPG mode: runs
