# mvddmn/simplyfist architecture

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

- Interactive diagram: https://gitdiagram.com/mvddmn/simplyfist
- Repository: https://github.com/mvddmn/simplyfist

## Overview

SimplyFist is a Minecraft Forge mod whose main user workflow is close-range combat with specialized fist weapons: weapon interactions and attacks provide passives or active abilities, with custom status effects and visual/audio feedback. Forge initialization registers the items, effects, and sounds. The graph preserves the documented weapon and effect branches; some weapon mechanics are described only in the README or are not fully shown in the excerpts, so those links are documented rather than inferred as detailed call chains.

Main entry points: [`src/main/java/com/simplyfist/registry/ModItems.java`](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/registry/ModItems.java) (Item Registry), [`src/main/java/com/simplyfist/item/FistWeaponItem.java`](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/FistWeaponItem.java) (Fist Weapon Base), [`src/main/java/com/simplyfist/registry/ModEffects.java`](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/registry/ModEffects.java) (Effect Registry), [`src/main/java/com/simplyfist/item/BloodyKnucklesItem.java`](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/BloodyKnucklesItem.java) (Bloody Knuckles)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Mod Runtime"]
  node_mod["Mod Initialization<br/>[Simplyfist.java]"]
  node_itemreg["Item Registry<br/>[ModItems.java]"]
  node_effectreg["Effect Registry<br/>[ModEffects.java]"]
  node_soundreg["Sound Registry<br/>[ModSounds.java]"]
end

subgraph group_weapons["Fist Weapons"]
  node_fistbase["Fist Weapon Base"]
  node_boxing["Boxing Gloves"]
  node_bloody["Bloody Knuckles"]
  node_mishima["Mishima Gauntlets"]
  node_thunder["Thunder Spear Gauntlet"]
  node_fire["Fire Spear Gauntlet"]
  node_steraks["Sterak's Gage"]
end

subgraph group_effects["Combat Effects"]
  node_bleed["Bleeding Effect"]
  node_rising["Rising Strike Effect"]
  node_stun["Stun Effect<br/>[StunEffect.java]"]
  node_vampirism["Vampirism Effect"]
end

subgraph group_presentation["Client Presentation"]
  node_thunder_renderer["Thunder Renderer"]
  node_fire_renderer["Fire Renderer"]
end

node_player(("Minecraft Player"))
node_forge{{"Forge Runtime"}}

node_forge -->|"loads mod"| node_mod
node_mod -->|"registers items"| node_itemreg
node_mod -->|"registers effects"| node_effectreg
node_mod -->|"registers sounds"| node_soundreg
node_itemreg -->|"constructs"| node_boxing
node_itemreg -->|"constructs"| node_bloody
node_itemreg -->|"constructs"| node_mishima
node_itemreg -->|"constructs"| node_thunder
node_itemreg -->|"constructs"| node_fire
node_itemreg -->|"constructs"| node_steraks
node_effectreg -->|"registers"| node_bleed
node_effectreg -->|"registers"| node_rising
node_effectreg -->|"registers"| node_stun
node_effectreg -->|"registers"| node_vampirism
node_player -->|"uses in combat"| node_boxing
node_player -->|"uses in combat"| node_bloody
node_player -->|"uses in combat"| node_mishima
node_player -->|"uses in combat"| node_thunder
node_player -->|"uses in combat"| node_fire
node_player -->|"uses in combat"| node_steraks
node_boxing -->|"extends"| node_fistbase
node_bloody -->|"extends"| node_fistbase
node_mishima -->|"extends"| node_fistbase
node_thunder -->|"extends"| node_fistbase
node_fire -->|"extends"| node_fistbase
node_steraks -->|"extends"| node_fistbase
node_boxing -->|"applies"| node_stun
node_bloody -->|"uses"| node_vampirism
node_bloody -->|"uses"| node_bleed
node_fire -->|"applies"| node_stun
node_rising -->|"plays sound"| node_soundreg
node_thunder_renderer -->|"renders item"| node_thunder
node_fire_renderer -->|"renders item"| node_fire

click node_mod "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/Simplyfist.java"
click node_itemreg "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/registry/ModItems.java"
click node_effectreg "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/registry/ModEffects.java"
click node_soundreg "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/registry/ModSounds.java"
click node_fistbase "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/FistWeaponItem.java"
click node_boxing "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/BoxingGlovesItem.java"
click node_bloody "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/BloodyKnucklesItem.java"
click node_mishima "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/MishimaGauntletsItem.java"
click node_thunder "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/ThunderSpearGauntletItem.java"
click node_fire "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/FireSpearGauntletItem.java"
click node_steraks "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/SteraksGageItem.java"
click node_bleed "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/effect/BleedingEffect.java"
click node_rising "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/effect/RisingStrikeEffect.java"
click node_stun "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/effect/StunEffect.java"
click node_vampirism "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/effect/VampirismEffect.java"
click node_thunder_renderer "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/client/ThunderSpearGauntletRenderer.java"
click node_fire_renderer "https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/client/FireSpearGauntletRenderer.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_mod,node_itemreg,node_effectreg,node_soundreg toneBlue
class node_fistbase,node_boxing,node_bloody,node_mishima,node_thunder,node_fire,node_steraks toneAmber
class node_bleed,node_rising,node_stun,node_vampirism toneMint
class node_thunder_renderer,node_fire_renderer toneRose
class node_player,node_forge toneIndigo
```

## Components

### Mod Runtime

- [Mod Initialization](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/Simplyfist.java): `src/main/java/com/simplyfist/Simplyfist.java`
- [Item Registry](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/registry/ModItems.java): `src/main/java/com/simplyfist/registry/ModItems.java`
- [Effect Registry](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/registry/ModEffects.java): `src/main/java/com/simplyfist/registry/ModEffects.java`
- [Sound Registry](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/registry/ModSounds.java): `src/main/java/com/simplyfist/registry/ModSounds.java`

### Fist Weapons

- [Fist Weapon Base](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/FistWeaponItem.java): `src/main/java/com/simplyfist/item/FistWeaponItem.java`
- [Boxing Gloves](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/BoxingGlovesItem.java): `src/main/java/com/simplyfist/item/BoxingGlovesItem.java`
- [Bloody Knuckles](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/BloodyKnucklesItem.java): `src/main/java/com/simplyfist/item/BloodyKnucklesItem.java`
- [Mishima Gauntlets](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/MishimaGauntletsItem.java): `src/main/java/com/simplyfist/item/MishimaGauntletsItem.java`
- [Thunder Spear Gauntlet](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/ThunderSpearGauntletItem.java): `src/main/java/com/simplyfist/item/ThunderSpearGauntletItem.java`
- [Fire Spear Gauntlet](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/FireSpearGauntletItem.java): `src/main/java/com/simplyfist/item/FireSpearGauntletItem.java`
- [Sterak's Gage](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/item/SteraksGageItem.java): `src/main/java/com/simplyfist/item/SteraksGageItem.java`

### Combat Effects

- [Bleeding Effect](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/effect/BleedingEffect.java): `src/main/java/com/simplyfist/effect/BleedingEffect.java`
- [Rising Strike Effect](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/effect/RisingStrikeEffect.java): `src/main/java/com/simplyfist/effect/RisingStrikeEffect.java`
- [Stun Effect](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/effect/StunEffect.java): `src/main/java/com/simplyfist/effect/StunEffect.java`
- [Vampirism Effect](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/effect/VampirismEffect.java): `src/main/java/com/simplyfist/effect/VampirismEffect.java`

### Client Presentation

- [Thunder Renderer](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/client/ThunderSpearGauntletRenderer.java): `src/main/java/com/simplyfist/client/ThunderSpearGauntletRenderer.java`
- [Fire Renderer](https://github.com/mvddmn/simplyfist/blob/master/src/main/java/com/simplyfist/client/FireSpearGauntletRenderer.java): `src/main/java/com/simplyfist/client/FireSpearGauntletRenderer.java`

### Other components

- **Minecraft Player**
- **Forge Runtime**

## Connections

- Forge Runtime → Mod Initialization: loads mod (evidence: `src/main/java/com/simplyfist/Simplyfist.java`)
- Mod Initialization → Item Registry: registers items (evidence: `src/main/java/com/simplyfist/Simplyfist.java`)
- Mod Initialization → Effect Registry: registers effects (evidence: `src/main/java/com/simplyfist/Simplyfist.java`)
- Mod Initialization → Sound Registry: registers sounds (evidence: `src/main/java/com/simplyfist/Simplyfist.java`)
- Item Registry → Boxing Gloves: constructs (evidence: `src/main/java/com/simplyfist/registry/ModItems.java`)
- Item Registry → Bloody Knuckles: constructs (evidence: `src/main/java/com/simplyfist/registry/ModItems.java`)
- Item Registry → Mishima Gauntlets: constructs (evidence: `src/main/java/com/simplyfist/registry/ModItems.java`)
- Item Registry → Thunder Spear Gauntlet: constructs (evidence: `src/main/java/com/simplyfist/registry/ModItems.java`)
- Item Registry → Fire Spear Gauntlet: constructs (evidence: `src/main/java/com/simplyfist/registry/ModItems.java`)
- Item Registry → Sterak's Gage: constructs (evidence: `src/main/java/com/simplyfist/registry/ModItems.java`)
- Effect Registry → Bleeding Effect: registers (evidence: `src/main/java/com/simplyfist/registry/ModEffects.java`)
- Effect Registry → Rising Strike Effect: registers (evidence: `src/main/java/com/simplyfist/registry/ModEffects.java`)
- Effect Registry → Stun Effect: registers (evidence: `src/main/java/com/simplyfist/registry/ModEffects.java`)
- Effect Registry → Vampirism Effect: registers (evidence: `src/main/java/com/simplyfist/registry/ModEffects.java`)
- Minecraft Player → Boxing Gloves: uses in combat (evidence: `README.md`)
- Minecraft Player → Bloody Knuckles: uses in combat (evidence: `README.md`)
- Minecraft Player → Mishima Gauntlets: uses in combat (evidence: `README.md`)
- Minecraft Player → Thunder Spear Gauntlet: uses in combat (evidence: `README.md`)
- Minecraft Player → Fire Spear Gauntlet: uses in combat (evidence: `README.md`)
- Minecraft Player → Sterak's Gage: uses in combat (evidence: `README.md`)
- Boxing Gloves → Fist Weapon Base: extends (evidence: `src/main/java/com/simplyfist/item/BoxingGlovesItem.java`)
- Bloody Knuckles → Fist Weapon Base: extends (evidence: `src/main/java/com/simplyfist/item/BloodyKnucklesItem.java`)
- Mishima Gauntlets → Fist Weapon Base: extends (evidence: `src/main/java/com/simplyfist/item/MishimaGauntletsItem.java`)
- Thunder Spear Gauntlet → Fist Weapon Base: extends (evidence: `src/main/java/com/simplyfist/item/ThunderSpearGauntletItem.java`)
- Fire Spear Gauntlet → Fist Weapon Base: extends (evidence: `src/main/java/com/simplyfist/item/FireSpearGauntletItem.java`)
- Sterak's Gage → Fist Weapon Base: extends (evidence: `src/main/java/com/simplyfist/item/SteraksGageItem.java`)
- Boxing Gloves → Stun Effect: applies (evidence: `src/main/java/com/simplyfist/item/BoxingGlovesItem.java`)
- Bloody Knuckles → Vampirism Effect: uses (evidence: `src/main/java/com/simplyfist/item/BloodyKnucklesItem.java`)
- Bloody Knuckles → Bleeding Effect: uses (evidence: `src/main/java/com/simplyfist/item/BloodyKnucklesItem.java`)
- Fire Spear Gauntlet → Stun Effect: applies (evidence: `src/main/java/com/simplyfist/item/FireSpearGauntletItem.java`)
- Rising Strike Effect → Sound Registry: plays sound (evidence: `src/main/java/com/simplyfist/effect/RisingStrikeEffect.java`)
- Thunder Renderer → Thunder Spear Gauntlet: renders item (evidence: `src/main/java/com/simplyfist/client/ThunderSpearGauntletRenderer.java`)
- Fire Renderer → Fire Spear Gauntlet: renders item (evidence: `src/main/java/com/simplyfist/client/FireSpearGauntletRenderer.java`)
