EntityJS

This mod uses KubeJS to dynamically register entities with full AI/Animation/Spawn Control support!

File Details

entityjs-0.7.0.jar

  • R
  • Jul 4, 2026
  • 3.35 MB
  • 8.8K
  • 1.20.1
  • Forge + 1

File Name

entityjs-0.7.0.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:entityjs-967617:8366535")

NeoForge

implementation fg.deobf("curse.maven:entityjs-967617:8366535")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Additions

  • Added .override("someMethod()", callback) to event.createCustom() entities, letting scripts override supported Java entity methods directly.
  • .override() works with public and protected vanilla or modded entity methods when they are safe to override.
  • Added dynamic override context values like context.entity, context.args, context.get("arg0"), context.arg0, and context.arg1.
  • Added named override arguments from Parchment mappings when available, so customBuilder.override() callbacks can use names like context.partialTicks while still keeping arg0, arg1, etc. as fallback
  • Added context.superCall() for dynamic overrides, including context.superCall(...args) to call the original method with replacement arguments.
  • Added EntityJSUtils.superCall() for supported builder and modify callbacks where a context object may not be available.
  • Added EntityJSUtils.getCallbackInfo() for modifyEntity callbacks.
  • Added callback control helpers on supported contexts: context.cancel(), context.setReturnValue(value), context.returnValue(), and context.superCall().
  • Added setRenderer(context => ...) to event.createCustom() for custom renderer factories.
  • Added setRendererClass(...) to event.createCustom() for using an existing renderer class.
  • Added setModel(context => ...) to event.createCustom() for custom model factories.
  • Added support for event.createCustom() with non-living entities.
  • Added support for rendering custom non-living entities with GeckoLib or existing renderer classes.
  • Added playStepSound, playMuffledStepSound, and playCombinationStepSounds to EntityJS entity builders.
  • Added playStepSound, playMuffledStepSound, and playCombinationStepSounds to EntityJSEvents.modifyEntity().
  • Added fallback overrides for methods often needed on final entity classes: playSwimSound, doWaterSplashEffect, processFlappingMovement, and canBeHitByProjectile.

ProbeJS / Typing Improvements

  • Added better ProbeJS support for event.createCustom() builders.
  • Added ProbeJS suggestions for .override() method keys.
  • Added typed override contexts, so context.entity matches the custom entity class when possible.
  • Added typed setRendererClass("") string suggestions of viable renderer class strings
  • setRendererClass("") now suggests real renderer classes that can actually load and pass EntityJS renderer checks.
  • setRendererClass("some.class.Name") still accepts custom strings even when they are not in the suggestion list.
  • Improved dedicated server safety for ProbeJS typing generation so client-only renderer classes are not loaded on servers.
  • Replaced const with let in some ProbeJS typing examples

Changes

  • Removed setModelClass(...). Most Minecraft model classes need constructor arguments, so scripts should use setModel(context => new MyModel(...)) instead.
  • setRendererClass(...) is now the class-based shortcut for existing renderer classes.
  • setModel(...) is now the correct model API for custom models.
  • Changed canThrow default to true in ProjectileItemBuilder.

Improvements

  • Improved busy callback performance by caching faster Rhino callback invocation paths when using any EntityJS script facing callback. (30% performance increase profiled on over 500k test iterations)
  • Expanded cached callback handling across GeckoLib, AI behavior helpers, spawn placement predicates, vanilla goals, setup callbacks, and modify callbacks.
  • Added callback argument initialization so common entity arguments are ready before server-side logic runs.
  • Added callback profiling tools for debugging callback setup, JS calls, super calls, return conversion, and context creation.
  • Changed most boolean callbacks to use EntityJS’s new BooleanCallback interface.
  • Improved wrapped custom entity behavior by defaulting synced values to the original entity values.

Fixes

  • Fixed Forge remapping issues caused by methods using remap = true incorrectly.
  • Fixed PiglinEntityJS not wiring isConverting and finishConversion.
  • Fixed custom and tameable entity builders missing default movement speed values.
  • Fixed ProjectileAnimatableJS and ProjectileEntityJS world-save errors when summoned without an item.