GlymeraTameFly-10.0.0.jar
What's new
GlymeraTameFly - Changelog
v10.0.0 (2026-10-14) — Smoother flying on Hytale 0.7
- Fix: flying mounts no longer drop on their own on 0.7. The 0.7 game client lags behind the server and sometimes freezes the rider for a moment; the invisible flight platform could not keep up, so mounts sank or even fell to the ground after a jump.
- The platform under a flying mount is now 5×5 instead of 3×3 and is laid out ahead in the direction you fly.
- Jumping: the platform follows the mount only upwards and catches it at the top of the jump, so every jump keeps its height. If a jump does not lift off, the mount is caught right away instead of falling.
- Descending (sneak or sprint) is unchanged. Barrier blocks are still only placed into air and removed again behind you.
- Upgrade: replace the jar in
mods/, keep the plugin's data folder, restart the server.
v9.0.0 (2026-10-12) — Hytale 0.7.0 (Update 7)
- Rebuilt for Hytale 0.7.0 (Update 7 / Chapter 1). Requires server 0.7.0 or newer; this version does not run on 0.6.x, and the previous version does not run on 0.7.0 (the server removed the old block and chunk API).
- Migrated to the 0.7.0 world API: block reads and writes now go through the chunk store and block sections (
BlockOperations), chunk ticking through the engine's new marker component, spawn points through the asynchronous spawn provider. - Mod icon added (
icon-256.pngin the jar) so the plugin shows its picture in the world's mod list instead of a question mark. - Upgrade: delete the old jar from
mods/, drop in the new one and keep the plugin's data folder — configs and saved data carry over unchanged. Restart the server.
v8.0.0 (2026-08-28) — Hytale 0.6.0 (Update 6)
- Rebuilt for Hytale 0.6.0 (Update 6). Requires server 0.6.0 or newer; this version does not run on 0.5.x, and older versions of this plugin do not run on 0.6.0.
- Fixed NPC role definitions that the stricter 0.6.0 asset validation rejects (an invalid
Timidparameter on 16 roles, and the throw-speed check on the Yeti/Rex roles). Without this fix a 0.6.0 server refuses to start with the old jar. - Migrated to the 0.6.0 APIs (network protocol hytale/3, new command-permission API, block/chunk/entity API changes). Everything that was open to players before is open to players again.
- Upgrade: delete the old jar from
mods/, drop in the new one and keep the plugin's data folder — configs and saved data carry over unchanged. Restart the server.
v6.0.0 (2026-04-19)
Bug Fixes
- Flight platform barriers left behind: Barrier blocks (the temporary 3x3 platform the flight tick places under a flying mount) were not being removed under certain conditions. Three scenarios were affected:
- Server stop/restart while flying:
shutdown()only cleared the state map without removing the blocks. Barriers stayed in the world permanently. - Player changes world while flying (e.g. via
/bw tp): the old world never removed its barriers; the player got a fresh state in the new world with no link to the blocks left behind in the old one. - Multi-world tick race: the 50ms flight tick ran per world but shared a single global state map. World B's tick saw a player flying in world A as "not mounted", wiped the state, and called
breakBlockat world-A coordinates inside world B — the real barriers in world A were orphaned.
- Server stop/restart while flying:
Technical Details
FlyStatenow carries aworldNamefield. The cleanup branch inprocessFlyingMountsskips states whose home world does not match the currently tickingworld.getName(), so only the actual flying world performs cleanup.- New helper
cleanupStateInHomeWorldtears down the old platform on a world switch (e.g./bw tp) viaworld.execute()on the source world's thread. removeAllBlocksis now retry-safe: positions are only removed fromplacedBlocksoncegetBlockconfirms the block is air after thebreakBlockcall. Unloaded chunks are silently skipped and retried on the next tick.FlyStatestays in theflyingPlayersmap until every block is verifiably cleared (previously the state was removed immediately on dismount, so failing chunk loads lost the positions forever).- Persistence via
flystate.jsonin the plugin data directory:shutdown()serializes all open states (UUID → worldName + placedBlocks).start()loads them back intoflyingPlayers. The normal flight tick then notices the missing mount and clears the platform on the world thread once the chunks are available. Synchronous cleanup insideshutdown()does not work becauseworld.breakBlockqueues tasks on the world thread, and the queue is no longer processed during shutdown. FlyCommand(/flytoggle) now also passes the current world name when creating a new state.
Known Limitations
- Barriers that were already orphaned in the world under v5.0.0 or earlier cannot be cleaned up retroactively by v6.0.0 — they are not tracked anywhere. A one-time manual removal (breaking or blasting them) is required. Any state created from v6.0.0 onwards cleans up correctly.
This mod has no additional files