Setting up an addon
1
Add the NMEntities jar as a compile-only dependency
There is no separate API artifact yet, so you compile against the plugin jar itself.
build.gradle.kts
2
Declare the dependency in plugin.yml
This makes your plugin enable after NMEntities.
plugin.yml
3
Register everything in onEnable
Registrations survive
/nme reload, so you never need to re-register.The entry point
Everything is reachable from one class:org.nexomaker.api.NMEntitiesAPI.
What that makes possible
The five effect-DSL extension points cover the whole skill language: new mechanics, targeters, triggers, conditions and placeholders. Addmobs().contribute(...) and naturalSpawns().contribute(...) on top, and an addon can ship a complete content pack — mobs, spawn rules and new vocabulary — without shipping a single YAML file. A server owner can still override any of it by declaring the same id in their own config.
Extending the effect language
The headline feature: teach the effect DSL new words that server owners use exactly like built-ins.
Models & animation
Attach a model to any entity, play animations, restyle bones and hook per-bone hitboxes — the embedded engine’s API, callable from the same jar.
Stability
- Everything under
org.nexomaker.apiis the supported addon surface. The types it hands out —MechanicArgs,EffectContext,MobDefinition,NpcOpsand the rest — are stable to compile against, including thekr.toxicity.model.bukkit.*packages they come from. kr.toxicity.model.apiis the embedded engine’s own API — models, animations, bones and hitboxes. It is not relocated, so you can call it from the same jar, but it is versioned by the engine rather than by NMEntities.- Anything else is an internal and may change without notice.
- One jar: compile against the plugin jar itself until a separate API artifact exists.

