Default Config Files
Last updated Sep 21, 2026
Default Config Files
Shipped defaults from SoapsQuest 1.0.5.
On first run, missing files are copied to plugins/SoapsQuest/.
Edit the server copies. Reload does not reset existing files to these defaults.
Reload: /sq reload. File roles and reload order: Configuration.
Premium-only files (daily.yml, random-generator.yml, contract-request.yml, quest-loot.yml) are created when the Premium JAR is used. Free installs ignore them until you upgrade.
File index
| File | Purpose |
|---|---|
config.yml |
Core settings, progress display, sounds, anti-cheat, performance |
quests.yml |
Quest definitions and showcase quests |
messages.yml |
Player-facing MiniMessage text |
gui.yml |
Browser, editor, and active quest menu layouts |
tiers.yml |
Rarity tiers (common through mythic) |
difficulties.yml |
Difficulty scaling multipliers |
daily.yml |
Daily and weekly recurring quest schedules (Premium) |
random-generator.yml |
Random quest generator templates and reward pools (Premium) |
contract-request.yml |
Random contracts from NPCs, commands, or the browser (Premium) |
quest-loot.yml |
Chest and mob quest paper drops (Premium) |
Data (runtime)
Created at runtime — not shipped as editable defaults:
| Path | Contents |
|---|---|
playerdata.yml |
Progress index when sharded; legacy single-file mode |
data/players/*.yml |
Per-player progress shards when data.per-player-files: true |
statistics.yml |
Historical completion stats |
sigils.yml |
Sigil balances |
generated.yml |
Generated quest IDs (Premium; created on first generate) |
config.yml
# ##############################################################
# # #
# # SoapsQuest #
# # #
# # Created by: AlternativeSoap #
# # Website: www.SoapsUniverse.com #
# # Support: https://discord.gg/mawAzwFq #
# # #
# ##############################################################
# ════════════════════════════════════════════════════════════════════════════
# SoapsQuest - Configuration
# Free & Premium share this file. Premium-only configs: random-generator.yml, daily.yml, quest-loot.yml, contract-request.yml
# Advanced quest system with 43+ vanilla objective types (61 with integrations)
#
# Related config files:
# difficulties.yml — Difficulty levels & multipliers
# tiers.yml — Rarity tiers & display
# daily.yml — Recurring quest schedules
# quests.yml — Quest definitions
# messages.yml — All plugin messages
# gui.yml — GUI layout & items
# random-generator.yml — Random quest generation settings
# contract-request.yml — Random contracts for players (NPC / command / browser)
# quest-loot.yml — Loot table configuration
# ════════════════════════════════════════════════════════════════════════════
# ════════════════════════════════════════════════════════════════════════════
# CORE SETTINGS
# ════════════════════════════════════════════════════════════════════════════
gui:
enabled: true # Master switch for all SoapsQuest inventory GUIs
debug: false # Enable verbose debug logging (/sq debug toggle or restart)
log-quest-completions: false # Log when players claim quest rewards to console
log-admin-actions: false # Log quest generation and editor saves to console
autosave-interval: 5 # Player progress save interval (minutes)
# Player progress storage: when true, each player is written to data/players/<uuid>.yml
data:
per-player-files: true
max-generation-retries: 5 # Max random quest generation attempts
generate-cooldown: 0 # Cooldown in seconds between /sq generate (0 = disabled)
max-batch-generate: 25 # Max quests per /sq generate [type] [count]
# Default values for new quests created via /sq editor
default-tier: common
default-difficulty: normal
# ════════════════════════════════════════════════════════════════════════════
# DATA CLEANUP
# Automatically removes stale playerdata.yml entries
# ════════════════════════════════════════════════════════════════════════════
data-cleanup:
enabled: true # Enable automatic data cleanup
remove-inactive-after-days: 90 # Remove data for players offline this long
cleanup-on-startup: true # Run cleanup when plugin loads
cleanup-on-save: true # Run cleanup on each autosave
# ════════════════════════════════════════════════════════════════════════════
# PERFORMANCE
# ════════════════════════════════════════════════════════════════════════════
performance:
async-processing-enabled: true # Enable async quest processing
batch-size: 50 # Operations per batch
processing-interval-ticks: 20 # Batch processing interval (ticks)
batch-save-enabled: true # Enable batch save optimization
batch-save-interval-ticks: 100 # Batch save interval (ticks)
# ════════════════════════════════════════════════════════════════════════════
# PROGRESS DISPLAY
# Modes: actionbar | chat | bossbar | none
# ════════════════════════════════════════════════════════════════════════════
progress-display:
mode: "actionbar" # actionbar = above hotbar, bossbar = top bar
interval: 5 # Chat mode: show every X updates
bossbar:
color: "GREEN"
style: "SEGMENTED_10"
duration: 5 # Seconds to display bossbar
# ════════════════════════════════════════════════════════════════════════════
# SOUNDS
# ════════════════════════════════════════════════════════════════════════════
# Milestone reached (e.g. 50%, 75%)
milestone-sound: "ENTITY_PLAYER_LEVELUP"
milestone-sound-volume: 1.0
milestone-sound-pitch: 1.0
# Quest completion (all objectives done)
completion-sound: "UI_TOAST_CHALLENGE_COMPLETE"
completion-sound-volume: 1.0
completion-sound-pitch: 1.0
# ════════════════════════════════════════════════════════════════════════════
# QUEST PAPER BEHAVIOR
# ════════════════════════════════════════════════════════════════════════════
# Q-drop releases the paper to the world (progress kept). Another player can pick it up and continue.
# Storing in a chest/ender chest/shulker only pauses it until picked up again.
# lock-to-player still blocks others from taking parked papers.
# Hoppers, dispensers, droppers, and similar cannot move quest papers.
# Prevent quest papers from being placed into crafting grids, anvils,
# grindstones, smithing tables, and other workstation slots.
prevent-workstation-placement: true
# Block objective anti-cheat (all on by default; set enabled: false to disable all).
anti-cheat:
enabled: true
break: true # break/harvest ignore player-placed blocks
place: true # place ignores re-placing after breaking your own block
collect: true # collect ignores drops from those breaks and items you dropped
creative: true # no break/place/harvest/collect progress in creative mode
# ════════════════════════════════════════════════════════════════════════════
# TIMED QUEST DISPLAY (global defaults for quests with timer: in quests.yml)
# ════════════════════════════════════════════════════════════════════════════
# paper-name: append countdown to the quest paper item name (in addition to lore).
# action-bar: live countdown while a timed quest is active in your queue.
# boss-bar: progress-style boss bar for the most urgent active timed quest.
# chat-reminder-seconds: 0 = off; otherwise sends chat reminders on that interval.
quest-timer-display:
paper-name: false
action-bar: true
boss-bar: false
chat-reminder-seconds: 0
# ════════════════════════════════════════════════════════════════════════════
# OPTIONAL PLUGIN INTEGRATIONS
# Soft-dependencies: Lands, Citizens, mcMMO, WorldGuard, Denizen (see plugin.yml).
# MythicMobs and PlaceholderAPI are detected automatically — no config entry needed.
#
# With auto-detect enabled (default), each integration turns on when its plugin is installed.
# Set an integration to false to force-disable it, or set auto-detect: false to opt in manually.
# ════════════════════════════════════════════════════════════════════════════
integrations:
auto-detect: true
# Optional per-plugin overrides (omit or set true to allow auto-detect):
# lands: false
# citizens: false
# mcmmo: false
# worldguard: false
# denizen: false
quests.yml
# ##############################################################
# # #
# # SoapsQuest #
# # #
# # Created by: AlternativeSoap #
# # Website: www.SoapsUniverse.com #
# # Support: https://discord.gg/mawAzwFq #
# # #
# ##############################################################
# ╔════════════════════════════════════════════════════════════════════════════╗
# ║ SoapsQuest - Quests ║
# ║ Define your server's quests here. Each quest needs a unique ID, ║
# ║ at least one objective, and at least one reward. ║
# ║ Commands: /sq give <player> <quest> | /sq list | /sq browse ║
# ╚════════════════════════════════════════════════════════════════════════════╝
#
# ════════════════════════════════════════════════════════════════════════════
# QUEST STRUCTURE
# ════════════════════════════════════════════════════════════════════════════
#
# quest_id: # Unique internal ID (lowercase, underscores)
# display: "<#55FF55>Quest Name" # Display name (MiniMessage or legacy colors)
# material: PAPER # Optional: Item material for the quest paper
# tier: common # Optional: Tier from config.yml (common/uncommon/rare/epic/legendary)
# difficulty: easy # Optional: Difficulty from config.yml (easy/normal/hard/expert/nightmare)
# sequential: false # Optional: true = objectives must be done in order
# milestones: [25, 50, 75] # Optional: Progress % notifications
# lock-to-player: false # Optional: true = quest binds to first player
# lore: # Optional: Custom item lore (list of strings)
# - "<#AAAAAA>Description line 1"
# - "<#AAAAAA>Description line 2"
# quest_paper: # Optional: Custom quest paper appearance
# material: BOOK
# name: "<#FFD700>Custom Name"
# glowing: false
#
# objectives: # Required: At least 1 objective
# - type: kill # Objective type (see list below)
# target: ZOMBIE # Target entity/block/item
# amount: 10 # Amount required
#
# reward: # Required: At least one reward type
# xp: 100 # Experience points
# money: 50 # Vault economy (requires Vault)
# sigils: 25 # SoapsQuest custom Sigils
# items: # Item rewards
# - material: DIAMOND
# amount: 5
# name: "<#55FFFF>Reward Diamond"
# enchantments: ["SHARPNESS:1"]
# chance: 100 # Drop chance percentage
# commands: # Command rewards (use {player} placeholder)
# - "broadcast {player} completed a quest!"
#
# conditions: # Optional: Requirements to start/unlock (flat keys)
# min-level: 10 # Minimum player level
# min-sigils: 50 # Minimum SoapsQuest Sigils
# world: ["world"] # Allowed worlds
# permission: "custom.perm" # Required permission to pick up in browser
# require-quest-completed: # Requires prior quest completions (typed)
# type: require-quest-completed
# quests: ["starter_quest"]
# cost: 500 # Money cost to unlock (requires Vault)
# sigil-cost: 100 # Sigil cost to unlock
# item: "DIAMOND:5" # Item cost to unlock
# consume-item: true # Whether to consume the item cost
# gamemode: ["SURVIVAL"] # Required gamemode
# active-limit: 1 # Max active quests of this type
#
# permission: "soapsquest.vip" # Optional ROOT field: gates progress (not browser lock)
#
# timer: # Optional. Omit for untimed quests.
# minutes: 15 # Required if timer: is present. Integer 1-10080.
# start-on: activate # receive = from the moment the paper exists
# # activate = right-click the active paper in hand to start
# on-expire: fail # fail = void, no rewards
# # consolation = fail-reward now, then void
# # overtime = can still finish, claim uses fail-reward
# fail-reward: # Optional. Same keys as reward: (full system).
# xp: 10
#
# ════════════════════════════════════════════════════════════════════════════
# AVAILABLE OBJECTIVE TYPES (61+) — see showcase_* quests for working examples
# ════════════════════════════════════════════════════════════════════════════
#
# kill, kill_mythicmob, damage, bowshoot, projectile
# break, place, smelt, craft, enchant, anvil_repair
# collect, consume, drop
# fish, harvest, breed, tame, shear
# death, sleep, heal, brew
# move, vehicle, elytra_fly, jump
# explore_biome
# reachlevel (uses level:), gainlevel, xp_pickup
# interact, trade, chat, command, placeholder, firework
#
# Special YAML fields (not target):
# command → command: "help" (+ amount)
# placeholder → placeholder: player_level (+ amount; requires PlaceholderAPI)
# reachlevel → level: 30
# vehicle → vehicle: ANY (+ amount = blocks; target also accepted)
# chat → text: "hello" (+ amount; optional filter)
#
# Aliases resolved at load: shoot_bow→bowshoot, launch_firework→firework, ride_vehicle→vehicle, level→gainlevel
#
# ════════════════════════════════════════════════════════════════════════════
# EXAMPLE QUEST (uncomment to use)
# ════════════════════════════════════════════════════════════════════════════
#
# starter_quest:
# material: BOOK
# display: "<gradient:#55FF55:#55FFFF>Starter Quest</gradient>"
# tier: common
# difficulty: easy
# lore:
# - "<#AAAAAA>A simple quest to get started"
# - "<#AAAAAA>Break logs and kill zombies!"
# objectives:
# - type: break
# target: OAK_LOG
# amount: 10
# - type: kill
# target: ZOMBIE
# amount: 5
# reward:
# xp: 100
# money: 50
# items:
# - material: STONE_SWORD
# name: "<#55FF55>Starter Sword"
# enchantments:
# - "SHARPNESS:1"
# chance: 100
#
quests:
# ══════════════════════════════════════════════════════════════════════════
# STARTER QUESTS - Easy introductory quests
# ══════════════════════════════════════════════════════════════════════════
lumberjack:
material: OAK_LOG
display: "<gradient:#55FF55:#00CC44>Lumberjack</gradient>"
tier: common
difficulty: easy
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Chop down some trees!"
- "<#888888>A simple task for any adventurer."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Wooden tools & bread"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: break
target: OAK_LOG
amount: 20
reward:
xp: 50
money: 25
items:
- material: STONE_AXE
name: "<#55FF55>Lumberjack's Axe"
enchantments:
- "EFFICIENCY:1"
chance: 100
- material: BREAD
amount: 8
chance: 100
zombie_slayer:
material: ROTTEN_FLESH
display: "<gradient:#FF5555:#CC0000>Zombie Slayer</gradient>"
tier: common
difficulty: easy
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>The undead are rising!"
- "<#888888>Slay zombies to protect the village."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Iron sword & XP"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: kill
target: ZOMBIE
amount: 15
reward:
xp: 100
money: 50
items:
- material: IRON_SWORD
name: "<#FF5555>Zombie Slayer"
enchantments:
- "SHARPNESS:1"
- "UNBREAKING:1"
chance: 100
gone_fishing:
material: FISHING_ROD
display: "<gradient:#5555FF:#55FFFF>Gone Fishing</gradient>"
tier: common
difficulty: easy
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Relax by the water."
- "<#888888>Catch some fish for dinner."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Enchanted fishing rod"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: fish
target: ANY
amount: 10
reward:
xp: 75
money: 40
items:
- material: FISHING_ROD
name: "<#55FFFF>Lucky Rod"
enchantments:
- "LUCK_OF_THE_SEA:1"
- "LURE:1"
chance: 100
- material: COOKED_COD
amount: 8
chance: 100
sigil_training:
material: GOLD_NUGGET
display: "<gradient:#FFD700:#FFAA00>Currency Training</gradient>"
tier: common
difficulty: easy
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Earn your first Sigils."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Currency + XP"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: break
target: OAK_LOG
amount: 16
reward:
xp: 45
sigils: 20
sigil_master_contract:
material: EMERALD
display: "<gradient:#55FFFF:#55FF55>Currency Master Contract</gradient>"
tier: uncommon
difficulty: normal
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Spend Sigils to start this contract."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Currency + money"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: kill
target: ZOMBIE
amount: 20
- type: collect
target: ROTTEN_FLESH
amount: 16
conditions:
min-sigils: 15
sigil-cost: 10
reward:
money: 120
sigils: 50
# ══════════════════════════════════════════════════════════════════════════
# INTERMEDIATE QUESTS - Multi-objective challenges
# ══════════════════════════════════════════════════════════════════════════
iron_miner:
material: IRON_PICKAXE
display: "<gradient:#AAAAAA:#FFFFFF>Iron Miner</gradient>"
tier: uncommon
difficulty: normal
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Dig deep for iron!"
- "<#888888>Mine and smelt iron ore."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Iron gear"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: break
target:
- IRON_ORE
- DEEPSLATE_IRON_ORE
amount: 30
- type: smelt
target: IRON_INGOT
amount: 20
reward:
xp: 200
money: 100
items:
- material: IRON_PICKAXE
name: "<#FFFFFF>Miner's Pickaxe"
enchantments:
- "EFFICIENCY:2"
- "UNBREAKING:2"
chance: 100
- material: IRON_INGOT
amount: 16
chance: 100
mob_hunter:
material: BOW
display: "<gradient:#FFAA00:#FF5555>Mob Hunter</gradient>"
tier: uncommon
difficulty: normal
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Hunt the night creatures."
- "<#888888>Clear out hostile mobs!"
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Enchanted bow & arrows"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: kill
target: ZOMBIE
amount: 20
- type: kill
target: SKELETON
amount: 15
- type: kill
target: SPIDER
amount: 10
reward:
xp: 250
money: 150
items:
- material: BOW
name: "<#FFAA00>Hunter's Bow"
enchantments:
- "POWER:2"
- "INFINITY:1"
chance: 100
- material: ARROW
amount: 64
chance: 100
baker:
material: BREAD
display: "<gradient:#FFD700:#FF8C00>Baker</gradient>"
tier: common
difficulty: easy
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Bake some fresh bread!"
- "<#888888>Harvest wheat and craft bread."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Golden apples & XP"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: harvest
target: WHEAT
amount: 30
- type: craft
target: BREAD
amount: 10
reward:
xp: 100
money: 60
items:
- material: GOLDEN_APPLE
amount: 2
chance: 100
shepherd:
material: WHITE_WOOL
display: "<gradient:#FF55FF:#FFAAFF>Shepherd</gradient>"
tier: common
difficulty: easy
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Tend to the flock!"
- "<#888888>Shear sheep and collect wool."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Colorful wool & shears"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: shear
target: SHEEP
amount: 15
reward:
xp: 75
money: 35
items:
- material: SHEARS
name: "<#FF55FF>Shepherd's Shears"
enchantments:
- "EFFICIENCY:2"
- "UNBREAKING:2"
chance: 100
- material: WHITE_WOOL
amount: 16
chance: 100
- material: ORANGE_WOOL
amount: 8
chance: 100
- material: LIGHT_BLUE_WOOL
amount: 8
chance: 100
# ══════════════════════════════════════════════════════════════════════════
# ADVANCED QUESTS - Harder challenges with better rewards
# ══════════════════════════════════════════════════════════════════════════
diamond_rush:
material: DIAMOND
display: "<gradient:#55FFFF:#5555FF>Diamond Rush</gradient>"
tier: rare
difficulty: hard
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Strike it rich!"
- "<#888888>Mine deep and find diamonds."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Enchanted diamond pickaxe"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: break
target:
- DIAMOND_ORE
- DEEPSLATE_DIAMOND_ORE
amount: 10
- type: craft
target: DIAMOND_PICKAXE
amount: 1
reward:
xp: 500
money: 300
items:
- material: DIAMOND_PICKAXE
name: "<gradient:#55FFFF:#5555FF>Fortune Seeker</gradient>"
enchantments:
- "FORTUNE:3"
- "EFFICIENCY:3"
- "UNBREAKING:3"
chance: 100
- material: DIAMOND
amount: 5
chance: 100
nether_explorer:
material: NETHERRACK
display: "<gradient:#FF5555:#FFAA00>Nether Explorer</gradient>"
tier: rare
difficulty: hard
lock-to-player: true
milestones: [50]
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Venture into the Nether!"
- "<#888888>Brave the dangers below."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Blaze gear & potions"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: kill
target: BLAZE
amount: 25
- type: collect
target: NETHER_WART
amount: 16
- type: brew
target: ANY
amount: 5
reward:
xp: 750
money: 400
items:
- material: BLAZE_ROD
amount: 8
chance: 100
- material: EXPERIENCE_BOTTLE
amount: 16
chance: 100
conditions:
min-level: 15
master_builder:
material: BRICKS
display: "<gradient:#FFD700:#FF8C00>Master Builder</gradient>"
tier: epic
difficulty: hard
sequential: true
milestones: [25, 50, 75]
lore:
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
- "<#FFFFFF>Build your way to glory!"
- "<#888888>Sequential. Complete each step in order."
- "<#666666><tier> <#555555>· <#666666><difficulty>"
- ""
- "<gradient:#FFD700:#FFAA00>➤</gradient> <#FFFFFF><objective> <#55FF55>(<progress>/<amount>)"
- ""
- "<#55FF55>Rewards <#AAAAAA>· <#FFFFFF>Builder's toolkit"
- "<gradient:#555555:#AAAAAA:#555555><st>━━━━━━━━━━━━━━━━━━━━</st></gradient>"
objectives:
- type: place
target: COBBLESTONE
amount: 50
- type: craft
target: STONE_BRICKS
amount: 20
- type: place
target: STONE_BRICKS
amount: 30
- type: craft
target: GLASS_PANE
amount: 10
reward:
xp: 400
money: 250
items:
- material: DIAMOND_AXE
name: "<gradient:#FFD700:#FF8C00>Builder's Axe</gradient>"
enchantments:
- "EFFICIENCY:4"
- "UNBREAKING:3"
chance: 100
- material: GOLDEN_APPLE
amount: 3
chance: 100
# ══════════════════════════════════════════════════════════════════════════
# SHOWCASE - one test quest per objective type (admin use)
# Give with: /sq give <player> showcase_<type>
# Omit custom lore — papers use messages.yml quest-default-lore (live progress)
# ══════════════════════════════════════════════════════════════════════════
showcase_kill:
permission: soapsquest.admin
material: IRON_SWORD
display: "<#AAAAAA>Showcase: <#55FF55>Kill"
tier: common
difficulty: easy
objectives:
- type: kill
target: ZOMBIE
amount: 1
reward:
xp: 10
showcase_break:
permission: soapsquest.admin
material: DIAMOND_PICKAXE
display: "<#AAAAAA>Showcase: <#55FF55>Break"
tier: common
difficulty: easy
objectives:
- type: break
target: OAK_LOG
amount: 1
reward:
xp: 10
showcase_place:
permission: soapsquest.admin
material: COBBLESTONE
display: "<#AAAAAA>Showcase: <#55FF55>Place"
tier: common
difficulty: easy
objectives:
- type: place
target: COBBLESTONE
amount: 1
reward:
xp: 10
showcase_collect:
permission: soapsquest.admin
material: DIRT
display: "<#AAAAAA>Showcase: <#55FF55>Collect"
tier: common
difficulty: easy
objectives:
- type: collect
target: DIRT
amount: 1
reward:
xp: 10
showcase_craft:
permission: soapsquest.admin
material: CRAFTING_TABLE
display: "<#AAAAAA>Showcase: <#55FF55>Craft"
tier: common
difficulty: easy
objectives:
- type: craft
target: STICK
amount: 1
reward:
xp: 10
showcase_smelt:
permission: soapsquest.admin
material: FURNACE
display: "<#AAAAAA>Showcase: <#55FF55>Smelt"
tier: common
difficulty: easy
objectives:
- type: smelt
target: IRON_INGOT
amount: 1
reward:
xp: 10
showcase_fish:
permission: soapsquest.admin
material: FISHING_ROD
display: "<#AAAAAA>Showcase: <#55FF55>Fish"
tier: common
difficulty: easy
objectives:
- type: fish
target: ANY
amount: 1
reward:
xp: 10
showcase_enchant:
permission: soapsquest.admin
material: ENCHANTING_TABLE
display: "<#AAAAAA>Showcase: <#55FF55>Enchant"
tier: common
difficulty: easy
objectives:
- type: enchant
target: ANY
amount: 1
reward:
xp: 10
showcase_consume:
permission: soapsquest.admin
material: BREAD
display: "<#AAAAAA>Showcase: <#55FF55>Consume"
tier: common
difficulty: easy
objectives:
- type: consume
target: BREAD
amount: 1
reward:
xp: 10
showcase_tame:
permission: soapsquest.admin
material: BONE
display: "<#AAAAAA>Showcase: <#55FF55>Tame"
tier: common
difficulty: easy
objectives:
- type: tame
target: WOLF
amount: 1
reward:
xp: 10
showcase_trade:
permission: soapsquest.admin
material: EMERALD
display: "<#AAAAAA>Showcase: <#55FF55>Trade"
tier: common
difficulty: easy
objectives:
- type: trade
target: ANY
amount: 1
reward:
xp: 10
showcase_brew:
permission: soapsquest.admin
material: BREWING_STAND
display: "<#AAAAAA>Showcase: <#55FF55>Brew"
tier: common
difficulty: easy
objectives:
- type: brew
target: ANY
amount: 1
reward:
xp: 10
showcase_breed:
permission: soapsquest.admin
material: WHEAT
display: "<#AAAAAA>Showcase: <#55FF55>Breed"
tier: common
difficulty: easy
objectives:
- type: breed
target: COW
amount: 1
reward:
xp: 10
showcase_shear:
permission: soapsquest.admin
material: SHEARS
display: "<#AAAAAA>Showcase: <#55FF55>Shear"
tier: common
difficulty: easy
objectives:
- type: shear
target: SHEEP
amount: 1
reward:
xp: 10
showcase_sleep:
permission: soapsquest.admin
material: RED_BED
display: "<#AAAAAA>Showcase: <#55FF55>Sleep"
tier: common
difficulty: easy
objectives:
- type: sleep
amount: 1
reward:
xp: 10
showcase_heal:
permission: soapsquest.admin
material: GOLDEN_APPLE
display: "<#AAAAAA>Showcase: <#55FF55>Heal"
tier: common
difficulty: easy
objectives:
- type: heal
amount: 5
reward:
xp: 10
showcase_drop:
permission: soapsquest.admin
material: DIRT
display: "<#AAAAAA>Showcase: <#55FF55>Drop"
tier: common
difficulty: easy
objectives:
- type: drop
target: DIRT
amount: 1
reward:
xp: 10
showcase_damage:
permission: soapsquest.admin
material: DIAMOND_SWORD
display: "<#AAAAAA>Showcase: <#55FF55>Damage"
tier: common
difficulty: easy
objectives:
- type: damage
amount: 10
reward:
xp: 10
showcase_death:
permission: soapsquest.admin
material: SKELETON_SKULL
display: "<#AAAAAA>Showcase: <#55FF55>Death"
tier: common
difficulty: easy
objectives:
- type: death
amount: 1
reward:
xp: 10
showcase_reachlevel:
permission: soapsquest.admin
material: EXPERIENCE_BOTTLE
display: "<#AAAAAA>Showcase: <#55FF55>Reach Level"
tier: common
difficulty: easy
objectives:
- type: reachlevel
level: 5
reward:
xp: 10
showcase_gainlevel:
permission: soapsquest.admin
material: EXPERIENCE_BOTTLE
display: "<#AAAAAA>Showcase: <#55FF55>Gain Level"
tier: common
difficulty: easy
objectives:
- type: gainlevel
amount: 2
reward:
xp: 10
showcase_move:
permission: soapsquest.admin
material: LEATHER_BOOTS
display: "<#AAAAAA>Showcase: <#55FF55>Move"
tier: common
difficulty: easy
objectives:
- type: move
amount: 50
reward:
xp: 10
showcase_jump:
permission: soapsquest.admin
material: RABBIT_FOOT
display: "<#AAAAAA>Showcase: <#55FF55>Jump"
tier: common
difficulty: easy
objectives:
- type: jump
amount: 5
reward:
xp: 10
showcase_chat:
permission: soapsquest.admin
material: BOOK
display: "<#AAAAAA>Showcase: <#55FF55>Chat"
tier: common
difficulty: easy
objectives:
- type: chat
text: "showcase"
amount: 1
reward:
xp: 10
showcase_interact:
permission: soapsquest.admin
material: CRAFTING_TABLE
display: "<#AAAAAA>Showcase: <#55FF55>Interact"
tier: common
difficulty: easy
objectives:
- type: interact
target: CRAFTING_TABLE
amount: 1
reward:
xp: 10
showcase_bowshoot:
permission: soapsquest.admin
material: BOW
display: "<#AAAAAA>Showcase: <#55FF55>Bow Shoot"
tier: common
difficulty: easy
objectives:
- type: bowshoot
amount: 3
reward:
xp: 10
showcase_projectile:
permission: soapsquest.admin
material: SNOWBALL
display: "<#AAAAAA>Showcase: <#55FF55>Projectile"
tier: common
difficulty: easy
objectives:
- type: projectile
target: SNOWBALL
amount: 1
reward:
xp: 10
showcase_firework:
permission: soapsquest.admin
material: FIREWORK_ROCKET
display: "<#AAAAAA>Showcase: <#55FF55>Firework"
tier: common
difficulty: easy
objectives:
- type: firework
amount: 1
reward:
xp: 10
showcase_vehicle:
permission: soapsquest.admin
material: MINECART
display: "<#AAAAAA>Showcase: <#55FF55>Vehicle"
tier: common
difficulty: easy
objectives:
- type: vehicle
vehicle: ANY
amount: 100
reward:
xp: 10
showcase_harvest:
permission: soapsquest.admin
material: WHEAT
display: "<#AAAAAA>Showcase: <#55FF55>Harvest"
tier: common
difficulty: easy
objectives:
- type: harvest
target: WHEAT
amount: 1
reward:
xp: 10
showcase_elytra_fly:
permission: soapsquest.admin
material: FEATHER
display: "<#AAAAAA>Showcase: <#55FF55>Elytra Fly"
tier: common
difficulty: easy
objectives:
- type: elytra_fly
amount: 50
reward:
xp: 10
showcase_explore_biome:
permission: soapsquest.admin
material: MAP
display: "<#AAAAAA>Showcase: <#55FF55>Explore Biome"
tier: common
difficulty: easy
objectives:
- type: explore_biome
target: PLAINS
amount: 1
reward:
xp: 10
showcase_xp_pickup:
permission: soapsquest.admin
material: EXPERIENCE_BOTTLE
display: "<#AAAAAA>Showcase: <#55FF55>XP Pickup"
tier: common
difficulty: easy
objectives:
- type: xp_pickup
amount: 50
reward:
xp: 10
showcase_anvil_repair:
permission: soapsquest.admin
material: ANVIL
display: "<#AAAAAA>Showcase: <#55FF55>Anvil Repair"
tier: common
difficulty: easy
objectives:
- type: anvil_repair
amount: 1
reward:
xp: 10
showcase_command:
permission: soapsquest.admin
material: COMMAND_BLOCK
display: "<#AAAAAA>Showcase: <#55FF55>Command"
tier: common
difficulty: easy
objectives:
- type: command
command: help
amount: 1
reward:
xp: 10
showcase_placeholder:
permission: soapsquest.admin
material: NAME_TAG
display: "<#AAAAAA>Showcase: <#55FF55>Placeholder"
tier: common
difficulty: easy
objectives:
- type: placeholder
# %player_level% requires PlaceholderAPI "Player" expansion:
# /papi ecloud download Player
# /papi reload
placeholder: player_level
amount: 5
reward:
xp: 10
showcase_kill_mythicmob:
permission: soapsquest.admin
material: NETHER_STAR
display: "<#AAAAAA>Showcase: <#55FF55>Kill MythicMob"
tier: common
difficulty: easy
objectives:
- type: kill_mythicmob
target: YourMobName
amount: 1
reward:
xp: 10
showcase_playtime:
permission: soapsquest.admin
material: CLOCK
display: "<#AAAAAA>Showcase: <#55FF55>Playtime"
tier: common
difficulty: easy
objectives:
- type: playtime
amount: 2
reward:
xp: 10
showcase_enter_world:
permission: soapsquest.admin
material: OBSIDIAN
display: "<#AAAAAA>Showcase: <#55FF55>Enter World"
tier: common
difficulty: easy
objectives:
- type: enter_world
target: NETHER
amount: 1
reward:
xp: 10
showcase_timer:
permission: soapsquest.admin
material: CLOCK
display: "<#AAAAAA>Showcase: <#FFD700>Timed Quest"
tier: common
difficulty: easy
timer:
minutes: 2
start-on: activate
on-expire: overtime
objectives:
- type: kill
target: ZOMBIE
amount: 1
reward:
xp: 25
fail-reward:
xp: 5
# Showcase quests omit custom lore: on paper they use messages.yml quest-default-lore.
showcase_kill_player:
permission: soapsquest.admin
material: DIAMOND_SWORD
display: "<#AAAAAA>Showcase: <#55FF55>Kill Player"
tier: common
difficulty: easy
objectives:
- type: kill_player
amount: 1
reward:
xp: 10
showcase_advancement:
permission: soapsquest.admin
material: KNOWLEDGE_BOOK
display: "<#AAAAAA>Showcase: <#55FF55>Advancement"
tier: common
difficulty: easy
objectives:
- type: advancement
target: minecraft:story/mine_stone
amount: 1
reward:
xp: 10
showcase_equip:
permission: soapsquest.admin
material: DIAMOND_CHESTPLATE
display: "<#AAAAAA>Showcase: <#55FF55>Equip"
tier: common
difficulty: easy
objectives:
- type: equip
target: DIAMOND_CHESTPLATE
slot: CHEST
amount: 1
reward:
xp: 10
showcase_smith:
permission: soapsquest.admin
material: SMITHING_TABLE
display: "<#AAAAAA>Showcase: <#55FF55>Smith"
tier: common
difficulty: easy
objectives:
- type: smith
target: ANY
amount: 1
reward:
xp: 10
showcase_wg_enter_region:
permission: soapsquest.admin
material: IRON_BARS
display: "<#AAAAAA>Showcase: <#55FF55>WG Enter Region"
tier: common
difficulty: easy
objectives:
- type: wg_enter_region
target: spawn
amount: 1
reward:
xp: 10
showcase_lands_enter_land:
permission: soapsquest.admin
material: GRASS_BLOCK
display: "<#AAAAAA>Showcase: <#55FF55>Lands Enter"
tier: common
difficulty: easy
objectives:
- type: lands_enter_land
target: MyLand
amount: 1
reward:
xp: 10
showcase_citizens_talk_npc:
permission: soapsquest.admin
material: VILLAGER_SPAWN_EGG
display: "<#AAAAAA>Showcase: <#55FF55>Talk NPC"
tier: common
difficulty: easy
objectives:
- type: citizens_talk_npc
target: "1"
amount: 1
reward:
xp: 10
showcase_mcmmo_skill_level:
permission: soapsquest.admin
material: EXPERIENCE_BOTTLE
display: "<#AAAAAA>Showcase: <#55FF55>mcMMO Skill"
tier: common
difficulty: easy
objectives:
- type: mcmmo_skill_level
target: MINING
amount: 5
reward:
xp: 10
showcase_denizen_run:
permission: soapsquest.admin
material: COMMAND_BLOCK
display: "<#AAAAAA>Showcase: <#55FF55>Denizen Run"
tier: common
difficulty: easy
objectives:
- type: denizen_run
target: my_script
amount: 1
reward:
xp: 10
showcase_wg_leave_region:
permission: soapsquest.admin
material: IRON_DOOR
display: "<#AAAAAA>Showcase: <#55FF55>WG Leave Region"
tier: common
difficulty: easy
objectives:
- type: wg_leave_region
target: spawn
amount: 1
reward:
xp: 10
showcase_wg_time_in_region:
permission: soapsquest.admin
material: CLOCK
display: "<#AAAAAA>Showcase: <#55FF55>WG Time In Region"
tier: common
difficulty: easy
objectives:
- type: wg_time_in_region
target: spawn
amount: 60
reward:
xp: 10
showcase_lands_visit_land:
permission: soapsquest.admin
material: OAK_BOAT
display: "<#AAAAAA>Showcase: <#55FF55>Lands Visit"
tier: common
difficulty: easy
objectives:
- type: lands_visit_land
target: MyLand
amount: 1
reward:
xp: 10
showcase_lands_claim_chunks:
permission: soapsquest.admin
material: GOLDEN_SHOVEL
display: "<#AAAAAA>Showcase: <#55FF55>Lands Claim"
tier: common
difficulty: easy
objectives:
- type: lands_claim_chunks
target: ANY
amount: 1
reward:
xp: 10
showcase_lands_land_level:
permission: soapsquest.admin
material: BEACON
display: "<#AAAAAA>Showcase: <#55FF55>Lands Level"
tier: common
difficulty: easy
objectives:
- type: lands_land_level
target: MyLand
level: 5
reward:
xp: 10
showcase_lands_deposit:
permission: soapsquest.admin
material: GOLD_INGOT
display: "<#AAAAAA>Showcase: <#55FF55>Lands Deposit"
tier: common
difficulty: easy
objectives:
- type: lands_deposit
target: MyLand
amount: 100
reward:
xp: 10
showcase_lands_member_count:
permission: soapsquest.admin
material: PLAYER_HEAD
display: "<#AAAAAA>Showcase: <#55FF55>Lands Members"
tier: common
difficulty: easy
objectives:
- type: lands_member_count
target: MyLand
amount: 3
reward:
xp: 10
showcase_citizens_deliver_npc:
permission: soapsquest.admin
material: CHEST
display: "<#AAAAAA>Showcase: <#55FF55>Deliver to NPC"
tier: common
difficulty: easy
objectives:
- type: citizens_deliver_npc
target: "1"
item: WHEAT:16
amount: 1
reward:
xp: 10
showcase_citizens_kill_npc:
permission: soapsquest.admin
material: IRON_SWORD
display: "<#AAAAAA>Showcase: <#55FF55>Kill NPC"
tier: common
difficulty: easy
objectives:
- type: citizens_kill_npc
target: "1"
amount: 1
reward:
xp: 10
showcase_mcmmo_skill_gain:
permission: soapsquest.admin
material: DIAMOND_PICKAXE
display: "<#AAAAAA>Showcase: <#55FF55>mcMMO Skill Gain"
tier: common
difficulty: easy
objectives:
- type: mcmmo_skill_gain
target: MINING
amount: 100
reward:
xp: 10
showcase_mcmmo_power_level:
permission: soapsquest.admin
material: NETHER_STAR
display: "<#AAAAAA>Showcase: <#55FF55>mcMMO Power Level"
tier: common
difficulty: easy
objectives:
- type: mcmmo_power_level
amount: 100
reward:
xp: 10
showcase_mcmmo_ability:
permission: soapsquest.admin
material: BLAZE_POWDER
display: "<#AAAAAA>Showcase: <#55FF55>mcMMO Ability"
tier: common
difficulty: easy
objectives:
- type: mcmmo_ability
target: SUPER_BREAKER
amount: 1
reward:
xp: 10
showcase_mcmmo_xp_gain:
permission: soapsquest.admin
material: LAPIS_LAZULI
display: "<#AAAAAA>Showcase: <#55FF55>mcMMO XP Gain"
tier: common
difficulty: easy
objectives:
- type: mcmmo_xp_gain
target: MINING
amount: 500
reward:
xp: 10
# ════════════════════════════════════════════════════════════════════════════
# CITIZENS NPC QUEST ASSIGNMENTS
# Requires integrations.citizens: true in config.yml
# Link NPCs to quests on right-click — or use /sq npc link
# ════════════════════════════════════════════════════════════════════════════
#
# citizens-npcs:
# "42": # NPC id (Citizens /npc id) or NPC display name
# quest: tutorial_quest # Quest id from the quests section above
# message: "&aHere is your quest!"
# "Quest Giver":
# quest: daily_hunt
# message: "&eGood luck!"
citizens-npcs: {}
messages.yml
# ##############################################################
# # #
# # 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"
gui.yml
# ##############################################################
# # #
# # SoapsQuest #
# # #
# # Created by: AlternativeSoap #
# # Website: www.SoapsUniverse.com #
# # Support: https://discord.gg/mawAzwFq #
# # #
# ##############################################################
# ══════════════════════════════════════════════════════════════════════
# SoapsQuest GUI Configuration
# All inventory menus are configured here
# ══════════════════════════════════════════════════════════════════════
#
# Suite GUI: config.yml -> gui.enabled is the master kill-switch for this plugin's
# inventory UIs. This file defines menu layout (titles, sizes, items). Text may use
# MiniMessage; legacy & and § are accepted where documented.
# SoapsAdmin uses a gui/ folder for many menus (advanced suite layout).
#
# Quest Browser GUI - Browse and receive quest papers
quest-browser:
title: "&6&lSoapsQuest &7| Quest Browser"
size: 54
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
next-page:
material: LIME_DYE
name: "&aNext Page"
lore:
- "&7Click to view next page"
slot: 53
prev-page:
material: RED_DYE
name: "&cPrevious Page"
lore:
- "&7Click to view previous page"
slot: 45
close-button:
material: BARRIER
name: "&cClose"
lore:
- "&7Click to close"
slot: 49
editor-button:
material: BOOKSHELF
name: "&dQuest Editor"
lore:
- "&7Open the Quest Editor GUI"
- ""
slot: 50
contract-button:
material: WRITABLE_BOOK
name: "&6Get a Contract"
lore:
- "&7Open the contract board."
- "&7Pick a difficulty and confirm."
- ""
- "&eClick to open"
slot: 51
quest-item:
material: WRITABLE_BOOK
display: "&e<quest_display>"
lore:
- "&7<quest_description>"
- ""
- "&8Type: &f<quest_type>"
- "&8Difficulty: &f<quest_difficulty>"
- "&8Tier: &f<quest_tier>"
- ""
- "&7Objectives: &f<quest_objective_count>"
- "&7Conditions: &f<quest_condition_count>"
- "&7Rewards: &f<quest_reward_count>"
- "&7Origin: &f<quest_origin>"
- ""
- "&aClick to receive quest paper"
layout:
quest-slots: [10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34]
# Contract Request Board (Premium): pick difficulty, see cost, confirm
contract-request:
title: "&6&lSoapsQuest &7| Contract"
size: 27
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
info-item:
material: BOOK
name: "&6&lContract Board"
lore:
- "&7Choose a difficulty, then confirm."
slot: 4
confirm-button:
material: LIME_CONCRETE
name: "&a&lConfirm"
lore:
- "&7Take this contract"
slot: 22
cancel-button:
material: BARRIER
name: "&cCancel"
lore:
- "&7Close without buying"
slot: 24
layout:
difficulty-slots: [10, 11, 12, 13, 14, 15, 16]
# Quest Editor Main Menu - Edit existing quests
quest-editor:
title: "&6&lSoapsQuest &7| Quest Editor"
size: 54
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
back-button:
material: ARROW
name: "&e&l← Back to Quest Browser"
lore:
- "&7Return to the quest list"
slot: 45
prev-page:
material: RED_DYE
name: "&cPrevious Page"
lore:
- "&7Click to view previous page"
slot: 46
close-button:
material: BARRIER
name: "&cClose"
slot: 49
next-page:
material: LIME_DYE
name: "&aNext Page"
lore:
- "&7Click to view next page"
slot: 52
add-quest:
enabled: true
material: EMERALD_BLOCK
name: "&aCreate New Quest"
lore:
- "&7Start a new quest wizard"
slot: 48
layout:
quest-slots: [10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34]
# Quest Details Editor - Edit specific quest
quest-details:
title: "&6&lSoapsQuest &7| Edit: <quest_name>"
size: 54
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
back-button:
material: ARROW
name: "&7← Back"
lore:
- "&7Return to quest editor"
slot: 45
save-button:
material: EMERALD
name: "&a✓ Close"
lore:
- "&7Changes are saved instantly!"
- "&7Click to see summary and close"
slot: 53
edit-display:
material: NAME_TAG
name: "&eEdit Display Name"
lore:
- "&7Current: &f<quest_display>"
- ""
- "&aClick to change"
slot: 11
edit-description:
material: WRITABLE_BOOK
name: "&eEdit Description"
lore:
- "&7Current: &f<quest_description>"
- ""
- "&aClick to change"
slot: 13
edit-type:
material: COMPASS
name: "&eEdit Type"
lore:
- "&7Current: &f<quest_type>"
- ""
- "&aClick to change"
slot: 15
edit-difficulty:
material: IRON_SWORD
name: "&eEdit Difficulty"
lore:
- "&7Current: &f<quest_difficulty>"
- ""
- "&aClick to cycle"
slot: 20
edit-tier:
material: DIAMOND
name: "&eEdit Tier"
lore:
- "&7Current: &f<quest_tier>"
- ""
- "&aClick to cycle"
slot: 22
toggle-lock:
material: TRIPWIRE_HOOK
name: "&eBind to one player"
lore:
- "&7Status: &f<lock_status>"
- ""
- "&7When enabled, only the bound player"
- "&7can pick up this quest paper."
- ""
- "&aClick to toggle"
slot: 24
edit-material:
material: ITEM_FRAME
name: "&eEdit Material"
lore:
- "&7Change the material used for this quest's physical item."
- "&7Current: &f<quest_material>"
- "&7Default: PAPER"
- ""
- "&eClick to enter a new material name."
- "&7Example: 'BOOK', 'DIAMOND', or 'HAND'"
slot: 29
edit-objectives:
material: TARGET
name: "&eEdit Objectives"
lore:
- "&7Objectives: &f<quest_objective_count>"
- ""
- "&aClick to edit"
slot: 31
edit-conditions:
material: REDSTONE_TORCH
name: "&eEdit Conditions"
lore:
- "&7Conditions: &f<quest_condition_count>"
- ""
- "&aClick to edit"
slot: 33
edit-rewards:
material: CHEST
name: "&eEdit Rewards"
lore:
- "&7Rewards: &f<quest_reward_count>"
- ""
- "&aClick to edit"
slot: 40
edit-timer:
material: CLOCK
name: "&eTimer"
lore:
- "&7Optional time limit for this quest"
- ""
- "&eLeft-click &7cycle start: off / receive / activate"
- "&eShift-click &7cycle on-expire"
- "&eRight-click &7set minutes"
slot: 38
edit-fail-rewards:
material: SOUL_LANTERN
name: "&eFail Rewards"
lore:
- "&7Same types as success rewards"
- "&7Used for consolation / overtime"
- ""
- "&aClick to edit"
slot: 42
delete-quest:
material: BARRIER
name: "&cDelete Quest"
lore:
- "&7Permanently removes this quest"
- "&7from quests.yml"
- ""
- "&c⚠ This cannot be undone!"
- ""
- "&eClick to delete"
- "&7Type 'confirm' in chat to proceed"
slot: 49
# Objective Editor - Manage quest objectives
objective-editor:
title: "&6&lSoapsQuest &7| Objectives: <quest_name>"
size: 54
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
back-button:
material: ARROW
name: "&7← Back"
slot: 45
add-objective:
material: LIME_DYE
name: "&a+ Add Objective"
lore:
- "&7Click to add a new objective"
slot: 49
layout:
objective-slots: [10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34]
# Condition Editor - Manage quest conditions
condition-editor:
title: "&6&lSoapsQuest &7| Conditions: <quest_name>"
size: 54
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
back-button:
material: ARROW
name: "&7← Back"
slot: 45
add-condition:
material: LIME_DYE
name: "&a+ Add Condition"
lore:
- "&7Click to add a new condition"
slot: 49
layout:
condition-slots: [10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34]
# Reward Editor - Manage quest rewards
reward-editor:
title: "&6&lSoapsQuest &7| Rewards: <quest_name>"
size: 54
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
back-button:
material: ARROW
name: "&7← Back"
slot: 45
add-reward:
material: LIME_DYE
name: "&a+ Add Reward"
lore:
- "&7Click to add a new reward"
slot: 49
layout:
reward-slots: [10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34]
# Objective Type Selector
objective-type-selector:
title: "&6&lSoapsQuest &7| Select Objective Type"
size: 54
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
back-button:
material: ARROW
name: "&7← Cancel"
slot: 49
layout:
type-slots: [10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34,37,38,39,40,41,42,43]
# Condition Type Selector
condition-type-selector:
title: "&6&lSoapsQuest &7| Select Condition Type"
size: 45
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
back-button:
material: ARROW
name: "&7← Cancel"
slot: 40
layout:
type-slots: [10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34]
# Reward Type Selector
reward-type-selector:
title: "&6&lSoapsQuest &7| Select Reward Type"
size: 45
fill-empty: true
filler-item:
material: GRAY_STAINED_GLASS_PANE
name: "&7"
back-button:
material: ARROW
name: "&7← Cancel"
slot: 40
layout:
type-slots: [10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34]
tiers.yml
# ##############################################################
# # SoapsQuest #
# # Created by: AlternativeSoap #
# # Website: www.SoapsUniverse.com #
# # Support: https://discord.gg/mawAzwFq #
# ##############################################################
#
# Quest rarity tiers (file order = GUI order).
# Used by quests.yml, the Premium generator, and browser filters.
#
# display / prefix / color — player-facing (& codes or MiniMessage)
# weight — relative generator chance (must be > 0); higher = more common
# description — GUI tooltip when cycling / listing tiers
#
# Approx. roll odds with defaults below (total weight 103):
# common ~47% · uncommon ~27% · rare ~14% · epic ~7% · legendary ~3% · mythic ~1%
tiers:
common:
display: "<white>Common</white>"
prefix: "<dark_gray>[</dark_gray><white>COMMON</white><dark_gray>]</dark_gray>"
color: "&f"
weight: 48
description: "&7Everyday quests. Solid starter progress."
uncommon:
display: "<green>Uncommon</green>"
prefix: "<dark_gray>[</dark_gray><green>UNCOMMON</green><dark_gray>]</dark_gray>"
color: "&a"
weight: 28
description: "&aA step up — better pay for a bit more work."
rare:
display: "<blue>Rare</blue>"
prefix: "<dark_gray>[</dark_gray><blue>RARE</blue><dark_gray>]</dark_gray>"
color: "&9"
weight: 14
description: "&9Worth hunting down for stronger rewards."
epic:
display: "<light_purple>Epic</light_purple>"
prefix: "<dark_gray>[</dark_gray><light_purple>EPIC</light_purple><dark_gray>]</dark_gray>"
color: "&d"
weight: 7
description: "&dHarder runs with substantial loot."
legendary:
display: "<gold>Legendary</gold>"
prefix: "<dark_gray>[</dark_gray><gold>LEGENDARY</gold><dark_gray>]</dark_gray>"
color: "&6"
weight: 3
description: "&6Prestige quests for dedicated players."
mythic:
display: "<bold><#FF55FF>Mythic</#FF55FF></bold>"
prefix: "<dark_gray>[</dark_gray><bold><#FF55FF>MYTHIC</#FF55FF></bold><dark_gray>]</dark_gray>"
color: "&d"
weight: 1
description: "&d&lRarest rolls. Expect a real fight."
difficulties.yml
# ##############################################################
# # #
# # SoapsQuest #
# # #
# # Created by: AlternativeSoap #
# # Website: www.SoapsUniverse.com #
# # Support: https://discord.gg/mawAzwFq #
# # #
# ##############################################################
# ════════════════════════════════════════════════════════════════════════════
# SoapsQuest - Difficulty System
# ════════════════════════════════════════════════════════════════════════════
#
# Difficulties scale quest objectives and rewards. You can add, remove, or
# rename difficulties freely — the plugin loads them in the order listed here.
#
# Fields per difficulty:
# display — Name shown to players (supports & color codes and MiniMessage)
# color — Base color code used in generic difficulty text / placeholders
# weight — Relative spawn weight (higher = more common). Must be > 0.
# description — Shown in tooltips / GUIs (supports & color codes)
# multiplier:
# objective-amount — Scales the required amount on all objectives
# (0.75 = 25% fewer targets, 2.0 = double targets)
# reward — Scales all quest rewards by this factor
# (0.75 = 25% less loot, 2.0 = double loot)
#
# Tip: Order matters — difficulties are displayed in GUIs exactly as listed here.
# ════════════════════════════════════════════════════════════════════════════
difficulties:
easy:
display: "&aEasy"
color: "&a"
weight: 50
description: "&aGreat for beginners. Fewer objectives and lighter rewards."
multiplier:
objective-amount: 0.75
reward: 0.75
normal:
display: "&eNormal"
color: "&e"
weight: 35
description: "&eBalanced objectives and rewards."
multiplier:
objective-amount: 1.0
reward: 1.0
hard:
display: "&cHard"
color: "&c"
weight: 20
description: "&cMore demanding objectives with noticeably better rewards."
multiplier:
objective-amount: 1.5
reward: 1.5
expert:
display: "&6Expert"
color: "&6"
weight: 10
description: "&6Hard objectives with better rewards. For seasoned players."
multiplier:
objective-amount: 2.0
reward: 2.0
nightmare:
display: "&4&lNightmare"
color: "&4"
weight: 5
description: "&4&lExtreme objectives and extreme rewards."
multiplier:
objective-amount: 2.5
reward: 2.5
daily.yml
# ##############################################################
# # SoapsQuest #
# # Created by: AlternativeSoap #
# # Website: www.SoapsUniverse.com #
# # Support: https://discord.gg/mawAzwFq #
# ##############################################################
#
# Daily & Weekly recurring quests (Premium only)
#
# Quest IDs must exist under quests: in quests.yml.
# Quests with root permission: are only given to players who have it.
# On reset, online players are notified and get new papers.
# Players who join mid-cycle receive any they have not gotten yet.
# Completing every quest given this cycle can grant bonus.reward.
settings:
join-delay-ticks: 40 # After join before assigning (40 = 2s)
give-delay-ticks: 20 # After reset before giving papers (20 = 1s)
# Message text: messages.yml → recurring-quest-reset-*
notifications:
mode: actionbar # actionbar | chat | title | bossbar | none
sound:
enabled: true
type: ENTITY_PLAYER_LEVELUP
volume: 1.0
pitch: 1.0
# ── Daily — resets every day at schedule.time (server timezone) ─────────────
daily:
enabled: false
schedule:
time: "06:00" # HH:mm (24-hour)
pool:
# Easy / short quests from quests.yml — avoid showcase_* demos
quests:
- lumberjack
- zombie_slayer
- gone_fishing
- baker
- shepherd
- sigil_training
mode: random # random = shuffle pick | ordered = first N in list
count: 2 # Quests each player gets per day
bonus:
enabled: true # When all of that day's given quests are claimed
reward:
xp: 200
sigils: 30
money: 150
# ── Weekly — resets on schedule.day at schedule.time ────────────────────────
weekly:
enabled: false
schedule:
day: MONDAY # MONDAY … SUNDAY
time: "06:00"
pool:
# Longer / harder set — nether_explorer uses min-level (locked until met)
quests:
- iron_miner
- mob_hunter
- diamond_rush
- nether_explorer
- master_builder
mode: random
count: 2
bonus:
enabled: true
reward:
xp: 800
sigils: 120
money: 500
random-generator.yml
# ##############################################################
# # #
# # SoapsQuest #
# # #
# # Created by: AlternativeSoap #
# # Website: www.SoapsUniverse.com #
# # Support: https://discord.gg/mawAzwFq #
# # #
# ##############################################################
# ════════════════════════════════════════════════════════════════════════════
# SoapsQuest — Random Quest Generator (Premium)
# ════════════════════════════════════════════════════════════════════════════
#
# Commands: /sq generate [type] [count|amount] [objective] [min] [max] [difficulty] [tier] [material]
# After type, a lone number is objective amount (e.g. /sq generate single 20). Use "-" for a random slot.
# Permission: soapsquest.generate
#
# Generated quests save to save-location (default: generated.yml).
# Give papers with /sq give <player> <quest_id> after generating.
#
# ─── OBJECTIVE TEMPLATE FIELDS ───────────────────────────────────────────────
# objective Canonical type (kill, break, collect, bowshoot, …)
# target Entity, block, item, or list thereof
# amount Fixed number or [min, max] range
# amount-by-difficulty Per-difficulty min/max map
#
# ─── REWARDS ─────────────────────────────────────────────────────────────────
# reward-pool uses the same block format as quests.yml.
# When templates are defined, they take priority over tier ranges.
#
# ════════════════════════════════════════════════════════════════════════════
# SETTINGS
# ════════════════════════════════════════════════════════════════════════════
random-generator:
enabled: true
id-prefix: "generated_"
generated-quest-mode: persistent # persistent | temporary | session
save-location: generated.yml
allowed-types: [single, multi, sequence]
internal-name-formats:
single: "quest_<tier>_<objective>_<id>"
multi: "multi_<tier>_<id>"
sequence: "seq_<tier>_<counter>"
default: "generated_<id>"
# ════════════════════════════════════════════════════════════════════════════
# TIER & DIFFICULTY POOLS
# Empty allowed: [] = use all tiers/difficulties from tiers.yml / difficulties.yml
# ════════════════════════════════════════════════════════════════════════════
difficulty-pool:
enabled: true
allowed: []
default: normal
tier-pool:
enabled: true
allowed: []
default: common
milestones:
enabled: true
mode: tier-based # tier-based | random | default
default: [25, 50, 75]
random-pool:
- [50]
- [25, 75]
- [25, 50, 75]
- [33, 66]
tier-based:
common: [50]
uncommon: [50]
rare: [25, 75]
epic: [25, 50, 75]
legendary: [20, 40, 60, 80]
mythic: [20, 40, 60, 80]
# ════════════════════════════════════════════════════════════════════════════
# QUEST STRUCTURE
# ════════════════════════════════════════════════════════════════════════════
multi-objective:
min-objectives: 2
max-objectives: 4
sequence-objective:
min-objectives: 2
max-objectives: 4
objective-weights:
# Combat
kill: 45
bowshoot: 15
damage: 10
death: 3
projectile: 10
kill_mythicmob: 8
# Mining & building
break: 40
place: 25
interact: 8
harvest: 12
# Collection & crafting
collect: 30
craft: 30
smelt: 20
fish: 18
enchant: 12
brew: 12
drop: 10
# Survival
consume: 12
tame: 10
shear: 10
breed: 10
trade: 15
sleep: 10
heal: 10
# Movement
move: 20
jump: 12
vehicle: 8
# Leveling
gainlevel: 15
reachlevel: 10
# Misc
chat: 8
firework: 5
playtime: 6
enter_world: 8
kill_player: 2
advancement: 5
equip: 6
smith: 6
anvil_repair: 4
explore_biome: 6
elytra_fly: 5
xp_pickup: 6
command: 3
placeholder: 2
# ════════════════════════════════════════════════════════════════════════════
# UNLOCK CONDITIONS (random requirements by tier / difficulty)
# ════════════════════════════════════════════════════════════════════════════
conditions:
enabled: true
min-level:
enabled: true
chance: 40
by-tier:
common: 0
uncommon: 3
rare: 10
epic: 25
legendary: 50
mythic: 75
by-difficulty:
easy: 0
normal: 5
hard: 15
expert: 20
nightmare: 30
max-level:
enabled: false
chance: 10
default: 100
min-money:
enabled: true
chance: 25
by-tier:
common: 100
uncommon: 250
rare: 500
epic: 2000
legendary: 10000
mythic: 50000
world:
enabled: false
chance: 15
allowed-worlds:
- world
- world_nether
- world_the_end
gamemode:
enabled: false
chance: 20
allowed-modes:
- SURVIVAL
- ADVENTURE
time:
enabled: false
chance: 10
options:
- DAY
- NIGHT
permission:
enabled: false
chance: 30
by-tier:
common: "soapsquest.tier.common"
uncommon: "soapsquest.tier.uncommon"
rare: "soapsquest.tier.rare"
epic: "soapsquest.tier.epic"
legendary: "soapsquest.tier.legendary"
mythic: "soapsquest.tier.mythic"
cost:
enabled: true
chance: 20
by-tier:
common: 50
uncommon: 150
rare: 250
epic: 1000
legendary: 5000
mythic: 25000
item:
enabled: false
chance: 15
consume-item: true
by-tier:
common: "IRON_INGOT:5"
uncommon: "GOLD_INGOT:5"
rare: "GOLD_INGOT:3"
epic: "DIAMOND:2"
legendary: "NETHERITE_INGOT:1"
mythic: "NETHERITE_INGOT:3"
active-limit:
enabled: false
chance: 5
default: 3
placeholder:
enabled: false
chance: 10
expressions:
- "%player_health% >= 15"
- "%player_food_level% >= 10"
- "%vault_eco_balance% >= 1000"
# ════════════════════════════════════════════════════════════════════════════
# QUEST PAPER MATERIAL
# ════════════════════════════════════════════════════════════════════════════
quest-paper-material:
selection-mode: random
default-material: PAPER
random-pool:
- material: PAPER
weight: 55
- material: MAP
weight: 25
- material: ENCHANTED_BOOK
weight: 15
- material: KNOWLEDGE_BOOK
weight: 5
tier-based:
common:
- PAPER
- MAP
rare:
- MAP
- ENCHANTED_BOOK
epic:
- ENCHANTED_BOOK
- KNOWLEDGE_BOOK
legendary:
- ENCHANTED_BOOK
- KNOWLEDGE_BOOK
- NETHER_STAR
# ════════════════════════════════════════════════════════════════════════════
# DISPLAY — quest names & lore
# Placeholders: <tier>, <tier_prefix>, <tier_color>, <difficulty>, <target>,
# <amount>, <type>, <objective>, <progress>
# ════════════════════════════════════════════════════════════════════════════
display:
lore-style: fancy # simple | detailed | fancy
name-templates:
# Combat
kill:
- "<gradient:#FF5555:#CC0000><target> Slayer</gradient>"
- "<#FF4444>Hunt <white><amount></white> <target>s</#FF4444>"
- "<gradient:#FF0000:#FF5555>Eliminate <white><amount></white> <target></gradient>"
- "<tier_prefix> <gradient:#FF5555:#FF0000><target> Hunter</gradient>"
damage:
- "<gradient:#FF5555:#FFAA00>Damage Dealer</gradient>"
- "<#FF4444>Deal <white><amount></white> damage</#FF4444>"
bowshoot:
- "<gradient:#FFAA00:#FFD700>Archery Challenge</gradient>"
- "<#FFAA00>Shoot <white><amount></white> arrows</#FFAA00>"
- "<tier_prefix> <gradient:#FFAA00:#FFD700>Marksman Trial</gradient>"
# Building
break:
- "<#AAAAAA>Mine <white><amount></white> <target></#AAAAAA>"
- "<gradient:#888888:#FFFFFF><target> Breaker</gradient>"
place:
- "<#55FF55>Place <white><amount></white> <target></#55FF55>"
- "<gradient:#00CC44:#55FF55><target> Builder</gradient>"
# Collection
collect:
- "<#FFAA00>Gather <white><amount></white> <target>s</#FFAA00>"
- "<gradient:#FFD700:#FFAA00><target> Collector</gradient>"
craft:
- "<#00AAAA>Forge <white><amount></white> <target>s</#00AAAA>"
- "<gradient:#55FFFF:#00AAAA>Crafting Order: <white><target></white></gradient>"
fish:
- "<#0000AA>Catch <white><amount></white> <target></#0000AA>"
- "<gradient:#5555FF:#55FFFF>Fishing Contract</gradient>"
# Smelting
smelt:
- "<gradient:#FF8800:#FFCC00>Smelt <white><amount></white> <target></gradient>"
- "<#FF8800>Furnace Duty: <white><target></#FF8800>"
# Enchanting & brewing
enchant:
- "<gradient:#AA00FF:#FF55FF>Enchant <white><amount></white> items</gradient>"
- "<#AA00FF>Arcane Study</#AA00FF>"
brew:
- "<gradient:#FF55FF:#AA00FF>Brew <white><amount></white> potions</gradient>"
- "<#FF55FF>Alchemist's Task</#FF55FF>"
# Animals & Farming
tame:
- "<gradient:#55FF55:#00AA00>Tame <white><amount></white> <target></gradient>"
- "<#55FF55>Animal Whisperer</#55FF55>"
breed:
- "<gradient:#55FF55:#FFAA00>Breed <white><amount></white> <target></gradient>"
- "<#55FF55>Rancher's Task: <white><target></#55FF55>"
shear:
- "<gradient:#FFFFFF:#AAAAAA>Shear <white><amount></white> <target></gradient>"
- "<#AAAAAA>Wool Gatherer</#AAAAAA>"
trade:
- "<gradient:#55FF55:#00FF00>Trade <white><amount></white> times</gradient>"
- "<#55FF55>Merchant's Contract</#55FF55>"
# Survival
consume:
- "<gradient:#FFAA00:#FF5555>Consume <white><amount></white> <target></gradient>"
- "<#FFAA00>Feast or Famine</#FFAA00>"
sleep:
- "<gradient:#5555FF:#000088>Sleep <white><amount></white> nights</gradient>"
- "<#5555FF>Rest Mandate</#5555FF>"
heal:
- "<gradient:#FF5555:#55FF55>Heal <white><amount></white> health</gradient>"
- "<#55FF55>Recovery Mission</#55FF55>"
drop:
- "<#AAAAAA>Drop <white><amount></white> <target></#AAAAAA>"
- "<gradient:#AAAAAA:#555555>Discard Order</#AAAAAA>"
death:
- "<gradient:#555555:#FF5555>Die <white><amount></white> times</gradient>"
- "<#FF5555>Martyrdom</#FF5555>"
# Movement
move:
- "<gradient:#55FFFF:#5555FF>Travel <white><amount></white> blocks</gradient>"
- "<#55FFFF>Exploration Contract</#55FFFF>"
jump:
- "<gradient:#55FF55:#FFFF55>Jump <white><amount></white> times</gradient>"
- "<#55FF55>Leap Challenge</#55FF55>"
vehicle:
- "<gradient:#AAAAAA:#FFFF55>Ride <white><amount></white> blocks</gradient>"
- "<#FFFF55>Vehicle Journey</#FFFF55>"
# Leveling
gainlevel:
- "<gradient:#55FF55:#FFFF55>Gain <white><amount></white> levels</gradient>"
- "<#55FF55>Experience Seeker</#55FF55>"
reachlevel:
- "<gradient:#55FFFF:#55FF55>Reach level <white><amount></white></gradient>"
- "<#55FFFF>Ascension Goal</#55FFFF>"
# Misc
chat:
- "<gradient:#FFFF55:#FFFFFF>Send <white><amount></white> messages</gradient>"
- "<#FFFF55>Chatterbox Challenge</#FFFF55>"
firework:
- "<gradient:#FF55FF:#FF5555>Launch <white><amount></white> fireworks</gradient>"
- "<#FF55FF>Pyrotechnics Display</#FF55FF>"
projectile:
- "<gradient:#FFAA00:#FF5555>Launch <white><amount></white> projectiles</gradient>"
- "<#FFAA00>Throwing Challenge</#FFAA00>"
interact:
- "<gradient:#FFFF55:#FFAA00>Interact <white><amount></white> times</gradient>"
- "<#FFFF55>Interaction Task</#FFFF55>"
playtime:
- "<gradient:#55FFFF:#AAAAAA>Play for <white><amount></white> minutes</gradient>"
- "<#55FFFF>Active Duty</#55FFFF>"
enter_world:
- "<gradient:#AA55FF:#55FFFF>Visit <white><target></white></gradient>"
- "<#AA55FF>World Traveler</#AA55FF>"
kill_player:
- "<gradient:#FF5555:#AA0000>Defeat <white><amount></white> players</gradient>"
- "<#FF5555>Duelist Contract</#FF5555>"
advancement:
- "<gradient:#FFD700:#FFFF55>Earn <white><amount></white> advancements</gradient>"
- "<#FFD700>Achievement Hunt</#FFD700>"
equip:
- "<gradient:#55FF55:#FFAA00>Equip <white><target></white></gradient>"
- "<#55FF55>Gear Up</#55FF55>"
smith:
- "<gradient:#AAAAAA:#FFD700>Smith <white><amount></white> items</gradient>"
- "<#FFD700>Smithing Order</#FFD700>"
harvest:
- "<gradient:#55FF55:#FFFF55>Harvest <white><amount></white> <target></gradient>"
- "<#55FF55>Crop Duty</#55FF55>"
anvil_repair:
- "<gradient:#AAAAAA:#FFFFFF>Repair <white><amount></white> items</gradient>"
- "<#AAAAAA>Anvil Work</#AAAAAA>"
elytra_fly:
- "<gradient:#55FFFF:#FFFFFF>Glide <white><amount></white> blocks</gradient>"
- "<#55FFFF>Elytra Flight</#55FFFF>"
xp_pickup:
- "<gradient:#55FF55:#FFFF55>Collect <white><amount></white> XP</gradient>"
- "<#55FF55>Experience Gatherer</#55FF55>"
command:
- "<gradient:#FFAA00:#FFFF55>Run /<white><target></white></gradient>"
- "<#FFAA00>Command Task</#FFAA00>"
placeholder:
- "<gradient:#AAAAAA:#55FFFF>Reach placeholder goal</gradient>"
- "<#55FFFF>Progress Check</#55FFFF>"
# Fallback for any objective type
generic:
- "<tier_color><tier_prefix> <type> Challenge"
- "<tier_color><type> Challenge"
- "<tier_color>Complete <white><amount></white> <type>"
# ─────────────────────────────────────────────────────────────────────────
# LORE STYLES (Pick one with "lore-style" above)
# ─────────────────────────────────────────────────────────────────────────
# Placeholders: <tier>, <tier_color>, <difficulty>, <objective>, <progress>, <amount>
lore-styles:
# ─── simple ────────────────────────────────────────────────────────────
# Minimal design — gray borders, tier-colored label, task line, progress.
simple:
- "<#AAAAAA><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
- "<tier_color>Guild Quest"
- "<#AAAAAA>Tier: <tier> \u2022 Difficulty: <difficulty>"
- ""
- "<#AAAAAA>\u27a4 <objective>"
- ""
- "<#55FF55>Progress: <white><progress><#AAAAAA>/<white><amount>"
- "<#AAAAAA><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
# ─── detailed ──────────────────────────────────────────────────────────
# Same structure as simple but borders pick up the tier's color.
detailed:
- "<tier_color><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
- "<white>The guild has a task for you."
- "<#AAAAAA>Tier: <tier> \u2022 Difficulty: <difficulty>"
- ""
- "<#AAAAAA>\u27a4 <objective>"
- ""
- "<#55FF55>Progress: <white><progress><#AAAAAA>/<white><amount>"
- "<tier_color><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
# ─── fancy ─────────────────────────────────────────────────────────────
# Per-tier flavor text and tier-matched border colors.
# Mirrors the visual style of manually authored quests in quests.yml.
fancy:
common:
- "<#AAAAAA><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
- "<white>A task from the guild."
- "<#AAAAAA>Tier: <tier> \u2022 Difficulty: <difficulty>"
- ""
- "<#AAAAAA>\u27a4 <objective>"
- ""
- "<#55FF55>Progress: <white><progress><#AAAAAA>/<white><amount>"
- "<#AAAAAA><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
uncommon:
- "<#00AA00><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
- "<white>The guild requires your skill."
- "<#AAAAAA>Tier: <tier> \u2022 Difficulty: <difficulty>"
- ""
- "<#AAAAAA>\u27a4 <objective>"
- ""
- "<#55FF55>Progress: <white><progress><#AAAAAA>/<white><amount>"
- "<#00AA00><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
rare:
- "<#5555FF><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
- "<white>A rare contract has been issued."
- "<#AAAAAA>Tier: <tier> \u2022 Difficulty: <difficulty>"
- ""
- "<#AAAAAA>\u27a4 <objective>"
- ""
- "<#55FF55>Progress: <white><progress><#AAAAAA>/<white><amount>"
- "<#5555FF><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
epic:
- "<#AA00FF><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
- "<white>An epic challenge looms."
- "<#AAAAAA>Tier: <tier> \u2022 Difficulty: <difficulty>"
- ""
- "<#AAAAAA>\u27a4 <objective>"
- ""
- "<#55FF55>Progress: <white><progress><#AAAAAA>/<white><amount>"
- "<#AA00FF><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
legendary:
- "<#FFAA00><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
- "<white><bold>A legendary deed is called for.</bold>"
- "<#AAAAAA>Tier: <tier> \u2022 Difficulty: <difficulty>"
- ""
- "<#AAAAAA>\u27a4 <objective>"
- ""
- "<#55FF55>Progress: <white><progress><#AAAAAA>/<white><amount>"
- "<#FFAA00><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st>"
mythic:
- "<gradient:#FF55FF:#AA00FF><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st></gradient>"
- "<white><bold>A mythic legend demands your service.</bold>"
- "<#AAAAAA>Tier: <tier> \u2022 Difficulty: <difficulty>"
- ""
- "<#AAAAAA>\u27a4 <objective>"
- ""
- "<#55FF55>Progress: <white><progress><#AAAAAA>/<white><amount>"
- "<gradient:#FF55FF:#AA00FF><st>\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501</st></gradient>"
# ════════════════════════════════════════════════════════════════════════════
# OBJECTIVE TEMPLATES
# Keys are internal labels; objective: is the canonical type used at runtime.
# ════════════════════════════════════════════════════════════════════════════
objectives:
kill_hostile:
objective: kill
target: [ZOMBIE, SKELETON, CREEPER, SPIDER]
amount-by-difficulty:
easy: [10, 25]
normal: [20, 40]
hard: [40, 75]
nightmare: [75, 150]
kill_zombies:
objective: kill
target: [ZOMBIE]
amount: [15, 40]
kill_skeletons:
objective: kill
target: [SKELETON]
amount: [10, 35]
kill_creepers:
objective: kill
target: [CREEPER]
amount: [5, 20]
kill_spiders:
objective: kill
target: [SPIDER, CAVE_SPIDER]
amount: [15, 45]
kill_endermen:
objective: kill
target: [ENDERMAN]
amount: [5, 15]
kill_nether_mobs:
objective: kill
target: [BLAZE, WITHER_SKELETON, PIGLIN, ZOMBIFIED_PIGLIN]
amount: [10, 30]
kill_ocean_mobs:
objective: kill
target: [DROWNED, GUARDIAN, ELDER_GUARDIAN]
amount: [8, 25]
kill_bosses:
objective: kill
target: [WITHER, ENDER_DRAGON]
amount: [1, 3]
kill_breeze:
objective: kill
target: [BREEZE]
amount: [5, 15]
kill_armadillo:
objective: kill
target: [ARMADILLO]
amount: [3, 10]
deal_damage:
objective: damage
amount-by-difficulty:
easy: [50, 200]
normal: [100, 500]
hard: [300, 1000]
nightmare: [500, 2000]
shoot_arrows:
objective: bowshoot
amount: [10, 100]
throw_projectiles:
objective: projectile
target: [SNOWBALL, EGG, ENDER_PEARL]
amount: [10, 100]
die_once:
objective: death
amount: [1, 3]
die_many:
objective: death
amount: [5, 15]
# ═══════════════════════════════════════════════════════════════════
# MINING & BUILDING OBJECTIVES
# ═══════════════════════════════════════════════════════════════════
break_stone:
objective: break
target: [STONE, COBBLESTONE, ANDESITE, DIORITE, GRANITE]
amount-by-difficulty:
easy: [30, 80]
normal: [50, 200]
hard: [150, 400]
nightmare: [300, 800]
break_deepslate:
objective: break
target: [DEEPSLATE, COBBLED_DEEPSLATE]
amount: [30, 150]
break_coal_ore:
objective: break
target: [COAL_ORE, DEEPSLATE_COAL_ORE]
amount: [20, 80]
break_iron_ore:
objective: break
target: [IRON_ORE, DEEPSLATE_IRON_ORE]
amount: [10, 40]
break_gold_ore:
objective: break
target: [GOLD_ORE, DEEPSLATE_GOLD_ORE]
amount: [5, 25]
break_diamond_ore:
objective: break
target: [DIAMOND_ORE, DEEPSLATE_DIAMOND_ORE]
amount: [3, 15]
break_netherite:
objective: break
target: [ANCIENT_DEBRIS]
amount: [1, 5]
break_logs:
objective: break
target: [OAK_LOG, BIRCH_LOG, SPRUCE_LOG, JUNGLE_LOG, ACACIA_LOG, DARK_OAK_LOG]
amount: [30, 150]
break_nether_blocks:
objective: break
target: [NETHERRACK, NETHER_BRICKS, BLACKSTONE]
amount: [50, 200]
break_copper_ore:
objective: break
target: [COPPER_ORE, DEEPSLATE_COPPER_ORE]
amount: [20, 80]
break_trial_blocks:
objective: break
target: [TRIAL_SPAWNER, VAULT]
amount: [1, 5]
break_copper_blocks:
objective: break
target: [COPPER_BULB, COPPER_GRATE, COPPER_DOOR, COPPER_TRAPDOOR, CHISELED_COPPER, CUT_COPPER]
amount: [10, 50]
place_blocks:
objective: place
target: [OAK_PLANKS, STONE_BRICKS, COBBLESTONE]
amount: [20, 100]
place_decorations:
objective: place
target: [TORCH, LANTERN, GLOWSTONE, SEA_LANTERN]
amount: [10, 50]
place_rails:
objective: place
target: [RAIL, POWERED_RAIL, DETECTOR_RAIL]
amount: [10, 64]
use_blocks:
objective: interact
target: [CHEST, FURNACE, CRAFTING_TABLE, ANVIL, ENCHANTING_TABLE]
amount: [5, 50]
# ═══════════════════════════════════════════════════════════════════
# COLLECTION & CRAFTING OBJECTIVES
# ═══════════════════════════════════════════════════════════════════
collect_crops:
objective: collect
target: [WHEAT, CARROT, POTATO, BEETROOT]
amount-by-difficulty:
easy: [10, 32]
normal: [16, 64]
hard: [48, 128]
nightmare: [96, 256]
collect_seeds:
objective: collect
target: [WHEAT_SEEDS, PUMPKIN_SEEDS, MELON_SEEDS]
amount: [10, 40]
collect_valuables:
objective: collect
target: [IRON_INGOT, GOLD_INGOT, DIAMOND, EMERALD]
amount: [5, 20]
collect_rare_items:
objective: collect
target: [NETHERITE_INGOT, NETHERITE_SCRAP, NETHER_STAR]
amount: [1, 5]
collect_flowers:
objective: collect
target: [POPPY, DANDELION, BLUE_ORCHID, ALLIUM, AZURE_BLUET]
amount: [10, 50]
collect_mob_drops:
objective: collect
target: [BONE, ROTTEN_FLESH, SPIDER_EYE, GUNPOWDER, ENDER_PEARL]
amount: [10, 50]
collect_copper:
objective: collect
target: [COPPER_INGOT, RAW_COPPER]
amount: [20, 64]
collect_breeze_items:
objective: collect
target: [BREEZE_ROD, WIND_CHARGE]
amount: [5, 20]
collect_trial_items:
objective: collect
target: [TRIAL_KEY, OMINOUS_TRIAL_KEY]
amount: [1, 5]
collect_armadillo_scute:
objective: collect
target: [ARMADILLO_SCUTE]
amount: [5, 20]
craft_tools:
objective: craft
target: [WOODEN_PICKAXE, STONE_PICKAXE, IRON_PICKAXE, DIAMOND_PICKAXE]
amount: [1, 5]
craft_weapons:
objective: craft
target: [WOODEN_SWORD, STONE_SWORD, IRON_SWORD, DIAMOND_SWORD]
amount: [1, 5]
craft_armor:
objective: craft
target: [IRON_HELMET, IRON_CHESTPLATE, IRON_LEGGINGS, IRON_BOOTS]
amount: [1, 4]
craft_blocks:
objective: craft
target: [CRAFTING_TABLE, CHEST, FURNACE, TORCH]
amount: [5, 20]
craft_decorations:
objective: craft
target: [PAINTING, ITEM_FRAME, ARMOR_STAND, BANNER]
amount: [3, 15]
craft_copper_items:
objective: craft
target: [COPPER_BULB, COPPER_GRATE, COPPER_DOOR, COPPER_TRAPDOOR]
amount: [5, 20]
craft_wolf_armor:
objective: craft
target: [WOLF_ARMOR]
amount: [1, 3]
craft_crafter:
objective: craft
target: [CRAFTER]
amount: [1, 5]
smelt_ores:
objective: smelt
target: [IRON_INGOT, GOLD_INGOT, COPPER_INGOT]
amount: [10, 50]
smelt_food:
objective: smelt
target: [COOKED_BEEF, COOKED_PORKCHOP, COOKED_CHICKEN, COOKED_MUTTON]
amount: [10, 40]
smelt_blocks:
objective: smelt
target: [GLASS, BRICK, TERRACOTTA]
amount: [10, 64]
# ═══════════════════════════════════════════════════════════════════
# FISHING & OCEAN OBJECTIVES
# ═══════════════════════════════════════════════════════════════════
catch_fish:
objective: fish
target: [COD, SALMON, TROPICAL_FISH, PUFFERFISH]
amount: [10, 50]
catch_rare_fish:
objective: fish
target: [SALMON, TROPICAL_FISH]
amount: [5, 25]
catch_treasure:
objective: fish
target: [ANY]
amount: [15, 60]
# ═══════════════════════════════════════════════════════════════════
# FARMING & ANIMALS OBJECTIVES
# ═══════════════════════════════════════════════════════════════════
tame_wolves:
objective: tame
target: [WOLF]
amount: [1, 5]
tame_cats:
objective: tame
target: [CAT]
amount: [1, 3]
tame_horses:
objective: tame
target: [HORSE]
amount: [1, 3]
tame_parrots:
objective: tame
target: [PARROT]
amount: [1, 2]
breed_cows:
objective: breed
target: [COW]
amount: [5, 20]
breed_sheep:
objective: breed
target: [SHEEP]
amount: [5, 20]
breed_pigs:
objective: breed
target: [PIG]
amount: [5, 15]
breed_chickens:
objective: breed
target: [CHICKEN]
amount: [5, 25]
breed_horses:
objective: breed
target: [HORSE]
amount: [2, 8]
breed_wolves:
objective: breed
target: [WOLF]
amount: [2, 10]
breed_any:
objective: breed
target: [ANY]
amount: [10, 30]
shear_sheep:
objective: shear
target: [SHEEP]
amount: [10, 40]
trade_villagers:
objective: trade
target: [ANY]
amount: [5, 20]
# ═══════════════════════════════════════════════════════════════════
# ENCHANTING & BREWING OBJECTIVES
# ═══════════════════════════════════════════════════════════════════
enchant_items:
objective: enchant
target: [ANY]
amount: [3, 15]
brew_potions:
objective: brew
target: [ANY]
amount: [5, 20]
# ═══════════════════════════════════════════════════════════════════
# MOVEMENT & EXPLORATION OBJECTIVES
# ═══════════════════════════════════════════════════════════════════
travel_short:
objective: move
amount: [500, 2000]
travel_medium:
objective: move
amount-by-difficulty:
easy: [1000, 3000]
normal: [2000, 5000]
hard: [4000, 8000]
nightmare: [6000, 12000]
travel_long:
objective: move
amount: [5000, 10000]
travel_vehicle:
objective: vehicle
target: [ANY]
amount: [500, 3000]
jump_challenge:
objective: jump
amount: [50, 200]
# ═══════════════════════════════════════════════════════════════════
# LEVELING OBJECTIVES
# ═══════════════════════════════════════════════════════════════════
gain_levels:
objective: gainlevel
amount: [5, 20]
reach_level_10:
objective: reachlevel
amount: [10, 15]
reach_level_20:
objective: reachlevel
amount: [20, 30]
reach_level_30:
objective: reachlevel
amount: [30, 40]
# ═══════════════════════════════════════════════════════════════════
# SURVIVAL & MISC OBJECTIVES
# ═══════════════════════════════════════════════════════════════════
sleep_in_bed:
objective: sleep
amount: [3, 15]
heal_health:
objective: heal
amount: [50, 200]
consume_food:
objective: consume
target: [APPLE, BREAD, COOKED_BEEF, GOLDEN_APPLE]
amount: [10, 50]
drop_items:
objective: drop
target: [DIRT, COBBLESTONE, STICK]
amount: [10, 64]
send_messages:
objective: chat
amount: [10, 50]
launch_fireworks:
objective: firework
amount: [5, 20]
# ═══════════════════════════════════════════════════════════════════
# SPECIAL & EXTREME OBJECTIVES
# ═══════════════════════════════════════════════════════════════════
kill_wither:
objective: kill
target: [WITHER]
amount: [1, 3]
kill_ender_dragon:
objective: kill
target: [ENDER_DRAGON]
amount: [1, 2]
kill_warden:
objective: kill
target: [WARDEN]
amount: [1, 5]
break_obsidian:
objective: break
target: [OBSIDIAN]
amount: [10, 100]
place_end_crystals:
objective: place
target: [END_CRYSTAL]
amount: [1, 4]
collect_end_items:
objective: collect
target: [END_STONE, END_STONE_BRICKS, PURPUR_BLOCK]
amount: [32, 128]
craft_netherite_gear:
objective: craft
target: [NETHERITE_HELMET, NETHERITE_CHESTPLATE, NETHERITE_LEGGINGS, NETHERITE_BOOTS]
amount: [1, 4]
collect_rare_flowers:
objective: collect
target: [WITHER_ROSE, LILY_OF_THE_VALLEY, CHORUS_FLOWER]
amount: [5, 20]
massive_mining:
objective: break
target: [STONE, DEEPSLATE, COBBLESTONE]
amount: [500, 2000]
epic_travel:
objective: move
amount: [10000, 50000]
repair_anvil:
objective: anvil_repair
target: [ANY]
amount: [1, 8]
explore_biomes:
objective: explore_biome
target: [PLAINS, DESERT, FOREST, JUNGLE, SAVANNA, SNOWY_PLAINS]
amount: [1, 3]
elytra_glide:
objective: elytra_fly
amount: [200, 1500]
collect_xp:
objective: xp_pickup
amount: [50, 300]
play_for_minutes:
objective: playtime
amount: [5, 30]
visit_worlds:
objective: enter_world
target: [world, world_nether, world_the_end, NETHER, THE_END]
amount: [1, 2]
player_duels:
objective: kill_player
amount: [1, 3]
earn_advancements:
objective: advancement
target: [ANY]
amount: [1, 3]
wear_gear:
objective: equip
target: [IRON_CHESTPLATE, DIAMOND_CHESTPLATE, GOLDEN_HELMET, NETHERITE_BOOTS]
amount: [1, 1]
smith_items:
objective: smith
target: [ANY]
amount: [1, 5]
harvest_crops:
objective: harvest
target: [WHEAT, CARROTS, POTATOES, BEETROOTS, NETHER_WART]
amount: [16, 64]
run_command:
objective: command
target: [help, spawn]
amount: [1, 3]
placeholder_progress:
objective: placeholder
# %player_level% requires PlaceholderAPI "Player" expansion:
# /papi ecloud download Player
# /papi reload
target: [player_level]
amount: [5, 25]
reward-pool:
# Same reward block format as quests.yml. Templates override tier ranges when present.
templates:
- weight: 35
tiers: [common, uncommon]
min-difficulty: easy
reward:
xp: 80
money: 45
sigils: 15
items:
- material: BREAD
amount: 8
chance: 100
commands:
- "say {player} completed a generated quest."
command-chance: 35
- weight: 25
tiers: [rare, epic]
min-difficulty: normal
reward:
xp: [180, 320]
money: [120, 250]
sigils: [35, 80]
items:
- material: DIAMOND
amount: [1, 3]
chance: 100
- weight: 12
tiers: [legendary, mythic]
min-difficulty: hard
reward:
xp: [450, 900]
money: [400, 1200]
sigils: [100, 300]
quest:
quest-id: diamond_rush
chance: 75
xp:
common: [25, 100]
uncommon: [75, 150]
rare: [100, 250]
epic: [250, 500]
legendary: [400, 800]
mythic: [750, 1500]
money:
common: [10, 100]
uncommon: [50, 150]
rare: [100, 400]
epic: [400, 1000]
legendary: [750, 2000]
mythic: [1500, 4000]
quests:
enabled: true
chance: 15
pool:
# Quest IDs must match entries in quests.yml
- quest-id: lumberjack
tiers: [common, uncommon]
chance: 80
min-difficulty: easy
- quest-id: mob_hunter
tiers: [rare, epic]
chance: 60
min-difficulty: normal
- quest-id: diamond_rush
tiers: [epic, legendary]
chance: 40
min-difficulty: hard
items:
selection-mode: "weighted"
min-items: 1
max-items: 3
pool:
# ═══════════════════════════════════════════════════════
# COMMON TIER REWARDS
# ═══════════════════════════════════════════════════════
- material: COAL
amount: [8, 32]
tiers: [common]
weight: 60
- material: IRON_INGOT
amount: [2, 8]
tiers: [common, uncommon]
weight: 50
- material: BREAD
amount: [8, 16]
tiers: [common]
weight: 55
- material: TORCH
amount: [16, 64]
tiers: [common]
weight: 50
- material: ARROW
amount: [16, 64]
tiers: [common]
weight: 45
- material: LEATHER
amount: [4, 16]
tiers: [common]
weight: 40
- material: COPPER_INGOT
amount: [8, 32]
tiers: [common]
weight: 55
- material: WIND_CHARGE
amount: [4, 16]
tiers: [common, uncommon]
weight: 35
# ═══════════════════════════════════════════════════════
# UNCOMMON TIER REWARDS
# ═══════════════════════════════════════════════════════
- material: IRON_SWORD
amount: 1
name: "&2Uncommon Blade"
enchantments:
- "SHARPNESS:2"
- "UNBREAKING:1"
tiers: [uncommon]
weight: 35
- material: IRON_PICKAXE
amount: 1
name: "&2Miner's Tool"
enchantments:
- "EFFICIENCY:2"
- "UNBREAKING:1"
tiers: [uncommon]
weight: 35
- material: GOLD_INGOT
amount: [2, 6]
tiers: [uncommon, rare]
weight: 35
- material: LAPIS_LAZULI
amount: [16, 32]
tiers: [uncommon]
weight: 30
- material: REDSTONE
amount: [16, 32]
tiers: [uncommon]
weight: 30
# ═══════════════════════════════════════════════════════
# RARE TIER REWARDS
# ═══════════════════════════════════════════════════════
- material: DIAMOND
amount: [1, 3]
tiers: [rare, epic]
weight: 30
- material: ENCHANTED_BOOK
amount: 1
name: "&9Rare Enchantment"
enchantments:
- "EFFICIENCY:3"
tiers: [rare]
weight: 25
- material: GOLDEN_APPLE
amount: [1, 3]
tiers: [rare, epic]
weight: 25
- material: DIAMOND_SWORD
amount: 1
name: "&9Rare Sword"
enchantments:
- "SHARPNESS:3"
- "UNBREAKING:2"
- "LOOTING:1"
tiers: [rare]
weight: 20
- material: DIAMOND_PICKAXE
amount: 1
name: "&9Fortune Pick"
enchantments:
- "EFFICIENCY:3"
- "FORTUNE:2"
- "UNBREAKING:2"
tiers: [rare]
weight: 20
- material: ENDER_PEARL
amount: [4, 12]
tiers: [rare]
weight: 25
- material: BREEZE_ROD
amount: [2, 8]
tiers: [rare, epic]
weight: 20
- material: TRIAL_KEY
amount: [1, 3]
tiers: [rare]
weight: 18
- material: WOLF_ARMOR
amount: 1
name: "&9Armored Companion"
tiers: [rare]
weight: 15
# ═══════════════════════════════════════════════════════
# EPIC TIER REWARDS
# ═══════════════════════════════════════════════════════
- material: NETHERITE_INGOT
amount: [1, 2]
tiers: [epic, legendary]
weight: 15
min-difficulty: hard
- material: DIAMOND_SWORD
amount: 1
name: "&5&lEpic Blade"
lore:
- "&7A powerful weapon"
- "&7for epic adventurers"
enchantments:
- "SHARPNESS:5"
- "UNBREAKING:3"
- "LOOTING:3"
- "FIRE_ASPECT:2"
tiers: [epic]
weight: 12
min-difficulty: normal
- material: DIAMOND_PICKAXE
amount: 1
name: "&5&lEpic Excavator"
lore:
- "&7Mine with epic efficiency"
enchantments:
- "EFFICIENCY:5"
- "FORTUNE:3"
- "UNBREAKING:3"
tiers: [epic]
weight: 12
min-difficulty: normal
- material: ENCHANTED_BOOK
amount: 1
name: "&5Epic Tome"
enchantments:
- "MENDING:1"
tiers: [epic, legendary]
weight: 15
- material: ENCHANTED_GOLDEN_APPLE
amount: [1, 2]
tiers: [epic, legendary]
weight: 10
min-difficulty: hard
- material: TOTEM_OF_UNDYING
amount: 1
tiers: [epic, legendary]
weight: 8
min-difficulty: hard
- material: ELYTRA
amount: 1
name: "&5Epic Wings"
enchantments:
- "UNBREAKING:3"
tiers: [epic]
weight: 5
min-difficulty: hard
- material: OMINOUS_TRIAL_KEY
amount: [1, 2]
name: "&5&lOminous Key"
lore:
- "&7Ominous rewards on completion"
tiers: [epic]
weight: 8
min-difficulty: normal
- material: HEAVY_CORE
amount: 1
name: "&5Heavy Core"
lore:
- "&7Craft the mighty mace"
tiers: [epic, legendary]
weight: 6
min-difficulty: hard
# ═══════════════════════════════════════════════════════
# LEGENDARY TIER REWARDS
# ═══════════════════════════════════════════════════════
- material: NETHERITE_SWORD
amount: 1
name: "&6&l⚔ Legendary Blade ⚔"
lore:
- "&7A weapon of legendary power"
- ""
- "&e▸ &7Sharpness VII"
- "&e▸ &7Looting IV"
- "&e▸ &7Fire Aspect III"
- "&e▸ &7Unbreaking V"
- ""
- "&6&l★ LEGENDARY ★"
enchantments:
- "SHARPNESS:7"
- "LOOTING:4"
- "FIRE_ASPECT:3"
- "UNBREAKING:5"
- "SWEEPING_EDGE:3"
tiers: [legendary]
weight: 8
min-difficulty: hard
- material: NETHERITE_PICKAXE
amount: 1
name: "&6&l⛏ Legendary Excavator ⛏"
lore:
- "&7Mine with legendary power"
- ""
- "&e▸ &7Efficiency VII"
- "&e▸ &7Fortune IV"
- "&e▸ &7Unbreaking V"
- ""
- "&6&l★ LEGENDARY ★"
enchantments:
- "EFFICIENCY:7"
- "FORTUNE:4"
- "UNBREAKING:5"
tiers: [legendary]
weight: 8
min-difficulty: hard
- material: NETHER_STAR
amount: [1, 2]
name: "&6Legendary Star"
tiers: [legendary, mythic]
weight: 6
min-difficulty: nightmare
- material: BEACON
amount: 1
name: "&6Beacon of Legends"
tiers: [legendary]
weight: 4
min-difficulty: nightmare
- material: DRAGON_HEAD
amount: 1
name: "&6Dragon Trophy"
tiers: [legendary]
weight: 3
min-difficulty: nightmare
- material: MACE
amount: 1
name: "&6&l⚔ Legendary Mace ⚔"
lore:
- "&7Crushing force of legends"
- ""
- "&e▸ &7Density V"
- "&e▸ &7Breach IV"
- "&e▸ &7Unbreaking V"
- "&e▸ &7Mending"
- ""
- "&6&l★ LEGENDARY ★"
enchantments:
- "DENSITY:5"
- "BREACH:4"
- "UNBREAKING:5"
- "MENDING:1"
tiers: [legendary]
weight: 7
min-difficulty: hard
# ═══════════════════════════════════════════════════════
# MYTHIC TIER REWARDS
# ═══════════════════════════════════════════════════════
- material: NETHERITE_SWORD
amount: 1
name: "&d&l&o⚔ MYTHIC DESTROYER ⚔"
lore:
- "&7A blade forged from myths"
- "&7and legends alike."
- ""
- "&d▸ &7Sharpness X"
- "&d▸ &7Looting V"
- "&d▸ &7Fire Aspect IV"
- "&d▸ &7Unbreaking VII"
- "&d▸ &7Sweeping Edge V"
- "&d▸ &7Mending"
- ""
- "&d&l✦ MYTHIC WEAPON ✦"
enchantments:
- "SHARPNESS:10"
- "LOOTING:5"
- "FIRE_ASPECT:4"
- "UNBREAKING:7"
- "SWEEPING_EDGE:5"
- "MENDING:1"
flags:
- "HIDE_ENCHANTS"
unbreakable: false
tiers: [mythic]
weight: 5
min-difficulty: nightmare
- material: NETHERITE_PICKAXE
amount: 1
name: "&d&l&o⛏ MYTHIC EXCAVATOR ⛏"
lore:
- "&7Mine through reality itself"
- ""
- "&d▸ &7Efficiency X"
- "&d▸ &7Fortune V"
- "&d▸ &7Unbreaking VII"
- "&d▸ &7Mending"
- ""
- "&d&l✦ MYTHIC TOOL ✦"
enchantments:
- "EFFICIENCY:10"
- "FORTUNE:5"
- "UNBREAKING:7"
- "MENDING:1"
flags:
- "HIDE_ENCHANTS"
tiers: [mythic]
weight: 5
min-difficulty: nightmare
- material: NETHERITE_HELMET
amount: 1
name: "&d&lMythic Crown"
enchantments:
- "PROTECTION:5"
- "UNBREAKING:5"
- "MENDING:1"
tiers: [mythic]
weight: 4
min-difficulty: expert
- material: ENCHANTED_GOLDEN_APPLE
amount: [3, 8]
name: "&dMythic Sustenance"
tiers: [mythic]
weight: 6
min-difficulty: expert
- material: TOTEM_OF_UNDYING
amount: [1, 3]
name: "&dMythic Totem"
tiers: [mythic]
weight: 5
min-difficulty: nightmare
# ════════════════════════════════════════════════════════════════════════════
# TIMER — optional time limit on generated quests (Premium generation only)
# chance: 0 = never timed. Manual quests.yml timer: still works on Free.
# fail-reward-scale clones the generated reward: block with scaled amounts.
# ════════════════════════════════════════════════════════════════════════════
timer:
chance: 0 # 0 = never timed
minutes: [10, 20]
minutes-by-difficulty: # Optional override of minutes:
hard: [8, 12]
start-on: activate # receive | activate (right-click the active paper)
on-expire: fail # fail | consolation | overtime
fail-reward-scale: 0.25 # consolation/overtime: clone full reward: into fail-reward:
# ════════════════════════════════════════════════════════════════════════════
# MYTHICMOBS — pool for kill_mythicmob objectives (requires MythicMobs plugin)
# Mob IDs must match your MythicMobs config exactly.
# ════════════════════════════════════════════════════════════════════════════
mythicmobs:
enabled: false
pool: []
# pool:
# - SkeletalKnight
# - SkeletonKing
# - FireDemon
contract-request.yml
# ##############################################################
# # #
# # SoapsQuest #
# # #
# # Created by: AlternativeSoap #
# # Website: www.SoapsUniverse.com #
# # Support: https://discord.gg/mawAzwFq #
# # #
# ##############################################################
# SoapsQuest — Contract Request (Premium only)
#
# Players take a random quest paper from an NPC, /sq contract, or the quest browser.
# Free edition ignores this file.
#
# Admin: /sq npc broker <npc-id|name> | /sq npc unbroker <npc-id|name>
# Player: /sq contract [difficulty]
#
contract-request:
enabled: true
# How many Citizens NPCs may hand out random contracts at once
max-broker-npcs: 5
# temporary = saved, then removed after the player claims the reward
# session = same cleanup for this feature
generated-quest-mode: temporary
# How many of these contracts a player may hold at once
active-contract-limit: 1
permission: soapsquest.contract
defaults:
# Seconds before the same player can take another contract from this source
cooldown-seconds: 300
cost:
money: 50
sigils: 0
# items:
# - material: EMERALD
# amount: 1
# Fee for the selected difficulty (overrides cost above when present)
cost-by-difficulty:
easy:
money: 25
sigils: 0
normal:
money: 50
sigils: 0
hard:
money: 100
sigils: 5
expert:
money: 200
sigils: 15
nightmare:
money: 350
sigils: 25
allowed-types: [single, multi, sequence]
# Empty list = any difficulty from the generator pool
allowed-difficulties: []
channels:
command:
enabled: true
gui:
enabled: true
# Added by /sq npc broker. Keep within max-broker-npcs.
# List with /sq npc brokers. Remove with /sq npc unbroker <id>.
brokers: {}
# Town board example (after /sq npc broker 42 <green>Here is a job for you.):
# "42":
# cooldown-seconds: 600
# cost:
# money: 100
# sigils: 5
# message: "<green>Here is a job for you."
# allowed-difficulties: [normal, hard]
# allowed-types: [single]
quest-loot.yml
# ##############################################################
# # #
# # SoapsQuest #
# # #
# # Created by: AlternativeSoap #
# # Website: www.SoapsUniverse.com #
# # Support: https://discord.gg/mawAzwFq #
# # #
# ##############################################################
# ════════════════════════════════════════════════════════════════════════════
# SoapsQuest — Quest Loot System (Premium)
# ════════════════════════════════════════════════════════════════════════════
#
# Adds unbound quest papers to naturally generated chest loot and mob drops.
# Players are bound to the paper the first time they pick it up.
#
# ─── SOURCE MODES (pool.mode) ─────────────────────────────────────────────
# manual → random quest from pool.quests
# random → new quest from random-generator.yml (Premium)
# mixed → pool.mixed-ratio chance of random; otherwise manual
#
# ─── WORLD FILTERS ──────────────────────────────────────────────────────────
# Empty worlds: [] = allow all worlds.
#
# ─── MOB QUEST POOL ─────────────────────────────────────────────────────────
# When mobs.pool.quests is empty, mob drops inherit chest.pool.quests
# unless pool.inherit-chest-quests is set to false.
#
# ════════════════════════════════════════════════════════════════════════════
quest-loot:
# ─── Master Control ───────────────────────────────────────────────────────
enabled: false
max-per-event: 4
# Respect quest permissions and start conditions before dropping papers.
# When false, any quest in the pool may drop regardless of player state.
obey-plugin-restrictions: true
# ─── Chest Loot ───────────────────────────────────────────────────────────
chest:
enabled: true
chance: 10
amount:
min: 1
max: 2
worlds:
- "world"
- "world_nether"
# Substring match against loot table keys (natural sources only).
allowed-loot-tables:
- "chests/simple_dungeon"
- "chests/abandoned_mineshaft"
- "chests/buried_treasure"
- "archaeology"
- "fishing"
pool:
mode: manual
mixed-ratio: 0.5
quests:
- "lumberjack"
- "zombie_slayer"
- "gone_fishing"
- "iron_miner"
- "mob_hunter"
# ─── Mob Drop Loot ────────────────────────────────────────────────────────
mobs:
enabled: true
default-chance: 5
amount:
min: 1
max: 1
worlds:
- "world"
pool:
# Omit mode to inherit chest.pool.mode.
# mode: manual
inherit-chest-quests: true
# Optional separate mob pool (uncomment to override chest pool):
# quests:
# - "zombie_slayer"
# - "mob_hunter"
types:
# Entity names = Bukkit EntityType (UPPER_CASE).
# Per-type chance overrides default-chance; amount uses same min/max keys.
ZOMBIE:
chance: 12
amount-min: 1
amount-max: 2
HUSK:
chance: 12
ZOMBIE_VILLAGER:
chance: 10
DROWNED:
chance: 12
SKELETON:
chance: 8
STRAY:
chance: 8
BOGGED:
chance: 8
CREEPER:
chance: 10
amount-max: 2
SPIDER:
chance: 7
CAVE_SPIDER:
chance: 8
SLIME:
chance: 6
ENDERMITE:
chance: 5
SILVERFISH:
chance: 4
WITCH:
chance: 15
PHANTOM:
chance: 12
GUARDIAN:
chance: 15
ELDER_GUARDIAN:
chance: 60
amount-min: 2
amount-max: 4
GHAST:
chance: 18
amount-max: 2
MAGMA_CUBE:
chance: 8
ZOMBIFIED_PIGLIN:
chance: 8
PIGLIN_BRUTE:
chance: 20
amount-max: 2
HOGLIN:
chance: 15
ZOGLIN:
chance: 12
BLAZE:
chance: 15
amount-max: 2
WITHER_SKELETON:
chance: 25
amount-max: 3
ENDERMAN:
chance: 20
amount-max: 2
SHULKER:
chance: 20
amount-max: 2
PILLAGER:
chance: 12
amount-max: 2
VINDICATOR:
chance: 15
amount-max: 2
EVOKER:
chance: 25
amount-max: 2
RAVAGER:
chance: 30
amount-max: 2
VEX:
chance: 5
WARDEN:
chance: 50
amount-min: 2
amount-max: 3
BREEZE:
chance: 20
amount-max: 2
WITHER:
chance: 100
amount-min: 3
amount-max: 5
ENDER_DRAGON:
chance: 100
amount-min: 3
amount-max: 6
See also: Configuration.
Version 1.0.5