questlines-denizens-1.5.0.jar
What's new
QuestLines Denizens – Version 1.5.0
━━━━━━━━━━━━━━━━━━━━━━
🆕 Features
• Interaction tracing - turn on interact_debug and the log names the reason a click on a Denizen did nothing.
• Map marker labels - a Denizen's map pin now shows its nameplate text, falling back to its name, so names can stay plain for use in actions.
• Reworked combat - guards now circle, flank and strafe their target, and a Denizen that is hit fights back unless it is Passive. The new Retaliate setting on the Combat tab forces it on or off.
• Packs - Denizens sharing a Pack Tag answer each other's call for help, only a set number fight at once while the rest hold a ring, and the pack returns to its posts once the fight is over.
• Formations - set Formation on the Guard tab (Ring, Wedge, Line or Column) to spread a guard pack out, around the player or NPC they are escorting.
• Script interaction mode - a Denizen in Script mode runs a QuestLines script when clicked.
• Player-model Denizens can now fight each other.
• Temporary clones, such as escorts, now show their map pin when their marker is enabled.
⌨ Commands
• /denizen reload [name] re-reads a Denizen's file from disk and respawns it.
• /denizen inspect now shows what a Denizen is doing - its position, combat state, targets and pack.
🐛 Fixes
• The HyCitizens import now works on HyCitizens 2.0, which stores each citizen in its own file instead of one data.json.
• The HyCitizens import now finds its data folder wherever it is, and reads a half-migrated install from both places at once.
• A failed HyCitizens import now names every file it checked and what it found there.
• The HyCitizens import now reports citizens wired to a HyCitizens 2.0 dialogue tree, and points at /ql import hycitizens to convert those.
• Denizens stay clickable after you rejoin the server, instead of showing the interact hint and doing nothing.
• A click that also lands on a block or an item no longer swallows the interaction.
• Clicking a Denizen now always registers, including clicks the client sends as part of an interaction already under way.
• A command run from an interaction now reports its failure instead of failing silently.
• A Denizen made with /denizen create now guards, fights back and follows orders straight away, instead of ignoring them until one of its settings was changed.
• A Denizen whose skin belongs to an offline player no longer repeats a warning and a skin lookup every few seconds.
• Denizen sword swings no longer log a "Missing replacement interactions" error.
• An Invulnerable Denizen no longer fights back or chases a player who swings at it. Only a hit that actually does damage starts a grudge.
• Denizens no longer chase a player across the map. A Denizen that gets more than chase_leash_distance blocks (default 24) from where its fight started gives up and walks back.
• A Denizen now walks back home after a fight instead of standing wherever the fight ended. One that cannot find its way back is respawned at home after return_home_stuck_seconds (default 10).
🧪 API
• New getDisplayName - the name players see, nameplate text first, for QuestLines' {citizen:self:displayname}.
• New awaitInteractListener / awaitDeathListener / awaitSpawnListener / awaitDespawnListener - register a listener from any plugin regardless of load order.
• addInteractListener and the other three now return true when the listener was attached, instead of void.
• New getScheduleStage / getScheduleActivity / getScheduleTime / getScheduleState / isScheduleActive - read a Denizen's current schedule stage.
• New setTarget / clearTarget / getTarget / isInCombat - order a Denizen onto a target.
• New getPackMembers / getPackTarget / clearPackAlarm - read and reset a pack.
• New registerTemplate / replaceTemplate - ship a Denizen template from another plugin and clone it at runtime.
• New getInteractionScript / faceTowards / freezePatrol / resumePatrol / isPatrolFrozen - read a Denizen's Script, turn it to face a point, and pause its patrol, for QuestLines scripts.
Support Development
If you would like to help support development:
https://ko-fi.com/redstoner
https://www.patreon.com/c/RedStoner_Pro
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

