
EntityJS
This mod uses KubeJS to dynamically register entities with full AI/Animation/Spawn Control support!
- Загрузки
- 634K
- Подписчики
- 35
- Обновлён
- 4 июля 2026 г.
- Лицензия
- GPL-3.0-only
Опубликован 27 января 2024 г.
Key Features
- Dynamic Entity Registry: Easily register custom entities and define their attributes and behaviors using JavaScript.
- Entity Modification: Modify existing entity methods with the entity modification event for further customization.
- Full Animation Support: Enjoy smooth and lifelike animations for your entities, utilizing LioLib, a Geckolib 4 fork backporting many fixes to the unsupported 1.19.2 version
(EntityJS 1.20.1+ Use Geckolib as a direct dependency because it is a supported version)
- Spawn Control: Take full control over entity spawning by specifying spawn conditions, rates, and locations.
- Attribute Modification: Fine-tune entity attributes such as health, speed, damage, and more to suit your gameplay needs.
- Full AI Support: Access a comprehensive set of AI behaviors and functions to create intelligent and interactive entities.
Getting Started
To start using EntityJS, simply install the addon alongside KubeJS and begin creating your custom entities and animations. Refer to the documentation for detailed instructions and examples.
Special Compatibility
KubeJS Iron's Spells
Visit KubeJS Iron's Spells Mod Page
- Spellcasting Mobs: You can make any Mob cast spells by using the Goal event to attach spellcasting behavior.
- Custom Spellcasters: Create fully custom spellcasting mobs with tailored AI, spell sets, and behaviors.
- Spell Projectiles: Define and control custom spell projectiles for advanced combat and visual effects.
Community
Join the official KubeJS Discord community to connect with other users, share your creations, and get help with any questions or issues you encounter while using EntityJS. Alternatively, you can click the Discord icon below:
Youtube Tutorials
Центр версий
194 версийЧенджлог
1.4.7Релиз1.21, 1.21.1 · 4 июля 2026 г.
Additions
- Added
.override("someMethod()", callback)toevent.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, andcontext.arg1. - Added named override arguments from Parchment mappings when available, so
customBuilder.override()callbacks can use names likecontext.partialTickswhile still keepingarg0,arg1, etc. as fallback - Added
context.superCall()for dynamic overrides, includingcontext.superCall(...args)to call the original method with replacement arguments. - Added
EntityJSUtils.superCall()for supported builder and modify callbacks where acontextobject may not be available. - Added
EntityJSUtils.getCallbackInfo()formodifyEntitycallbacks. - Added callback control helpers on supported contexts:
context.cancel(),context.setReturnValue(value),context.returnValue(), andcontext.superCall(). - Added
setRenderer(context => ...)toevent.createCustom()for custom renderer factories. - Added
setRendererClass(...)toevent.createCustom()for using an existing renderer class. - Added
setModel(context => ...)toevent.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, andplayCombinationStepSoundsto EntityJS entity builders. - Added
playStepSound,playMuffledStepSound, andplayCombinationStepSoundstoEntityJSEvents.modifyEntity(). - Added fallback overrides for methods often needed on final entity classes:
playSwimSound,doWaterSplashEffect,processFlappingMovement, andcanBeHitByProjectile.
ProbeJS / Typing Improvements
- Added better ProbeJS support for
event.createCustom()builders. - Added ProbeJS suggestions for
.override()method keys. - Added typed override contexts, so
context.entitymatches 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
constwithletin some ProbeJS typing examples
Changes
- Removed
setModelClass(...). Most Minecraft model classes need constructor arguments, so scripts should usesetModel(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
canThrowdefault totrueinProjectileItemBuilder.
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
BooleanCallbackinterface. - Improved wrapped custom entity behavior by defaulting synced values to the original entity values.
Fixes
- Fixed Forge remapping issues caused by methods using
remap = trueincorrectly. - Fixed
PiglinEntityJSnot wiringisConvertingandfinishConversion. - Fixed custom and tameable entity builders missing default movement speed values.
- Fixed
ProjectileAnimatableJSandProjectileEntityJSworld-save errors when summoned without an item.
0.7.0Релиз1.20.1 · 4 июля 2026 г.
Additions
- Added
.override("someMethod()", callback)toevent.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, andcontext.arg1. - Added named override arguments from Parchment mappings when available, so
customBuilder.override()callbacks can use names likecontext.partialTickswhile still keepingarg0,arg1, etc. as fallback - Added
context.superCall()for dynamic overrides, includingcontext.superCall(...args)to call the original method with replacement arguments. - Added
EntityJSUtils.superCall()for supported builder and modify callbacks where acontextobject may not be available. - Added
EntityJSUtils.getCallbackInfo()formodifyEntitycallbacks. - Added callback control helpers on supported contexts:
context.cancel(),context.setReturnValue(value),context.returnValue(), andcontext.superCall(). - Added
setRenderer(context => ...)toevent.createCustom()for custom renderer factories. - Added
setRendererClass(...)toevent.createCustom()for using an existing renderer class. - Added
setModel(context => ...)toevent.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, andplayCombinationStepSoundsto EntityJS entity builders. - Added
playStepSound,playMuffledStepSound, andplayCombinationStepSoundstoEntityJSEvents.modifyEntity(). - Added fallback overrides for methods often needed on final entity classes:
playSwimSound,doWaterSplashEffect,processFlappingMovement, andcanBeHitByProjectile.
ProbeJS / Typing Improvements
- Added better ProbeJS support for
event.createCustom()builders. - Added ProbeJS suggestions for
.override()method keys. - Added typed override contexts, so
context.entitymatches 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
constwithletin some ProbeJS typing examples
Changes
- Removed
setModelClass(...). Most Minecraft model classes need constructor arguments, so scripts should usesetModel(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
canThrowdefault totrueinProjectileItemBuilder.
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
BooleanCallbackinterface. - Improved wrapped custom entity behavior by defaulting synced values to the original entity values.
Fixes
- Fixed Forge remapping issues caused by methods using
remap = trueincorrectly. - Fixed
PiglinEntityJSnot wiringisConvertingandfinishConversion. - Fixed custom and tameable entity builders missing default movement speed values.
- Fixed
ProjectileAnimatableJSandProjectileEntityJSworld-save errors when summoned without an item.
1.4.6-1.21Релиз1.21, 1.21.1 · 20 июня 2026 г.
- Changed
canThrowdefault totrueinProjectileItemBuilder - Implemented
setModelandsetModelClassinCustomEntityBuilder - Added
setRendererandsetRendererClassmethods toCustomEntityBuilder - Fixed remapping issues caused by setting remap to
trueon Forge methods event.createCustom()now supports non-living entities, optionally rendering with GeckoLib or through an existing model class- Fixed desync issues in wrapped custom entity classes by defaulting to original entity values
- Added
playMuffledStepSound,playCombinationStepSounds, andplayStepSoundto EntityJS entity builders - Added fallback overrides for methods commonly overridden in final entity classes:
playSwimSound,doWaterSplashEffect,processFlappingMovement, andcanBeHitByProjectile - Added
playStepSound,playMuffledStepSound, andplayCombinationStepSoundstoEntityJSEvents.modifyEntity() - Replaced all instances of
constwithletin ProbeJS typings - Fixed
ProjectileAnimatableJSandProjectileEntityJSworld-save errors when summoned without an item
0.6.9-1.20.1Релиз1.20.1 · 20 июня 2026 г.
- Changed
canThrowdefault totrueinProjectileItemBuilder - Implemented
setModelandsetModelClassinCustomEntityBuilder - Added
setRendererandsetRendererClassmethods toCustomEntityBuilder - Fixed remapping issues caused by setting remap to
trueon Forge methods event.createCustom()now supports non-living entities, optionally rendering with GeckoLib or through an existing model class- Fixed desync issues in wrapped custom entity classes by defaulting to original entity values
- Added
playMuffledStepSound,playCombinationStepSounds, andplayStepSoundto EntityJS entity builders - Added fallback overrides for methods commonly overridden in final entity classes:
playSwimSound,doWaterSplashEffect,processFlappingMovement, andcanBeHitByProjectile - Added
playStepSound,playMuffledStepSound, andplayCombinationStepSoundstoEntityJSEvents.modifyEntity() - Replaced all instances of
constwithletin ProbeJS typings - Fixed
ProjectileAnimatableJSandProjectileEntityJSworld-save errors when summoned without an item
1.4.5-1.21Релиз1.21, 1.21.1 · 23 марта 2026 г.
- Fixed attribute modification ordering
0.6.7-1.20.1Релиз1.20.1 · 23 марта 2026 г.
- Fixed attribute modification ordering
1.4.4-1.21Релиз1.21, 1.21.1 · 5 декабря 2025 г.
- Fix rare entity modification event crash due to computation timing of
eventMap
0.6.6-1.20.1Релиз1.20.1 · 5 декабря 2025 г.
- Fix rare entity modification event crash due to computation timing of
eventMap
Комментарии
Загружаем…
