Skip to content

Add support for custom entities - #128

Open
Redned235 wants to merge 8 commits into
masterfrom
feature/custom-entity-support
Open

Redned235 wants to merge 8 commits into
masterfrom
feature/custom-entity-support

Conversation

@Redned235

@Redned235 Redned235 commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Adds support for custom entity conversion.

This uses the Conduit library to allow for traversing a mod's client jars without attempting to load them onto the classpath.

Custom entity support is not entirely comprehensive but captures many of the common cases. More complicated entities are unlikely to work.

Some of the changes in this PR are temporary, pending changes to Geyser. Some of these may also be better suited in PackConverter, but that may warrant further work and discussion. At the moment, they will stay in Hydraulic.

Which mods have been tested

Important note for mod authors

Given the complexity of the changes here and the numerous ways custom entity models, renderers, etc. can be defined in code, there is no guarantee this will fully work all the time. The goal of course is that mods that follow the general standard of wiring together entities, animations and renderers should work, but there is no guarantee given this.

What we want to guarantee, though

GeckoLib is given first-party support in Hydraulic, and the goal here is that any mod which uses GeckoLib for entities or animations should work without issue. This is because GeckoLib uses nearly the same model and animation files that Bedrock does, so beyond minor sanitization, it is trivial to support GeckoLib.

At the moment, these changes are still yet to be battle-tested, so there are likely to still be issues.

What we want to support

Ideally, any mod's entities which follow general standards adopted in vanilla should work. This includes models and animations exported directly through Blockbench. While there is never a guarantee it will work 100%, mod authors should expect that their models and animations created with Blockbench will work most of the time.

As with the caveat above, this may not entirely be the case presently, but as these changes become more solid over time, this should become a reasonable expectation.

What we cannot promise and hope to deliver in the future

Mods that have very complex models or animations, or use a non-standard format to offer this to players are unlikely to work. In the future, we'll introduce an API to make it easy for mod authors to natively offer Bedrock models and animations in place of the Java ones. This will reduce the conversion work Hydraulic has to do, while giving mod authors greater control over custom entities and not having to sacrifice features for Java Edition players.

@Redned235
Redned235 added this pull request to stack #127 October 16, 2026 09:36
@Redned235
Redned235 force-pushed the feature/custom-entity-support branch from 58b6820 to 144addf Compare October 18, 2026 11:21
Base automatically changed from feature/neoforge to master October 18, 2026 11:21
@Redned235
Redned235 force-pushed the feature/custom-entity-support branch from 144addf to 093ee73 Compare October 18, 2026 11:21
Comment thread build.gradle.kts
maven("https://repo.nexomc.com/releases/")

// Jitpack
maven("https://jitpack.io/")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get an include group on this to save it taking longer to check for depends when it doesn't need to

)
private long hydraulic$ignoreBoot(long nextTickTime) {
if (this.server.getTickCount() == 0) {
return Util.getNanos();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be making sure it's hydraulic doing pack conversion. In case some other mod is causing a hang and we are preventing the server from killing and restarting.

@rtm516 rtm516 linked an issue Oct 29, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mobs not showing up on bedrock despite their entity existing on java

2 participants