# lunararcdevs/lunararc architecture

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

## Overview

LunarArc is an experimental hybrid Minecraft server compatibility layer: it runs on supported mod loaders while adding Bukkit/Spigot/Paper plugin compatibility. Its principal workflow is starting the server, integrating loader-owned Minecraft classes with the shared compatibility layer, then serving modded gameplay and plugins. The README documents EssentialsX support; the tree also identifies launcher, translation, and server-behavior subsystems. Several implementation details are unsampled, so the graph limits links to documented architecture or visible calls.

Main entry points: [`lunararc-common/src/main/java/io/lunararcdevs/lunararc/common`](https://github.com/lunararcdevs/lunararc/tree/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common) (Shared compatibility), [`lunararc-common/src/main/java/io/papermc/paper/plugin/manager/MultiRuntimePluginProviderStorage.java`](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/papermc/paper/plugin/manager/MultiRuntimePluginProviderStorage.java) (Runtime plugin loading), [`installer/src/entry/java/io/lunararcdevs/lunararc/launcher/LauncherEntry.java`](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/installer/src/entry/java/io/lunararcdevs/lunararc/launcher/LauncherEntry.java) (Launcher entry), [`installer/src/main/java/io/lunararcdevs/lunararc/launcher/Launcher.java`](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/installer/src/main/java/io/lunararcdevs/lunararc/launcher/Launcher.java) (Loader launchers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_launch["Server launch"]
  node_launcher["Launcher entry<br/>[LauncherEntry.java]"]
  node_loader_launch["Loader launchers<br/>[Launcher.java]"]
end

subgraph group_compat["Loader compatibility"]
  node_common["Shared compatibility"]
  node_bridges["Minecraft bridges"]
  node_mixins["Targeted mixins"]
end

subgraph group_plugins["Plugin compatibility"]
  node_plugin_manager["Plugin manager"]
  node_provider_storage["Plugin providers"]
  node_runtime_storage["Runtime plugin loading"]
  node_classloaders["Plugin classloaders"]
end

subgraph group_behavior["Server behavior"]
  node_anti_xray["Anti-xray"]
  node_chat["Chat conversion"]
  node_translations["Translations"]
  node_world_storage["World storage bridge"]
end

node_operator(("Server operator"))
node_loader_runtime["Mod loader runtime"]
node_paper_contract["Paper API contract"]
node_essentials["EssentialsX"]
node_world_saves[("World saves")]

node_operator -->|"starts server"| node_launcher
node_launcher -->|"selects launch"| node_loader_launch
node_loader_launch -->|"launches runtime"| node_loader_runtime
node_loader_runtime -->|"hosts compatibility"| node_common
node_common -->|"exposes access"| node_bridges
node_mixins -->|"implements hooks"| node_bridges
node_common -->|"matches behavior"| node_paper_contract
node_plugin_manager -->|"delegates loading"| node_runtime_storage
node_runtime_storage -->|"uses providers"| node_provider_storage
node_runtime_storage -->|"registers loaders"| node_classloaders
node_essentials -.->|"uses mod content"| node_common
node_common -->|"provides feature"| node_anti_xray
node_common -->|"provides conversion"| node_chat
node_world_storage -->|"creates access"| node_world_saves

click node_launcher "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/installer/src/entry/java/io/lunararcdevs/lunararc/launcher/LauncherEntry.java"
click node_loader_launch "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/installer/src/main/java/io/lunararcdevs/lunararc/launcher/Launcher.java"
click node_common "https://github.com/lunararcdevs/lunararc/tree/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common"
click node_bridges "https://github.com/lunararcdevs/lunararc/tree/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/bridge"
click node_mixins "https://github.com/lunararcdevs/lunararc/tree/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/mixin"
click node_plugin_manager "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/org/bukkit/plugin/SimplePluginManager.java"
click node_provider_storage "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/papermc/paper/plugin/storage/ServerPluginProviderStorage.java"
click node_runtime_storage "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/papermc/paper/plugin/manager/MultiRuntimePluginProviderStorage.java"
click node_classloaders "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/papermc/paper/plugin/entrypoint/classloader/group/PaperPluginClassLoaderStorage.java"
click node_anti_xray "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/server/LunarArcAntiXrayEngine.java"
click node_chat "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/messaging/LunarArcComponentPipeline.java"
click node_translations "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/i18n-config/src/main/java/io/lunararcdevs/lunararc/i18n/TranslationManager.java"
click node_world_storage "https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/mixin/core/world/storage/LevelStorageSourceMixin.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_launcher,node_loader_launch toneBlue
class node_common,node_bridges,node_mixins,node_world_saves toneAmber
class node_plugin_manager,node_provider_storage,node_runtime_storage,node_classloaders,node_operator,node_paper_contract toneMint
class node_anti_xray,node_chat,node_translations,node_world_storage toneRose
class node_loader_runtime,node_essentials toneIndigo
```

## Components

### Server launch

- [Launcher entry](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/installer/src/entry/java/io/lunararcdevs/lunararc/launcher/LauncherEntry.java): `installer/src/entry/java/io/lunararcdevs/lunararc/launcher/LauncherEntry.java`
- [Loader launchers](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/installer/src/main/java/io/lunararcdevs/lunararc/launcher/Launcher.java): `installer/src/main/java/io/lunararcdevs/lunararc/launcher/Launcher.java`

### Loader compatibility

- [Shared compatibility](https://github.com/lunararcdevs/lunararc/tree/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common): `lunararc-common/src/main/java/io/lunararcdevs/lunararc/common`
- [Minecraft bridges](https://github.com/lunararcdevs/lunararc/tree/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/bridge): `lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/bridge`
- [Targeted mixins](https://github.com/lunararcdevs/lunararc/tree/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/mixin): `lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/mixin`

### Plugin compatibility

- [Plugin manager](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/org/bukkit/plugin/SimplePluginManager.java): `lunararc-common/src/main/java/org/bukkit/plugin/SimplePluginManager.java`
- [Plugin providers](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/papermc/paper/plugin/storage/ServerPluginProviderStorage.java): `lunararc-common/src/main/java/io/papermc/paper/plugin/storage/ServerPluginProviderStorage.java`
- [Runtime plugin loading](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/papermc/paper/plugin/manager/MultiRuntimePluginProviderStorage.java): `lunararc-common/src/main/java/io/papermc/paper/plugin/manager/MultiRuntimePluginProviderStorage.java`
- [Plugin classloaders](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/papermc/paper/plugin/entrypoint/classloader/group/PaperPluginClassLoaderStorage.java): `lunararc-common/src/main/java/io/papermc/paper/plugin/entrypoint/classloader/group/PaperPluginClassLoaderStorage.java`

### Server behavior

- [Anti-xray](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/server/LunarArcAntiXrayEngine.java): `lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/server/LunarArcAntiXrayEngine.java`
- [Chat conversion](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/messaging/LunarArcComponentPipeline.java): `lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/messaging/LunarArcComponentPipeline.java`
- [Translations](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/i18n-config/src/main/java/io/lunararcdevs/lunararc/i18n/TranslationManager.java): `i18n-config/src/main/java/io/lunararcdevs/lunararc/i18n/TranslationManager.java`
- [World storage bridge](https://github.com/lunararcdevs/lunararc/blob/Trial-Zenith/lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/mixin/core/world/storage/LevelStorageSourceMixin.java): `lunararc-common/src/main/java/io/lunararcdevs/lunararc/common/mixin/core/world/storage/LevelStorageSourceMixin.java`

### Other components

- **Server operator**
- **Mod loader runtime**
- **Paper API contract**
- **EssentialsX**
- **World saves**

## Connections

- Server operator → Launcher entry: starts server
- Launcher entry → Loader launchers: selects launch
- Loader launchers → Mod loader runtime: launches runtime
- Mod loader runtime → Shared compatibility: hosts compatibility
- Shared compatibility → Minecraft bridges: exposes access
- Targeted mixins → Minecraft bridges: implements hooks
- Shared compatibility → Paper API contract: matches behavior
- Plugin manager → Runtime plugin loading: delegates loading
- Runtime plugin loading → Plugin providers: uses providers
- Runtime plugin loading → Plugin classloaders: registers loaders
- EssentialsX → Shared compatibility: uses mod content
- Shared compatibility → Anti-xray: provides feature
- Shared compatibility → Chat conversion: provides conversion
- World storage bridge → World saves: creates access
