QuestLinesHooks
A tiny, surgical early-plugin that powers the handful of things the QuestLines suite cannot do from a normal mod β item-use and creature-capture quest tracking, a world-map marker permission gate, and a guard that stops one bad model scale from corrupting your world's chunks.
QuestLinesHooks loads before your Hytale server starts, so it can patch a few internal engine methods the moment they are defined. It does the absolute minimum: precise, individually verified bytecode hooks and nothing else. No commands, no config, no measurable overhead.
β οΈ This is a companion plugin for the QuestLines suite. It does nothing on its own β install it alongside QuestLines Core.
β¨ What it does
π― Makes use: quest tracking possible
In Hytale, "using" an item β swinging a sword, drawing a bow, casting a tome, drinking a potion, placing a block β never fires a public event. QuestLinesHooks injects a feather-light forwarder into the interaction pipeline so QuestLines Core can finally see those actions. That is what unlocks quest objectives like "swing a sword 10 times" or "drink 3 potions".
πͺ€ Makes capture: quest tracking possible
Catching a creature in a capture crate is likewise invisible to plugins. A second hook reports successful captures to Core, so you can write objectives around taming and collecting specific creatures.
πΊοΈ Gates world-map marker creation
Hytale lets any player drop markers on the shared world map, with no permission attached. This hook lets QuestLines Core decide, per player, whether a marker may be placed β gated behind questlines.mapmarker.create (default false). If Core registers no gate the hook stays out of the way entirely, so the behaviour is unchanged for anyone not using it.
π‘οΈ Protects your world from "chunk failed to load"
Certain NPCs (especially custom Denizens) can persist a non-positive model scale to disk. The next time that chunk loads, the engine throws "Scale must be greater than 0" and the entire chunk silently fails to load β permanently, until the offending entity is hunted down.
QuestLinesHooks clamps any invalid scale (0, negative, or NaN) to a sane 1.0, exactly matching the engine's own "natural scale" behaviour. This rescues already-corrupted chunks on existing worlds and prevents new ones from ever breaking.
Every bridge between this plugin and the rest of the suite uses pure JDK types only β no QuestLines classes cross the boundary, keeping the patches clean and conflict-free.
π¦ Installation
- Drop
questlines-hooks-1.2.0.jarinto your server'searlyplugins/folder β notmods/. - Launch your server with the
--accept-early-pluginsflag (or--singleplayer). - That's it. There is no configuration.
Early plugins print a loud "unsupported" banner at startup β this is expected and harmless. Without the flag, the server will refuse to start once an early plugin is present.
π§ Requirements
- A Hytale server running the QuestLines suite
- Server launched with
--accept-early-plugins
π‘ Good to know
- Zero config, zero commands β install and forget.
- Safe by design β every hook is verified offline against the real server classes using ASM's bytecode verifier before each release.
- Each hook fails open. If an engine method it targets changes shape, that hook simply does not install; the server still starts and the rest keep working.
The QuestLines Suite
Every plugin works standalone; together they share one ecosystem.
- QuestLines Core β dialogue, quests, requirements, actions
- Icons β floating quest-state icons above NPCs
- Dialog β in-game linear dialogue builder
- Titles β player title and rank rewards
- GUI β custom in-game interfaces, no code required
- Claims β land protection, regions, rent and buy plots
- Denizens β native NPC manager
- Arcade β arcade, board and puzzle games
- Hooks β early plugin unlocking extra quest tracking (this plugin)
- MMO β parties, guilds, dungeons, duels and item sets
- Mimics β chests that stand up and fight
- Nations β cities and nations built on Claims (via Discord)

