# sleys-g/extendeddatapacks architecture

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

- Interactive diagram: https://gitdiagram.com/sleys-g/extendeddatapacks
- Repository: https://github.com/sleys-g/extendeddatapacks

## Overview

Extended Datapacks is a Forge/NeoForge extension for Epic Fight that lets creators add data-driven combat mechanics, skills, animations, payloads, and visual effects. The broad workflow is authoring datapack configuration that is registered and interpreted as events or controlable events, which can affect gameplay and trigger animation effects. The graph preserves those documented capability branches and the sampled event-dispatch and damage-control layers. Several subsystem connections are documented only at product level or have unsampled implementations, so those links are dashed and marked unverified.

Main entry points: [`extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/list/combat/LivingIncomingTakeDamageEventController.java`](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/list/combat/LivingIncomingTakeDamageEventController.java) (Damage controller), [`extended_datapacks-forge/src/main/java/sleys/efedp/forge/ExtendedDatapacks.java`](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/ExtendedDatapacks.java) (Forge mod), [`extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/ExtendedDatapacks.java`](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/ExtendedDatapacks.java) (NeoForge mod), [`extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/EventInvocation.java`](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/EventInvocation.java) (Event invocation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Mod platforms"]
  node_forge["Forge mod"]
  node_neoforge["NeoForge mod"]
  node_bootstrap["Registration bootstrap<br/>[Bootstrap.java]"]
end

subgraph group_events["Event system"]
  node_eventinv["Event invocation"]
  node_eventregistry["Event type registry"]
  node_eventtypes["Animation event types"]
  node_eventcatalog["Animation event effects"]
end

subgraph group_payload["Data payloads"]
  node_arithmetic["Arithmetic operations"]
  node_dynamicdata["Dynamic data operations"]
  node_datapackets["Data packets"]
end

subgraph group_gameplay["Combat and visuals"]
  node_controls["Controlable events"]
  node_damage["Damage controller"]
  node_controlparams["Control parameters"]
  node_skills["Skills and abilities"]
  node_visuals["Visual effects"]
  node_animations["Animation registry"]
end

node_creator(("Datapack creator"))
node_epicfight(("Epic Fight"))

node_creator -.->|"configures"| node_forge
node_creator -.->|"configures"| node_neoforge
node_forge -->|"starts"| node_bootstrap
node_neoforge -->|"starts"| node_bootstrap
node_eventinv -->|"resolves types"| node_eventregistry
node_eventinv -.->|"dispatches via"| node_eventtypes
node_eventtypes -.->|"selects effects"| node_eventcatalog
node_controls -.->|"includes controllers"| node_damage
node_damage -->|"implements"| node_controlparams
node_damage -->|"applies instructions"| node_arithmetic
node_damage -->|"applies dynamic data"| node_dynamicdata
node_creator -.->|"defines payloads"| node_datapackets
node_datapackets -.->|"supports skills"| node_skills
node_creator -.->|"configures animations"| node_animations
node_animations -.->|"invokes events"| node_eventinv
node_creator -.->|"defines effects"| node_visuals
node_forge -.->|"extends"| node_epicfight
node_neoforge -.->|"extends"| node_epicfight

click node_forge "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/ExtendedDatapacks.java"
click node_neoforge "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/ExtendedDatapacks.java"
click node_bootstrap "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/bootstrap/Bootstrap.java"
click node_eventinv "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/EventInvocation.java"
click node_eventregistry "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/registry/EventTypeRegistry.java"
click node_eventtypes "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/types/GameplayEvents.java"
click node_eventcatalog "https://github.com/sleys-g/extendeddatapacks/tree/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/list"
click node_controls "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/control/controlable/ControlableEvents.java"
click node_damage "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/list/combat/LivingIncomingTakeDamageEventController.java"
click node_controlparams "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/IControlableEventParams.java"
click node_arithmetic "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/ArithmeticInstructionPair.java"
click node_dynamicdata "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/ArithmeticInstructionDataPair.java"
click node_datapackets "https://github.com/sleys-g/extendeddatapacks/tree/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/datapackets"
click node_skills "https://github.com/sleys-g/extendeddatapacks/tree/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/system/skills"
click node_visuals "https://github.com/sleys-g/extendeddatapacks/tree/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/list/visual"
click node_animations "https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/api/registry/RegistryAnimationsTrackers.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,node_neoforge,node_bootstrap toneBlue
class node_eventinv,node_eventregistry,node_eventtypes,node_eventcatalog toneAmber
class node_arithmetic,node_dynamicdata,node_datapackets toneMint
class node_controls,node_damage,node_controlparams,node_skills,node_visuals,node_animations toneRose
class node_creator,node_epicfight toneIndigo
```

## Components

### Mod platforms

- [Forge mod](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/ExtendedDatapacks.java): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/ExtendedDatapacks.java`
- [NeoForge mod](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/ExtendedDatapacks.java): `extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/ExtendedDatapacks.java`
- [Registration bootstrap](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/bootstrap/Bootstrap.java): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/bootstrap/Bootstrap.java`

### Event system

- [Event invocation](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/EventInvocation.java): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/EventInvocation.java`
- [Event type registry](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/registry/EventTypeRegistry.java): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/registry/EventTypeRegistry.java`
- [Animation event types](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/types/GameplayEvents.java): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/types/GameplayEvents.java`
- [Animation event effects](https://github.com/sleys-g/extendeddatapacks/tree/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/list): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/list`

### Data payloads

- [Arithmetic operations](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/ArithmeticInstructionPair.java): `extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/ArithmeticInstructionPair.java`
- [Dynamic data operations](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/ArithmeticInstructionDataPair.java): `extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/ArithmeticInstructionDataPair.java`
- [Data packets](https://github.com/sleys-g/extendeddatapacks/tree/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/datapackets): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/datapackets`

### Combat and visuals

- [Controlable events](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/control/controlable/ControlableEvents.java): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/control/controlable/ControlableEvents.java`
- [Damage controller](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/list/combat/LivingIncomingTakeDamageEventController.java): `extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/list/combat/LivingIncomingTakeDamageEventController.java`
- [Control parameters](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/IControlableEventParams.java): `extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/IControlableEventParams.java`
- [Skills and abilities](https://github.com/sleys-g/extendeddatapacks/tree/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/system/skills): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/system/skills`
- [Visual effects](https://github.com/sleys-g/extendeddatapacks/tree/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/list/visual): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/list/visual`
- [Animation registry](https://github.com/sleys-g/extendeddatapacks/blob/main/extended_datapacks-forge/src/main/java/sleys/efedp/forge/api/registry/RegistryAnimationsTrackers.java): `extended_datapacks-forge/src/main/java/sleys/efedp/forge/api/registry/RegistryAnimationsTrackers.java`

### Other components

- **Datapack creator**
- **Epic Fight**

## Connections

- Datapack creator → Forge mod: configures
- Datapack creator → NeoForge mod: configures
- Forge mod → Registration bootstrap: starts (evidence: `extended_datapacks-forge/src/main/java/sleys/efedp/forge/ExtendedDatapacks.java`)
- NeoForge mod → Registration bootstrap: starts (evidence: `extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/ExtendedDatapacks.java`)
- Event invocation → Event type registry: resolves types (evidence: `extended_datapacks-forge/src/main/java/sleys/efedp/forge/core/events/EventInvocation.java`)
- Event invocation → Animation event types: dispatches via
- Animation event types → Animation event effects: selects effects
- Controlable events → Damage controller: includes controllers
- Damage controller → Control parameters: implements (evidence: `extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/list/combat/LivingIncomingTakeDamageEventController.java`)
- Damage controller → Arithmetic operations: applies instructions (evidence: `extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/list/combat/LivingIncomingTakeDamageEventController.java`)
- Damage controller → Dynamic data operations: applies dynamic data (evidence: `extended_datapacks-neoforge/src/main/java/sleys/efedp/neoforge/core/control/list/combat/LivingIncomingTakeDamageEventController.java`)
- Datapack creator → Data packets: defines payloads
- Data packets → Skills and abilities: supports skills
- Datapack creator → Animation registry: configures animations
- Animation registry → Event invocation: invokes events
- Datapack creator → Visual effects: defines effects
- Forge mod → Epic Fight: extends
- NeoForge mod → Epic Fight: extends
