AkumaLib 1.0.0
Curse Maven Snippet
What's new
AkumaLib 1.0.0 — First Release
AkumaLib is a shared ability framework for Mine Mine no Mi addons.
⚠️ This is a library, not a content mod. On its own it adds no fruits, no abilities and no items — nothing will change in your game. Install it only because another mod requires it.
For players
Install it alongside Mine Mine no Mi and the addon that asked for it. That's all there is to do.
Requires
- Minecraft 1.20.1
- Forge 47.4.18 or newer
- Mine Mine no Mi
Known consumers
- Awaken Awaken no Mi 1.0.0 — the addon AkumaLib was extracted from
For addon developers
Mine Mine no Mi gives you Ability and a set of components. Everything above that — a zone that charges and expands, a wave that converts terrain, a passive that grants attribute bonuses under a condition — you would otherwise write yourself, slightly differently each time. AkumaLib is that layer, extracted once and shared: 65 classes, 17 ability base classes, 12 utilities.
Ability base classes
| Class | For |
|---|---|
ZoneAbility |
a charged spherical zone applying effects continuously |
SpreadingBlockAbility |
a zone that replaces ground blocks and restores them at the end |
DomainAbility |
the shared parent of both, carrying the four-slot ZoneSoundSet |
BlockWaveAbility |
a radial wave converting blocks outward — sphere, surface or terrain-following |
ConditionalStatPassiveAbility |
a passive granting attribute bonuses while a condition holds |
AuraAbility |
a passive aura ticking every nearby enemy |
StompAbility · MoveAbility · InstantDashAbility |
charged stomp, continuous dash, teleport dash |
BlockUseAbility · CraftingAbility · TransmutationAbility · GroundAbility |
smaller bases |
Utilities
PropagationHelper (BFS propagation with easing), BlockPlacingHelper, AttributeBonusHelper (idempotent attribute modifiers), tooltip helpers, plus morph, animation and networking scaffolding.
Why the base classes carry so many warnings
Most exist because something shipped broken first. Extending the class gets you the fix for free:
SpreadingBlockAbilityrestores blocks throughBlock.updateFromNeighbourShapes— putting a remembered state back raw leaves a grass block flaggedsnowyunder open sky.- Its zones are tracked statically and restored on
PlayerLoggedOutEvent, because the tick that drains the restore queue stops the moment the holder leaves — and the blocks stayed permanently. ConditionalStatPassiveAbilityapplies and removes idempotently rather than on transitions:addPermanentModifierpersists in NBT, and a reconnect turned a conditional bonus into a permanent one.- It also hooks
DisableComponent.addStartEvent, because a Devil Fruit passive is disabled the moment its holder gets wet, andPassiveAbility.tick()stops dispatching before it can clean up.
Adding it to your project
# gradle.properties
akumalib_version=1.0.0
// build.gradle
implementation fg.deobf("com.inovactio:akumalib:${akumalib_version}")
# mods.toml
[[dependencies.yourmod]]
modId = "akumalib"
mandatory = true
versionRange = "[${akumalib_version},)"
ordering = "AFTER"
side = "BOTH"
⚠️ API stability
Publishing freezes the API. From 1.0.0 onward, a breaking change to the shared surface is a major version bump and forces a synchronised release of the library and every consumer. Your versionRange should exclude the next major.
All Rights Reserved.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

