Armaria
A weapon authoring library for Minecraft. Create melee, ranged, and magic weapons with compound VFX, sound profiles, and data-driven configuration.
Features
Three weapon types
Base classes for melee, ranged, and magic weapons with shared API and type-specific hooks.
Compound VFX engine
Primary + secondary particle batches per preset. 12 built-in presets using 20+ vanilla particle types.
Charge system
Built-in charge mechanics for weapons that need power management.
Texture2D API
Register textures in code. The library auto-generates model JSONs on startup.
Server-validated VFX
VFX triggers are server-side, rendering is client-side. Works in multiplayer.
Data-driven
JSON weapon definitions, datapack support, and runtime reload planned.
Architecture
Armaria is split into a shared API and loader-specific modules. The API is pure Java and contains all base classes, records, and interfaces. Loader-specific code lives in separate modules for Fabric and NeoForge.
armaria/
├── armaria-api/
│ ├── ArmariaMeleeWeapon
│ ├── ArmariaRangedWeapon
│ ├── ArmariaMagicWeapon
│ ├── Texture2D
│ └── vfx/
│ ├── VFXQueue
│ ├── VFXProfileRegistry
│ ├── VFXPresets
│ └── VFXPipeline
├── armaria-fabric/
│ ├── ArmariaMod
│ ├── ServerVFXHooks
│ └── VFXRenderer
└── armaria-neoforge/ (planned)