Default messages.yml

Last updated Oct 28, 2026

Default messages.yml

Shipped defaults from SoapsQuest 1.0.7. Edition: Free and Premium.

After first run, this file lives in plugins/SoapsQuest/. Updating the jar does not overwrite your live copy.

See also: Config Reference · Configuration

# ##############################################################
# #                                                            #
# #                      SoapsQuest                            #
# #                                                            #
# #           Created by: AlternativeSoap                      #
# #           Website:    www.SoapsUniverse.com                #
# #           Support:    https://discord.gg/mawAzwFq          #
# #                                                            #
# ##############################################################

# ╔════════════════════════════════════════════════════════════════════════════╗
# ║                        SoapsQuest Messages                                 ║
# ║  All plugin messages, notifications, and player communication             ║
# ║  Uses consistent color palette and formatting across all features         ║
# ║  See README.md for placeholders and detailed documentation                ║
# ╚════════════════════════════════════════════════════════════════════════════╝

prefix: "<dark_gray>[<gradient:#FF8C00:#FFD700>SoapsQuest</gradient><dark_gray>]"

# ════════════════════════════════════════════════════════════════════════════
# GENERAL MESSAGES
# ════════════════════════════════════════════════════════════════════════════
no-permission: "<prefix> <#FF5555>You don't have permission to do that."
premium-only: "<prefix> <#FF5555>✗ This feature requires <gradient:#FF8C00:#FFD700>SoapsQuest Premium</gradient><#FF5555>. See <#FFFFFF>www.SoapsUniverse.com<#FF5555>."
player-not-found: "<prefix> <#FF5555>Player '<#FFFFFF><player><#FF5555>' not found."
quest-not-found: "<prefix> <#FF5555>Quest '<#FFFFFF><quest><#FF5555>' not found."
player-only: "<prefix> <#FF5555>This command can only be used by players."
config-reloaded: "<prefix> <gradient:#55FFFF:#55FF55>Reload complete.</gradient> <#AAAAAA><count> quests loaded."

browser-config-error: "<prefix> <#FF5555>The quest browser is not configured. Ask an admin to check gui.yml."
browser-no-results: "<prefix> <#FF5555>No quests match your filters."
browser-no-results-hint: "<prefix> <#AAAAAA>Adjust the filters to widen your search."
browser-empty: "<prefix> <#AAAAAA>No quests are available."
browser-paper-error: "<prefix> <#FF5555>Could not create the quest paper. Try again or ask an admin."

# ════════════════════════════════════════════════════════════════════════════
# QUEST RECEIVING & ACTIVATION
# ════════════════════════════════════════════════════════════════════════════

# Quest received (active)
quest-received: "<prefix> <#55FF55>✓ <gradient:#55FF55:#55FFFF>New Quest:</gradient> <#FFFFFF><quest><#55FF55>."

# Quest queued (behind active quest)
quest-received-queued: "<prefix> <#FFD700>📋 Quest queued: <#FFFFFF><quest><#FFD700>. It will activate after your current quest."

# Quest replacement
quest-received-replaced: "<prefix> <#55FF55>New Quest: <#FFFFFF><quest> <#AAAAAA>(replaced previous)."

# Already has this quest
quest-already-active: "<prefix> <#FF5555>You already have this quest active."

# ════════════════════════════════════════════════════════════════════════════
# QUEST INTERACTION (Right-Click Paper)
# ════════════════════════════════════════════════════════════════════════════

# Progress check (incomplete quest)
quest-progress-display: |
  <prefix> <gradient:#555555:#333333><st>━━━━━━━━━━━━━━━━━━━━━━</st></gradient>
  <gradient:#FFD700:#FFAA00>Quest:</gradient> <#FFFFFF><quest>
  <objective>
  <prefix> <gradient:#555555:#333333><st>━━━━━━━━━━━━━━━━━━━━━━</st></gradient>

# Completion (redeeming rewards)
quest-completion-redeemed: |
  <prefix> <gradient:#55FF55:#00FF88><st>━━━━━━━━━━━━━━━━━━━━━━</st></gradient>
  <#55FF55>✓ <gradient:#55FF55:#55FFFF>Quest Complete:</gradient> <#FFFFFF><quest>
  <gradient:#FFD700:#FFAA00>Rewards claimed:</gradient>
  <quest_rewards>
  <prefix> <gradient:#55FF55:#00FF88><st>━━━━━━━━━━━━━━━━━━━━━━</st></gradient>

# Already completed
quest-already-redeemed: "<prefix> <#AAAAAA>This quest has already been completed."

# ════════════════════════════════════════════════════════════════════════════
# QUEST OWNERSHIP (Lock-to-Player System)
# ════════════════════════════════════════════════════════════════════════════
# When lock-to-player: true, only the bound player can pick the paper up.

quest-not-yours: "<prefix> <#FF5555>⚠ This quest is bound to another player."
quest-locked-to-other: "<prefix> <#FF5555>This quest belongs to <#FFFFFF><player><#FF5555>."
quest-bound-to-you: "<prefix> <#55FF55>✓ Quest '<#FFFFFF><quest><#55FF55>' is now bound to you."
quest-activated: "<prefix> <#FFD700>Quest '<#FFFFFF><quest><#FFD700>' is now active."
quest-dropped: "<prefix> <#FFAA00>▶ Dropped '<#FFFFFF><quest><#FFAA00>'. Progress is saved. Another player can pick it up."
quest-picked-up: "<prefix> <#55FF55>✓ You picked up a quest: '<#FFFFFF><quest><#55FF55>'!"
quest-stored-in-container: "<prefix> <#FFAA00>▶ You stored '<#FFFFFF><quest><#FFAA00>' in a container. Quest tracking paused until you pick it up again."
quest-completed-pickup: "<prefix> <#FFD700>★ You picked up a completed quest: '<#FFFFFF><quest><#FFD700>'! Right-click to claim rewards."
quest-cannot-place-workstation: "<prefix> <#FF5555>✗ Quest papers cannot be moved into crafting/workstation menus."

# ════════════════════════════════════════════════════════════════════════════
# PERMISSION SYSTEM
# ════════════════════════════════════════════════════════════════════════════

quest-no-permission: "<prefix> <#FF5555>You don't have permission for this quest."
quest-give-no-permission: "<prefix> <#FF5555>Player <#FFFFFF><player> <#FF5555>lacks permission for quest '<#FFFFFF><quest><#FF5555>'."
quest-requires-permission: "<prefix> <#FF5555>Requires permission: <#FFFFFF><permission><#FF5555>."

# ════════════════════════════════════════════════════════════════════════════
# QUEST CONDITIONS & REQUIREMENTS
# ════════════════════════════════════════════════════════════════════════════

# ════════════════════════════════════════════════════════════════════════════
# QUEST LOCK/UNLOCK SYSTEM
# ════════════════════════════════════════════════════════════════════════════

quest-locked-lore:
  - "<gradient:#FF5555:#AA0000:#FF5555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
  - "<gradient:#FF5555:#FF8888><bold>Locked</bold></gradient>"
  - ""
  - "<#888888>Pay the cost or meet the requirements"
  - "<#888888>to start this quest."
  - ""
  - "<gradient:#FFD700:#FFAA00>Right-click to start</gradient>"
  - ""
  - "<#666666>Requirements"
  - "<requirements>"
  - ""
  - "<gradient:#FF5555:#AA0000:#FF5555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"

quest-unlocked: "<prefix> <#55FF55>✓ <gradient:#55FF55:#55FFFF>You can start this quest now.</gradient>"
quest-already-unlocked: "<prefix> <#AAAAAA>You already meet the requirements for this quest."
quest-unlock-failed: "<prefix> <#FF5555>✗ Cannot start quest: <#FFFFFF><reason><#FF5555>."

# ════════════════════════════════════════════════════════════════════════════
# PROGRESS DISPLAY SYSTEM
# ════════════════════════════════════════════════════════════════════════════
# Configured in config.yml: progress-display.mode

# Chat mode (interval-based)
quest-progress-updated: "<prefix> <#FFD700><objective><#AAAAAA>: <#55FF55><progress><#AAAAAA>/<#55FF55><amount> <#AAAAAA>[<#55FF55>+1<#AAAAAA>]"

# Actionbar mode (compact, above hotbar)
quest-progress-actionbar: "<#FFFFFF><quest><#AAAAAA>: <#55FF55><progress><#AAAAAA>/<#55FF55><amount> <#555555>• <#FFD700><objective>"

# Bossbar mode (top of screen)
quest-progress-bossbar: "<#FFFFFF><quest><#AAAAAA>: <#55FF55><progress><#AAAAAA>/<#55FF55><amount> <#555555>• <#FFD700><objective>"

# Completion notification
quest-complete: "<prefix> <#55FF55>✓ <gradient:#55FF55:#55FFFF>Quest Complete:</gradient> <#FFFFFF><quest><#55FF55>!"

# Quest claimable 
quest-claimable: "<prefix> <#55FF55>✓ <gradient:#55FF55:#55FFFF>Quest Complete!</gradient> '<#FFFFFF><quest><#55FF55>' <#FFD700>Right-click to claim rewards."

# ════════════════════════════════════════════════════════════════════════════
# MILESTONE NOTIFICATIONS
# ════════════════════════════════════════════════════════════════════════════

quest-milestone: "<prefix> <gradient:#FFAA00:#FFD700>★ Milestone:</gradient> <#FFFFFF><quest><#AAAAAA>: <gradient:#FFAA00:#FFD700><milestone>% complete</gradient>"

# ════════════════════════════════════════════════════════════════════════════
# REWARD CHANCES
# ════════════════════════════════════════════════════════════════════════════

reward-chance-failed: "<#AAAAAA><italic>(Some rewards not received due to chance.)</italic>"
reward-claim-failed: "<prefix> <#FF5555><bold>✗</bold> <#FF5555>Could not claim rewards for <#FFFFFF><quest><#FF5555>. Clear inventory space and try again."

usage-npc-link: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq npc link <npc-id|name> <quest-id> [message]"
usage-npc: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq npc <link|broker|unbroker|brokers> ..."
usage-npc-broker: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq npc broker <npc-id|name> [message]"
usage-npc-unbroker: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq npc unbroker <npc-id|name>"
npc-link-success: "<prefix> <#55FF55>Linked NPC <#FFFFFF><npc> <#55FF55>to quest <#FFFFFF><quest><#55FF55> in quests.yml."
npc-link-citizens-disabled: "<prefix> <#FF5555>Citizens integration is not available. Install Citizens and set integrations.citizens: true."
npc-link-is-broker: "<prefix> <#FF5555><npc> <#FF5555>already hands out random contracts. Run <#FFFFFF>/sq npc unbroker <npc> <#FF5555>before linking a fixed quest."
npc-broker-success: "<prefix> <#55FF55><npc> <#55FF55>now hands out random contracts (<#FFFFFF><count>/<max><#55FF55>)."
npc-broker-message-set: "<prefix> <#AAAAAA>Greeting saved for <#FFFFFF><npc><#AAAAAA>."
npc-broker-full: "<prefix> <#FF5555>You already have <#FFFFFF><max> <#FF5555>contract NPCs. Raise max-broker-npcs in contract-request.yml, or remove one with /sq npc unbroker."
npc-broker-already: "<prefix> <#FF5555><npc> <#FF5555>is already a contract NPC."
npc-broker-fixed-linked: "<prefix> <#FF5555><npc> <#FF5555>already gives a fixed quest. Unlink that quest before making it a contract NPC."
npc-unbroker-success: "<prefix> <#55FF55><npc> <#55FF55>no longer hands out random contracts."
npc-unbroker-missing: "<prefix> <#FF5555><npc> <#FF5555>is not a contract NPC."
npc-brokers-header: "<prefix> <#55FF55>Contract NPCs <#FFFFFF>(<count>/<max>)<#55FF55>:"
npc-brokers-empty: "<prefix> <#AAAAAA>None yet. Use <#FFFFFF>/sq npc broker <npc-id|name><#AAAAAA>."
npc-brokers-entry: "  <#FFFFFF>• <npc>"

contract-request-disabled: "<prefix> <#FF5555>Random contracts are turned off on this server."
contract-request-generator-unavailable: "<prefix> <#FF5555>Random contracts need the quest generator enabled. Check random-generator.yml."
contract-request-channel-disabled: "<prefix> <#FF5555>You cannot request a contract this way right now."
contract-request-cooldown: "<prefix> <#FF5555>Wait <#FFFFFF><remaining>s <#FF5555>before taking another contract."
contract-request-limit-reached: "<prefix> <#FF5555>You already have <#FFFFFF><limit> <#FF5555>active contract(s). Finish or drop one first."
contract-request-cannot-afford: "<prefix> <#FF5555>You need <#FFFFFF><cost> <#FF5555>to take this contract."
contract-request-no-economy: "<prefix> <#FF5555>This contract costs money, but no economy plugin is hooked. Install Vault and an economy plugin."
contract-request-generation-failed: "<prefix> <#FF5555>Could not create a contract. Try again in a moment."
contract-request-delivery-failed: "<prefix> <#FF5555>Could not give you the contract paper. Clear inventory space and try again."
contract-request-invalid-difficulty: "<prefix> <#FF5555>That difficulty is not available here: <#FFFFFF><difficulty>"
contract-request-pick-difficulty: "<prefix> <#FF5555>Select a difficulty first."
contract-request-no-difficulties: "<prefix> <#FF5555>No difficulties are available for contracts right now."
contract-request-success: "<prefix> <#55FF55>You received a contract: <#FFFFFF><quest>"
contract-request-fee-paid: "<prefix> <#AAAAAA>You paid <#FFFFFF><cost><#AAAAAA>."

usage-denizen-signal: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq denizen signal <script> [player]"
denizen-disabled: "<prefix> <#FF5555>Denizen integration is not available."
denizen-signal-success: "<prefix> <#55FF55>Signaled Denizen script <#FFFFFF><script> <#55FF55>for <#FFFFFF><player><#55FF55>."
reward-chance-received: "<#55FF55>✓ Reward received."

# ════════════════════════════════════════════════════════════════════════════
# MULTI-OBJECTIVE SYSTEM
# ════════════════════════════════════════════════════════════════════════════
objective-progress: "<#AAAAAA>Progress: <#FFD700><progress>"

# Single objective completed
objective-complete: "<#55FF55>✓ Objective complete."

# All objectives completed (quest ready to redeem)
all-objectives-complete: "<#55FF55>✓ Quest complete! <#AAAAAA>Right-click to claim rewards."

# Objective-specific messages
objective-craft-progress: "<#AAAAAA>Crafted: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><item>"
objective-craft-complete: "<#55FF55>✓ Crafting objective complete."
objective-smelt-progress: "<#AAAAAA>Smelted: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><item>"
objective-smelt-complete: "<#55FF55>✓ Smelting objective complete."
objective-fish-progress: "<#AAAAAA>Caught: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><item>"
objective-fish-complete: "<#55FF55>✓ Fishing objective complete."
objective-enchant-progress: "<#AAAAAA>Enchanted: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><item>"
objective-enchant-complete: "<#55FF55>✓ Enchanting objective complete."
objective-consume-progress: "<#AAAAAA>Consumed: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><item>"
objective-consume-complete: "<#55FF55>✓ Consumption objective complete."
objective-tame-progress: "<#AAAAAA>Tamed: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><entity>"
objective-tame-complete: "<#55FF55>✓ Taming objective complete."
objective-trade-progress: "<#AAAAAA>Traded: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><item>"
objective-trade-complete: "<#55FF55>✓ Trading objective complete."
objective-brew-progress: "<#AAAAAA>Brewed: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><item>"
objective-brew-complete: "<#55FF55>✓ Brewing objective complete."
objective-shear-progress: "<#AAAAAA>Sheared: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><entity>"
objective-shear-complete: "<#55FF55>✓ Shearing objective complete."
objective-sleep-progress: "<#AAAAAA>Slept: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>times"
objective-sleep-complete: "<#55FF55>✓ Sleeping objective complete."
objective-heal-progress: "<#AAAAAA>Healed: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>HP"
objective-heal-complete: "<#55FF55>✓ Healing objective complete."
objective-drop-progress: "<#AAAAAA>Dropped: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA><item>"
objective-drop-complete: "<#55FF55>✓ Dropping objective complete."
objective-damage-progress: "<#AAAAAA>Dealt: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>damage"
objective-damage-complete: "<#55FF55>✓ Damage objective complete."
objective-death-progress: "<#AAAAAA>Died: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>times"
objective-death-complete: "<#55FF55>✓ Death objective complete."
objective-reachlevel-progress: "<#AAAAAA>Level: <#FFD700><progress><#AAAAAA>/<#FFD700><amount>"
objective-reachlevel-complete: "<#55FF55>✓ Level objective complete."
objective-gainlevel-progress: "<#AAAAAA>Gained: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>levels"
objective-gainlevel-complete: "<#55FF55>✓ Level gain objective complete."
objective-move-progress: "<#AAAAAA>Traveled: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>blocks"
objective-move-complete: "<#55FF55>✓ Movement objective complete."
objective-jump-progress: "<#AAAAAA>Jumped: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>times"
objective-jump-complete: "<#55FF55>✓ Jumping objective complete."
objective-chat-progress: "<#AAAAAA>Sent: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>messages"
objective-chat-complete: "<#55FF55>✓ Chat objective complete."
objective-interact-progress: "<#AAAAAA>Interacted: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>times"
objective-interact-complete: "<#55FF55>✓ Interaction objective complete."
objective-bowshoot-progress: "<#AAAAAA>Shot: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>arrows"
objective-bowshoot-complete: "<#55FF55>✓ Bow shooting objective complete."
objective-projectile-progress: "<#AAAAAA>Launched: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>projectiles"
objective-projectile-complete: "<#55FF55>✓ Projectile objective complete."
objective-firework-progress: "<#AAAAAA>Launched: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>fireworks"
objective-firework-complete: "<#55FF55>✓ Firework objective complete."
objective-vehicle-progress: "<#AAAAAA>Traveled: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#AAAAAA>blocks"
objective-vehicle-complete: "<#55FF55>✓ Vehicle travel objective complete."
objective-killmythicmob-progress: "<#AAAAAA>Killed: <#FFD700><progress><#AAAAAA>/<#FFD700><amount> <#FFFFFF><name>"
objective-killmythicmob-complete: "<#55FF55>✓ MythicMob objective complete."

# ════════════════════════════════════════════════════════════════════════════
# SEQUENTIAL QUEST MESSAGES
# ════════════════════════════════════════════════════════════════════════════

objective-sequential-progress: "<#AAAAAA>Current Step: <#FFD700><objective> <#AAAAAA>(<#55FF55><progress><#AAAAAA>/<#55FF55><amount><#AAAAAA>)"
objective-sequential-complete: "<#55FF55>✓ Step complete. <#FFD700>Continue with the next objective."
all-sequential-complete: "<#55FF55>✓ All steps complete! <#AAAAAA>Right-click to claim rewards."

# ════════════════════════════════════════════════════════════════════════════
# COMMAND SYSTEM
# ════════════════════════════════════════════════════════════════════════════

# Usage errors
usage-main: "<prefix> <#AAAAAA>Unknown command. Use <#55FF55>/sq help <#AAAAAA>for a list of commands."
usage-debug: "<prefix> <#AAAAAA>Usage: <#55FF55>/sq debug toggle"
usage-give: "<prefix> <#AAAAAA>Usage: <#55FF55>/sq give <player> <quest><#AAAAAA>."
usage-addreward: "<prefix> <#AAAAAA>Usage: <#55FF55>/sq addreward <quest> <type> [args...]<#AAAAAA>."
usage-removereward: "<prefix> <#AAAAAA>Usage: <#55FF55>/sq removereward <quest> <index><#AAAAAA>."
usage-listreward: "<prefix> <#AAAAAA>Usage: <#55FF55>/sq listreward <quest><#AAAAAA>."
invalid-page-number: "<prefix> <#FF5555>Invalid page number."

# ════════════════════════════════════════════════════════════════════════════
# HELP MENU
# ════════════════════════════════════════════════════════════════════════════
help-header: "<#AAAAAA><st>━━━━━━━</st> <gradient:#FFD700:#FF8C00>SoapsQuest Help</gradient> <#AAAAAA><st>━━━━━━━</st>"
help-footer: "<gradient:#FF8C00:#FFD700:#FF8C00><st>━━━━━━━━━━━━━━━━━━━━━━━━━</st></gradient>"
help-quest-command: "<#FFAA00>▶ <#FFD700>/sq browse <#555555>• <#AAAAAA>Open quest browser"
help-quest-list: "<#FFAA00>▶ <#FFD700>/sq list <#555555>• <#AAAAAA>View all quests"
help-generate-command: "<#FFAA00>▶ <#FFD700>/sq generate [type] [amount|count] [objective] [min] [max] [difficulty] [tier] [material] <#555555>• <#AAAAAA>Generate quest(s)"
help-give: "  <#55FF55>/sq give <player> <quest> <#AAAAAA>→ Give quest to player"
help-list: "  <#55FF55>/sq list [page] <#AAAAAA>→ List all quests (paginated)"
help-claim: "  <#55FF55>/sq claim <questId> <#AAAAAA>→ Claim a quest from /sq list (click or command)"
help-browse: "  <#55FF55>/sq browse <#AAAAAA>→ Open quest browser GUI"
help-editor: "  <#55FF55>/sq editor <#AAAAAA>→ Open quest editor GUI"
help-statistic: "  <#55FF55>/sq statistic [player] <#AAAAAA>→ View quest statistics"
help-leaderboard: ""
help-generate: "  <#55FF55>/sq generate [type] [amount|count] [objective] [min] [max] [difficulty] [tier] [material] <#AAAAAA>→ Generate random quest(s)"
help-contract: "  <#55FF55>/sq contract [difficulty] <#AAAAAA>→ Open the contract board (Premium)"
help-reload: "  <#55FF55>/sq reload <#AAAAAA>→ Reload configuration"
help-listreward: "  <#55FF55>/sq listreward <quest> <#AAAAAA>→ List quest rewards"
help-addreward: "  <#55FF55>/sq addreward <quest> <type> <#AAAAAA>→ Add reward"
help-removereward: "  <#55FF55>/sq removereward <quest> <index> <#AAAAAA>→ Remove reward"
help-debug: "  <#55FF55>/sq debug toggle <#AAAAAA>→ Toggle debug logging"
help-remove: "  <#55FF55>/sq remove <questId> <#AAAAAA>→ Remove quest from config"
help-copy: "  <#55FF55>/sq copy <sourceId> <newId> <#AAAAAA>→ Copy a quest to a new ID"
help-reset: "  <#55FF55>/sq reset <player> <questId> <#AAAAAA>→ Reset a player's quest progress"
help-complete: "  <#55FF55>/sq complete <player> <questId> <#AAAAAA>→ Force-complete a player's quest"
help-active: "  <#55FF55>/sq active [player] <#AAAAAA>→ View active quest papers GUI"
help-sigils: "  <#55FF55>/sq sigils <action> <player> [amount] <#AAAAAA>→ Manage SoapsQuest Sigils"
help-drop: "  <#55FF55>/sq drop <questId> ... <#AAAAAA>→ Alias for spawnpaper (admin world drop)"
help-spawnpaper: "  <#55FF55>/sq spawnpaper <questId> ... <#AAAAAA>→ Spawn a fresh unbound quest paper in the world"
help-npc: "  <#55FF55>/sq npc <link|broker|unbroker|brokers> ... <#AAAAAA>→ Citizens NPC quest/contract setup"
help-denizen: "  <#55FF55>/sq denizen signal <script> [player] <#AAAAAA>→ Trigger Denizen script progress"
help-info: "  <#55FF55>/sq info <#AAAAAA>→ Show plugin information"
help-help: "  <#55FF55>/sq help <#AAAAAA>→ Show this menu"

# Plugin info
info-header-premium: "<prefix> <gradient:#FF8C00:#FFD700><bold>SoapsQuest Premium</bold></gradient>"
info-header-free: "<prefix> <gradient:#55FFFF:#55FF55><bold>SoapsQuest</bold></gradient> <#AAAAAA>(Free)"
info-version: "  <#AAAAAA>Version: <#FFFFFF><version>"
info-description: "  <#AAAAAA>Physical quest papers · <#FFFFFF>43+ <#AAAAAA>vanilla / <#FFFFFF>61 <#AAAAAA>with integrations"
info-features-premium: "  <#55FF55>✓ <#AAAAAA>Generator · dailies · loot · editor · sigils · drop"
info-features-free: "  <#55FF55>✓ <#AAAAAA>Quest papers · browser · tiers · conditions · sigil rewards"
info-premium-hint: "  <#AAAAAA>Premium adds the generator, loot, dailies, and editor: <#FFFFFF>www.SoapsUniverse.com"

# Quest list
quest-list-header: "<prefix> <gradient:#FFD700:#FFAA00><bold>Available Quests</bold></gradient> <#AAAAAA>(Page <#FFD700><page><#AAAAAA>/<#FFD700><total_pages><#AAAAAA>)"
quest-list-entry: "  <#555555>• <tier_prefix> <tier_color><quest> <#555555>| <#AAAAAA><type> <#555555>[<difficulty>]"
quest-list-empty: "<prefix> <#AAAAAA>No quests configured yet."
quest-list-regular-header: "<gradient:#FFD700:#FFAA00><bold>Regular Quests</bold></gradient>"
quest-list-generated-header: "<gradient:#FF55FF:#AA55FF><bold>Generated Quests</bold></gradient>"
quest-list-navigation: "<#AAAAAA>Page <#FFD700><page><#AAAAAA>/<#FFD700><total_pages><#AAAAAA><previous><next>"

# ════════════════════════════════════════════════════════════════════════════
# REWARD MANAGEMENT
# ════════════════════════════════════════════════════════════════════════════

reward-added: "<prefix> <#55FF55>✓ Reward added to quest '<#FFFFFF><quest><#55FF55>'."
reward-removed: "<prefix> <#55FF55>✓ Reward removed from quest '<#FFFFFF><quest><#55FF55>'."
reward-index-invalid: "<prefix> <#FF5555>✗ Invalid reward index."
must-hold-item: "<prefix> <#FF5555>✗ Hold an item to add as reward."

# Quest give feedback (to sender)
quest-give-sender-activated: "<prefix> <#55FF55>✓ Quest given to <#FFFFFF><player><#55FF55>: <#FFFFFF><quest><#55FF55>."
quest-give-sender-queued: "<prefix> <#FFD700>📋 Quest queued for <#FFFFFF><player><#FFD700>: <#FFFFFF><quest><#FFD700>."
quest-give-sender-replaced: "<prefix> <#55FF55>✓ Quest given to <#FFFFFF><player><#55FF55>: <#FFFFFF><quest> <#AAAAAA>(replaced previous)."
quest-give-sender-already-active: "<prefix> <#FF5555>Player <#FFFFFF><player> <#FF5555>already has this quest active."

# Reward listing
rewards-header: "<prefix> <gradient:#FFD700:#FFAA00>━━━ Rewards for '<#FFFFFF><quest><gradient:#FFD700:#FFAA00>' ━━━</gradient>"
rewards-empty: "<prefix> <#AAAAAA>No rewards configured for quest '<#FFFFFF><quest><#AAAAAA>'."

# ════════════════════════════════════════════════════════════════════════════
# QUEST PAPER TEMPLATES
# ════════════════════════════════════════════════════════════════════════════
# Default lore when quest doesn't specify custom lore
# Placeholders: <quest> <objective> <progress> <amount> <progress_unit> <type> <tier> <difficulty>

quest-default-lore:
  - "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
  - "<#88CCFF><italic><objective></italic>"
  - "<#666666><type>  <#555555>·  <#AAAAAA><tier>  <#555555>·  <#AAAAAA><difficulty>"
  - ""
  - "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><progress><#888888>/<amount><progress_unit>"
  - ""
  - "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"

# Internal lore elements (Paper MiniMessage / hex gradients)
paper-lore-claimable: "<gradient:#55FF55:#AAFF55><bold>[Claimable]</bold></gradient>"
paper-lore-active: "<gradient:#55FF55:#88FF88>[Active]</gradient>"
paper-lore-queued: "<gradient:#FFAA00:#FFCC66>[Queued]</gradient>"
paper-lore-redeemed: "<gradient:#55FF55:#88FFAA>[Redeemed]</gradient>"
paper-lore-complete: "<gradient:#55FF55:#55FFFF><bold>✓ Complete</bold></gradient>"
paper-lore-claim-hint: "<gradient:#FFD700:#FFAA00>Right-click to claim</gradient>"
paper-lore-timer: "<gradient:#FFD700:#FFAA00>⏱</gradient> <#AAAAAA><remaining>"
paper-lore-timer-waiting: "<gradient:#FFD700:#FFAA00>⏱ Right-click to start timer</gradient>"
paper-lore-timer-overtime: "<gradient:#FF5555:#FF8888>⏱ Overtime</gradient> <#888888>reduced rewards"
paper-name-timer: "<#FFFFFF><quest> <#888888>[<#FFD700><remaining><#888888>]"
paper-name-timer-waiting: "<#FFFFFF><quest> <#888888>[<#FFAA00>Start timer<#888888>]"
paper-name-timer-overtime: "<#FFFFFF><quest> <#888888>[<#FF5555>Overtime<#888888>]"
timer-hud-actionbar: "<#FFD700>⏱ <#FFFFFF><quest><#AAAAAA>: <#FFD700><remaining>"
timer-hud-bossbar: "<#FFFFFF><quest> <#888888>(<#FFD700><remaining><#888888>)"
timer-hud-chat: "<prefix> <#FFAA00>⏱ <#FFFFFF><quest><#AAAAAA>: <#FFD700><remaining> <#AAAAAA>left"

# Timed quests
quest-timer-started: "<prefix> <#55FF55>Timer started for <#FFFFFF><quest><#55FF55>. You have <#FFFFFF><minutes> <#55FF55>minute(s)."
quest-timer-not-started: "<prefix> <#FFAA00>Right-click the paper to start the timer for <#FFFFFF><quest><#FFAA00> before you can progress."
quest-timer-warning: "<prefix> <#FFAA00>⚠ <#FFFFFF><quest> <#FFAA00>has <#FFFFFF><remaining> <#FFAA00>left!"
quest-timer-overtime: "<prefix> <#FF5555>Time is up for <#FFFFFF><quest><#FF5555>. You can still finish, but rewards are reduced."
quest-timer-consolation: "<prefix> <#FFAA00>Time ran out for <#FFFFFF><quest><#FFAA00>. Consolation rewards granted."
quest-timer-consolation-failed: "<prefix> <#FF5555>Time ran out for <#FFFFFF><quest><#FF5555>, but consolation rewards could not be granted. Will retry."
quest-timer-expired-fail: "<prefix> <#FF5555>Time ran out for <#FFFFFF><quest><#FF5555>. The quest has failed."

# ════════════════════════════════════════════════════════════════════════════
# RANDOM QUEST GENERATOR
# ════════════════════════════════════════════════════════════════════════════

random-generator-disabled: "<prefix> <#FF5555>Random quest generation is disabled."
random-generator-config-missing: "<prefix> <#FFAA00>random-generator.yml is missing or invalid. Ensure settings are under <#FFFFFF>random-generator:<#FFAA00> with <#FFFFFF>enabled: true<#FFAA00>. Run <#FFFFFF>/sq reload<#FFAA00> after fixing."
random-generator-success: "<prefix> <#55FF55>✓ Quest generated: <#FFFFFF><quest><#55FF55>."
random-generator-batch-success: "<prefix> <#55FF55>✓ Generated <#FFFFFF><count> <#55FF55><type> quest(s). <#AAAAAA>(<#FFFFFF><failed> <#AAAAAA>failed)"
random-generator-batch-complete: "<prefix> <#55FF55>✓ Successfully generated <#FFFFFF><count> <#55FF55><type> quest(s)."
random-generator-batch-too-many: "<prefix> <#FF5555>Cannot generate more than <#FFFFFF><max> <#FF5555>quests at once."
random-generator-batch-invalid-count: "<prefix> <#FF5555>Invalid count. Must be a number between <#FFFFFF>1 <#FF5555>and <#FFFFFF><max><#FF5555>."
random-generator-error: "<prefix> <#FF5555>✗ Failed to generate quest."
random-generator-filters-applied: "<prefix> <#AAAAAA>Filters: <#FFFFFF><filters>"
random-generator-invalid-objective: "<prefix> <#FF5555>Unknown objective or template: <#FFFFFF><objective><#FF5555>."
random-generator-usage: "<prefix> <#AAAAAA>Usage: <#FFFFFF>/sq generate [type] [amount|count] [objective] [min] [max] [difficulty] [tier] [material]<#AAAAAA>. Use <#FFFFFF>-<#AAAAAA> for a random slot."
random-generator-template-single-only: "<prefix> <#FF5555>Template <#FFFFFF><objective> <#FF5555>can only be used with <#FFFFFF>single<#FF5555> quests."
random-generator-invalid-min-amount: "<prefix> <#FF5555>Invalid min amount: <#FFFFFF><value><#FF5555>."
random-generator-invalid-max-amount: "<prefix> <#FF5555>Invalid max amount: <#FFFFFF><value><#FF5555>."
random-generator-invalid-amount-range: "<prefix> <#FF5555>Min amount (<#FFFFFF><min><#FF5555>) cannot exceed max (<#FFFFFF><max><#FF5555>)."
random-generator-invalid-difficulty: "<prefix> <#FF5555>Unknown difficulty: <#FFFFFF><difficulty><#FF5555>."
random-generator-invalid-tier: "<prefix> <#FF5555>Unknown tier: <#FFFFFF><tier><#FF5555>."
random-generator-invalid-material: "<prefix> <#FF5555>Unknown quest material: <#FFFFFF><material><#FF5555>."
random-generator-too-many-args: "<prefix> <#FF5555>Too many generate arguments."
random-generator-unrecognized-arg: "<prefix> <#FF5555>Unrecognized argument: <#FFFFFF><arg><#FF5555>."
random-generator-cooldown: "<prefix> <#FF5555>Wait <#FFFFFF><remaining>s <#FF5555>before generating another quest."
random-generator-load-failed: "<prefix> <#FF5555>The quest was generated but could not be loaded. Check the server logs."
random-generator-give-hint: "<prefix> <#AAAAAA>Use <#FFFFFF>/sq give <player> <quest> <#AAAAAA>to give this quest to a player."
random-generator-reload-hint: "<prefix> <#FFAA00>Run <#FFFFFF>/sq reload <#FFAA00>to update lore and rewards on existing papers."
random-generator-editor-hint: "<prefix> <#AAAAAA>Use <#FFFFFF>/sq editor <#AAAAAA>to browse and manage generated quests."

# ════════════════════════════════════════════════════════════════════════════
# STATISTICS SYSTEM
# ════════════════════════════════════════════════════════════════════════════

# Statistics Display
statistic-header: "<gradient:#FFAA00:#555555><st>━━━━</st></gradient> <gradient:#FFD700:#FF8C00>SoapsQuest Statistics</gradient> <#AAAAAA>for <#FFFFFF><player> <gradient:#555555:#FFAA00><st>━━━━</st></gradient>"
statistic-total: "<#AAAAAA>Total Quests Completed: <gradient:#55FF55:#55FFFF><total></gradient>"
statistic-rewards: "<#AAAAAA>Rewards Claimed: <gradient:#55FF55:#55FFFF><claimed></gradient>"
statistic-footer: "<gradient:#FFAA00:#555555:#FFAA00><st>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</st></gradient>"
statistic-no-data: "<prefix> <#AAAAAA>No statistics found for player '<#FFFFFF><player><#AAAAAA>'."
statistic-other-no-permission: "<prefix> <#FF5555>You don't have permission to view other players' statistics."

# ════════════════════════════════════════════════════════════════════════════
# RECURRING QUESTS (DAILY/WEEKLY)
# ════════════════════════════════════════════════════════════════════════════

# Reset notifications
recurring-quest-reset-daily: "<#55FF55>✓ <gradient:#55FF55:#00FF88>Daily quests have been reset. New quests are available!</gradient>"
recurring-quest-reset-weekly: "<#FFAA00>✓ <gradient:#FFAA00:#FF8C00>Weekly quests have been reset. New weekly quests are available.</gradient>"

# Title notifications (if using title mode)
recurring-quest-reset-daily-title: "<gradient:#55FF55:#00FF88><bold>Daily Quests Reset</bold></gradient>"
recurring-quest-reset-daily-subtitle: "<gradient:#AAAAAA:#CCCCCC>New quests are available</gradient>"
recurring-quest-reset-weekly-title: "<gradient:#FFAA00:#FF8C00><bold>Weekly Quests Reset</bold></gradient>"
recurring-quest-reset-weekly-subtitle: "<gradient:#AAAAAA:#CCCCCC>New weekly quests are available</gradient>"

# Quest received messages
recurring-quest-received-daily: "<prefix> <#55FF55>✓ Received <count> daily quest(s)."
recurring-quest-received-weekly: "<prefix> <#FFAA00>✓ Received <count> weekly quest(s)."
recurring-quest-daily-bonus: "<prefix> <#55FF55>★ Daily completion bonus claimed!"
recurring-quest-weekly-bonus: "<prefix> <#FFAA00>★ Weekly completion bonus claimed!"

# No eligible quests
recurring-quest-no-daily: "<prefix> <#AAAAAA>You have already received all available daily quests."
recurring-quest-no-weekly: "<prefix> <#AAAAAA>You have already received all available weekly quests."

# VIP required
recurring-quest-vip-required: "<prefix> <#FF5555>This recurring quest requires VIP access."

# Debug Mode Messages
debug-mode-enabled: "<prefix> <gradient:#55FFFF:#55FF55>Debug mode enabled.</gradient> <#AAAAAA>Console will now show detailed debug messages."
debug-mode-disabled: "<prefix> <gradient:#55FFFF:#55FF55>Debug mode disabled.</gradient> <#AAAAAA>Console debug messages are now hidden."

# ════════════════════════════════════════════════════════════════════════════
# QUEST TYPE LABELS
# ════════════════════════════════════════════════════════════════════════════

quest-type-sequential: "<gradient:#FFD700:#FFA500>Sequential</gradient> <#AAAAAA>(Complete in order)"
quest-type-single: "<gradient:#55FF55:#00FF55>Single</gradient> <#AAAAAA>(One objective)"
quest-type-multi: "<gradient:#55FFFF:#5599FF>Multi</gradient> <#AAAAAA>(Any order)"

# Objective list headers
objectives-header-sequential: "<gradient:#FFD700:#FFA500>Objectives</gradient> <#AAAAAA>(Complete in order):"
objectives-header-multi: "<gradient:#55FFFF:#5599FF>Objectives</gradient> <#AAAAAA>(Any order):"
objectives-divider: "<#AAAAAA><st>                    </st>"

# ════════════════════════════════════════════════════════════════════════════
# QUEST REWARD MESSAGES (Quest as Reward)
# ════════════════════════════════════════════════════════════════════════════

reward-quest-failed-unknown: "<prefix> <#FF5555><bold>✗</bold> <#FF5555>Reward failed: <#AAAAAA>Unknown quest <#FFFFFF><quest>"
reward-quest-failed-creation: "<prefix> <#FF5555><bold>✗</bold> <#FF5555>Reward failed: <#AAAAAA>Could not create quest paper"
reward-quest-inventory-full: "<prefix> <#FFD700><bold>⚠</bold> <#AAAAAA>Your inventory is full! Quest paper dropped at your feet."
reward-quest-received: "<prefix> <#55FF55><bold>✓</bold> <#55FF55>You received a new quest: <#FFFFFF><quest>"

# ════════════════════════════════════════════════════════════════════════════
# ADMIN / COMMAND MESSAGES
# ════════════════════════════════════════════════════════════════════════════

give-instance-failed: "<prefix> <#FF5555>Failed to create quest instance."
reload-aborted-header: "<prefix> <#FF5555>Reload aborted! Found <#FFFFFF><count> <#FF5555>error(s) in quests.yml:"
reload-aborted-item: "  <#FF5555>• <#AAAAAA><error>"
reload-aborted-footer: "<#AAAAAA>Fix the errors above and try again. Old config is still active."
reload-syntax-header: "<prefix> <#FF5555>Reload aborted! quests.yml has syntax errors:"
reload-syntax-item: "  <#FF5555>• <#AAAAAA><error>"
reload-syntax-footer: "<#AAAAAA>Fix the YAML syntax and try again. Old config is still active."
usage-remove: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq remove <questId>"
remove-success: "<prefix> <#55FF55>Quest '<#FFFFFF><quest><#55FF55>' has been removed from config."
remove-failed: "<prefix> <#FF5555>Failed to remove quest '<#FFFFFF><quest><#FF5555>'!"
usage-copy: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq copy <sourceQuestId> <newQuestId>"
copy-exists: "<prefix> <#FF5555>A quest with ID '<#FFFFFF><quest><#FF5555>' already exists."
copy-success: "<prefix> <#55FF55>Quest '<#FFFFFF><source><#55FF55>' copied to '<#FFFFFF><quest><#55FF55>'!"
copy-editor-hint: "<#AAAAAA>Use /sq editor <quest> to edit the copy."
copy-failed: "<prefix> <#FF5555>Failed to copy quest. Check server logs."
usage-reset: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq reset <player> <questId>"
reset-success: "<prefix> <#55FF55>Reset <#FFFFFF><player><#55FF55>'s progress for quest '<#FFFFFF><quest><#55FF55>'."
reset-not-found: "<prefix> <#FF5555><#FFFFFF><player> <#FF5555>does not have an active paper for '<#FFFFFF><quest><#FF5555>'."
usage-complete: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq complete <player> <questId>"
complete-notify-target: "<prefix> <#55FF55>An admin has completed quest '<#FFFFFF><quest><#55FF55>' for you!"
complete-success: "<prefix> <#55FF55>Force-completed '<#FFFFFF><quest><#55FF55>' for <#FFFFFF><player><#55FF55>."
complete-not-found: "<prefix> <#FF5555><#FFFFFF><player> <#FF5555>does not have an active paper for '<#FFFFFF><quest><#FF5555>'."
sigils-unavailable: "<prefix> <#FF5555>Sigil manager is unavailable."
usage-sigils: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq sigils <give|take|set|reset|balance> <player> [amount]"
sigils-balance: "<prefix> <#55FF55><player> has <#FFFFFF><amount> <#55FF55>sigils."
sigils-reset-success: "<prefix> <#55FF55>Reset sigils for <#FFFFFF><player><#55FF55>."
sigils-usage-amount: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq sigils <give|take|set> <player> <amount>"
sigils-invalid-amount: "<prefix> <#FF5555>Invalid amount: <#FFFFFF><amount>"
sigils-updated: "<prefix> <#55FF55>Sigils updated for <#FFFFFF><player><#55FF55>. New balance: <#FFFFFF><balance>"
sigils-unknown-action: "<prefix> <#FF5555>Unknown sigil action."
usage-spawnpaper: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq spawnpaper <questId> [x y z [world]] | /sq spawnpaper entity <entity|uuid> <questId>"
usage-spawnpaper-entity: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq spawnpaper entity <entity|uuid> <questId>"
usage-drop: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq drop <questId> ... <#AAAAAA>(alias for spawnpaper)"
usage-drop-entity: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq drop entity <entity|uuid> <questId> <#AAAAAA>(alias for spawnpaper)"
usage-claim: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq claim <questId>"
drop-entity-not-found: "<prefix> <#FF5555>Entity not found: <#FFFFFF><entity>"
drop-coords-invalid: "<prefix> <#FF5555>Coordinates must be numbers."
drop-console-world: "<prefix> <#FF5555>Console must specify a world: /sq drop <questId> <x> <y> <z> <world>"
drop-world-not-found: "<prefix> <#FF5555>World not found."
drop-console-coords: "<prefix> <#FF5555>Console must provide coordinates."
drop-success: "<prefix> <#55FF55>Spawned quest paper for '<#FFFFFF><quest><#55FF55>' at the target location."
spawnpaper-success: "<prefix> <#55FF55>Spawned quest paper for '<#FFFFFF><quest><#55FF55>' at the target location."
usage-progress: "<prefix> <#FF5555>Usage: <#FFFFFF>/sq progress [player]"
progress-header: "<prefix> <gradient:#FFD700:#FFAA00><bold>Quest progress</bold></gradient> <#AAAAAA>for <#FFFFFF><player>"
progress-entry: "  <#555555>• <#FFFFFF><quest> <#888888>(<status>)<#AAAAAA>: <#FFD700><progress>"
progress-empty: "<prefix> <#AAAAAA>No active quest papers for <#FFFFFF><player><#AAAAAA>."
help-progress: "  <#55FF55>/sq progress [player] <#AAAAAA>→ View quest progress in chat"

Still stuck? Ask about this page