promotional bannermobile promotional banner

QuestLines Core

Create dynamic quests and dialogs with this powerful plugin.

File Details

questlines-core-1.11.0.jar

  • R
  • May 20, 2026
  • 25.13 MB
  • 28
  • Early Access

File Name

questlines-core-1.11.0.jar

Supported Versions

  • Early Access
QuestLines Core – Version 1.11.0
━━━━━━━━━━━━━━━━━━━━━━

🧩 Integrations
• HyCitizens 1.7 API

🆕 Features
• Quest Boards
└ Physical Quest boards can be added to your worlds
└ 2 new item models
└ Hold a questing staff in your hand to edit the Quest Boards
└ NPC's can be QuestBoards
└ Toggle this behavior in the NPC menu.
└ Assign Quests as you normally would to the quester

🆕 Actions
• setAttitude:citizenId:passive|neutral|aggressive|hostile - change combat attitude (no respawn).
• setInvulnerable:citizenId:true|false - toggle damage immunity.
• setHealth:citizenId:max|default - override max health and refill; "default" reverts to authored value.
• setDamage:citizenId:amount|default - override attack damage; "default" reverts to authored value.
• setEquip:citizenId:slot:itemId - set an equipment slot (hand/offhand/helmet/chest/gloves/leggings); empty or "none" clears. No respawn.
• hideCitizen:citizenId:true|false - hide or show the NPC body. Triggers a respawn.
• hideNametag:citizenId:true|false - hide or show the nametag. No respawn.
• hideNpc:citizenIdOrName - per-player hide. The citizen disappears for the calling player only; everyone else still sees it. Transient (does not survive a restart). Matches by citizen id first, falls back to display name.
• showNpc:citizenIdOrName - reverse a hideNpc for the calling player. No-op if no hide policy is in place.

• startEscort:escortId:templateName:X:Y:Z - spawn a private escort NPC visible only to the calling player.
└ Clones the named template at the coords (~ relative supported), whitelists visibility to this player, and clears any baked patrol on the clone so escortMove takes effect cleanly.
└ Persisted - the escort is suspended (clone despawned, state saved with last known position + patrol + pending move) on logout and re-spawned at that position on next login; cleared only by escortStop or a fresh startEscort with the same id.
└ Pair with hideNpc: to make the source questgiver disappear for the escorting player.

• escortStop:escortId - end an active escort: despawn the clone, drop its visibility policy, and forget the session.
└ No-op if no session with that id exists for the player.

• escortMove:escortId:X:Y:Z - walk the player's active escort clone toward the target coords (~ relative supported). the clone stops automatically on arrival.
└ Re-issuing overrides the previous target. No-op if no session with that id exists.

• escortPatrol:escortId:pathName - send the player's active escort clone along a named HyCitizens patrol path (LOOP / PING_PONG with per-waypoint pauses, configured in HC). Useful for guided-tour escorts without per-leg escortMove calls.
• escortStopPatrol:escortId - halt the escort's active patrol without ending the escort. The clone stays spawned and visible; only the patrol behavior stops.
• patrol:citizenId:pathName - start a named HyCitizens patrol path.
• stopPatrol:citizenId - stop the active patrol.
• moveCitizen:citizenId:X:Y:Z - one-shot move to coords (~ relative supported).
• stopCitizen:citizenId - cancel direct movement (does not stop a patrol).
• patrolGroup:groupName:pathName - start the named patrol on every citizen in a HyCitizens group.
• stopPatrolGroup:groupName - stop patrols on every citizen in the group.
• moveGroup:groupName:X:Y:Z - move every citizen in the group to coords (~ relative supported).
• stopGroup:groupName - cancel direct movement on every citizen in the group.

🆕 Requirements
• patrolling:citizenId[:pathName] - passes while citizen is patrolling; optional pathName restricts to that path.
• citizenActive:citizenId - passes while the citizen's HyCitizens schedule is in the ACTIVE state.
• citizenScheduleEntry:citizenId:entryName - passes when the citizen's active schedule entry has that name (case-insensitive).
• groupCount:groupName:N | groupCount:groupName:op:N - group citizen-count threshold; op is >=, <=, >, <, ==, != (defaults to ==).

• escortAt:escortId:X:Y:Z:range - passes when the player's escort clone is within `range` blocks of (x, y, z).
└ Fails if no escort with that id is active.
└ Coords are absolute world coordinates.

• escortPlayerInRange:escortId:range - passes when the player is within `range` blocks of their escort clone. Use to enforce "stay near the escort" semantics (pair with a failActions list on the page for a leash penalty).

🆕 Variables
• {escort:ID:dist} (integer blocks between calling player and their escort clone; empty if no active session)
• {escort:ID:name} (escort clone's HyCitizens display name; empty if no active session)
• {escort:ID:active} (true / false — whether the calling player has an escort with that id)
• {citizen:ID:name} (HyCitizens display name)
• {citizen:ID:patrol} (active patrol path, or "idle")
• {citizen:ID:patrolling} (true / false)
• {citizen:ID:schedule} (active schedule entry name)
• {citizen:ID:activity} (idle / wander / patrol / follow_citizen)
• {citizen:ID:schedule_state} (active / inactive / traveling / fallback / blocked)
• {group:name:count} (citizens in the HyCitizens group)

• Internal:
└ Centralized all HyCitizens API access behind HyCitizensBridge with id/ref/death caches; removed 8 linear citizen-list scans.

Support Development
If you would like to help support development:
https://ko-fi.com/redstoner
https://www.patreon.com/c/RedStoner_Pro