# rhyslos/rhylib-gmod-addon-suite architecture

> Architecture diagram of the GitHub repository rhyslos/rhylib-gmod-addon-suite, 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/rhyslos/rhylib-gmod-addon-suite
- Repository: https://github.com/rhyslos/rhylib-gmod-addon-suite

## Overview

Rhylib is a modular Garry’s Mod roleplay addon suite for DarkRP/StarWarsRP. Its documented operating model is a required core addon providing shared services, with optional gameplay addons that hosts can include or omit. The supplied tree includes inventory, jetpack, third-person, and weapon-related addons; README capabilities such as HUD, stamina, and medic are not present in this tree. No source excerpts were provided, so relationships below rely on README statements rather than inspected calls.

Main entry points: [`rhylib_core/lua/autorun/_rhylib_core.lua`](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/autorun/_rhylib_core.lua) (Core loader), [`rhylib_inventory/lua/rhylib/inventory/sv_10_inventory.lua`](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/rhylib/inventory/sv_10_inventory.lua) (Inventory system), [`rhylib_jetpack/lua/rhylib/jetpack/sh_10_move.lua`](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_jetpack/lua/rhylib/jetpack/sh_10_move.lua) (Jetpack behavior), [`rhylib_thirdperson/lua/rhylib/thirdperson/cl_10_camera.lua`](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_thirdperson/lua/rhylib/thirdperson/cl_10_camera.lua) (Third-person camera)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Shared core"]
  node_loader["Core loader<br/>[_rhylib_core.lua]"]
  node_config["Configuration<br/>[sh_00_config.lua]"]
  node_hooks["Hook bus<br/>[sh_20_hooks.lua]"]
  node_network["Networking<br/>[sh_30_net.lua]"]
  node_permissions["Permissions<br/>[sh_40_perms.lua]"]
  node_data[("Data storage<br/>[sv_10_data.lua]")]
  node_profiler["Profiler<br/>[sh_10_profiler.lua]"]
  node_ui["UI kit<br/>[cl_10_ui.lua]"]
end

subgraph group_inventory["Inventory"]
  node_inventory["Inventory system"]
  node_inventory_ui["Inventory interface"]
  node_inventory_panel["Inventory panel<br/>[cl_20_panel.lua]"]
  node_items["Item definitions<br/>[sh_00_items.lua]"]
  node_world_item["World item"]
  node_backpack["Backpack entity"]
end

subgraph group_movement["Movement and view"]
  node_jetpack["Jetpack behavior<br/>[sh_10_move.lua]"]
  node_jetpack_equip["Jetpack equipment<br/>[sv_10_equip.lua]"]
  node_jetpack_effects["Jetpack effects<br/>[cl_10_effects.lua]"]
  node_thirdperson["Third-person camera<br/>[cl_10_camera.lua]"]
end

subgraph group_combat["Weapons and equipment"]
  node_weapons["Weapon base<br/>[rhylib_base.lua]"]
  node_weapon_config["Weapon configuration<br/>[sh_00_config.lua]"]
  node_spread["Spread behavior<br/>[sh_10_spread.lua]"]
  node_bolts["Bolt behavior<br/>[sv_10_bolts.lua]"]
  node_reload["Reload interface<br/>[cl_30_reload.lua]"]
  node_crosshair["Crosshair"]
  node_republic_weapons["Republic weapons<br/>[rhylib_dc15a.lua]"]
  node_jetpack_item["Jetpack item"]
end

node_platform["DarkRP / StarWarsRP"]

node_platform -->|"runs atop"| node_loader
node_loader -->|"supports shared code"| node_inventory
node_loader -->|"supports shared code"| node_jetpack
node_loader -->|"supports shared code"| node_thirdperson
node_loader -->|"supports shared code"| node_weapons

click node_loader "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/autorun/_rhylib_core.lua"
click node_config "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_00_config.lua"
click node_hooks "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_20_hooks.lua"
click node_network "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_30_net.lua"
click node_permissions "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_40_perms.lua"
click node_data "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sv_10_data.lua"
click node_profiler "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_10_profiler.lua"
click node_ui "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/cl_10_ui.lua"
click node_inventory "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/rhylib/inventory/sv_10_inventory.lua"
click node_inventory_ui "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/rhylib/inventory/cl_10_inventory.lua"
click node_inventory_panel "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/rhylib/inventory/cl_20_panel.lua"
click node_items "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/rhylib/inventory/sh_00_items.lua"
click node_world_item "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/entities/rhylib_world_item.lua"
click node_backpack "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/entities/rhylib_item_backpack.lua"
click node_jetpack "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_jetpack/lua/rhylib/jetpack/sh_10_move.lua"
click node_jetpack_equip "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_jetpack/lua/rhylib/jetpack/sv_10_equip.lua"
click node_jetpack_effects "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_jetpack/lua/rhylib/jetpack/cl_10_effects.lua"
click node_thirdperson "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_thirdperson/lua/rhylib/thirdperson/cl_10_camera.lua"
click node_weapons "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/weapons/rhylib_base.lua"
click node_weapon_config "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/sh_00_config.lua"
click node_spread "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/sh_10_spread.lua"
click node_bolts "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/sv_10_bolts.lua"
click node_reload "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/cl_30_reload.lua"
click node_crosshair "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/cl_20_crosshair.lua"
click node_republic_weapons "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_republic/lua/weapons/rhylib_dc15a.lua"
click node_jetpack_item "https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_jetpack/lua/entities/rhylib_item_jetpack.lua"

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_loader,node_config,node_hooks,node_network,node_permissions,node_data,node_profiler,node_ui toneBlue
class node_inventory,node_inventory_ui,node_inventory_panel,node_items,node_world_item,node_backpack toneAmber
class node_jetpack,node_jetpack_equip,node_jetpack_effects,node_thirdperson toneMint
class node_weapons,node_weapon_config,node_spread,node_bolts,node_reload,node_crosshair,node_republic_weapons,node_jetpack_item toneRose
class node_platform toneIndigo
```

## Components

### Shared core

- [Core loader](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/autorun/_rhylib_core.lua): `rhylib_core/lua/autorun/_rhylib_core.lua`
- [Configuration](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_00_config.lua): `rhylib_core/lua/rhylib/core/sh_00_config.lua`
- [Hook bus](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_20_hooks.lua): `rhylib_core/lua/rhylib/core/sh_20_hooks.lua`
- [Networking](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_30_net.lua): `rhylib_core/lua/rhylib/core/sh_30_net.lua`
- [Permissions](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_40_perms.lua): `rhylib_core/lua/rhylib/core/sh_40_perms.lua`
- [Data storage](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sv_10_data.lua): `rhylib_core/lua/rhylib/core/sv_10_data.lua`
- [Profiler](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/sh_10_profiler.lua): `rhylib_core/lua/rhylib/core/sh_10_profiler.lua`
- [UI kit](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_core/lua/rhylib/core/cl_10_ui.lua): `rhylib_core/lua/rhylib/core/cl_10_ui.lua`

### Inventory

- [Inventory system](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/rhylib/inventory/sv_10_inventory.lua): `rhylib_inventory/lua/rhylib/inventory/sv_10_inventory.lua`
- [Inventory interface](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/rhylib/inventory/cl_10_inventory.lua): `rhylib_inventory/lua/rhylib/inventory/cl_10_inventory.lua`
- [Inventory panel](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/rhylib/inventory/cl_20_panel.lua): `rhylib_inventory/lua/rhylib/inventory/cl_20_panel.lua`
- [Item definitions](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/rhylib/inventory/sh_00_items.lua): `rhylib_inventory/lua/rhylib/inventory/sh_00_items.lua`
- [World item](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/entities/rhylib_world_item.lua): `rhylib_inventory/lua/entities/rhylib_world_item.lua`
- [Backpack entity](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_inventory/lua/entities/rhylib_item_backpack.lua): `rhylib_inventory/lua/entities/rhylib_item_backpack.lua`

### Movement and view

- [Jetpack behavior](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_jetpack/lua/rhylib/jetpack/sh_10_move.lua): `rhylib_jetpack/lua/rhylib/jetpack/sh_10_move.lua`
- [Jetpack equipment](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_jetpack/lua/rhylib/jetpack/sv_10_equip.lua): `rhylib_jetpack/lua/rhylib/jetpack/sv_10_equip.lua`
- [Jetpack effects](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_jetpack/lua/rhylib/jetpack/cl_10_effects.lua): `rhylib_jetpack/lua/rhylib/jetpack/cl_10_effects.lua`
- [Third-person camera](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_thirdperson/lua/rhylib/thirdperson/cl_10_camera.lua): `rhylib_thirdperson/lua/rhylib/thirdperson/cl_10_camera.lua`

### Weapons and equipment

- [Weapon base](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/weapons/rhylib_base.lua): `rhylib_weapons/lua/weapons/rhylib_base.lua`
- [Weapon configuration](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/sh_00_config.lua): `rhylib_weapons/lua/rhylib/weapons/sh_00_config.lua`
- [Spread behavior](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/sh_10_spread.lua): `rhylib_weapons/lua/rhylib/weapons/sh_10_spread.lua`
- [Bolt behavior](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/sv_10_bolts.lua): `rhylib_weapons/lua/rhylib/weapons/sv_10_bolts.lua`
- [Reload interface](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/cl_30_reload.lua): `rhylib_weapons/lua/rhylib/weapons/cl_30_reload.lua`
- [Crosshair](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_weapons/lua/rhylib/weapons/cl_20_crosshair.lua): `rhylib_weapons/lua/rhylib/weapons/cl_20_crosshair.lua`
- [Republic weapons](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_republic/lua/weapons/rhylib_dc15a.lua): `rhylib_republic/lua/weapons/rhylib_dc15a.lua`
- [Jetpack item](https://github.com/rhyslos/rhylib-gmod-addon-suite/blob/main/rhylib_jetpack/lua/entities/rhylib_item_jetpack.lua): `rhylib_jetpack/lua/entities/rhylib_item_jetpack.lua`

### Other components

- **DarkRP / StarWarsRP**

## Connections

- DarkRP / StarWarsRP → Core loader: runs atop (evidence: `README.md`)
- Core loader → Inventory system: supports shared code (evidence: `README.md`)
- Core loader → Jetpack behavior: supports shared code (evidence: `README.md`)
- Core loader → Third-person camera: supports shared code (evidence: `README.md`)
- Core loader → Weapon base: supports shared code (evidence: `README.md`)
