NeoTale
A project meant to make Hytale modding easier in general. For now it simplifies event subscriptions to Neoforge's event bus subscription practice, making event subscription a lot simpler for modders
About NeoTale
NeoTale
NeoTale is a lightweight, annotation-driven event system for Hytale plugins inspired by NeoForge’s event bus system. It removes manual registration and boilerplate by automatically discovering and wiring your event handlers at runtime.
Features
Annotation-based event subscription
No manual registration required
Automatic class scanning
Static method dispatch
Minimal, clean API
NeoForge-style workflow
How It Works
On startup, NeoTale scans your plugin and automatically detects:
Classes annotated with @EventBusSubscriber
public static methods inside those classes annotated with @SubscribeEvent
Any method matching this pattern is automatically registered to the event bus and invoked when the corresponding event fires.
Event Example
@EventBusSubscriber public final class ServerEvents {
@SubscribeEvent public static void onBoot(BootEvent event) { System.out.println("Server booted!"); }
@SubscribeEvent public static void onBreak(BreakBlockEvent event) { System.out.println("Block broken!"); } }
That’s it. NeoTale handles discovery and binding automatically.
Detection Rules
NeoTale will only register methods that meet all of the following:
Declared in a class annotated with @EventBusSubscriber
Marked public static
Annotated with @SubscribeEvent
Accept exactly one parameter (the event type)
System Registration
NeoTale can also auto-register ECS systems using the same annotation-first approach. Declare public static methods annotated with @SubscribeSystem inside an @EventBusSubscriber class. NeoTale will invoke these methods during plugin setup and register the returned system into the correct registry.
System Example
@EventBusSubscriber public final class Systems {
@SubscribeSystem(store = SystemStore.ENTITY) public static ISystem<EntityStore> myEntitySystem() { return new EntityEventSystem<>(BreakBlockEvent.class) { @Override public void handle(int i, @Nonnull ArchetypeChunk<EntityStore> chunk, @Nonnull Store<EntityStore> store, @Nonnull CommandBuffer<EntityStore> buffer, @Nonnull BreakBlockEvent event) { }
@Override public Query<EntityStore> getQuery() { return Query.any(); } }; }
@SubscribeSystem(store = SystemStore.CHUNK) public static ISystem<ChunkStore> myChunkSystem() { return new RefSystem<ChunkStore>() { @Override public Query<ChunkStore> getQuery() { return Query.any(); }
@Override public void onEntityAdded(Ref<ChunkStore> ref, AddReason reason, Store<ChunkStore> store, CommandBuffer<ChunkStore> buffer) { }
@Override public void onEntityRemove(Ref<ChunkStore> ref, RemoveReason reason, Store<ChunkStore> store, CommandBuffer<ChunkStore> buffer) { } }; } }
Gradle Setup
Add the NeoTale Maven repository:
Gradle (Groovy)
repositories { maven { url 'https://dl.cloudsmith.io/public/lio/neotale/maven/' } }
dependencies { implementation "net.liopyu:neotale:$neoTaleVersion" }
Gradle (Kotlin DSL)
repositories { maven("https://dl.cloudsmith.io/public/lio/neotale/maven/") }
dependencies { implementation("net.liopyu:neotale:$neoTaleVersion") }
Why NeoTale?
Hytale’s native systems are powerful, but event wiring can be repetitive and confusing. NeoTale streamlines development by providing a simple, familiar approach for developers coming from NeoForge event bus subscription.
Usage & Distribution
NeoTale is free to use in any project, including public servers, modpacks, and redistributed builds. You are allowed to bundle and redistribute NeoTale as-is wherever you need it.
The ARR label only applies to direct ownership of the project’s source/assets; it does not restrict normal use or redistribution of the built mod.
Categories
Frequently Asked Questions
What is NeoTale?
A project meant to make Hytale modding easier in general. For now it simplifies event subscriptions to Neoforge's event bus subscription practice, making event subscription a lot simpler for modders
How do I download NeoTale?
You can download NeoTale for free from CurseForge. Click the "Download on CurseForge" button on this page to go directly to the download page.
Who created NeoTale?
NeoTale was created by Liopyu. The mod has been downloaded 55 times.
Is NeoTale compatible with Hytale servers?
NeoTale is designed for Hytale and can be used on both single-player and multiplayer servers. Check the mod page on CurseForge for specific compatibility information.
How do I install NeoTale?
To install NeoTale: 1) Download the mod from CurseForge, 2) Place the file in your Hytale mods folder, 3) Restart the game. The mod should load automatically.
Related Misc Mods
View all modsYmmersive Melodies
Conczin
Upload and play MIDI files in-game on various instruments to annoy your friends with custom melodies!
MultipleHUD
Buuz135
A simple mod that allows you to have multiple HUDs present at once.
Spanish Translation
Plexu5
A Spanish language translation for Hytale. Includes UI, items, and menus.
YUNG's HyDungeons
YUNGNICKYOUNG
Adds new procedurally generated dungeon instances!
Just Enough Tales (JEI mod)
uwudwagon
A JEI mod for Hytale.
[NoCube's] Simple Bags
NoCube
Adds bags that you can put anything in!