# stal111/forbidden-arcanus architecture

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

- Interactive diagram: https://gitdiagram.com/stal111/forbidden-arcanus
- Repository: https://github.com/stal111/forbidden-arcanus

## Overview

Forbidden Arcanus is a Minecraft magic-and-fantasy mod. Its central progression loop is using the Hephaestus Forge to validate and perform rituals, consume essence, and apply ritual results; players also use the Clibano for smelting and interact with research, wands, equipment enhancements, and exploration content. The graph combines documented capabilities with sampled ritual and essence implementations. Several feature paths are enclosing directories because their individual runtime wiring was not sampled.

Main entry points: [`neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/RitualManager.java`](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/RitualManager.java) (Ritual Manager), [`neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block`](https://github.com/stal111/forbidden-arcanus/tree/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block) (Forge Structure), [`neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/EssenceStorageBlockEntity.java`](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/EssenceStorageBlockEntity.java) (Storage Blocks), [`neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/storage/EssenceStorage.java`](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/storage/EssenceStorage.java) (Essence Storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_forge["Forge Rituals"]
  node_forge_blocks["Forge Structure"]
  node_forge_state["Forge State"]
  node_ritual_manager["Ritual Manager<br/>[RitualManager.java]"]
  node_ritual_results["Ritual Results"]
  node_magic_circle["Magic Circles"]
end

subgraph group_essence["Essence System"]
  node_essence_input["Essence Inputs"]
  node_essence_storage[("Essence Storage")]
  node_multi_storage["Multi Essence"]
  node_storage_blocks["Storage Blocks"]
end

subgraph group_craft["Crafting Progression"]
  node_clibano["Clibano Smelting"]
  node_material_storage[("Molten Materials")]
  node_research["Research"]
  node_equipment["Equipment Upgrades"]
  node_wand["Wand Crafting"]
end

subgraph group_client["Player Interface"]
  node_client_ui["Screens And HUD"]
  node_storage_renderer["Storage Renderer"]
  node_storage_label["Storage Label"]
end

node_player(("Player"))
node_world["Minecraft World"]

node_player -->|"uses"| node_forge_blocks
node_forge_blocks -->|"tracks inputs"| node_forge_state
node_forge_state -->|"updates validation"| node_ritual_manager
node_ritual_manager -->|"creates circle"| node_magic_circle
node_ritual_manager -->|"removes essence"| node_essence_storage
node_ritual_manager -->|"finishes ritual"| node_ritual_results
node_player -->|"supplies essence"| node_essence_input
node_essence_input -->|"reads and drains"| node_essence_storage
node_storage_blocks -->|"stores essence"| node_essence_storage
node_storage_renderer -->|"reads state"| node_storage_blocks
node_storage_label -->|"reads state"| node_storage_blocks
node_player -->|"smelts materials"| node_clibano
node_clibano -->|"stores materials"| node_material_storage
node_player -->|"progresses research"| node_research
node_player -->|"upgrades gear"| node_equipment
node_player -->|"crafts wands"| node_wand
node_player -->|"uses screens"| node_client_ui
node_client_ui -->|"views research"| node_research
node_world -->|"hosts blocks"| node_forge_blocks

click node_forge_blocks "https://github.com/stal111/forbidden-arcanus/tree/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block"
click node_forge_state "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/HephaestusForgeState.java"
click node_ritual_manager "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/RitualManager.java"
click node_ritual_results "https://github.com/stal111/forbidden-arcanus/tree/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/result"
click node_magic_circle "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/circle/MagicCircleController.java"
click node_essence_input "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/input/EssenceStorageComponentInput.java"
click node_essence_storage "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/storage/EssenceStorage.java"
click node_multi_storage "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/storage/MultiEssenceStorage.java"
click node_storage_blocks "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/EssenceStorageBlockEntity.java"
click node_clibano "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/clibano/ClibanoMainBlockEntity.java"
click node_material_storage "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/clibano/material/MaterialStorage.java"
click node_research "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/desk/ResearchDeskBlockEntity.java"
click node_equipment "https://github.com/stal111/forbidden-arcanus/tree/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/item/enhancer"
click node_wand "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/desk/WandDeskBlockEntity.java"
click node_client_ui "https://github.com/stal111/forbidden-arcanus/tree/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/client/gui"
click node_storage_renderer "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/client/renderer/block/EssenceStorageRenderer.java"
click node_storage_label "https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/client/gui/label/EssenceStorageFlyingLabel.java"

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_forge_blocks,node_forge_state,node_ritual_manager,node_ritual_results,node_magic_circle toneBlue
class node_essence_input,node_essence_storage,node_multi_storage,node_storage_blocks toneAmber
class node_clibano,node_material_storage,node_research,node_equipment,node_wand toneMint
class node_client_ui,node_storage_renderer,node_storage_label toneRose
class node_player,node_world toneIndigo
```

## Components

### Forge Rituals

- [Forge Structure](https://github.com/stal111/forbidden-arcanus/tree/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block`
- [Forge State](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/HephaestusForgeState.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/HephaestusForgeState.java`
- [Ritual Manager](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/RitualManager.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/RitualManager.java`
- [Ritual Results](https://github.com/stal111/forbidden-arcanus/tree/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/result): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/ritual/result`
- [Magic Circles](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/circle/MagicCircleController.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/forge/circle/MagicCircleController.java`

### Essence System

- [Essence Inputs](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/input/EssenceStorageComponentInput.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/input/EssenceStorageComponentInput.java`
- [Essence Storage](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/storage/EssenceStorage.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/storage/EssenceStorage.java`
- [Multi Essence](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/storage/MultiEssenceStorage.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/essence/storage/MultiEssenceStorage.java`
- [Storage Blocks](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/EssenceStorageBlockEntity.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/EssenceStorageBlockEntity.java`

### Crafting Progression

- [Clibano Smelting](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/clibano/ClibanoMainBlockEntity.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/clibano/ClibanoMainBlockEntity.java`
- [Molten Materials](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/clibano/material/MaterialStorage.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/clibano/material/MaterialStorage.java`
- [Research](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/desk/ResearchDeskBlockEntity.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/desk/ResearchDeskBlockEntity.java`
- [Equipment Upgrades](https://github.com/stal111/forbidden-arcanus/tree/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/item/enhancer): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/item/enhancer`
- [Wand Crafting](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/desk/WandDeskBlockEntity.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/common/block/entity/desk/WandDeskBlockEntity.java`

### Player Interface

- [Screens And HUD](https://github.com/stal111/forbidden-arcanus/tree/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/client/gui): `neoforge/src/main/java/com/stal111/forbidden_arcanus/client/gui`
- [Storage Renderer](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/client/renderer/block/EssenceStorageRenderer.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/client/renderer/block/EssenceStorageRenderer.java`
- [Storage Label](https://github.com/stal111/forbidden-arcanus/blob/26.1/neoforge/src/main/java/com/stal111/forbidden_arcanus/client/gui/label/EssenceStorageFlyingLabel.java): `neoforge/src/main/java/com/stal111/forbidden_arcanus/client/gui/label/EssenceStorageFlyingLabel.java`

### Other components

- **Player**
- **Minecraft World**

## Connections

- Player → Forge Structure: uses
- Forge Structure → Forge State: tracks inputs
- Forge State → Ritual Manager: updates validation
- Ritual Manager → Magic Circles: creates circle
- Ritual Manager → Essence Storage: removes essence
- Ritual Manager → Ritual Results: finishes ritual
- Player → Essence Inputs: supplies essence
- Essence Inputs → Essence Storage: reads and drains
- Storage Blocks → Essence Storage: stores essence
- Storage Renderer → Storage Blocks: reads state
- Storage Label → Storage Blocks: reads state
- Player → Clibano Smelting: smelts materials
- Clibano Smelting → Molten Materials: stores materials
- Player → Research: progresses research
- Player → Equipment Upgrades: upgrades gear
- Player → Wand Crafting: crafts wands
- Player → Screens And HUD: uses screens
- Screens And HUD → Research: views research
- Minecraft World → Forge Structure: hosts blocks
