> For the complete documentation index, see [llms.txt](https://pixelforge.gitbook.io/pixelforge/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pixelforge.gitbook.io/pixelforge/documentation/plugins/chunklock.md).

# ChunkLock

ChunkLock is a chunk-based progression gamemode plugin for Paper/Spigot.

### [Download Plugin](https://builtbybit.com/resources/chunklock-core.97731/)

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td>Chunk Cost</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2F6PuUTT1aiZjeHsY80KId%2FZrzut%20ekranu%202026-03-09%20123521.png?alt=media&amp;token=af779e3b-abb9-41a7-99d4-8d2ff286d3cb">Zrzut ekranu 2026-03-09 123521.png</a></td></tr><tr><td>Chunk Menu</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FeL180YuWKLTeQUztnvOa%2FZrzut%20ekranu%202026-03-09%20123533.png?alt=media&amp;token=d4b1e8dc-5a10-4baf-b71a-90174339ab40">Zrzut ekranu 2026-03-09 123533.png</a></td></tr><tr><td>Chunk</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2F3kkiQqQpMRn3CO507fkn%2FZrzut%20ekranu%202026-03-09%20123549.png?alt=media&amp;token=0f885ed1-9e57-404c-bcc8-762ea9347fc5">Zrzut ekranu 2026-03-09 123549.png</a></td></tr><tr><td>Friends List</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FabPkJsBkTzNabsEcEPN4%2FZrzut%20ekranu%202026-03-09%20123750.png?alt=media&amp;token=43442c20-5eaa-48a7-8e7d-0e9ceb90095d">Zrzut ekranu 2026-03-09 123750.png</a></td></tr><tr><td>Friends Permissions</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2F0WOOul5g78nUDN9L6cjP%2FZrzut%20ekranu%202026-03-09%20123754.png?alt=media&amp;token=13c37694-d81b-409f-bc03-d528ea09a59f">Zrzut ekranu 2026-03-09 123754.png</a></td></tr><tr><td>Chunk Reset</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FqCOOTgcClzmnQJRxF9h3%2FZrzut%20ekranu%202026-03-09%20124015.png?alt=media&amp;token=4bcd516f-bfbc-4010-916f-1003193d949a">Zrzut ekranu 2026-03-09 124015.png</a></td></tr><tr><td>Visit Banned</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FFf3A21mwfZkFmV5JFdFI%2FZrzut%20ekranu%202026-03-09%20123956.png?alt=media&amp;token=60e79143-78cd-4e31-8da5-90df70dc2dbe">Zrzut ekranu 2026-03-09 123956.png</a></td></tr><tr><td>Progressions</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FWpm9eTKVJ0vjlWbpKbmy%2FZrzut%20ekranu%202026-03-09%20123926.png?alt=media&amp;token=99c8d6fe-3bfd-4c81-b1aa-a9570dd1b8ef">Zrzut ekranu 2026-03-09 123926.png</a></td></tr><tr><td>Periodic Points</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FM2oy7sFCGEWu3DxSXkcN%2FZrzut%20ekranu%202026-03-09%20123929.png?alt=media&amp;token=38c7b7a8-f69f-4993-9683-603155f71c0f">Zrzut ekranu 2026-03-09 123929.png</a></td></tr><tr><td>Statistic Rewards</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FUOOxFhtidAfCI61gabzn%2FZrzut%20ekranu%202026-03-09%20123932.png?alt=media&amp;token=911240b7-cf3d-41de-bb17-4114a43fc9a7">Zrzut ekranu 2026-03-09 123932.png</a></td></tr><tr><td>Advancement Rewards</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2F6C9EETWTaB28DAzyTzVd%2FZrzut%20ekranu%202026-03-09%20123939.png?alt=media&amp;token=d5ce8e86-4f43-41da-8c27-3c218e74230f">Zrzut ekranu 2026-03-09 123939.png</a></td></tr><tr><td>Warps</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2F9jBXz4Yh7SvoJvzZkfFp%2FZrzut%20ekranu%202026-03-09%20123829.png?alt=media&amp;token=ef52d576-de44-40ba-beb7-99f8821fc29d">Zrzut ekranu 2026-03-09 123829.png</a></td></tr><tr><td>Edit Warp</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FMf7ef2SulDL8rp6CrXVQ%2FZrzut%20ekranu%202026-03-09%20123854.png?alt=media&amp;token=afe0e5b5-845b-483b-b2e0-d0f1b6a7cd8f">Zrzut ekranu 2026-03-09 123854.png</a></td></tr><tr><td>Warp Icon Picker</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FGlxRYu0NAXPXfKmdsePM%2FZrzut%20ekranu%202026-03-09%20123913.png?alt=media&amp;token=a8636c82-c53f-4f50-982b-7f572b889aa7">Zrzut ekranu 2026-03-09 123913.png</a></td></tr><tr><td>Chunk Upgrade</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FMbiHv4s9FQLZ3HcswR5X%2FZrzut%20ekranu%202026-03-09%20123920.png?alt=media&amp;token=2869b074-76d9-4aef-acdc-e42e29aa445a">Zrzut ekranu 2026-03-09 123920.png</a></td></tr><tr><td>Questes</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FAGsbeHGhbk4Al0xIZi7U%2FZrzut%20ekranu%202026-03-09%20123803.png?alt=media&amp;token=b8a4da23-6706-4e72-88d8-f82b6c5161f8">Zrzut ekranu 2026-03-09 123803.png</a></td></tr><tr><td>Daily Quests</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FwS5I7kUNaEpwgFVpbQUc%2FZrzut%20ekranu%202026-03-09%20123807.png?alt=media&amp;token=c5a150c9-e816-4ae3-ad74-9bfbb8858156">Zrzut ekranu 2026-03-09 123807.png</a></td></tr><tr><td>Weekly Quests</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2FzO175JCdMUUK4nrnYDNE%2FZrzut%20ekranu%202026-03-09%20123814.png?alt=media&amp;token=3c0f2490-ba93-46c8-931c-7a43f5be68be">Zrzut ekranu 2026-03-09 123814.png</a></td></tr><tr><td>General Quests</td><td data-object-fit="contain"><a href="https://3289379759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa9kcZtqetGYwIXKEoeXa%2Fuploads%2Fbxfekl07sd8kwwWWWnHz%2FZrzut%20ekranu%202026-03-09%20123819.png?alt=media&amp;token=cb14eeee-1965-4b6a-94bd-0e41a0dc77dc">Zrzut ekranu 2026-03-09 123819.png</a></td></tr></tbody></table>

## <mark style="color:$primary;">**Plugin description**</mark>

* ChunkLock is a chunk-based progression gamemode plugin for Paper/Spigot.

  Each player starts with a single home chunk in a dedicated ChunkLock world and expands outward by unlocking neighboring chunks through configurable costs, quests, progression, upgrades, warps, and team systems.
* Personal or team-based Chunk Points
* Locked chunk borders with live TextDisplay / ItemDisplay requirements
* Configurable unlock costs using:
  * Chunk Points
  * Money via Vault
  * Experience levels
  * Items
* Unlock scaling with linear or exponential formulas
* Biome-based home creation
* Friends / team system with detailed internal permissions
* Public and private warps
* Visit browser, reviews, bans, and top lists
* Daily, weekly, and general quests
* Progression rewards from periodic points, statistics, and advancements
* Upgrades for home progression
* SQLite and MySQL support
* PlaceholderAPI support
* Soft integrations for:
  * Vault
  * PlaceholderAPI
  * ItemsAdder
  * Oraxen
  * Nexo
  * MythicMobs
  * MythicCrucible
  * ExecutableItems
  * AdvancedItems
  * EcoItems

## <mark style="color:$primary;">Compatibility</mark>

* Minecraft: `1.19.4 - 1.21.x`
* API: `Paper / Spigot`

## <mark style="color:$primary;">Player Commands</mark>

* `/chunk`
  * Permission: `chunklock.command.menu`
  * Opens the main ChunkLock menu.
* `/chunk create`
  * Permission: `chunklock.command.create`
  * Opens the biome selection GUI and starts home creation.
* `/chunk create stop`
  * Permission: `chunklock.command.create.stop`
  * Stops the active biome search.
* `/chunk points`
  * Permission: `chunklock.command.points`
  * Shows your current Chunk Points balance.
* `/chunk points send <player> <amount>`
  * Permission: `chunklock.command.points.send`
  * Sends Chunk Points to another player or team storage.
* `/chunk points top`
  * Permission: `chunklock.command.points.top`
  * Opens the top Chunk Points GUI.
* `/chunk remove`
  * Permission: `chunklock.command.remove`
  * Removes your ChunkLock home.
* `/chunk spawn`
  * Permission: `chunklock.command.spawn`
  * Teleports you to your home spawn.
* `/chunk setspawn`
  * Permission: `chunklock.command.setspawn`
  * Sets the spawn point for your home.
* `/chunk warp`
  * Permission: `chunklock.command.warp`
  * Opens the global warp browser.
* `/chunk warp <name>`
  * Permission: `chunklock.command.warp`
  * Teleports to a visible warp by name.
* `/chunk <warp-name>`
  * Permission: `chunklock.command.warp`
  * Shortcut for `/chunk warp <name>`.
* `/chunk setwarp <name>`
  * Permission: `chunklock.command.setwarp`
  * Creates a new warp at your current location.
* `/chunk delwarp <name>`
  * Permission: `chunklock.command.delwarp`
  * Deletes one of your managed warps.
* `/chunk quests`
  * Permission: `chunklock.command.quests`
  * Opens the quests menu.
* `/chunk quests daily`
  * Permission: `chunklock.command.quests`
  * Opens the daily quests GUI.
* `/chunk quests weekly`
  * Permission: `chunklock.command.quests`
  * Opens the weekly quests GUI.
* `/chunk quests general`
  * Permission: `chunklock.command.quests`
  * Opens the general quests GUI.
* `/chunk visit`
  * Permission: `chunklock.command.visit`
  * Opens the Visit ChunkLock browser.
* `/chunk visit kick <player>`
  * Permission: `chunklock.command.visit.kick`
  * Kicks a visitor out of your ChunkLock home.
* `/chunk visit ban <player>`
  * Permission: `chunklock.command.visit.ban`
  * Bans a player from visiting your ChunkLock home.
* `/chunk visit unban <player>`
  * Permission: `chunklock.command.visit.unban`
  * Removes a visitor ban.
* `/chunk visit bans`
  * Permission: `chunklock.command.visit.bans`
  * Opens the banned visitors GUI.
* `/chunk review`
  * Permission: `chunklock.command.review`
  * Opens the review GUI for the ChunkLock home you are currently visiting.
* `/chunk top`
  * Permission: `chunklock.command.top`
  * Opens the top ChunkLock homes GUI.
* `/chunk friend add <player>`
  * Permission: `chunklock.command.friend.add`
  * Sends a friend/team invite.
* `/chunk friend remove <player>`
  * Permission: `chunklock.command.friend.remove`
  * Removes a friend from the home team.
* `/chunk friends add <player>`
  * Permission: `chunklock.command.friend.add`
  * Same as `/chunk friend add <player>`.
* `/chunk friends remove <player>`
  * Permission: `chunklock.command.friend.remove`
  * Same as `/chunk friend remove <player>`.
* `/chunk friends accept <player>`
  * Permission: `chunklock.command.friend.accept`
  * Accepts a pending ChunkLock friend invite.
* `/chunk friends decline <player>`
  * Permission: `chunklock.command.friend.decline`
  * Declines a pending ChunkLock friend invite.
* `/chunk help`
  * Permission: `chunklock.command.help`
  * Shows the help message.
* `/chunk info`
  * Permission: `chunklock.command.info`
  * Shows information about the current chunk.
* `/chunk list`
  * Permission: `chunklock.command.list`
  * Lists unlocked chunks.
* `/chunk playershop create`
  * Permission: `chunklock.command.playershop.create`
  * Creates a Player Shop from the targeted supported container block.
* `/chunk admin upgrade add <player> <upgrade> <level>`
  * Permission: `chunklock.command.admin.upgrade.add`
  * Adds upgrade levels to the target player's ChunkLock home.
* `/chunk admin upgrade remove <player> <upgrade> <level>`
  * Permission: `chunklock.command.admin.upgrade.remove`
  * Removes upgrade levels from the target player's ChunkLock home.
* `/chunk achievements`
  * Permission: `chunklock.command.achievements`
  * Opens the ChunkLock achievements GUI.
* `/chunk friend leave`
  * Permission: `chunklock.command.friend.leave`
  * Leaves the current ChunkLock home team.
* `/chunk upgrade`
  * Permission: `chunklock.command.upgrade`
  * Opens the chunk upgrades GUI for your current home.
* `/chunk version`
  * Permission: `chunklock.command.version`
  * Displays a link to the plugin, the version of the plugin on the server, and the latest publicly available version.
* `/chunk settings`
  * Permission: `chunklock.command.settings`
  * Displays a GUI with chunk settings

## <mark style="color:$primary;">Admin Commands</mark>

* `/chunk admin reload`
  * Permission: `chunklock.command.admin.reload`
  * Reloads the plugin runtime configuration.
* `/chunk admin points give <player> <amount>`
  * Permission: `chunklock.command.admin.points.give`
  * Adds Chunk Points.
* `/chunk admin points take <player> <amount>`
  * Permission: `chunklock.command.admin.points.take`
  * Removes Chunk Points.
* `/chunk admin points check <player>`
  * Permission: `chunklock.command.admin.points.check`
  * Shows Chunk Points balance and recent point history.
* `/chunk admin timeabsence <player> <days>`
  * Permission: `chunklock.command.admin.timeabsence`
  * Overrides the inactivity-removal limit for a player.
* `/chunk admin unlock <player> <world> <x> <z>`
  * Permission: `chunklock.command.admin.unlock`
  * Unlocks a chunk for a player.
* `/chunk admin lock <player> <world> <x> <z>`
  * Permission: `chunklock.command.admin.lock`
  * Locks a chunk for a player.
* `/chunk admin reset <player>`
  * Permission: `chunklock.command.admin.reset`
  * Resets a player home.
* `/chunk admin regenerate requirements <player>`
  * Permission: `chunklock.command.admin.regenerate`
  * Regenerates pending unlock requirements for one player.
* `/chunk admin regenerate requirements all`
  * Permission: `chunklock.command.admin.regenerate`
  * Regenerates pending unlock requirements for all homes.
* `/chunk admin upgrade add <player> <upgrade> <level>`
  * Permission: `chunklock.command.admin.upgrade.add`
  * Adds upgrade levels to the target player's ChunkLock home.
* `/chunk admin upgrade remove <player> <upgrade> <level>`
  * Permission: `chunklock.command.admin.upgrade.remove`
  * Removes upgrade levels from the target player's ChunkLock home.
* `/chunk admin reaserch <size>`
  * Permission: `chunklock.command.admin.research`
  * Pre-researches and stores biome chunks in an `NxN` area around spawn.
* `/chunk admin reaserch stop`
  * Permission: `chunklock.command.admin.research.stop`
  * Stops the currently running admin research task.
* `/chunk admin achievement <player> <add|remove|reset> [achievement]`
  * Permission: `chunklock.command.admin.achievement`
  * Adds, removes, or resets achievement progress for a target player.
* `/chunk admin friends add <owner> <player>`
  * Permission: `chunklock.command.admin.friends.add`
  * Adds a player directly to another player's ChunkLock home team.
* `/chunk admin friends remove <owner> <player>`
  * Permission: `chunklock.command.admin.friends.remove`
  * Removes a player directly from another player's ChunkLock home team.

## <mark style="color:$primary;">Permissions</mark>

* `chunklock.bypass`
  * Bypass all ChunkLock restrictions.
* `chunklock.command.menu`
* `chunklock.command.create`
* `chunklock.command.create.stop`
* `chunklock.command.points`
* `chunklock.command.points.send`
* `chunklock.command.points.top`
* `chunklock.command.remove`
* `chunklock.command.spawn`
* `chunklock.command.setspawn`
* `chunklock.command.warp`
* `chunklock.command.setwarp`
* `chunklock.command.delwarp`
* `chunklock.command.quests`
* `chunklock.command.visit`
* `chunklock.command.visit.kick`
* `chunklock.command.visit.ban`
* `chunklock.command.visit.unban`
* `chunklock.command.visit.bans`
* `chunklock.command.review`
* `chunklock.command.top`
* `chunklock.command.friend.add`
* `chunklock.command.friend.remove`
* `chunklock.command.friend.accept`
* `chunklock.command.friend.decline`
* `chunklock.command.help`
* `chunklock.command.info`
* `chunklock.command.list`
* `chunklock.command.admin`
* `chunklock.command.admin.reload`
* `chunklock.command.admin.timeabsence`
* `chunklock.command.admin.unlock`
* `chunklock.command.admin.lock`
* `chunklock.command.admin.reset`
* `chunklock.command.admin.regenerate`
* `chunklock.update.notify`
* `chunklock.command.playershop.create`
* `chunklock.playershop.use`
* `chunklock.playershop.create`
* `chunklock.playershop.edit`
* `chunklock.playershop.delete`
* `chunklock.command.admin.upgrade`
* `chunklock.command.admin.upgrade.add`
* `chunklock.command.admin.upgrade.remove`
* `create_player_shops`
* `edit_player_shops`
* `delete_player_shops`
* `use_player_shops`
* `chunklock.command.achievements`
* `chunklock.command.admin.research`
* `chunklock.command.admin.research.stop`
* `chunklock.command.admin.achievement`
* `chunklock.command.friend.leave`
* `chunklock.command.admin.points`
* `chunklock.command.admin.points.give`
* `chunklock.command.admin.points.take`
* `chunklock.command.admin.points.check`
* `chunklock.command.admin.friends`
* `chunklock.command.admin.friends.add`
* `chunklock.command.admin.friends.remove`
* `chunklock.command.upgrade`
* `chunklock.command.version`
* `chunklock.command.settings`

## <mark style="color:$primary;">Dynamic Permissions</mark>

* `chunklock.limit.<value>`
  * Example: `chunklock.limit.96`
* `chunklock.limit.unlimited`
* `chunk.periodicpoints.<amount>`
  * Example: `chunk.periodicpoints.5`
* `chunklock.costchunk.reduction.<key>`
  * Example: `chunklock.costchunk.reduction.vip`
* `chunklock.upgrade.reduction.<key>`
  * Example: `chunklock.upgrade.reduction.vip`

## <mark style="color:$primary;">Placeholders</mark>

Identifier:

* `chunklock`

Format:

* `%chunklock_<placeholder>%`

### General / Chunk Points

* `%chunklock_points%`
* `%chunklock_chunk_points%`
* `%chunklock_home_chunk_points%`
* `%chunklock_team_chunk_points%`
* `%chunklock_current_home_chunk_points%`
* `%chunklock_unlocked%`
* `%chunklock_limit%`
* `%chunklock_current_unlocked%`

### Home Information

* `%chunklock_home_world%`
* `%chunklock_home_chunk_x%`
* `%chunklock_home_chunk_z%`
* `%chunklock_home_biome%`
* `%chunklock_home_created_at%`
* `%chunklock_home_friends%`
* `%chunklock_home_team_size%`
* `%chunklock_home_friend_limit%`
* `%chunklock_home_upgrades%`
* `%chunklock_home_warp_count%`
* `%chunklock_home_public_warp_count%`
* `%chunklock_home_private_warp_count%`
* `%chunklock_home_visits%`
* `%chunklock_home_votes_positive%`
* `%chunklock_home_votes_negative%`
* `%chunklock_home_bans%`
* `%chunklock_home_visits_enabled%`
* `%chunklock_home_spawn_world%`

### Current Chunk / Current Home

* `%chunklock_current_world%`
* `%chunklock_current_chunk_x%`
* `%chunklock_current_chunk_z%`
* `%chunklock_current_home_owner%`
* `%chunklock_current_home_owner_uuid%`
* `%chunklock_current_home_world%`
* `%chunklock_current_home_chunk_x%`
* `%chunklock_current_home_chunk_z%`
* `%chunklock_current_home_created_at%`
* `%chunklock_current_home_biome%`
* `%chunklock_current_home_friends%`
* `%chunklock_current_home_unlocked%`
* `%chunklock_current_home_upgrades%`
* `%chunklock_current_home_team_size%`
* `%chunklock_current_home_warp_count%`
* `%chunklock_current_home_public_warp_count%`
* `%chunklock_current_home_private_warp_count%`
* `%chunklock_current_home_visits%`
* `%chunklock_current_home_votes_positive%`
* `%chunklock_current_home_votes_negative%`
* `%chunklock_current_home_bans%`
* `%chunklock_current_home_visits_enabled%`
* `%chunklock_current_is_owner%`

### Quest Access / Overview

* `%chunklock_quests_has_access%`
* `%chunklock_quests_owner%`
* `%chunklock_quests_owner_uuid%`

### Daily Quest Summary

* `%chunklock_quests_daily_completed%`
* `%chunklock_quests_daily_total%`
* `%chunklock_quests_daily_remaining%`
* `%chunklock_quests_daily_percent%`
* `%chunklock_quests_daily_active%`
* `%chunklock_quests_daily_claimable%`
* `%chunklock_quests_daily_next_reset%`
* `%chunklock_quests_daily_next_reset_countdown%`
* `%chunklock_quests_daily_next_reset_unix%`

### Weekly Quest Summary

* `%chunklock_quests_weekly_completed%`
* `%chunklock_quests_weekly_total%`
* `%chunklock_quests_weekly_remaining%`
* `%chunklock_quests_weekly_percent%`
* `%chunklock_quests_weekly_active%`
* `%chunklock_quests_weekly_claimable%`
* `%chunklock_quests_weekly_next_reset%`
* `%chunklock_quests_weekly_next_reset_countdown%`
* `%chunklock_quests_weekly_next_reset_unix%`

### General Quest Summary

* `%chunklock_quests_general_completed%`
* `%chunklock_quests_general_total%`
* `%chunklock_quests_general_remaining%`
* `%chunklock_quests_general_percent%`
* `%chunklock_quests_general_active%`
* `%chunklock_quests_general_claimable%`

### Per-Quest Pattern

Pattern:

* `%chunklock_quest_<scope>_<key>_<field>%`

Scopes:

* `daily`
* `weekly`
* `general`

Fields:

* `unlocked`
* `locked`
* `permission`
* `progress`
* `required`
* `remaining`
* `progress_percent`
* `completed`
* `claimed`
* `ready_to_claim`
* `completed_at`
* `completed_by`
* `claimed_at`
* `claimed_by`
* `name`
* `scope`
* `type`
* `target`
* `target_kind`
* `target_kind_name`
* `target_is_custom`
* `target_is_vanilla`
* `target_reference`
* `reward_money`
* `reward_exp`
* `reward_chunk_points`
* `reward_items`
* `reward_commands`
* `random_reward`
* `random_item`
* `random_command`
* `shared_progress`
* `shared_claim`

Example:

* `%chunklock_quest_daily_break_stone_progress%`

### Progression

* `%chunklock_progression_enabled%`
* `%chunklock_progression_starting_points%`
* `%chunklock_progression_periodic_enabled%`
* `%chunklock_progression_periodic_amount%`
* `%chunklock_progression_periodic_reward%`
* `%chunklock_progression_periodic_interval%`
* `%chunklock_progression_periodic_interval_minutes%`
* `%chunklock_progression_periodic_next_payout%`
* `%chunklock_progression_periodic_next_payout_unix%`
* `%chunklock_progression_statistic_rewards%`
* `%chunklock_progression_statistic_count%`
* `%chunklock_progression_advancement_rewards%`
* `%chunklock_progression_advancement_count%`

### Top Chunk Points

Pattern:

* `%chunklock_top_points_<rank>_<field>%`

Fields:

* `name`
* `uuid`
* `points`
* `joined_at`
* `joined_unix`

Examples:

* `%chunklock_top_points_1_name%`
* `%chunklock_top_points_3_points%`

### Top ChunkLock Homes

Patterns:

* `%chunklock_top_chunk_positive_<rank>_<field>%`
* `%chunklock_top_chunk_negative_<rank>_<field>%`

Fields:

* `owner`
* `owner_uuid`
* `world`
* `chunk_x`
* `chunk_z`
* `created_at`
* `created_unix`
* `last_seen_at`
* `last_seen_unix`
* `visits`
* `positive_votes`
* `negative_votes`
* `vote_score`
* `visits_enabled`
* `biome`
* `friends`
* `team_size`
* `upgrades`
* `unlocked`
* `warp_count`
* `public_warp_count`
* `private_warp_count`

Examples:

* `%chunklock_top_chunk_positive_1_owner%`
* `%chunklock_top_chunk_positive_3_warp_count%`
* `%chunklock_top_chunk_negative_5_negative_votes%`

### Players Shop

* Home Shop Summary:
  * `%chunklock_home_shop_count%`
  * `%chunklock_home_public_shop_count%`
  * `%chunklock_home_private_shop_count%`
  * `%chunklock_home_shop_pending_claims%`
  * `%chunklock_home_shop_pending_exp%`
  * note: the `pending_*` names are legacy; in current 1.1.0 they expose shared owner-bank item / EXP totals
* Current Home Shop Summary:
  * `%chunklock_current_home_shop_count%`
  * `%chunklock_current_home_public_shop_count%`
  * `%chunklock_current_home_private_shop_count%`
* Looked-at Player Shop:
  * `%chunklock_current_shop_name%`
  * `%chunklock_current_shop_owner%`
  * `%chunklock_current_shop_home_owner%`
  * `%chunklock_current_shop_currency%`
  * `%chunklock_current_shop_price%`
  * `%chunklock_current_shop_sell_price%`
  * `%chunklock_current_shop_buy_price%`
  * `%chunklock_current_shop_trade_mode%`
  * `%chunklock_current_shop_stock%`
  * `%chunklock_current_shop_public%`
  * `%chunklock_current_shop_payout_target%`
  * `%chunklock_current_shop_pending_claims%`
  * note: `%chunklock_current_shop_pending_claims%` also uses the legacy name and now exposes the shared owner item-bank tota

### Action Bar

* `%percent%`
* `%progress_percent%`
* `%remaining%`
* `%progress_bar%`
* `%bar%`

## <mark style="color:$primary;">Config Files</mark>

{% tabs %}
{% tab title="biomes.yml" %}

```yml
# Start biome choices shown in the /chunk create GUI.
# Each biome entry below:
# - defines the button name and icon shown to the player
# - provides optional lore lines in the GUI
# - maps the choice to one or more real Bukkit biome IDs used during world search
# - can require an optional permission with permission:
# You can freely add, remove or rename entries as long as the biome names in matches: are valid.

biomes:
  desert:
    display-name: Desert
    material: SAND
    permission: ''
    description:
      - '&7Warm start with desert resources.'
    matches: [DESERT]
  savanna:
    display-name: Savanna
    material: ACACIA_LOG
    permission: ''
    description:
      - '&7Dry grasslands with acacia trees.'
    matches: [SAVANNA, SAVANNA_PLATEAU, WINDSWEPT_SAVANNA]
  jungle:
    display-name: Jungle
    material: JUNGLE_LOG
    permission: ''
    description:
      - '&7Dense jungle full of vegetation.'
    matches: [JUNGLE, SPARSE_JUNGLE, BAMBOO_JUNGLE]
  plains:
    display-name: Plains
    material: GRASS_BLOCK
    permission: ''
    description:
      - '&7Open fields with easy expansion.'
    matches: [PLAINS, SUNFLOWER_PLAINS]
  forest:
    display-name: Forest
    material: OAK_SAPLING
    permission: ''
    description:
      - '&7Classic forest biome start.'
    matches: [FOREST, FLOWER_FOREST]
  birch_forest:
    display-name: Birch Forest
    material: BIRCH_LOG
    permission: ''
    description:
      - '&7Bright forest with birch trees.'
    matches: [BIRCH_FOREST]
  old_growth_birch_forest:
    display-name: Old Growth Birch Forest
    material: BIRCH_LEAVES
    permission: ''
    description:
      - '&7Large birch forest terrain.'
    matches: [OLD_GROWTH_BIRCH_FOREST]
  taiga:
    display-name: Taiga
    material: SPRUCE_LOG
    permission: ''
    description:
      - '&7Cold forest with spruce trees.'
    matches: [TAIGA, OLD_GROWTH_SPRUCE_TAIGA, OLD_GROWTH_PINE_TAIGA]
  snow:
    display-name: Snow
    material: SNOW_BLOCK
    permission: ''
    description:
      - '&7Snowy and icy starting area.'
    matches: [SNOWY_PLAINS, ICE_SPIKES, SNOWY_TAIGA, SNOWY_BEACH, SNOWY_SLOPES, FROZEN_PEAKS]
  mountains:
    display-name: Mountains
    material: STONE
    permission: ''
    description:
      - '&7High elevation and mountain views.'
    matches: [MEADOW, GROVE, STONY_PEAKS, JAGGED_PEAKS, WINDSWEPT_HILLS, WINDSWEPT_GRAVELLY_HILLS, WINDSWEPT_FOREST]
  badlands:
    display-name: Badlands
    material: RED_SAND
    permission: ''
    description:
      - '&7Mesa-style terrain with red sand.'
    matches: [BADLANDS, ERODED_BADLANDS, WOODED_BADLANDS]
  swamp:
    display-name: Swamp
    material: LILY_PAD
    permission: ''
    description:
      - '&7Murky biome with swamp features.'
    matches: [SWAMP, MANGROVE_SWAMP]
  mushroom_fields:
    display-name: Mushroom Fields
    material: RED_MUSHROOM_BLOCK
    permission: ''
    description:
      - '&7Rare island-style mushroom biome.'
    matches: [MUSHROOM_FIELDS]

```

{% endtab %}

{% tab title="chunks.yml" %}

```yml
# ChunkLock chunk/home configuration.
# This file controls chunk unlocking rules, chunk/home limits, home removal,
# /chunk spawn behavior and chunk-related sounds.
# sounds.unlock-failed-items plays when a manual unlock is attempted without the required deposited items.
# sounds.unlock-failed-points plays when a manual unlock is attempted without enough Chunk Points.

unlock:
  chunk-points:
    # If true, every manual chunk unlock also requires Chunk Points.
    enabled: true
    # Fixed Chunk Point cost used for every manual unlock.
    cost: 1
  currencies:
    # If true and more than one currency below is enabled, ChunkLock picks only one
    # of the enabled currencies for a given chunk requirement.
    random-one-of-enabled: false
    money:
      # Requires Vault + an economy provider.
      enabled: false
      amount: 500.0
      # Optional mode override for money scaling. Leave empty to use unlock.scaling.mode.
      scaling-mode: ""
      # Optional percent override for money scaling.
      # Set to -1.0 to use unlock.scaling.percent-per-chunk.
      scaling-percent-per-chunk: -1.0
      # Optional max multiplier override for money scaling.
      # Set to -1.0 to use unlock.scaling.max-multiplier.
      max-multiplier: -1.0
    experience:
      enabled: false
      levels: 5
      # Optional mode override for experience scaling. Leave empty to use unlock.scaling.mode.
      scaling-mode: ""
      # Optional percent override for experience scaling.
      # Set to -1.0 to use unlock.scaling.percent-per-chunk.
      scaling-percent-per-chunk: -1.0
      # Optional max multiplier override for experience scaling.
      # Set to -1.0 to use unlock.scaling.max-multiplier.
      max-multiplier: -1.0
    items:
      enabled: true
      # Item groups and detector materials are configured in unlock-items.yml.
      # If true, the auto-scanned item pool may also include common overworld mob drops.
      include-mob-drops: true
      # Optional mode override for item scaling. Leave empty to use unlock.scaling.mode.
      scaling-mode: ""
      # Optional percent override for item scaling.
      # Set to -1.0 to use unlock.scaling.percent-per-chunk.
      # Per-group scaling-percent-per-chunk in unlock-items.yml has higher priority.
      scaling-percent-per-chunk: -1.0
      # Optional max multiplier override for item scaling.
      # Set to -1.0 to use unlock.scaling.max-multiplier.
      max-multiplier: -1.0
  scaling:
    # Scaling mode for money / exp / item costs.
    # EXPONENTIAL: multiplier = (1 + percent/100) ^ (unlockedChunks - 1)
    # LINEAR:      multiplier = 1 + (percent/100) * (unlockedChunks - 1)
    mode: EXPONENTIAL
    # Global fallback percent used for money amount, exp level cost and item amount.
    # You can override it per currency above, and for items also per group in unlock-items.yml.
    # Chunk Point cost above stays fixed and does not scale.
    # Example with EXPONENTIAL and 15.0:
    # - 1st next chunk uses the base money / exp / item values
    # - 2nd next chunk uses base * 1.15
    # - 3rd next chunk uses base * 1.15^2
    percent-per-chunk: 15.0
    # Optional hard cap for the scaling multiplier. Use 0 for no cap.
    max-multiplier: 40.0

limits:
  # Default maximum number of unlocked chunks a player can own.
  # Use -1 for no limit.
  global: 64
  by-permission:
    # Optional permission-based limit overrides.
    # Format:
    # permission.node: max-unlocked-chunks
    #
    # Examples:
    # - a player with chunklock.limit.96 can unlock up to 96 chunks
    # - a player with chunklock.limit.unlimited has no limit
    #
    # If a player has multiple matching permissions, ChunkLock uses the highest limit.
    # Example:
    # - chunklock.limit.96 and chunklock.limit.128 -> final limit = 128
    #
    # Use -1 for unlimited access.
    chunklock.limit.96: 96
    chunklock.limit.128: 128
    chunklock.limit.unlimited: -1

remove:
  # Cooldown between successful /chunklock remove resets.
  cooldown-seconds: 3600
  # Players are teleported to this world's spawn after confirming removal.
  teleport-world: world
  # If true, all unlocked ChunkLock chunks are regenerated back to the world's original terrain.
  reset-terrain: true
  # If true, the player's inventory, armor and off-hand are wiped on remove.
  clear-inventory: true
  # If true, the player's ender chest is wiped on remove.
  clear-ender-chest: true

spawn-command:
  wait:
    # If true, /chunk spawn starts a delayed teleport instead of teleporting instantly.
    enabled: true
    # Time the player must stand still before /chunk spawn completes.
    seconds: 5

visit-command:
  cooldown:
    # If true, /chunk visit applies a cooldown between successful visits to other homes.
    enabled: true
    # Time in seconds before the same player can use /chunk visit again.
    seconds: 5

visit-settings:
  # Default visits state used when a brand new ChunkLock home is created.
  # Existing homes keep their current setting until the owner changes it in the GUI.
  default-enabled: true

inactivity-removal:
  # If true, offline players lose their ChunkLock home after too many inactive days.
  enabled: false
  # Default number of offline days before a player's ChunkLock home is removed and terrain is restored.
  # Admins can override this per player with /chunklock admin timeabsence <player> <days>.
  days: 14
  # How often ChunkLock should scan for inactive homes.
  check-interval-hours: 6

sounds:
  create:
    enabled: true
    type: ENTITY_PLAYER_LEVELUP
    volume: 1.0
    pitch: 1.15
  remove:
    enabled: true
    type: BLOCK_RESPAWN_ANCHOR_DEPLETE
    volume: 0.9
    pitch: 0.75
  unlock:
    enabled: true
    type: ENTITY_EXPERIENCE_ORB_PICKUP
    volume: 1.0
    pitch: 1.0
  deposit-items:
    enabled: true
    type: ENTITY_ITEM_PICKUP
    volume: 0.9
    pitch: 1.1
  deposit-items-failed:
    enabled: true
    type: BLOCK_NOTE_BLOCK_BASS
    volume: 1.0
    pitch: 0.8
  unlock-failed-items:
    enabled: true
    type: BLOCK_NOTE_BLOCK_BASS
    volume: 1.0
    pitch: 0.7
  unlock-failed-points:
    enabled: true
    type: BLOCK_NOTE_BLOCK_BASS
    volume: 1.0
    pitch: 0.55
  spawn-teleport:
    enabled: true
    type: ENTITY_ENDERMAN_TELEPORT
    volume: 1.0
    pitch: 1.0
  visit-teleport:
    enabled: true
    type: ENTITY_ENDERMAN_TELEPORT
    volume: 1.0
    pitch: 1.15

```

{% endtab %}

{% tab title="community.yml" %}

```yml
# ChunkLock community configuration.
# This file controls friend/team settings and default team permissions.

friends:
  # Maximum number of friends a home can have before upgrades are applied.
  base-limit: 3
  # How long a /chunk friends add invite stays valid before it expires automatically.
  invite-expire-seconds: 60
  # Available keys include:
  # place_blocks, break_blocks, unlock_chunks, set_spawn, set_warps, delete_warps,
  # edit_warps, create_player_shops, edit_player_shops, delete_player_shops, use_player_shops, buy_upgrades,
  # manage_friends, manage_friend_permissions, manage_visitors,
  # manage_visitor_permissions, kill_mobs, drop_items, interact,
  # containers, doors, redstone, buckets, pickup_items, pvp, teleport,
  # send_chunk_points
  default-permissions:
    - interact
    - containers
    - doors
    - pickup_items
    - teleport

```

{% endtab %}

{% tab title="config.yml" %}

```yml
# ChunkLock main configuration.
# This file contains gameplay, protection and feature settings.
# Database settings were moved to database.yml.
# Empty lists usually mean "use the default behavior described in the section comments".

# Language file loaded from plugins/ChunkLock/messages/.
# Example: "en.yml", "pl.yml", "cs.yml", "it.yml"
# Translating a file does not switch the plugin automatically.
# If you create a custom translation like it.yml, set language: "it.yml" and run /chunk admin reload.
language: "en.yml"

# Global verbose debug mode.
# false = only normal ChunkLock logs.
# true = extra diagnostic logs in console and plugins/ChunkLock/logs/debug.log.
debug: false

world:
  # Name of the generated ChunkLock overworld.
  name: ChunkLock-world
  # Bukkit world environment. NORMAL is standard overworld terrain.
  environment: NORMAL
  # If true, villages, temples and other vanilla structures can generate.
  generate-structures: true
  # Leave empty for a random seed, or set a custom seed to reuse the same terrain layout.
  seed: ""
  # Default difficulty applied to the generated ChunkLock world.
  difficulty: NORMAL
  # Extra Y offset used when teleporting players to a safe point in the center of a chunk.
  spawn-height-offset: 2
  allocation:
    # Minimum square distance in chunks from any other active player's home chunk.
    # Example: 50 means no new home can be created within 50 chunks east/west and 50 chunks north/south of another player's home.
    # ChunkLock automatically derives its internal search spacing from this value, so a separate chunk-spacing option is no longer needed.
    min-home-distance-chunks: 50
    # Number of spiral positions checked in one biome-search window before ChunkLock continues farther out.
    # This is no longer a hard "give up after this many checks" limit.
    # Lower = more frequent async yields, higher = fewer search windows but more work per pass.
    max-biome-search-attempts: 5000
    # How many candidate chunks /chunk create may inspect in parallel while searching for the selected biome.
    # Lower = safer TPS, higher = faster search. Recommended range: 1-4.
    biome-search-parallelism: 2
    # How many chunks /chunk admin reaserch may inspect in parallel.
    # Lower = safer TPS, higher = faster research. Recommended range: 2-6.
    research-parallelism: 4
    # Whether admin biome research may generate missing chunks while scanning.
    # false = safer for live servers because research only inspects already generated chunks.
    research-generate-missing-chunks: false
    quality:
      # Maximum allowed percentage of surface columns covered by water for a start chunk.
      # Example: 30.0 means a chunk is rejected if water covers more than 30% of its surface.
      max-water-percent: 30.0

protection:
  # Leave empty to manage only the generated ChunkLock world above.
  # Add world names here only if you intentionally want ChunkLock protection outside the main world.
  managed-worlds: []
  # Worlds completely ignored by ChunkLock protection and access checks.
  blacklist-worlds:
    - world_nether
    - world_the_end
  effects:
    # If true, blocked actions also show a short warning above the hotbar.
    action-bar: true
    sound:
      # If true, blocked actions play the sound below.
      enabled: true
      # Bukkit/Paper sound enum name used for blocked action feedback.
      type: BLOCK_NOTE_BLOCK_BASS
      # Playback volume for the blocked-action sound.
      volume: 1.0
      # Playback pitch for the blocked-action sound.
      pitch: 0.7
  portals:
    # If true, nether portals cannot be created or used in ChunkLock managed worlds.
    block-nether: true
    # If true, end portals and gateways cannot be used in ChunkLock managed worlds.
    block-end: true
  wall:
    material: GRAY_STAINED_GLASS
    # Distance in blocks from the wall at which border displays become visible.
    display-activation-distance: 6.0
    # How often TextDisplay / ItemDisplay positions are updated to follow the viewer vertically.
    # Lower = smoother movement, slightly more frequent display sync work.
    display-follow-interval-ticks: 4
    # Minimum time between full nearby wall display visibility scans for the same viewer.
    # Lower = faster show/hide reaction, higher = less CPU usage with many players.
    display-visibility-sync-interval-ms: 250
    # Minimum horizontal movement before ChunkLock re-checks which nearby wall displays should be visible.
    # Lower = more responsive, higher = less scanning while players strafe in place.
    display-visibility-sync-min-horizontal-move: 0.75
    # Display entity teleport interpolation duration used for smooth up/down movement.
    # 0 = instant snapping, 2-4 = smooth without too much lag.
    display-follow-teleport-duration-ticks: 3
    # Minimum vertical difference before ChunkLock moves a wall display.
    # Lower = more precise following, higher = less movement and less visual jitter.
    display-follow-min-delta: 0.01
    # Maximum wall block updates processed per tick.
    # Lower = smaller MSPT spikes, higher = faster wall rebuilds.
    block-update-batch-size: 256
    # Upper cap for the adaptive wall update burst size when many edge updates are queued at once.
    # ChunkLock raises the per-tick batch temporarily during unlock spikes so walls do not stay half-built for too long.
    block-update-max-batch-size: 2048
    # Target amount of ticks used to drain the current wall update queue.
    # Lower = faster recovery after mass unlocks, higher = smaller per-tick bursts.
    block-update-target-drain-ticks: 20
    # If true, the visible slice of walls close to online players is updated immediately instead of waiting for the batch queue.
    immediate-nearby-updates: true
    # Maximum horizontal distance in blocks for using immediate real block updates on a wall edge.
    immediate-update-distance: 24.0
    # Vertical padding around nearby players that is updated instantly before the rest of the wall finishes in the queue.
    immediate-update-vertical-padding: 24
    # Unlock item icons are positioned automatically based on the current progress text length.
    # TextDisplay / ItemDisplay anchor height above the local terrain.
    display-height: 3.0
    # Number of unlocked source chunks refreshed per tick when /chunk admin reload rebuilds walls/displays.
    reload-batch-size: 24
  external-home-commands:
    # Blocks external sethome-style commands inside managed ChunkLock worlds
    # unless the player stands on an unlocked chunk of their own ChunkLock home/team.
    enabled: true
    commands:
      - sethome
      - esethome
      - essentials:sethome
      - cmi:sethome
      - home set
      - homes set

modules:
  # Controls the /chunk root menu.
  menu: true
  # Controls Chunk Points balance, commands, GUI mentions, rewards, costs and Player Shop currency integration.
  chunk-points: true
  # Controls /chunk create and biome selection.
  create: true
  # Controls /chunk remove and related reset GUI.
  remove: true
  # Controls /chunk spawn.
  spawn: true
  # Controls /chunk settings and the per-chunk environment settings GUI.
  chunk-settings: true
  # Controls public home visiting and visit settings GUI.
  visits: true
  # Controls /chunk review and review GUI.
  reviews: true
  # Controls friend commands, friend GUI and friend permissions.
  friends: true
  # Controls warp commands, warp browser GUI and warp editor GUI.
  warps: true
  # Controls Player Shop creation, editor GUI, buyer GUI, recipe item and shop interactions.
  playershop: true
  # Controls upgrade GUI, purchases and upgrade effects.
  upgrades: true
  # Controls quests.yml, quest progress tracking and quest GUIs.
  quests: true
  # Controls progression rewards from progression.yml.
  progression: true
  # Controls the full achievement module: tracking, GUI and /chunk achievements.
  # Set this to false to disable achievements completely.
  achievements: true
  # Controls automatic home removal for inactive offline players.
  inactivity-removal: true

chunk-points:
  # PERSONAL = every player uses their own Chunk Points balance.
  # TEAM = all friends use one shared Chunk Points balance stored on the ChunkLock home owner.
  mode: PERSONAL

update-checker:
  # If true, ChunkLock checks the official BuiltByBit page for updates once per hour.
  # Players with the permission chunklock.update.notify are informed when they join.
  enabled: true

performance:
  boundary:
    # Maximum number of wall display viewer syncs processed in one tick.
    # Lower = safer MSPT under heavy load, higher = faster display catch-up.
    max-viewer-syncs-per-tick: 12
  player-shops:
    # Maximum number of nearby player shop display syncs processed in one tick.
    # Lower = safer MSPT, higher = faster text display refresh for all players.
    max-display-syncs-per-tick: 16
  caches:
    home-summaries:
      # Shared cache for visit browser, chunk top and warp browser home summary lookups.
      enabled: true
      # How long cached home summaries stay valid after being rebuilt.
      ttl-seconds: 5
    player-names:
      # Short-term cache for offline name lookups used in GUIs, placeholders and messages.
      enabled: true
      # How long a resolved player name may stay cached.
      ttl-seconds: 300
      # Maximum amount of cached player name entries.
      maximum-size: 4096
    leaderboards:
      # Controls Caffeine cache for top chunk points and chunk top rankings.
      enabled: true
      # How long leaderboard results stay cached.
      ttl-seconds: 5
      # Maximum amount of cached leaderboard variants kept in memory.
      maximum-size: 32

promotions:
  chunk-unlock:
    # Highest matching permission below is used.
    # Values accept either plain numbers like 15 or strings like "15%".
    # Reductions are applied after unlock scaling.
    # Reduced costs are always rounded down to whole numbers and never go below 1
    # while the original cost is greater than 0.
    by-permission:
      chunklock.costchunk.reduction.vip: "15%"
      chunklock.costchunk.reduction.elite: "25%"
  upgrades:
    # Highest matching permission below is used.
    # Values accept either plain numbers like 15 or strings like "15%".
    # Reduced costs are always rounded down to whole numbers and never go below 1
    # while the original cost is greater than 0.
    by-permission:
      chunklock.upgrade.reduction.vip: "15%"
      chunklock.upgrade.reduction.elite: "25%"

```

{% endtab %}

{% tab title="database.yml" %}

```yml
# ChunkLock database configuration.
# This file controls only data storage and autosave behavior.
# It is separate from config.yml so database credentials and performance tuning
# are easier to maintain without touching gameplay settings.

storage:
  # Supported values:
  # - SQLITE: local database file stored in this plugin folder
  # - MYSQL: external MySQL/MariaDB server
  type: SQLITE

  # How often cached player data should be flushed to the database.
  # Lower values are safer but write more often. Higher values reduce writes
  # but increase the amount of recent data that could be lost in a crash.
  save-interval-minutes: 5

  # These pool settings are used only when storage.type = MYSQL.
  # SQLITE does not use Hikari pooling in ChunkLock.
  pool:
    # Maximum number of open MySQL connections.
    maximum-pool-size: 6
    # Minimum number of idle MySQL connections kept ready in the pool.
    minimum-idle: 2
    # How long ChunkLock waits for a free MySQL connection before failing.
    connection-timeout-ms: 10000
    # Maximum lifetime of one pooled MySQL connection before it is recycled.
    max-lifetime-ms: 600000

  sqlite:
    # Relative path inside the plugin folder for the SQLite database file.
    file: data/chunklock.db
    # How long SQLite should wait for a locked database file before failing a write.
    # Higher values reduce SQLITE_BUSY errors during heavy resets or bulk wall updates.
    busy-timeout-ms: 5000

  mysql:
    # Hostname or IP address of your MySQL server.
    host: 127.0.0.1
    # MySQL server port.
    port: 3306
    # Database/schema name used by ChunkLock.
    database: chunklock
    # MySQL login username.
    username: root
    # MySQL login password.
    password: change-me
    # Optional MySQL table prefix.
    # Leave empty to use the default chunklock_ prefix.
    # Example: "survival_" creates tables like survival_players, survival_requirements, etc.
    prefix: ""

```

{% endtab %}

{% tab title="playershop.yml" %}

```yml
# Player Shop configuration.
# This file controls how physical player-owned shops are created, edited and purchased.

enabled: true

creation:
  # If true, /chunk playershop create can convert a looked-at chest into a Player Shop.
  command-enabled: true
  recipe:
    # If true, a special Player Shop chest item can be crafted and placed.
    enabled: true
    # The recipe creates a renamed Player Shop item with ChunkLock metadata.
    # Vanilla example:
    # result:
    #   material: CHEST
    # Supported custom item providers use the same reference format as the rest of ChunkLock, for example:
    # - itemsadder:namespace:item_name
    # - oraxen:item_id
    # - nexo:item_id
    # - mythiccrucible:item_id
    # - executableitems:item_id
    # - advanceditems:item_id
    # - ecoitems:item_id
    result:
      material: CHEST
      name: '<gold>Player Shop</gold>'
      lore:
        - '<gray>Place this chest on your ChunkLock home</gray>'
        - '<gray>to create a Player Shop.</gray>'
    # Standard shaped recipe.
    # The default recipe is:
    # E E E
    # E C E
    # E E E
    # Vanilla ingredients use Bukkit material names like EMERALD or CHEST.
    # Supported custom item providers can also be used here with the same references as above, for example:
    # ingredients:
    #   E: itemsadder:namespace:green_gem
    #   C: oraxen:shop_core
    shape:
      - 'EEE'
      - 'ECE'
      - 'EEE'
    ingredients:
      E: EMERALD
      C: CHEST
  creation-cost:
    # Costs are charged only when a brand new shop is created.
    # Any combination can be enabled:
    # - money
    # - experience levels
    # - Chunk Points
    # - items
    money:
      enabled: false
      amount: 0.0
    experience:
      enabled: false
      levels: 0
    chunk-points:
      enabled: false
      amount: 0
    items:
      enabled: false
      # Vanilla material or supported custom item reference.
      material: EMERALD
      # Optional display name used in messages and GUI.
      display-name: ''
      amount: 0

shops:
  # Default maximum number of Player Shops available for one ChunkLock home.
  # Upgrades can raise this further. Use -1 for no limit.
  base-limit: 5
  # Default visibility for newly created shops.
  # false = everyone can see the shop, but only the owner and team can buy from it.
  # true  = everyone can buy from it.
  public-by-default: false
  block:
    # Physical block placed at the Player Shop location.
    # Vanilla examples: CHEST, ENDER_CHEST, BARREL.
    # Supported custom item providers can also be used here with the same references as above.
    # When a custom reference is used, ChunkLock keeps a hidden CHEST as the physical shop block
    # and renders the custom item model above it as the visible shop block.
    material: CHEST
  # Default currency used for new shops before the owner changes it.
  default-currency: MONEY
  # Default trade mode:
  # SELL = visitors buy items from the shop
  # BUY  = visitors sell items to the shop
  # BOTH = both actions are enabled at the same time
  default-trade-mode: SELL
  # Default numeric unit price used for money / exp / Chunk Points shops.
  default-unit-price: 0.0
  # Default barter amount used when the shop currency is ITEM.
  default-barter-amount: 1
  # If true, shop names default to the shop owner's name when left blank.
  use-owner-name-when-empty: true
  # Max visible shop name length used by chat rename.
  max-name-length: 32
  # Max view range in blocks for the floating price TextDisplay above the shop.
  # Players farther away than this will not see the shop text.
  text-display-view-range: 10.0
  # If true, buyers can see private shops in the GUI and in-world display,
  # but only the owner and team can buy from them.
  show-private-to-everyone: true
  # Default payout target:
  # SHOP_OWNER = money/items/points go to the player who owns the shop.
  # HOME_OWNER = money/items/points go to the ChunkLock home owner.
  default-payout-target: SHOP_OWNER

editing:
  # If true, shop editing is opened by SHIFT + right click on the shop chest.
  shift-right-click-editor: true
  # If true, chat prompts support typing "cancel" to abort.
  allow-chat-cancel: true
  # How many seconds a pending rename / price prompt stays active.
  prompt-timeout-seconds: 60

buying:
  # If true, the buyer GUI shows a Buy All button.
  buy-all-enabled: true
  # If true, item purchases are limited by both stock and what the buyer can afford.
  respect-affordability: true

sounds:
  create:
    enabled: true
    type: BLOCK_ENDER_CHEST_OPEN
    volume: 1.0
    pitch: 1.05
  open-buyer:
    enabled: true
    type: BLOCK_CHEST_OPEN
    volume: 0.95
    pitch: 1.0
  open-editor:
    enabled: true
    type: BLOCK_ENDER_CHEST_OPEN
    volume: 0.95
    pitch: 1.08
  buyer-click:
    enabled: true
    type: UI_BUTTON_CLICK
    volume: 0.85
    pitch: 1.0
  editor-click:
    enabled: true
    type: UI_BUTTON_CLICK
    volume: 0.85
    pitch: 1.05
  delete:
    enabled: true
    type: BLOCK_CHEST_CLOSE
    volume: 1.0
    pitch: 0.8
  purchase:
    enabled: true
    type: ENTITY_EXPERIENCE_ORB_PICKUP
    volume: 1.0
    pitch: 1.15
  quantity-increase:
    enabled: true
    type: UI_BUTTON_CLICK
    volume: 0.85
    pitch: 1.15
  quantity-decrease:
    enabled: true
    type: UI_BUTTON_CLICK
    volume: 0.85
    pitch: 0.9

```

{% endtab %}

{% tab title="progression.yml" %}

```yml
# ChunkLock progression configuration.
# This file controls passive and milestone-based rewards such as Chunk Points, EXP, money and advancement milestones.
# The whole progression system can still be turned on/off from config.yml -> modules.progression.
#
# Achievement system:
# - General GUI achievements are configured in achivments.yml.
# - The whole achievement GUI/command can be toggled from config.yml -> modules.achievements.
# - Achievements are stored per player.
# - Progress can be earned even if the player does not own a ChunkLock home yet.
# - Rewards can only be claimed when the player has access to a ChunkLock home/team.
# - Every entry from advancement-rewards below is also exposed inside the achievement GUI.
# - advancement-rewards can also complete achievements from achivments.yml with:
#   grant-achievements:
#     - your_achievement_key
# Reward range syntax:
# - chunk-points / reward-points / exp-levels / money can be fixed values or min/max ranges
#   chunk-points:
#     min: 1
#     max: 3
# - reward-points is still supported as a legacy alias for chunk-points

sounds:
  statistic-reward:
    enabled: true
    type: ENTITY_EXPERIENCE_ORB_PICKUP
    volume: 1.0
    pitch: 1.15
  advancement-reward:
    enabled: true
    type: UI_TOAST_CHALLENGE_COMPLETE
    volume: 1.0
    pitch: 1.0
  advancement-claim:
    enabled: true
    type: ENTITY_PLAYER_LEVELUP
    volume: 1.0
    pitch: 1.1
  advancement-claim-denied:
    enabled: true
    type: BLOCK_NOTE_BLOCK_BASS
    volume: 1.0
    pitch: 0.7

# Chunk Points granted once when a new ChunkLock home is created successfully.
# This value is only used on home creation. All other progression rewards stay below.
starting-points: 0

periodic-points:
  # If true, online players receive Chunk Points every interval-minutes.
  enabled: true
  # Time between repeated payouts while the player is online.
  interval-minutes: 30
  # Base Chunk Points granted per payout before upgrade bonuses are added.
  # This is the fallback value used when the player does not have a permission like:
  # - chunk.periodicpoints.3
  # - chunk.periodicpoints.5
  # If a player has multiple chunk.periodicpoints.<amount> permissions, ChunkLock uses the highest amount.
  amount: 1

statistic-rewards:
  # Repeating or one-time rewards based on Bukkit statistics.
  # Common patterns:
  # - statistic: MINE_BLOCK + material
  # - statistic: PLACE_BLOCK + material
  # - statistic: KILL_ENTITY + entity
  # PLACE_BLOCK is a friendly alias handled by ChunkLock and internally mapped to Bukkit USE_ITEM.
  # Use repeatable: true for milestones that can be claimed over and over.
  mine_stone:
    statistic: MINE_BLOCK
    material: STONE
    every: 128
    chunk-points:
      min: 1
      max: 2
    money:
      min: 25
      max: 80
    repeatable: true
  kill_zombies:
    statistic: KILL_ENTITY
    entity: ZOMBIE
    amount: 10
    chunk-points: 1
    exp-levels:
      min: 1
      max: 3
    repeatable: false

advancement-rewards:
  # One-time rewards granted when the player completes a specific advancement key.
  # These entries are also shown inside the achievement GUI and use the same per-player claim flow.
  # Optional integration with achivments.yml:
  # - grant-achievements accepts a list of achievement keys from achivments.yml
  # - each listed achievement is marked as completed and ready to claim
  # - this runs when the advancement is completed
  # - if modules.achievements is false, this integration is ignored
  # Example using an achievement from achivments.yml:
  # - achivments.yml already contains:
  #     story_mine_diamond:
  #       type: OBTAIN_ITEM
  #       target: DIAMOND
  #       amount: 1
  # - to complete that GUI achievement from an advancement, use:
  #     grant-achievements:
  #       - story_mine_diamond
  mine_diamond:
    enabled: true
    order: 100
    name: "Diamonds!"
    icon-material: DIAMOND
    description:
      - "&7Complete the vanilla advancement"
      - "&fminecraft:story/mine_diamond&7."
    key: minecraft:story/mine_diamond
    chunk-points:
      min: 2
      max: 4
    exp-levels:
      min: 3
      max: 5
    # Example: complete the story_mine_diamond GUI achievement from achivments.yml.
    grant-achievements:
      - story_mine_diamond
    items:
      reward_pickaxe:
        material: IRON_PICKAXE
        amount: 1
        display-name: "Miner Pickaxe"

  enter_the_nether:
    enabled: true
    order: 101
    name: "Into the Nether"
    icon-material: NETHERRACK
    description:
      - "&7Complete the vanilla advancement"
      - "&fminecraft:story/enter_the_nether&7."
    key: minecraft:story/enter_the_nether
    chunk-points:
      min: 1
      max: 3
    money:
      min: 100
      max: 250
    exp-levels:
      min: 2
      max: 4
    # Example: complete an achievement defined in achivments.yml when this advancement is earned.
    # The linked achievement keeps its own normal GUI reward from achivments.yml.
    grant-achievements:
      - world_visitor
    commands:
      - "tellraw %player% {\"text\":\"Advancement reward ready: %achievement_name%\",\"color\":\"gold\"}"
    unlock-random-chunk: true

```

{% endtab %}

{% tab title="quests.yml" %}

```yml
# ChunkLock quest configuration.
# Times below use real UTC time, not the local server timezone.
# Quests are grouped into:
# - daily: repeatable pool with a daily UTC reset
# - weekly: repeatable pool with a weekly UTC reset
# - general: permanent one-time quests with no reset
# Quest types supported by ChunkLock:
# - BREAK_BLOCK
# - PLACE_BLOCK
# - KILL_MOB
# - KILL_PLAYER
# - FISH
# - CREATE_SHOP
# - VISIT_WORLD
# - UNLOCK_CHUNKS
# - OBTAIN_ITEM
# Target rules:
# - BREAK_BLOCK / PLACE_BLOCK support vanilla blocks and supported custom blocks/furniture
# - OBTAIN_ITEM supports vanilla items and supported custom item IDs
# - KILL_MOB supports vanilla entities, MythicMobs IDs and ModelEngine model IDs
# - VISIT_WORLD target must be the exact Bukkit world name
# - KILL_PLAYER / FISH / CREATE_SHOP / UNLOCK_CHUNKS do not use target
# Reward rules:
# - if random-reward is false, every configured reward category below is granted
# - if random-reward is true, exactly one configured reward category is chosen at random
# - if random-item is true, one reward from rewards.items is chosen
# - if random-command is true, one command from rewards.commands is executed
# - money / exp-levels / chunk-points can be a fixed value or a min/max range:
#   money:
#     min: 5
#     max: 200
# - unlock-random-chunk: true can be used in the quest root or inside rewards
# - sounds.quest-complete plays when the quest finishes
# - sounds.quest-claim plays when the reward is claimed
# - sounds.quest-claim-denied plays when a player tries to claim a reward that is not available yet
# Useful reward command placeholders:
# %player%, %player_uuid%, %team_owner%, %team_owner_uuid%, %quest_key%, %quest_name%,
# %quest_scope%, %quest_scope_name%, %quest_type%, %quest_type_name%, %progress%,
# %required%, %target%, %money_reward%, %exp_reward%, %chunk_points_reward%, %chunk_points_total%,
# %money_reward_min%, %money_reward_max%, %exp_reward_min%, %exp_reward_max%,
# %chunk_points_reward_min%, %chunk_points_reward_max%, %unlock_random_chunk%
# Optional per-quest permission:
# permission: "chunklock.quest.daily.vip"
# If set, the quest stays visible in the GUI but is locked for players without that permission.
# Custom target support:
# - BREAK_BLOCK / PLACE_BLOCK can target vanilla materials or custom block/furniture IDs
# - OBTAIN_ITEM can target vanilla materials or custom item IDs
# - KILL_MOB can target vanilla entities, MythicMobs IDs and ModelEngine model IDs
# Supported custom item/block providers include ItemsAdder, Oraxen, Nexo and MythicCrucible / Crucible.
# Visit-world quests use the raw server world name, for example "world", "world_nether" or "ChunkLock-world".
# Examples:
# target: "itemsadder:my_pack:ruby_ore"
# target: "oraxen:custom_chair"
# target: "nexo:my_custom_block"
# target: "mythiccrucible:ancient_table"
# target: "mythicmobs:skeleton_knight"
# target: "modelengine:ancient_golem"
# target: "world_nether"

defaults:
  # If true, quest progress is shared by the full ChunkLock team/home.
  shared-progress: true
  # If true, claiming the reward is shared by the full ChunkLock team/home.
  # If false, each player can claim their own reward after the quest is completed.
  shared-claim: false

tracking:
  actionbar:
    # If true, the selected quest progress is shown above the hotbar.
    # A player must first right click a quest in the GUI to start tracking it.
    enabled: true
    # If true, the tracking ActionBar is only shown when the selected quest gains progress.
    # If false, the selected quest ActionBar is refreshed continuously using interval-ticks.
    show-only-on-progress: false
    # How often the tracking ActionBar should refresh.
    interval-ticks: 20
    # Display modes:
    # - CUSTOM
    # - NUMBERS
    # - PERCENT
    # - NUMBERS_PERCENT
    # - BAR
    # - BAR_PERCENT
    # - BAR_NUMBERS
    # - BAR_NUMBERS_PERCENT
    # CUSTOM uses the format below. Other modes use built-in templates.
    display-mode: CUSTOM
    # CUSTOM format supports MiniMessage tags, hex colors and legacy styles like &l, &o, &n.
    # Available placeholders:
    # %quest_name%, %done%, %progress%, %required%, %total_required%, %remaining%, %percent%, %progress_percent%, %progress_bar%, %bar%
    format: "<bold><#86EFAC>%quest_name%</#86EFAC></bold> <gray>%done%/%total_required%</gray> <#FBBF24>(%percent%%)</#FBBF24> %progress_bar%"
    progress-bar:
      # Styles:
      # - SEGMENTS: current filled/current/empty bar
      # - THIN: same logic, but uses thin-symbol for a slimmer look
      # - GRADIENT: filled progress uses a smooth gradient from gradient-start-color to gradient-end-color
      style: SEGMENTS
      # How many square segments should be rendered in %progress_bar%.
      length: 8
      # Symbol used by SEGMENTS and GRADIENT. Avoid emoji-style Unicode variants here.
      symbol: "■"
      # Symbol used by THIN. If empty, the plugin falls back to symbol.
      thin-symbol: "▏"
      # Characters shown before and after the bar.
      left: "["
      right: "]"
      # Bar colors for SEGMENTS / THIN. Filled = green, current segment = orange, remaining = red.
      bracket-color: "&7"
      complete-color: "&#22C55E"
      current-color: "&#F59E0B"
      incomplete-color: "&#EF4444"
      # GRADIENT colors. Remaining segments use gradient-empty-color.
      gradient-start-color: "&#EF4444"
      gradient-end-color: "&#22C55E"
      gradient-empty-color: "&#3F3F46"

sounds:
  quest-complete:
    enabled: true
    type: UI_TOAST_CHALLENGE_COMPLETE
    volume: 1.0
    pitch: 1.0
  quest-claim:
    enabled: true
    type: ENTITY_PLAYER_LEVELUP
    volume: 1.0
    pitch: 1.1
  quest-claim-denied:
    enabled: true
    type: BLOCK_NOTE_BLOCK_BASS
    volume: 1.0
    pitch: 0.7

daily:
  # If false, the whole daily category is hidden and inactive.
  enabled: true
  # Maximum number of daily quests randomly activated in one daily reset cycle.
  max-active: 3
  # Daily reset time in UTC, using 24-hour format HH:mm.
  reset-time-utc: "04:00"
  quests:
    break_stone:
      enabled: true
      order: 1
      shared-progress: true
      shared-claim: false
      name: "Stone Worker"
      icon-material: STONE_PICKAXE
      type: BREAK_BLOCK
      target: STONE
      amount: 128
      description:
        - "&7Break &f128 Stone &7anywhere on the server."
      rewards:
        random-reward: false
        chunk-points: 1
        exp-levels: 2
        money:
          min: 50
          max: 120
        items:
          cobble_reward:
            material: COBBLESTONE
            amount: 32
            display-name: "Cobblestone"
          coal_reward:
            material: COAL
            amount: 8
            display-name: "<gray>Coal"
        random-item: true
        commands:
          - "tellraw %player% {\"text\":\"Daily quest complete: %quest_name%\",\"color\":\"green\"}"
          - "tellraw %player% {\"text\":\"Bonus reward from %quest_scope_name%: %quest_name%\",\"color\":\"gold\"}"
        random-command: true
    place_torches:
      enabled: true
      order: 2
      shared-progress: false
      shared-claim: false
      name: "Light It Up"
      icon-material: TORCH
      type: PLACE_BLOCK
      target: TORCH
      amount: 32
      description:
        - "&7Place &f32 Torches&7."
      rewards:
        money: 100.0
        chunk-points: 1
    kill_zombies:
      enabled: true
      order: 3
      shared-progress: true
      shared-claim: false
      name: "Zombie Cleanup"
      icon-material: IRON_SWORD
      type: KILL_MOB
      target: ZOMBIE
      amount: 10
      description:
        - "&7Kill &f10 Zombies&7."
      rewards:
        exp-levels: 3
        chunk-points: 1
    obtain_wheat:
      enabled: true
      order: 4
      name: "Grain Collector"
      icon-material: WHEAT
      type: OBTAIN_ITEM
      target: WHEAT
      amount: 32
      description:
        - "&7Obtain &f32 Wheat&7."
      rewards:
        money: 75.0
    break_coal_ore:
      enabled: true
      order: 5
      name: "Fuel Miner"
      icon-material: COAL_ORE
      type: BREAK_BLOCK
      target: COAL_ORE
      amount: 24
      description:
        - "&7Break &f24 Coal Ore&7."
      rewards:
        exp-levels: 2
        items:
          torch_reward:
            material: TORCH
            amount: 24
            display-name: "Torches"
    obtain_carrots:
      enabled: true
      order: 6
      name: "Fresh Harvest"
      icon-material: CARROT
      type: OBTAIN_ITEM
      target: CARROT
      amount: 24
      description:
        - "&7Obtain &f24 Carrots&7."
      rewards:
        chunk-points: 1
        money: 60.0
    catch_fish:
      enabled: true
      order: 7
      name: "River Hunter"
      icon-material: FISHING_ROD
      type: FISH
      amount: 5
      description:
        - "&7Catch &f5 fish&7."
      rewards:
        exp-levels: 2
        chunk-points: 1

weekly:
  # If false, the whole weekly category is hidden and inactive.
  enabled: true
  # Maximum number of weekly quests randomly activated in one weekly reset cycle.
  max-active: 5
  # Weekly reset day in UTC. Example values: MONDAY, TUESDAY, SUNDAY.
  reset-day-utc: "MONDAY"
  # Weekly reset time in UTC, using 24-hour format HH:mm.
  reset-time-utc: "05:00"
  quests:
    unlock_chunks:
      enabled: true
      order: 1
      shared-progress: true
      shared-claim: false
      name: "Expand the Border"
      icon-material: MAP
      type: UNLOCK_CHUNKS
      amount: 5
      description:
        - "&7Unlock &f5 new chunks &7with your team."
      rewards:
        random-reward: true
        chunk-points:
          min: 2
          max: 4
        money:
          min: 220
          max: 350
        exp-levels:
          min: 4
          max: 7
        unlock-random-chunk: true
    kill_skeletons:
      enabled: true
      order: 2
      name: "Bone Collector"
      icon-material: BONE
      type: KILL_MOB
      target: SKELETON
      amount: 25
      description:
        - "&7Kill &f25 Skeletons&7."
      rewards:
        exp-levels: 8
        items:
          arrow_reward:
            material: ARROW
            amount: 32
            display-name: "Arrows"
    obtain_logs:
      enabled: true
      order: 3
      name: "Lumber Shipment"
      icon-material: OAK_LOG
      type: OBTAIN_ITEM
      target: OAK_LOG
      amount: 64
      description:
        - "&7Obtain &f64 Oak Logs&7."
      rewards:
        chunk-points: 2
        commands:
          - "say %player% completed %quest_scope_name% quest %quest_name%"
    place_planks:
      enabled: true
      order: 4
      name: "Workshop Builder"
      icon-material: OAK_PLANKS
      type: PLACE_BLOCK
      target: OAK_PLANKS
      amount: 128
      description:
        - "&7Place &f128 Oak Planks&7."
      rewards:
        money: 225.0
        exp-levels: 6
    break_iron_ore:
      enabled: true
      order: 5
      name: "Iron Expedition"
      icon-material: IRON_ORE
      type: BREAK_BLOCK
      target: IRON_ORE
      amount: 32
      description:
        - "&7Break &f32 Iron Ore&7."
      rewards:
        chunk-points: 2
        exp-levels: 7
    obtain_pumpkins:
      enabled: true
      order: 6
      name: "Autumn Delivery"
      icon-material: PUMPKIN
      type: OBTAIN_ITEM
      target: PUMPKIN
      amount: 48
      description:
        - "&7Obtain &f48 Pumpkins&7."
      rewards:
        money: 260.0
        items:
          pumpkin_pie_reward:
            material: PUMPKIN_PIE
            amount: 12
            display-name: "Pumpkin Pies"
    create_shop:
      enabled: true
      order: 7
      name: "Market Opening"
      icon-material: CHEST
      type: CREATE_SHOP
      amount: 1
      description:
        - "&7Create &f1 Player Shop&7 on your ChunkLock home."
      rewards:
        chunk-points: 2
        money: 180.0
    mythic_hunt_example:
      enabled: false
      order: 99
      name: "Mythic Hunter"
      icon-material: NETHER_STAR
      type: KILL_MOB
      target: "mythicmobs:skeleton_knight"
      target-name: "Skeleton Knight"
      amount: 10
      description:
        - "&7Example MythicMobs weekly quest."
        - "&7Enable it only if MythicMobs is installed and the mob ID exists."
      rewards:
        chunk-points: 2
        money: 250.0
    modelengine_hunt_example:
      enabled: false
      order: 100
      name: "Model Engine Hunter"
      icon-material: NETHER_STAR
      type: KILL_MOB
      target: "modelengine:ancient_golem"
      target-name: "Ancient Golem"
      amount: 5
      description:
        - "&7Example ModelEngine weekly quest."
        - "&7Enable it only if ModelEngine is installed and the model ID exists."
      rewards:
        chunk-points: 2
        exp-levels: 8
    kill_player_example:
      enabled: false
      order: 101
      name: "Duel Winner"
      icon-material: DIAMOND_SWORD
      type: KILL_PLAYER
      amount: 3
      description:
        - "&7Example player-vs-player quest."
        - "&7Enable it only on servers where PvP progress should count."
      rewards:
        chunk-points: 3
        exp-levels: 6
    visit_world_example:
      enabled: false
      order: 102
      name: "Nether Tourist"
      icon-material: COMPASS
      type: VISIT_WORLD
      target: "world_nether"
      target-name: "The Nether"
      amount: 1
      description:
        - "&7Example visit-world quest."
        - "&7Use the exact Bukkit world name in target."
      rewards:
        money: 200.0
        chunk-points: 2

general:
  # If false, all one-time general quests are disabled.
  enabled: true
  quests:
    first_unlock:
      enabled: true
      order: 1
      name: "First Expansion"
      icon-material: GRASS_BLOCK
      type: UNLOCK_CHUNKS
      amount: 1
      description:
        - "&7Unlock your first extra ChunkLock chunk."
      rewards:
        chunk-points: 1
        money: 50.0
    first_iron:
      enabled: true
      order: 2
      name: "Iron Supply"
      icon-material: IRON_INGOT
      type: OBTAIN_ITEM
      target: IRON_INGOT
      amount: 16
      description:
        - "&7Obtain &f16 Iron Ingots&7."
      rewards:
        exp-levels: 4
    builder:
      enabled: true
      order: 3
      name: "Builder"
      icon-material: BRICKS
      type: PLACE_BLOCK
      target: BRICKS
      amount: 64
      description:
        - "&7Place &f64 Bricks&7."
      rewards:
        chunk-points: 2
    hunter:
      enabled: true
      order: 4
      name: "Monster Hunter"
      icon-material: BOW
      type: KILL_MOB
      target: SPIDER
      amount: 20
      description:
        - "&7Kill &f20 Spiders&7."
      rewards:
        money: 150.0
        exp-levels: 5
    miner:
      enabled: true
      order: 5
      name: "Deep Miner"
      icon-material: DIAMOND_PICKAXE
      type: BREAK_BLOCK
      target: DEEPSLATE
      amount: 192
      description:
        - "&7Break &f192 Deepslate&7."
      rewards:
        chunk-points: 2
        items:
          iron_reward:
            material: IRON_INGOT
            amount: 8
            display-name: "Iron Ingots"
    supply_run:
      enabled: true
      order: 6
      name: "Supply Run"
      icon-material: CHEST
      type: OBTAIN_ITEM
      target: COOKED_BEEF
      amount: 32
      description:
        - "&7Obtain &f32 Cooked Beef&7."
      rewards:
        money: 120.0
        chunk-points: 1
    first_shop:
      enabled: true
      order: 7
      name: "First Merchant"
      icon-material: CHEST
      type: CREATE_SHOP
      amount: 1
      description:
        - "&7Create your first Player Shop."
      rewards:
        exp-levels:
          min: 3
          max: 5
        chunk-points:
          min: 1
          max: 2
        unlock-random-chunk: true
    crucible_place_example:
      enabled: false
      order: 98
      name: "Crucible Decorator"
      icon-material: WRITABLE_BOOK
      type: PLACE_BLOCK
      target: "mythiccrucible:ancient_table"
      target-name: "Ancient Table"
      amount: 3
      description:
        - "&7Example Crucible place quest."
        - "&7Enable it only if MythicCrucible is installed and the item ID exists."
      rewards:
        exp-levels: 4
        chunk-points: 1
    crucible_break_example:
      enabled: false
      order: 99
      name: "Crucible Salvager"
      icon-material: WRITABLE_BOOK
      type: BREAK_BLOCK
      target: "mythiccrucible:ancient_table"
      target-name: "Ancient Table"
      amount: 3
      description:
        - "&7Example Crucible break quest."
        - "&7Enable it only if MythicCrucible is installed and the furniture/block ID exists."
      rewards:
        money: 180.0
        items:
          salvage_reward:
            material: IRON_NUGGET
            amount: 12
            display-name: "Salvage Scrap"

```

{% endtab %}

{% tab title="unlock-items.yml" %}

```yml
# Unlock item groups used when unlock.currencies.items.enabled is true.
# ChunkLock scans unlocked chunks owned by the player/team and picks only groups
# whose detector materials exist in those unlocked chunks.
# You can also use detector-items for custom block/furniture IDs from supported plugins.
# Per group:
# - icon: item shown in GUI / TextDisplay for this requirement family
# - accepted-items: any of these items can be deposited to satisfy the requirement
#   The icon item is always accepted automatically, even if you do not repeat it here.
# - detector-materials / detector-items: what must already exist in unlocked chunks
#   before this group becomes eligible to roll
# - ignore-source-check: if true, the group may appear without a detector match
#   (useful for mob drops like bones, string or gunpowder)
#
# Deposit matching:
# - if strict-deposit-match is true, players must deposit exactly the displayed icon item
#   and GUI / Required Item / wall ItemDisplay show that exact item.
# - if false, any item from accepted-items may be deposited,
#   GUI / Required Item show the category display-name,
#   and the wall ItemDisplay rotates through accepted-items every 3 seconds.
strict-deposit-match: false
#
# Scaling:
# - min/max below are base values.
# - effective values scale automatically with unlock.scaling.mode / percent-per-chunk / max-multiplier from chunks.yml.
# - you can override scaling for all item groups with unlock.currencies.items.scaling-mode /
#   unlock.currencies.items.scaling-percent-per-chunk / unlock.currencies.items.max-multiplier.
# - you can override scaling for a single group with scaling-percent-per-chunk.
#
# Progression:
# - min-unlocked-chunks controls from which owned chunk count a group may start appearing.
# - max-unlocked-chunks limits a group to early/mid game. Use -1 for no upper limit.
#
# Custom detector examples:
# detector-items:
#   - "itemsadder:my_pack:ruby_ore"
#   - "oraxen:ruby_node"
#   - "nexo:ruby_ore"
#   - "mythiccrucible:ancient_table"

groups:
  wood_basic:
    enabled: true
    display-name: "Wood Basic"
    icon: OAK_LOG
    min: 10
    max: 24
    min-unlocked-chunks: 1
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - OAK_LOG
      - BIRCH_LOG
      - SPRUCE_LOG
      - JUNGLE_LOG
      - ACACIA_LOG
      - DARK_OAK_LOG
      - MANGROVE_LOG
      - CHERRY_LOG
      - OAK_WOOD
      - BIRCH_WOOD
      - SPRUCE_WOOD
      - JUNGLE_WOOD
      - ACACIA_WOOD
      - DARK_OAK_WOOD
      - MANGROVE_WOOD
      - CHERRY_WOOD
      - STRIPPED_OAK_LOG
      - STRIPPED_BIRCH_LOG
      - STRIPPED_SPRUCE_LOG
      - STRIPPED_JUNGLE_LOG
      - STRIPPED_ACACIA_LOG
      - STRIPPED_DARK_OAK_LOG
      - STRIPPED_MANGROVE_LOG
      - STRIPPED_CHERRY_LOG
      - STRIPPED_OAK_WOOD
      - STRIPPED_BIRCH_WOOD
      - STRIPPED_SPRUCE_WOOD
      - STRIPPED_JUNGLE_WOOD
      - STRIPPED_ACACIA_WOOD
      - STRIPPED_DARK_OAK_WOOD
      - STRIPPED_MANGROVE_WOOD
      - STRIPPED_CHERRY_WOOD
      - OAK_PLANKS
      - BIRCH_PLANKS
      - SPRUCE_PLANKS
      - JUNGLE_PLANKS
      - ACACIA_PLANKS
      - DARK_OAK_PLANKS
      - MANGROVE_PLANKS
      - CHERRY_PLANKS
      - STICK
    detector-materials:
      - OAK_LOG
      - BIRCH_LOG
      - SPRUCE_LOG
      - JUNGLE_LOG
      - ACACIA_LOG
      - DARK_OAK_LOG
      - MANGROVE_LOG
      - CHERRY_LOG
      - OAK_WOOD
      - BIRCH_WOOD
      - SPRUCE_WOOD
      - JUNGLE_WOOD
      - ACACIA_WOOD
      - DARK_OAK_WOOD
      - MANGROVE_WOOD
      - CHERRY_WOOD
      - STRIPPED_OAK_LOG
      - STRIPPED_BIRCH_LOG
      - STRIPPED_SPRUCE_LOG
      - STRIPPED_JUNGLE_LOG
      - STRIPPED_ACACIA_LOG
      - STRIPPED_DARK_OAK_LOG
      - STRIPPED_MANGROVE_LOG
      - STRIPPED_CHERRY_LOG
      - STRIPPED_OAK_WOOD
      - STRIPPED_BIRCH_WOOD
      - STRIPPED_SPRUCE_WOOD
      - STRIPPED_JUNGLE_WOOD
      - STRIPPED_ACACIA_WOOD
      - STRIPPED_DARK_OAK_WOOD
      - STRIPPED_MANGROVE_WOOD
      - STRIPPED_CHERRY_WOOD
      - OAK_PLANKS
      - BIRCH_PLANKS
      - SPRUCE_PLANKS
      - JUNGLE_PLANKS
      - ACACIA_PLANKS
      - DARK_OAK_PLANKS
      - MANGROVE_PLANKS
      - CHERRY_PLANKS
      - STICK
      - LADDER
      - OAK_SLAB
      - BIRCH_SLAB
      - SPRUCE_SLAB
      - JUNGLE_SLAB
      - ACACIA_SLAB
      - DARK_OAK_SLAB
      - MANGROVE_SLAB
      - CHERRY_SLAB
      - BAMBOO_SLAB
      - OAK_STAIRS
      - BIRCH_STAIRS
      - SPRUCE_STAIRS
      - JUNGLE_STAIRS
      - ACACIA_STAIRS
      - DARK_OAK_STAIRS
      - MANGROVE_STAIRS
      - CHERRY_STAIRS
      - BAMBOO_STAIRS
      - OAK_FENCE
      - BIRCH_FENCE
      - SPRUCE_FENCE
      - JUNGLE_FENCE
      - ACACIA_FENCE
      - DARK_OAK_FENCE
      - MANGROVE_FENCE
      - CHERRY_FENCE
      - BAMBOO_FENCE
      - OAK_FENCE_GATE
      - BIRCH_FENCE_GATE
      - SPRUCE_FENCE_GATE
      - JUNGLE_FENCE_GATE
      - ACACIA_FENCE_GATE
      - DARK_OAK_FENCE_GATE
      - MANGROVE_FENCE_GATE
      - CHERRY_FENCE_GATE
      - BAMBOO_FENCE_GATE
      - OAK_DOOR
      - BIRCH_DOOR
      - SPRUCE_DOOR
      - JUNGLE_DOOR
      - ACACIA_DOOR
      - DARK_OAK_DOOR
      - MANGROVE_DOOR
      - CHERRY_DOOR
      - BAMBOO_DOOR
      - OAK_TRAPDOOR
      - BIRCH_TRAPDOOR
      - SPRUCE_TRAPDOOR
      - JUNGLE_TRAPDOOR
      - ACACIA_TRAPDOOR
      - DARK_OAK_TRAPDOOR
      - MANGROVE_TRAPDOOR
      - CHERRY_TRAPDOOR
      - BAMBOO_TRAPDOOR
      - OAK_BUTTON
      - BIRCH_BUTTON
      - SPRUCE_BUTTON
      - JUNGLE_BUTTON
      - ACACIA_BUTTON
      - DARK_OAK_BUTTON
      - MANGROVE_BUTTON
      - CHERRY_BUTTON
      - BAMBOO_BUTTON
      - OAK_PRESSURE_PLATE
      - BIRCH_PRESSURE_PLATE
      - SPRUCE_PRESSURE_PLATE
      - JUNGLE_PRESSURE_PLATE
      - ACACIA_PRESSURE_PLATE
      - DARK_OAK_PRESSURE_PLATE
      - MANGROVE_PRESSURE_PLATE
      - CHERRY_PRESSURE_PLATE
      - BAMBOO_PRESSURE_PLATE
      - OAK_SIGN
      - BIRCH_SIGN
      - SPRUCE_SIGN
      - JUNGLE_SIGN
      - ACACIA_SIGN
      - DARK_OAK_SIGN
      - MANGROVE_SIGN
      - CHERRY_SIGN
      - BAMBOO_SIGN
      - OAK_HANGING_SIGN
      - BIRCH_HANGING_SIGN
      - SPRUCE_HANGING_SIGN
      - JUNGLE_HANGING_SIGN
      - ACACIA_HANGING_SIGN
      - DARK_OAK_HANGING_SIGN
      - MANGROVE_HANGING_SIGN
      - CHERRY_HANGING_SIGN
      - BAMBOO_HANGING_SIGN
      - CHEST
      - TRAPPED_CHEST
      - BARREL
      - OAK_BOAT
      - BIRCH_BOAT
      - SPRUCE_BOAT
      - JUNGLE_BOAT
      - ACACIA_BOAT
      - DARK_OAK_BOAT
      - MANGROVE_BOAT
      - CHERRY_BOAT
      - BAMBOO_RAFT
      - OAK_CHEST_BOAT
      - BIRCH_CHEST_BOAT
      - SPRUCE_CHEST_BOAT
      - JUNGLE_CHEST_BOAT
      - ACACIA_CHEST_BOAT
      - DARK_OAK_CHEST_BOAT
      - MANGROVE_CHEST_BOAT
      - CHERRY_CHEST_BOAT
      - BAMBOO_CHEST_RAFT

  wood_building:
    enabled: true
    display-name: "Wood Building"
    icon: OAK_STAIRS
    min: 8
    max: 18
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - LADDER
      - OAK_SLAB
      - BIRCH_SLAB
      - SPRUCE_SLAB
      - JUNGLE_SLAB
      - ACACIA_SLAB
      - DARK_OAK_SLAB
      - MANGROVE_SLAB
      - CHERRY_SLAB
      - BAMBOO_SLAB
      - OAK_STAIRS
      - BIRCH_STAIRS
      - SPRUCE_STAIRS
      - JUNGLE_STAIRS
      - ACACIA_STAIRS
      - DARK_OAK_STAIRS
      - MANGROVE_STAIRS
      - CHERRY_STAIRS
      - BAMBOO_STAIRS
      - OAK_FENCE
      - BIRCH_FENCE
      - SPRUCE_FENCE
      - JUNGLE_FENCE
      - ACACIA_FENCE
      - DARK_OAK_FENCE
      - MANGROVE_FENCE
      - CHERRY_FENCE
      - BAMBOO_FENCE
      - OAK_FENCE_GATE
      - BIRCH_FENCE_GATE
      - SPRUCE_FENCE_GATE
      - JUNGLE_FENCE_GATE
      - ACACIA_FENCE_GATE
      - DARK_OAK_FENCE_GATE
      - MANGROVE_FENCE_GATE
      - CHERRY_FENCE_GATE
      - BAMBOO_FENCE_GATE
      - OAK_DOOR
      - BIRCH_DOOR
      - SPRUCE_DOOR
      - JUNGLE_DOOR
      - ACACIA_DOOR
      - DARK_OAK_DOOR
      - MANGROVE_DOOR
      - CHERRY_DOOR
      - BAMBOO_DOOR
      - OAK_TRAPDOOR
      - BIRCH_TRAPDOOR
      - SPRUCE_TRAPDOOR
      - JUNGLE_TRAPDOOR
      - ACACIA_TRAPDOOR
      - DARK_OAK_TRAPDOOR
      - MANGROVE_TRAPDOOR
      - CHERRY_TRAPDOOR
      - BAMBOO_TRAPDOOR
      - OAK_BUTTON
      - BIRCH_BUTTON
      - SPRUCE_BUTTON
      - JUNGLE_BUTTON
      - ACACIA_BUTTON
      - DARK_OAK_BUTTON
      - MANGROVE_BUTTON
      - CHERRY_BUTTON
      - BAMBOO_BUTTON
      - OAK_PRESSURE_PLATE
      - BIRCH_PRESSURE_PLATE
      - SPRUCE_PRESSURE_PLATE
      - JUNGLE_PRESSURE_PLATE
      - ACACIA_PRESSURE_PLATE
      - DARK_OAK_PRESSURE_PLATE
      - MANGROVE_PRESSURE_PLATE
      - CHERRY_PRESSURE_PLATE
      - BAMBOO_PRESSURE_PLATE
      - OAK_SIGN
      - BIRCH_SIGN
      - SPRUCE_SIGN
      - JUNGLE_SIGN
      - ACACIA_SIGN
      - DARK_OAK_SIGN
      - MANGROVE_SIGN
      - CHERRY_SIGN
      - BAMBOO_SIGN
      - OAK_HANGING_SIGN
      - BIRCH_HANGING_SIGN
      - SPRUCE_HANGING_SIGN
      - JUNGLE_HANGING_SIGN
      - ACACIA_HANGING_SIGN
      - DARK_OAK_HANGING_SIGN
      - MANGROVE_HANGING_SIGN
      - CHERRY_HANGING_SIGN
      - BAMBOO_HANGING_SIGN
    detector-materials:
      - OAK_LOG
      - BIRCH_LOG
      - SPRUCE_LOG
      - JUNGLE_LOG
      - ACACIA_LOG
      - DARK_OAK_LOG
      - MANGROVE_LOG
      - CHERRY_LOG
      - OAK_WOOD
      - BIRCH_WOOD
      - SPRUCE_WOOD
      - JUNGLE_WOOD
      - ACACIA_WOOD
      - DARK_OAK_WOOD
      - MANGROVE_WOOD
      - CHERRY_WOOD
      - STRIPPED_OAK_LOG
      - STRIPPED_BIRCH_LOG
      - STRIPPED_SPRUCE_LOG
      - STRIPPED_JUNGLE_LOG
      - STRIPPED_ACACIA_LOG
      - STRIPPED_DARK_OAK_LOG
      - STRIPPED_MANGROVE_LOG
      - STRIPPED_CHERRY_LOG
      - STRIPPED_OAK_WOOD
      - STRIPPED_BIRCH_WOOD
      - STRIPPED_SPRUCE_WOOD
      - STRIPPED_JUNGLE_WOOD
      - STRIPPED_ACACIA_WOOD
      - STRIPPED_DARK_OAK_WOOD
      - STRIPPED_MANGROVE_WOOD
      - STRIPPED_CHERRY_WOOD
      - OAK_PLANKS
      - BIRCH_PLANKS
      - SPRUCE_PLANKS
      - JUNGLE_PLANKS
      - ACACIA_PLANKS
      - DARK_OAK_PLANKS
      - MANGROVE_PLANKS
      - CHERRY_PLANKS
      - STICK
      - LADDER
      - OAK_SLAB
      - BIRCH_SLAB
      - SPRUCE_SLAB
      - JUNGLE_SLAB
      - ACACIA_SLAB
      - DARK_OAK_SLAB
      - MANGROVE_SLAB
      - CHERRY_SLAB
      - BAMBOO_SLAB
      - OAK_STAIRS
      - BIRCH_STAIRS
      - SPRUCE_STAIRS
      - JUNGLE_STAIRS
      - ACACIA_STAIRS
      - DARK_OAK_STAIRS
      - MANGROVE_STAIRS
      - CHERRY_STAIRS
      - BAMBOO_STAIRS
      - OAK_FENCE
      - BIRCH_FENCE
      - SPRUCE_FENCE
      - JUNGLE_FENCE
      - ACACIA_FENCE
      - DARK_OAK_FENCE
      - MANGROVE_FENCE
      - CHERRY_FENCE
      - BAMBOO_FENCE
      - OAK_FENCE_GATE
      - BIRCH_FENCE_GATE
      - SPRUCE_FENCE_GATE
      - JUNGLE_FENCE_GATE
      - ACACIA_FENCE_GATE
      - DARK_OAK_FENCE_GATE
      - MANGROVE_FENCE_GATE
      - CHERRY_FENCE_GATE
      - BAMBOO_FENCE_GATE
      - OAK_DOOR
      - BIRCH_DOOR
      - SPRUCE_DOOR
      - JUNGLE_DOOR
      - ACACIA_DOOR
      - DARK_OAK_DOOR
      - MANGROVE_DOOR
      - CHERRY_DOOR
      - BAMBOO_DOOR
      - OAK_TRAPDOOR
      - BIRCH_TRAPDOOR
      - SPRUCE_TRAPDOOR
      - JUNGLE_TRAPDOOR
      - ACACIA_TRAPDOOR
      - DARK_OAK_TRAPDOOR
      - MANGROVE_TRAPDOOR
      - CHERRY_TRAPDOOR
      - BAMBOO_TRAPDOOR
      - OAK_BUTTON
      - BIRCH_BUTTON
      - SPRUCE_BUTTON
      - JUNGLE_BUTTON
      - ACACIA_BUTTON
      - DARK_OAK_BUTTON
      - MANGROVE_BUTTON
      - CHERRY_BUTTON
      - BAMBOO_BUTTON
      - OAK_PRESSURE_PLATE
      - BIRCH_PRESSURE_PLATE
      - SPRUCE_PRESSURE_PLATE
      - JUNGLE_PRESSURE_PLATE
      - ACACIA_PRESSURE_PLATE
      - DARK_OAK_PRESSURE_PLATE
      - MANGROVE_PRESSURE_PLATE
      - CHERRY_PRESSURE_PLATE
      - BAMBOO_PRESSURE_PLATE
      - OAK_SIGN
      - BIRCH_SIGN
      - SPRUCE_SIGN
      - JUNGLE_SIGN
      - ACACIA_SIGN
      - DARK_OAK_SIGN
      - MANGROVE_SIGN
      - CHERRY_SIGN
      - BAMBOO_SIGN
      - OAK_HANGING_SIGN
      - BIRCH_HANGING_SIGN
      - SPRUCE_HANGING_SIGN
      - JUNGLE_HANGING_SIGN
      - ACACIA_HANGING_SIGN
      - DARK_OAK_HANGING_SIGN
      - MANGROVE_HANGING_SIGN
      - CHERRY_HANGING_SIGN
      - BAMBOO_HANGING_SIGN
      - CHEST
      - TRAPPED_CHEST
      - BARREL
      - OAK_BOAT
      - BIRCH_BOAT
      - SPRUCE_BOAT
      - JUNGLE_BOAT
      - ACACIA_BOAT
      - DARK_OAK_BOAT
      - MANGROVE_BOAT
      - CHERRY_BOAT
      - BAMBOO_RAFT
      - OAK_CHEST_BOAT
      - BIRCH_CHEST_BOAT
      - SPRUCE_CHEST_BOAT
      - JUNGLE_CHEST_BOAT
      - ACACIA_CHEST_BOAT
      - DARK_OAK_CHEST_BOAT
      - MANGROVE_CHEST_BOAT
      - CHERRY_CHEST_BOAT
      - BAMBOO_CHEST_RAFT

  wood_storage:
    enabled: true
    display-name: "Wood Storage"
    icon: CHEST
    min: 2
    max: 6
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - CHEST
      - TRAPPED_CHEST
      - BARREL
      - OAK_BOAT
      - BIRCH_BOAT
      - SPRUCE_BOAT
      - JUNGLE_BOAT
      - ACACIA_BOAT
      - DARK_OAK_BOAT
      - MANGROVE_BOAT
      - CHERRY_BOAT
      - BAMBOO_RAFT
      - OAK_CHEST_BOAT
      - BIRCH_CHEST_BOAT
      - SPRUCE_CHEST_BOAT
      - JUNGLE_CHEST_BOAT
      - ACACIA_CHEST_BOAT
      - DARK_OAK_CHEST_BOAT
      - MANGROVE_CHEST_BOAT
      - CHERRY_CHEST_BOAT
      - BAMBOO_CHEST_RAFT
    detector-materials:
      - OAK_LOG
      - BIRCH_LOG
      - SPRUCE_LOG
      - JUNGLE_LOG
      - ACACIA_LOG
      - DARK_OAK_LOG
      - MANGROVE_LOG
      - CHERRY_LOG
      - OAK_WOOD
      - BIRCH_WOOD
      - SPRUCE_WOOD
      - JUNGLE_WOOD
      - ACACIA_WOOD
      - DARK_OAK_WOOD
      - MANGROVE_WOOD
      - CHERRY_WOOD
      - STRIPPED_OAK_LOG
      - STRIPPED_BIRCH_LOG
      - STRIPPED_SPRUCE_LOG
      - STRIPPED_JUNGLE_LOG
      - STRIPPED_ACACIA_LOG
      - STRIPPED_DARK_OAK_LOG
      - STRIPPED_MANGROVE_LOG
      - STRIPPED_CHERRY_LOG
      - STRIPPED_OAK_WOOD
      - STRIPPED_BIRCH_WOOD
      - STRIPPED_SPRUCE_WOOD
      - STRIPPED_JUNGLE_WOOD
      - STRIPPED_ACACIA_WOOD
      - STRIPPED_DARK_OAK_WOOD
      - STRIPPED_MANGROVE_WOOD
      - STRIPPED_CHERRY_WOOD
      - OAK_PLANKS
      - BIRCH_PLANKS
      - SPRUCE_PLANKS
      - JUNGLE_PLANKS
      - ACACIA_PLANKS
      - DARK_OAK_PLANKS
      - MANGROVE_PLANKS
      - CHERRY_PLANKS
      - STICK
      - LADDER
      - OAK_SLAB
      - BIRCH_SLAB
      - SPRUCE_SLAB
      - JUNGLE_SLAB
      - ACACIA_SLAB
      - DARK_OAK_SLAB
      - MANGROVE_SLAB
      - CHERRY_SLAB
      - BAMBOO_SLAB
      - OAK_STAIRS
      - BIRCH_STAIRS
      - SPRUCE_STAIRS
      - JUNGLE_STAIRS
      - ACACIA_STAIRS
      - DARK_OAK_STAIRS
      - MANGROVE_STAIRS
      - CHERRY_STAIRS
      - BAMBOO_STAIRS
      - OAK_FENCE
      - BIRCH_FENCE
      - SPRUCE_FENCE
      - JUNGLE_FENCE
      - ACACIA_FENCE
      - DARK_OAK_FENCE
      - MANGROVE_FENCE
      - CHERRY_FENCE
      - BAMBOO_FENCE
      - OAK_FENCE_GATE
      - BIRCH_FENCE_GATE
      - SPRUCE_FENCE_GATE
      - JUNGLE_FENCE_GATE
      - ACACIA_FENCE_GATE
      - DARK_OAK_FENCE_GATE
      - MANGROVE_FENCE_GATE
      - CHERRY_FENCE_GATE
      - BAMBOO_FENCE_GATE
      - OAK_DOOR
      - BIRCH_DOOR
      - SPRUCE_DOOR
      - JUNGLE_DOOR
      - ACACIA_DOOR
      - DARK_OAK_DOOR
      - MANGROVE_DOOR
      - CHERRY_DOOR
      - BAMBOO_DOOR
      - OAK_TRAPDOOR
      - BIRCH_TRAPDOOR
      - SPRUCE_TRAPDOOR
      - JUNGLE_TRAPDOOR
      - ACACIA_TRAPDOOR
      - DARK_OAK_TRAPDOOR
      - MANGROVE_TRAPDOOR
      - CHERRY_TRAPDOOR
      - BAMBOO_TRAPDOOR
      - OAK_BUTTON
      - BIRCH_BUTTON
      - SPRUCE_BUTTON
      - JUNGLE_BUTTON
      - ACACIA_BUTTON
      - DARK_OAK_BUTTON
      - MANGROVE_BUTTON
      - CHERRY_BUTTON
      - BAMBOO_BUTTON
      - OAK_PRESSURE_PLATE
      - BIRCH_PRESSURE_PLATE
      - SPRUCE_PRESSURE_PLATE
      - JUNGLE_PRESSURE_PLATE
      - ACACIA_PRESSURE_PLATE
      - DARK_OAK_PRESSURE_PLATE
      - MANGROVE_PRESSURE_PLATE
      - CHERRY_PRESSURE_PLATE
      - BAMBOO_PRESSURE_PLATE
      - OAK_SIGN
      - BIRCH_SIGN
      - SPRUCE_SIGN
      - JUNGLE_SIGN
      - ACACIA_SIGN
      - DARK_OAK_SIGN
      - MANGROVE_SIGN
      - CHERRY_SIGN
      - BAMBOO_SIGN
      - OAK_HANGING_SIGN
      - BIRCH_HANGING_SIGN
      - SPRUCE_HANGING_SIGN
      - JUNGLE_HANGING_SIGN
      - ACACIA_HANGING_SIGN
      - DARK_OAK_HANGING_SIGN
      - MANGROVE_HANGING_SIGN
      - CHERRY_HANGING_SIGN
      - BAMBOO_HANGING_SIGN
      - CHEST
      - TRAPPED_CHEST
      - BARREL
      - OAK_BOAT
      - BIRCH_BOAT
      - SPRUCE_BOAT
      - JUNGLE_BOAT
      - ACACIA_BOAT
      - DARK_OAK_BOAT
      - MANGROVE_BOAT
      - CHERRY_BOAT
      - BAMBOO_RAFT
      - OAK_CHEST_BOAT
      - BIRCH_CHEST_BOAT
      - SPRUCE_CHEST_BOAT
      - JUNGLE_CHEST_BOAT
      - ACACIA_CHEST_BOAT
      - DARK_OAK_CHEST_BOAT
      - MANGROVE_CHEST_BOAT
      - CHERRY_CHEST_BOAT
      - BAMBOO_CHEST_RAFT

  stone_basic:
    enabled: true
    display-name: "Stone Basic"
    icon: STONE
    min: 16
    max: 32
    min-unlocked-chunks: 1
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - STONE
      - COBBLESTONE
      - MOSSY_COBBLESTONE
      - DEEPSLATE
      - COBBLED_DEEPSLATE
      - ANDESITE
      - DIORITE
      - GRANITE
      - TUFF
      - CALCITE
      - DRIPSTONE_BLOCK
      - BLACKSTONE
      - BASALT
      - SMOOTH_BASALT
      - SMOOTH_STONE
      - STONE_BRICKS
      - CRACKED_STONE_BRICKS
      - MOSSY_STONE_BRICKS
      - CHISELED_STONE_BRICKS
    detector-materials:
      - STONE
      - COBBLESTONE
      - MOSSY_COBBLESTONE
      - DEEPSLATE
      - COBBLED_DEEPSLATE
      - ANDESITE
      - DIORITE
      - GRANITE
      - TUFF
      - CALCITE
      - DRIPSTONE_BLOCK
      - BLACKSTONE
      - BASALT
      - SMOOTH_BASALT
      - SMOOTH_STONE
      - STONE_BRICKS
      - CRACKED_STONE_BRICKS
      - MOSSY_STONE_BRICKS
      - CHISELED_STONE_BRICKS
      - STONE_SLAB
      - SMOOTH_STONE_SLAB
      - STONE_STAIRS
      - STONE_PRESSURE_PLATE
      - STONE_BUTTON
      - COBBLESTONE_SLAB
      - COBBLESTONE_STAIRS
      - COBBLESTONE_WALL
      - MOSSY_COBBLESTONE_SLAB
      - MOSSY_COBBLESTONE_STAIRS
      - MOSSY_COBBLESTONE_WALL
      - STONE_BRICK_SLAB
      - STONE_BRICK_STAIRS
      - STONE_BRICK_WALL
      - MOSSY_STONE_BRICK_SLAB
      - MOSSY_STONE_BRICK_STAIRS
      - MOSSY_STONE_BRICK_WALL
      - POLISHED_ANDESITE
      - POLISHED_ANDESITE_SLAB
      - POLISHED_ANDESITE_STAIRS
      - POLISHED_DIORITE
      - POLISHED_DIORITE_SLAB
      - POLISHED_DIORITE_STAIRS
      - POLISHED_GRANITE
      - POLISHED_GRANITE_SLAB
      - POLISHED_GRANITE_STAIRS
      - COBBLED_DEEPSLATE_SLAB
      - COBBLED_DEEPSLATE_STAIRS
      - COBBLED_DEEPSLATE_WALL
      - POLISHED_DEEPSLATE
      - POLISHED_DEEPSLATE_SLAB
      - POLISHED_DEEPSLATE_STAIRS
      - POLISHED_DEEPSLATE_WALL
      - DEEPSLATE_BRICK_SLAB
      - DEEPSLATE_BRICK_STAIRS
      - DEEPSLATE_BRICK_WALL
      - DEEPSLATE_TILE_SLAB
      - DEEPSLATE_TILE_STAIRS
      - DEEPSLATE_TILE_WALL
      - TUFF_SLAB
      - TUFF_STAIRS
      - TUFF_WALL
      - POLISHED_TUFF
      - POLISHED_TUFF_SLAB
      - POLISHED_TUFF_STAIRS
      - POLISHED_TUFF_WALL
      - TUFF_BRICKS
      - TUFF_BRICK_SLAB
      - TUFF_BRICK_STAIRS
      - TUFF_BRICK_WALL
      - BLACKSTONE_SLAB
      - BLACKSTONE_STAIRS
      - BLACKSTONE_WALL
      - POLISHED_BLACKSTONE
      - POLISHED_BLACKSTONE_SLAB
      - POLISHED_BLACKSTONE_STAIRS
      - POLISHED_BLACKSTONE_WALL
      - POLISHED_BLACKSTONE_BRICKS
      - POLISHED_BLACKSTONE_BRICK_SLAB
      - POLISHED_BLACKSTONE_BRICK_STAIRS
      - POLISHED_BLACKSTONE_BRICK_WALL

  stone_building:
    enabled: true
    display-name: "Stone Building"
    icon: STONE_BRICKS
    min: 10
    max: 24
    min-unlocked-chunks: 3
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - STONE_SLAB
      - SMOOTH_STONE_SLAB
      - STONE_STAIRS
      - STONE_PRESSURE_PLATE
      - STONE_BUTTON
      - COBBLESTONE_SLAB
      - COBBLESTONE_STAIRS
      - COBBLESTONE_WALL
      - MOSSY_COBBLESTONE_SLAB
      - MOSSY_COBBLESTONE_STAIRS
      - MOSSY_COBBLESTONE_WALL
      - STONE_BRICK_SLAB
      - STONE_BRICK_STAIRS
      - STONE_BRICK_WALL
      - MOSSY_STONE_BRICK_SLAB
      - MOSSY_STONE_BRICK_STAIRS
      - MOSSY_STONE_BRICK_WALL
      - POLISHED_ANDESITE
      - POLISHED_ANDESITE_SLAB
      - POLISHED_ANDESITE_STAIRS
      - POLISHED_DIORITE
      - POLISHED_DIORITE_SLAB
      - POLISHED_DIORITE_STAIRS
      - POLISHED_GRANITE
      - POLISHED_GRANITE_SLAB
      - POLISHED_GRANITE_STAIRS
      - COBBLED_DEEPSLATE_SLAB
      - COBBLED_DEEPSLATE_STAIRS
      - COBBLED_DEEPSLATE_WALL
      - POLISHED_DEEPSLATE
      - POLISHED_DEEPSLATE_SLAB
      - POLISHED_DEEPSLATE_STAIRS
      - POLISHED_DEEPSLATE_WALL
      - DEEPSLATE_BRICK_SLAB
      - DEEPSLATE_BRICK_STAIRS
      - DEEPSLATE_BRICK_WALL
      - DEEPSLATE_TILE_SLAB
      - DEEPSLATE_TILE_STAIRS
      - DEEPSLATE_TILE_WALL
      - TUFF_SLAB
      - TUFF_STAIRS
      - TUFF_WALL
      - POLISHED_TUFF
      - POLISHED_TUFF_SLAB
      - POLISHED_TUFF_STAIRS
      - POLISHED_TUFF_WALL
      - TUFF_BRICKS
      - TUFF_BRICK_SLAB
      - TUFF_BRICK_STAIRS
      - TUFF_BRICK_WALL
      - BLACKSTONE_SLAB
      - BLACKSTONE_STAIRS
      - BLACKSTONE_WALL
      - POLISHED_BLACKSTONE
      - POLISHED_BLACKSTONE_SLAB
      - POLISHED_BLACKSTONE_STAIRS
      - POLISHED_BLACKSTONE_WALL
      - POLISHED_BLACKSTONE_BRICKS
      - POLISHED_BLACKSTONE_BRICK_SLAB
      - POLISHED_BLACKSTONE_BRICK_STAIRS
      - POLISHED_BLACKSTONE_BRICK_WALL
    detector-materials:
      - STONE
      - COBBLESTONE
      - MOSSY_COBBLESTONE
      - DEEPSLATE
      - COBBLED_DEEPSLATE
      - ANDESITE
      - DIORITE
      - GRANITE
      - TUFF
      - CALCITE
      - DRIPSTONE_BLOCK
      - BLACKSTONE
      - BASALT
      - SMOOTH_BASALT
      - SMOOTH_STONE
      - STONE_BRICKS
      - CRACKED_STONE_BRICKS
      - MOSSY_STONE_BRICKS
      - CHISELED_STONE_BRICKS
      - STONE_SLAB
      - SMOOTH_STONE_SLAB
      - STONE_STAIRS
      - STONE_PRESSURE_PLATE
      - STONE_BUTTON
      - COBBLESTONE_SLAB
      - COBBLESTONE_STAIRS
      - COBBLESTONE_WALL
      - MOSSY_COBBLESTONE_SLAB
      - MOSSY_COBBLESTONE_STAIRS
      - MOSSY_COBBLESTONE_WALL
      - STONE_BRICK_SLAB
      - STONE_BRICK_STAIRS
      - STONE_BRICK_WALL
      - MOSSY_STONE_BRICK_SLAB
      - MOSSY_STONE_BRICK_STAIRS
      - MOSSY_STONE_BRICK_WALL
      - POLISHED_ANDESITE
      - POLISHED_ANDESITE_SLAB
      - POLISHED_ANDESITE_STAIRS
      - POLISHED_DIORITE
      - POLISHED_DIORITE_SLAB
      - POLISHED_DIORITE_STAIRS
      - POLISHED_GRANITE
      - POLISHED_GRANITE_SLAB
      - POLISHED_GRANITE_STAIRS
      - COBBLED_DEEPSLATE_SLAB
      - COBBLED_DEEPSLATE_STAIRS
      - COBBLED_DEEPSLATE_WALL
      - POLISHED_DEEPSLATE
      - POLISHED_DEEPSLATE_SLAB
      - POLISHED_DEEPSLATE_STAIRS
      - POLISHED_DEEPSLATE_WALL
      - DEEPSLATE_BRICK_SLAB
      - DEEPSLATE_BRICK_STAIRS
      - DEEPSLATE_BRICK_WALL
      - DEEPSLATE_TILE_SLAB
      - DEEPSLATE_TILE_STAIRS
      - DEEPSLATE_TILE_WALL
      - TUFF_SLAB
      - TUFF_STAIRS
      - TUFF_WALL
      - POLISHED_TUFF
      - POLISHED_TUFF_SLAB
      - POLISHED_TUFF_STAIRS
      - POLISHED_TUFF_WALL
      - TUFF_BRICKS
      - TUFF_BRICK_SLAB
      - TUFF_BRICK_STAIRS
      - TUFF_BRICK_WALL
      - BLACKSTONE_SLAB
      - BLACKSTONE_STAIRS
      - BLACKSTONE_WALL
      - POLISHED_BLACKSTONE
      - POLISHED_BLACKSTONE_SLAB
      - POLISHED_BLACKSTONE_STAIRS
      - POLISHED_BLACKSTONE_WALL
      - POLISHED_BLACKSTONE_BRICKS
      - POLISHED_BLACKSTONE_BRICK_SLAB
      - POLISHED_BLACKSTONE_BRICK_STAIRS
      - POLISHED_BLACKSTONE_BRICK_WALL

  dirt:
    enabled: true
    display-name: "Dirt"
    icon: DIRT
    min: 16
    max: 32
    min-unlocked-chunks: 1
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - DIRT
      - GRASS_BLOCK
      - COARSE_DIRT
      - ROOTED_DIRT
      - PODZOL
      - MYCELIUM
      - FARMLAND
      - MUD
      - MOSS_BLOCK
    detector-materials:
      - DIRT
      - GRASS_BLOCK
      - COARSE_DIRT
      - ROOTED_DIRT
      - PODZOL
      - MYCELIUM
      - FARMLAND
      - MUD
      - MOSS_BLOCK

  # Minecraft 26.1 / Tiny Takeover:
  # GOLDEN_DANDELION is a new flower. On older server versions this group stays inactive
  # because the detector material does not exist there yet.
  golden_dandelion:
    enabled: true
    display-name: "Golden Dandelion"
    icon: GOLDEN_DANDELION
    min: 2
    max: 8
    min-unlocked-chunks: 3
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - GOLDEN_DANDELION
    detector-materials:
      - GOLDEN_DANDELION

  sand:
    enabled: true
    display-name: "Sand"
    icon: SAND
    min: 12
    max: 28
    min-unlocked-chunks: 1
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - SAND
      - RED_SAND
      - SANDSTONE
      - RED_SANDSTONE
      - SMOOTH_SANDSTONE
      - SMOOTH_RED_SANDSTONE
    detector-materials:
      - SAND
      - RED_SAND
      - SANDSTONE
      - RED_SANDSTONE
      - SMOOTH_SANDSTONE
      - SMOOTH_RED_SANDSTONE

  ores:
    enabled: true
    display-name: "Ores"
    icon: COAL
    min: 8
    max: 18
    min-unlocked-chunks: 4
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - COAL
      - COAL_BLOCK
      - RAW_IRON
      - RAW_IRON_BLOCK
      - IRON_INGOT
      - RAW_COPPER
      - RAW_COPPER_BLOCK
      - COPPER_INGOT
      - RAW_GOLD
      - RAW_GOLD_BLOCK
      - GOLD_INGOT
      - GOLD_NUGGET
      - REDSTONE
      - REDSTONE_BLOCK
      - LAPIS_LAZULI
      - LAPIS_BLOCK
      - DIAMOND
      - DIAMOND_BLOCK
      - EMERALD
      - EMERALD_BLOCK
      - QUARTZ
      - QUARTZ_BLOCK
      - ANCIENT_DEBRIS
      - NETHERITE_SCRAP
    detector-materials:
      - COAL_ORE
      - DEEPSLATE_COAL_ORE
      - IRON_ORE
      - DEEPSLATE_IRON_ORE
      - COPPER_ORE
      - DEEPSLATE_COPPER_ORE
      - GOLD_ORE
      - DEEPSLATE_GOLD_ORE
      - NETHER_GOLD_ORE
      - REDSTONE_ORE
      - DEEPSLATE_REDSTONE_ORE
      - LAPIS_ORE
      - DEEPSLATE_LAPIS_ORE
      - DIAMOND_ORE
      - DEEPSLATE_DIAMOND_ORE
      - EMERALD_ORE
      - DEEPSLATE_EMERALD_ORE
      - NETHER_QUARTZ_ORE
      - ANCIENT_DEBRIS

  wheat:
    enabled: true
    display-name: "Wheat"
    icon: WHEAT
    min: 12
    max: 24
    min-unlocked-chunks: 1
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - WHEAT
      - HAY_BLOCK
      - BREAD
    detector-materials:
      - WHEAT
      - FARMLAND
      - HAY_BLOCK

  seeds:
    enabled: true
    display-name: "Seeds"
    icon: WHEAT_SEEDS
    min: 12
    max: 24
    min-unlocked-chunks: 1
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - WHEAT_SEEDS
      - BEETROOT_SEEDS
      - MELON_SEEDS
      - PUMPKIN_SEEDS
    detector-materials:
      - WHEAT
      - FARMLAND
      - GRASS
      - TALL_GRASS
      - BEETROOTS
      - MELON_STEM
      - PUMPKIN_STEM

  potato:
    enabled: true
    display-name: "Potatoes"
    icon: POTATO
    min: 8
    max: 20
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - POTATO
      - BAKED_POTATO
      - POISONOUS_POTATO
    detector-materials:
      - POTATOES

  carrot:
    enabled: true
    display-name: "Carrots"
    icon: CARROT
    min: 8
    max: 20
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - CARROT
      - GOLDEN_CARROT
    detector-materials:
      - CARROTS

  beetroot:
    enabled: true
    display-name: "Beetroot"
    icon: BEETROOT
    min: 8
    max: 18
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - BEETROOT
      - BEETROOT_SOUP
    detector-materials:
      - BEETROOTS

  sugar_cane:
    enabled: true
    display-name: "Sugar Cane"
    icon: SUGAR_CANE
    min: 8
    max: 20
    min-unlocked-chunks: 1
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - SUGAR_CANE
      - PAPER
      - SUGAR
    detector-materials:
      - SUGAR_CANE

  cactus:
    enabled: true
    display-name: "Cactus"
    icon: CACTUS
    min: 6
    max: 16
    min-unlocked-chunks: 1
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - CACTUS
      - GREEN_DYE
    detector-materials:
      - CACTUS

  melon:
    enabled: true
    display-name: "Melons"
    icon: MELON_SLICE
    min: 8
    max: 20
    min-unlocked-chunks: 3
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - MELON_SLICE
      - MELON
      - GLISTERING_MELON_SLICE
    detector-materials:
      - MELON
      - MELON_STEM
      - ATTACHED_MELON_STEM

  pumpkin:
    enabled: true
    display-name: "Pumpkins"
    icon: PUMPKIN
    min: 4
    max: 12
    min-unlocked-chunks: 3
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - PUMPKIN
      - CARVED_PUMPKIN
      - JACK_O_LANTERN
      - PUMPKIN_PIE
    detector-materials:
      - PUMPKIN
      - CARVED_PUMPKIN
      - PUMPKIN_STEM
      - ATTACHED_PUMPKIN_STEM

  mushrooms:
    enabled: true
    display-name: "Mushrooms"
    icon: RED_MUSHROOM
    min: 6
    max: 16
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - RED_MUSHROOM
      - BROWN_MUSHROOM
      - MUSHROOM_STEW
      - RABBIT_STEW
    detector-materials:
      - RED_MUSHROOM
      - BROWN_MUSHROOM
      - MUSHROOM_STEM
      - RED_MUSHROOM_BLOCK
      - BROWN_MUSHROOM_BLOCK

  bone:
    enabled: true
    display-name: "Bones"
    icon: BONE
    min: 4
    max: 10
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: true
    accepted-items:
      - BONE
    detector-materials: []

  string:
    enabled: true
    display-name: "String"
    icon: STRING
    min: 4
    max: 12
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: true
    accepted-items:
      - STRING
    detector-materials: []

  rotten_flesh:
    enabled: true
    display-name: "Rotten Flesh"
    icon: ROTTEN_FLESH
    min: 6
    max: 16
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: true
    accepted-items:
      - ROTTEN_FLESH
    detector-materials: []

  gunpowder:
    enabled: true
    display-name: "Gunpowder"
    icon: GUNPOWDER
    min: 4
    max: 10
    min-unlocked-chunks: 3
    max-unlocked-chunks: -1
    ignore-source-check: true
    accepted-items:
      - GUNPOWDER
    detector-materials: []

  spider_eye:
    enabled: true
    display-name: "Spider Eyes"
    icon: SPIDER_EYE
    min: 4
    max: 10
    min-unlocked-chunks: 3
    max-unlocked-chunks: -1
    ignore-source-check: true
    accepted-items:
      - SPIDER_EYE
    detector-materials: []

  feather:
    enabled: true
    display-name: "Feathers"
    icon: FEATHER
    min: 4
    max: 12
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: true
    accepted-items:
      - FEATHER
    detector-materials: []

  leather:
    enabled: true
    display-name: "Leather"
    icon: LEATHER
    min: 4
    max: 12
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: true
    accepted-items:
      - LEATHER
    detector-materials: []

  custom_example:
    enabled: false
    display-name: "Custom Resource Example"
    icon: "itemsadder:my_pack:ruby_gem"
    min: 3
    max: 8
    min-unlocked-chunks: 2
    max-unlocked-chunks: -1
    ignore-source-check: false
    accepted-items:
      - "itemsadder:my_pack:ruby_gem"
      - "oraxen:ruby_gem"
      - "nexo:ruby_gem"
      - "mythiccrucible:ruby_gem"
    detector-materials: []
    detector-items:
      - "itemsadder:my_pack:ruby_ore"
      - "oraxen:ruby_ore"
      - "nexo:ruby_ore"
      - "mythiccrucible:ancient_table"

```

{% endtab %}

{% tab title="upgrades.yml" %}

```yml
# ChunkLock upgrade definitions.
# This file defines what upgrades exist, how much they cost and what effect each level gives.
# Every upgrade below can be:
# - enabled/disabled independently
# - limited by max-level
# - paid with any combination of money / exp / items / Chunk Points
# Costs use:
# - base: cost of level 1
# - per-level: extra cost added for each next level
# Example: base 100, per-level 25 -> level 1 = 100, level 2 = 125, level 3 = 150
# Each upgrade can use any combination of these costs:
# - costs.chunk-points
# - costs.money
# - costs.exp
# - costs.item
# Example:
#   chunk-points:
#     enabled: true
#     base: 2
#     per-level: 1
# Set enabled: false to hide the upgrade icon in the GUI and disable its effect.
# Exp costs use experience levels.
# Upgrade icons:
# - material accepts a normal Bukkit Material like DIAMOND_PICKAXE
# - or any supported custom item reference like:
#   itemsadder:namespace:item
#   oraxen:item_id
#   nexo:item_id
#   mythiccrucible:item_id
#   executableitems:item_id
#   advanceditems:item_id
#   ecoitems:item_id
# Item costs:
# - costs.item.material supports the same vanilla/custom references
# - the player must pay using that exact item
# Display names and description lines can use PlaceholderAPI placeholders
# when PlaceholderAPI is installed on the server.
# sounds.upgrade plays on successful purchase.
# sounds.upgrade-denied plays when the player tries to buy an upgrade without enough resources.

sounds:
  upgrade:
    enabled: true
    type: BLOCK_AMETHYST_BLOCK_CHIME
    volume: 1.0
    pitch: 1.2
  upgrade-denied:
    enabled: true
    type: BLOCK_NOTE_BLOCK_BASS
    volume: 1.0
    pitch: 0.7

upgrades:
  friend_slots:
    enabled: true
    display-name: Friend Slots
    material: PLAYER_HEAD
    description:
      - '&7Increase the number of friends'
      - '&7you can add to your ChunkLock home.'
    max-level: 5
    costs:
      money:
        enabled: false
        base: 0
        per-level: 0
      exp:
        enabled: false
        base: 0
        per-level: 0
      item:
        enabled: true
        material: EMERALD
        display-name: Emeralds
        base: 8
        per-level: 4
    effect-type: FRIEND_SLOTS
    effect-value: 1

  mob_spawn_rate:
    enabled: true
    display-name: Mob Spawn Rate
    material: SPAWNER
    description:
      - '&7Natural and spawner mob spawns in your'
      - '&7ChunkLock area can trigger extra mobs.'
      - '&7Each level adds +15% trigger chance.'
    max-level: 4
    costs:
      money:
        enabled: true
        base: 1500
        per-level: 1000
      exp:
        enabled: false
        base: 0
        per-level: 0
      item:
        enabled: false
        material: ROTTEN_FLESH
        display-name: Rotten Flesh
        base: 0
        per-level: 0
    effect-type: MOB_SPAWN_RATE
    effect-value: 15

  mob_spawn_cap:
    enabled: true
    display-name: Mob Spawn Cap
    material: ZOMBIE_HEAD
    description:
      - '&7When extra mob spawns trigger, this adds'
      - '&7more mobs to the same spawn wave.'
      - '&7Each level adds +1 extra mob.'
    max-level: 3
    costs:
      money:
        enabled: false
        base: 0
        per-level: 0
      exp:
        enabled: true
        base: 8
        per-level: 4
      item:
        enabled: false
        material: BONE
        display-name: Bones
        base: 0
        per-level: 0
    effect-type: MOB_SPAWN_CAP
    effect-value: 1

  crop_growth:
    enabled: true
    display-name: Crop Growth
    material: WHEAT
    description:
      - '&7Crops in your ChunkLock area have a chance'
      - '&7to grow an extra stage on each growth tick.'
      - '&7Each level adds +12% chance.'
    max-level: 5
    costs:
      money:
        enabled: true
        base: 500
        per-level: 350
      exp:
        enabled: false
        base: 0
        per-level: 0
      item:
        enabled: true
        material: BONE_MEAL
        display-name: Bone Meal
        base: 16
        per-level: 8
    effect-type: CROP_GROWTH
    effect-value: 12

  ore_bonus:
    enabled: true
    display-name: Ore Fortune
    material: DIAMOND_PICKAXE
    description:
      - '&7Breaking ores in your ChunkLock area can'
      - '&7drop an additional set of loot.'
      - '&7Each level adds +10% chance.'
    max-level: 5
    costs:
      money:
        enabled: false
        base: 0
        per-level: 0
      exp:
        enabled: true
        base: 6
        per-level: 3
      item:
        enabled: true
        material: IRON_INGOT
        display-name: Iron Ingots
        base: 12
        per-level: 6
    effect-type: ORE_BONUS
    effect-value: 10

  fishing_luck:
    enabled: true
    display-name: Fishing Luck
    material: FISHING_ROD
    description:
      - '&7Fishing in your ChunkLock area can grant'
      - '&7an extra copy of the caught item.'
      - '&7Each level adds +12% chance.'
    max-level: 4
    costs:
      money:
        enabled: true
        base: 900
        per-level: 550
      exp:
        enabled: true
        base: 4
        per-level: 2
      item:
        enabled: false
        material: COD
        display-name: Raw Cod
        base: 0
        per-level: 0
    effect-type: FISHING_LUCK
    effect-value: 12

  breeding_bonus:
    enabled: true
    display-name: Breeding Bonus
    material: GOLDEN_CARROT
    description:
      - '&7Breeding animals in your ChunkLock area can'
      - '&7spawn an extra baby animal.'
      - '&7Each level adds +15% chance.'
    max-level: 4
    costs:
      money:
        enabled: true
        base: 1100
        per-level: 700
      exp:
        enabled: true
        base: 5
        per-level: 3
      item:
        enabled: true
        material: HAY_BLOCK
        display-name: Hay Bales
        base: 4
        per-level: 2
    effect-type: BREEDING_BONUS
    effect-value: 15

  smeltery_efficiency:
    enabled: true
    display-name: Smeltery Efficiency
    material: BLAST_FURNACE
    description:
      - '&7Smelting in your ChunkLock area can produce'
      - '&7+1 extra result item.'
      - '&7Each level adds +10% chance.'
    max-level: 5
    costs:
      money:
        enabled: true
        base: 1000
        per-level: 650
      exp:
        enabled: false
        base: 0
        per-level: 0
      item:
        enabled: false
        material: COAL
        display-name: Coal
        base: 0
        per-level: 0
    effect-type: SMELT_BONUS
    effect-value: 10

  furnace_speed:
    enabled: true
    display-name: Furnace Speed
    material: FURNACE
    description:
      - '&7Furnaces in your ChunkLock area smelt items'
      - '&7faster from the moment a new smelt starts.'
      - '&7Each level reduces cook time by 10%.'
    max-level: 5
    costs:
      money:
        enabled: true
        base: 1250
        per-level: 800
      exp:
        enabled: true
        base: 6
        per-level: 3
      item:
        enabled: true
        material: COAL_BLOCK
        display-name: Coal Blocks
        base: 4
        per-level: 2
    effect-type: FURNACE_SPEED
    effect-value: 10

  mob_loot:
    enabled: true
    display-name: Mob Loot
    material: WITHER_SKELETON_SKULL
    description:
      - '&7Mobs killed in your ChunkLock area can'
      - '&7drop an additional copy of their loot.'
      - '&7Each level adds +10% chance.'
    max-level: 4
    costs:
      money:
        enabled: false
        base: 0
        per-level: 0
      exp:
        enabled: true
        base: 5
        per-level: 3
      item:
        enabled: true
        material: GUNPOWDER
        display-name: Gunpowder
        base: 16
        per-level: 8
    effect-type: MOB_LOOT_BONUS
    effect-value: 10

  warp_slots:
    enabled: true
    display-name: Warp Slots
    material: ENDER_PEARL
    description:
      - '&7Increase the maximum number of home warps'
      - '&7available for this ChunkLock home.'
      - '&7Each level adds +1 warp slot.'
    max-level: 5
    costs:
      money:
        enabled: true
        base: 900
        per-level: 550
      exp:
        enabled: false
        base: 0
        per-level: 0
      item:
        enabled: true
        material: ENDER_EYE
        display-name: Eyes of Ender
        base: 4
        per-level: 2
    effect-type: WARP_SLOTS
    effect-value: 1

  player_shop_slots:
    enabled: true
    display-name: Player Shop Slots
    material: CHEST
    description:
      - '&7Increase the maximum number of'
      - '&7Player Shops available for this'
      - '&7ChunkLock home.'
      - '&7Each level adds +1 shop slot.'
    max-level: 5
    costs:
      money:
        enabled: true
        base: 800
        per-level: 500
      exp:
        enabled: false
        base: 0
        per-level: 0
      item:
        enabled: true
        material: EMERALD
        display-name: Emeralds
        base: 8
        per-level: 4
    effect-type: PLAYER_SHOP_SLOTS
    effect-value: 1

  periodic_points:
    enabled: true
    display-name: Point Generator
    material: EXPERIENCE_BOTTLE
    description:
      - '&7Increase the amount of periodic Chunk Points'
      - '&7you receive while online.'
      - '&7Each level adds +1 point per payout.'
    max-level: 4
    costs:
      money:
        enabled: true
        base: 2000
        per-level: 1250
      exp:
        enabled: true
        base: 7
        per-level: 4
      item:
        enabled: true
        material: EXPERIENCE_BOTTLE
        display-name: Bottles o'' Enchanting
        base: 6
        per-level: 3
    effect-type: PERIODIC_POINTS_BONUS
    effect-value: 1

```

{% endtab %}

{% tab title="warps.yml" %}

```yml
# ChunkLock warp configuration.
# This file controls warp limits, default behavior, creation costs and rename rules.

# Default maximum number of warps available for one ChunkLock home.
# Increase this globally here, or let players raise it through the Warp Slots upgrade.
default-limit: 3
# If true, new warps are public by default and everyone can use them.
# If false, only the owner and their team can use a new warp until it is made public.
public-by-default: false
# Default icon reference used when a new warp is created.
# Supports vanilla materials and the custom item providers supported by ChunkLock.
default-icon: ENDER_PEARL
wait:
  # If true, teleporting to a warp starts a delayed teleport instead of teleporting instantly.
  enabled: true
  # Time the player must stand still before the warp teleport completes.
  seconds: 5
creation-cost:
  # Costs paid only when a brand new warp is created with /chunk setwarp.
  # Updating an existing warp with the same name does not charge this again.
  # Any combination can be enabled:
  # - only money
  # - only exp
  # - only Chunk Points
  # - only items
  # - or all of them together
  money:
    # Requires Vault + a working economy provider.
    enabled: false
    # Money cost for creating one new warp.
    amount: 0.0
  experience:
    # Uses vanilla experience levels, not raw exp points.
    enabled: false
    # Level cost for creating one new warp.
    levels: 0
  chunk-points:
    # If true, creating a new warp also consumes Chunk Points.
    # In TEAM mode this uses the shared team balance.
    enabled: false
    # Chunk Points cost for creating one new warp.
    amount: 0
  items:
    # If true, creating a new warp also requires the item below.
    enabled: false
    # Vanilla material or supported custom item reference.
    # Examples:
    # - ENDER_PEARL
    # - itemsadder:namespace:item
    # - oraxen:my_item
    material: ENDER_PEARL
    # Optional display name used in messages. Leave empty to use the item's own display name.
    display-name: ""
    # Amount of the item required to create one new warp.
    amount: 0
refund-on-delete:
  # If true, deleting a warp refunds the CURRENT creation-cost values from this file.
  # ChunkLock does not store historical per-warp payments, so refunds use the current config.
  # The refund goes to the player deleting the warp and to the active Chunk Points context.
  enabled: false
rename:
  # Maximum visible warp name length used for /chunk setwarp, chat rename and GUI rename.
  max-length: 24
sounds:
  create:
    enabled: true
    type: ENTITY_EXPERIENCE_ORB_PICKUP
    volume: 1.0
    pitch: 1.15
  delete:
    enabled: true
    type: BLOCK_NOTE_BLOCK_BASS
    volume: 1.0
    pitch: 0.9
  teleport:
    enabled: true
    type: ENTITY_ENDERMAN_TELEPORT
    volume: 1.0
    pitch: 1.0

```

{% endtab %}

{% tab title="achivments.yml" %}

```yml
# ChunkLock achievement configuration.
# This file controls every GUI achievement except progression.yml -> advancement-rewards.
#
# How it works:
# - achievements are stored per player
# - progress can be earned even without a ChunkLock home
# - rewards can only be claimed when the player has a ChunkLock home/team
# - rewards are claimed by clicking the achievement inside the GUI
#
# Supported types:
# - DISTANCE_TRAVELED
# - VISITED_CHUNKS
# - CREATE_HOME
# - ADD_FRIENDS
# - PLACE_BLOCKS
# - BREAK_BLOCKS
# - KILL_PLAYERS
# - KILL_MOBS
# - FISH
# - VISIT_WORLD
# - OBTAIN_ITEM
# - CREATE_SHOP
# - ADVANCEMENT
#
# Supported reward buckets:
# rewards:
#   money:
#     min: 50
#     max: 150
#   exp-levels: 5
#   chunk-points: 2
#   items:
#     reward_key:
#       material: DIAMOND
#       amount: 3
#       display-name: "Bonus Diamond"
#   commands:
#     - "give %player% diamond 1"
#     - "lp user %player% permission set chunklock.reward.example true"
#
# Reward rules:
# - if random-reward is false, every configured bucket is granted
# - if random-reward is true, exactly one configured bucket is chosen
# - if random-item is true, one reward from rewards.items is chosen
# - if random-command is true, one reward from rewards.commands is chosen
# - money / exp-levels / chunk-points can be fixed values or min/max ranges
# - unlock-random-chunk unlocks one random locked chunk on the current ChunkLock home
# - sounds.achievement-complete plays when an achievement is finished
# - sounds.achievement-claim plays when the reward is claimed
# - sounds.achievement-claim-denied plays when a player tries to claim an unavailable reward
# 
# World filter:
# - worlds is optional
# - if worlds is missing or empty, progress can be earned in every world
# - you can use a YAML list:
#   worlds:
#     - world
#     - ChunkLock-world
# - or a comma separated value:
#   worlds: world,ChunkLock-world
#
# Custom target support:
# - PLACE_BLOCKS / BREAK_BLOCKS / OBTAIN_ITEM accept vanilla materials and custom item/block references
# - KILL_MOBS accepts vanilla mobs, MythicMobs IDs and ModelEngine IDs
#
# Example custom references:
# - itemsadder:my_pack:ruby_block
# - oraxen:custom_chair
# - nexo:ruby_ore
# - mythiccrucible:ancient_table
# - mythicmobs:skeleton_knight
# - modelengine:ancient_golem
# Direct advancement achievement example:
# type: ADVANCEMENT
# key: minecraft:story/enter_the_nether
#
# Toast support:
# - toasts.enabled enables or disables all achievement toasts globally
# - each achievement can override its own toast.enabled, toast.type, toast.title and toast.description
# - supported toast types: TASK / GOAL / CHALLENGE
# - toast.title is the main visible line in the vanilla toast popup
# - toast.description is stored in the internal advancement data and can also be customized
# - supported placeholders in toast.title / toast.description:
#   %achievement_name%
#   %achievement_key%
#   %required%
#   %amount%
#   %target_name%
#   %type%
#   %description%

toasts:
  enabled: true
  default-type: TASK
  default-title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
  default-description: "<gray>Reward ready in <white>/chunk achievements</white></gray>"

sounds:
  achievement-complete:
    enabled: true
    type: UI_TOAST_CHALLENGE_COMPLETE
    volume: 1.0
    pitch: 1.0
  achievement-claim:
    enabled: true
    type: ENTITY_PLAYER_LEVELUP
    volume: 1.0
    pitch: 1.1
  achievement-claim-denied:
    enabled: true
    type: BLOCK_NOTE_BLOCK_BASS
    volume: 1.0
    pitch: 0.7

travel_master:
  enabled: true
  order: 1
  name: "Travel Master"
  icon-material: COMPASS
  type: DISTANCE_TRAVELED
  amount: 5000
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Travel <white>%required%</white> blocks to unlock this achievement.</gray>"
  description:
    - "&7Travel &f5000 blocks &7anywhere on the server."
  rewards:
    money:
      min: 25
      max: 150
    exp-levels:
      min: 4
      max: 7
    chunk-points: 2

chunk_scout:
  enabled: true
  order: 2
  name: "Chunk Scout"
  icon-material: MAP
  type: VISITED_CHUNKS
  amount: 100
  toast:
    enabled: true
    type: TASK
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Visit <white>%required%</white> different chunk positions.</gray>"
  description:
    - "&7Visit &f100 different chunk positions&7."
  rewards:
    chunk-points: 1
    commands:
      - "tellraw %player% {\"text\":\"Achievement unlocked: %achievement_name%\",\"color\":\"gold\"}"

first_home:
  enabled: true
  order: 3
  name: "Home Founder"
  icon-material: GRASS_BLOCK
  type: CREATE_HOME
  amount: 1
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Create your first ChunkLock home.</gray>"
  description:
    - "&7Create your first ChunkLock home."
  rewards:
    items:
      starter_food:
        material: COOKED_BEEF
        amount: 16
        display-name: "Travel Food"
    random-item: true

team_builder:
  enabled: true
  order: 4
  name: "Team Builder"
  icon-material: PLAYER_HEAD
  type: ADD_FRIENDS
  worlds: world,ChunkLock-world
  amount: 3
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Add <white>%required%</white> friends to your ChunkLock team.</gray>"
  description:
    - "&7Add &f3 friends &7to your ChunkLock home."
  rewards:
    chunk-points: 2
    exp-levels:
      min: 2
      max: 4

builder_hands:
  enabled: true
  order: 5
  name: "Builder Hands"
  icon-material: BRICKS
  type: PLACE_BLOCKS
  target: STONE_BRICKS
  amount: 256
  toast:
    enabled: true
    type: TASK
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Place <white>%required%</white> <white>%target_name%</white>.</gray>"
  description:
    - "&7Place &f256 Stone Bricks&7."
  rewards:
    exp-levels: 4
    items:
      builder_reward:
        material: IRON_PICKAXE
        amount: 1
        display-name: "Builder Pickaxe"

demolition_worker:
  enabled: true
  order: 6
  name: "Demolition Worker"
  icon-material: IRON_PICKAXE
  type: BREAK_BLOCKS
  target: STONE
  amount: 512
  toast:
    enabled: true
    type: TASK
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Break <white>%required%</white> <white>%target_name%</white>.</gray>"
  description:
    - "&7Break &f512 Stone&7."
  rewards:
    chunk-points: 2

arena_fighter:
  enabled: true
  order: 7
  name: "Arena Fighter"
  icon-material: DIAMOND_SWORD
  type: KILL_PLAYERS
  amount: 5
  toast:
    enabled: true
    type: CHALLENGE
    title: "<gradient:#FCA5A5:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Defeat <white>%required%</white> players.</gray>"
  description:
    - "&7Defeat &f5 players&7."
  rewards:
    random-reward: true
    money:
      min: 100
      max: 250
    exp-levels:
      min: 8
      max: 12
    chunk-points:
      min: 2
      max: 4
    unlock-random-chunk: true

hunter:
  enabled: true
  order: 8
  name: "Hunter"
  icon-material: IRON_SWORD
  type: KILL_MOBS
  target: ZOMBIE
  amount: 50
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Kill <white>%required%</white> <white>%target_name%</white>.</gray>"
  description:
    - "&7Kill &f50 Zombies&7."
  rewards:
    items:
      mob_loot:
        material: ROTTEN_FLESH
        amount: 32
        display-name: "Mob Loot"
    chunk-points: 1

fisherman:
  enabled: true
  order: 9
  name: "Fisherman"
  icon-material: FISHING_ROD
  type: FISH
  amount: 20
  toast:
    enabled: true
    type: TASK
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Catch <white>%required%</white> fish.</gray>"
  description:
    - "&7Catch &f20 fish&7."
  rewards:
    exp-levels: 5

world_visitor:
  enabled: true
  order: 10
  name: "Nether Visitor"
  icon-material: CRYING_OBSIDIAN
  type: VISIT_WORLD
  target: world_nether
  amount: 1
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#FB7185:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Visit the world <white>%target_name%</white>.</gray>"
  description:
    - "&7Visit the world &fworld_nether&7."
  rewards:
    random-reward: true
    money:
      min: 80
      max: 180
    exp-levels: 5
    chunk-points: 1
    unlock-random-chunk: true

nether_story:
  enabled: false
  order: 14
  name: "Into the Nether"
  icon-material: NETHERRACK
  type: ADVANCEMENT
  key: minecraft:story/enter_the_nether
  amount: 1
  toast:
    enabled: true
    type: CHALLENGE
    title: "<gradient:#FB7185:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Complete the vanilla advancement <white>minecraft:story/enter_the_nether</white>.</gray>"
  description:
    - "&7Example direct achievement from"
    - "&fminecraft:story/enter_the_nether&7."
    - "&7Use type ADVANCEMENT with key:"
    - "&f<advancement namespace key>&7."
  rewards:
    money:
      min: 100
      max: 250
    exp-levels:
      min: 2
      max: 4

story_mine_diamond:
  enabled: true
  order: 11
  name: "Diamonds!"
  icon-material: DIAMOND
  type: OBTAIN_ITEM
  target: DIAMOND
  amount: 1
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Obtain <white>%required%</white> <white>%target_name%</white>.</gray>"
  description:
    - "&7Example achievement used by"
    - "&fprogression.yml -> advancement-rewards&7."
    - "&7It can be completed directly from"
    - "&fminecraft:story/mine_diamond&7."
  rewards:
    exp-levels: 3
    chunk-points: 1

item_collector:
  enabled: true
  order: 12
  name: "Diamond Collector"
  icon-material: DIAMOND
  type: OBTAIN_ITEM
  target: DIAMOND
  amount: 16
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Collect <white>%required%</white> <white>%target_name%</white>.</gray>"
  description:
    - "&7Obtain &f16 Diamonds&7."
  rewards:
    items:
      bonus_diamond:
        material: DIAMOND
        amount: 4
        display-name: "Bonus Diamonds"
    chunk-points: 2

shop_owner:
  enabled: true
  order: 13
  name: "First Merchant"
  icon-material: CHEST
  type: CREATE_SHOP
  amount: 1
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Create your first ChunkLock Player Shop.</gray>"
  description:
    - "&7Create your first ChunkLock Player Shop."
  rewards:
    chunk-points: 2
    commands:
      - "tellraw %player% {\"text\":\"Merchant reward claimed for %achievement_name%\",\"color\":\"green\"}"

itemsadder_builder_example:
  enabled: false
  order: 90
  name: "ItemsAdder Builder"
  icon-material: itemsadder:my_pack:ruby_block
  type: PLACE_BLOCKS
  target: "itemsadder:my_pack:ruby_block"
  amount: 32
  toast:
    enabled: true
    type: TASK
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Place <white>%required%</white> custom ItemsAdder blocks.</gray>"
  description:
    - "&7Example achievement for ItemsAdder custom blocks."
    - "&7Enable only if the item exists on your server."
  rewards:
    commands:
      - "give %player% stone 16"

oraxen_collector_example:
  enabled: false
  order: 91
  name: "Oraxen Collector"
  icon-material: oraxen:custom_chair
  type: OBTAIN_ITEM
  target: "oraxen:custom_chair"
  amount: 1
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Collect the configured Oraxen custom item.</gray>"
  description:
    - "&7Example achievement for Oraxen items."
  rewards:
    exp-levels: 4

nexo_breaker_example:
  enabled: false
  order: 92
  name: "Nexo Breaker"
  icon-material: nexo:ruby_ore
  type: BREAK_BLOCKS
  target: "nexo:ruby_ore"
  amount: 12
  toast:
    enabled: true
    type: TASK
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Break <white>%required%</white> configured Nexo blocks.</gray>"
  description:
    - "&7Example achievement for Nexo custom blocks."
  rewards:
    chunk-points: 2

crucible_crafter_example:
  enabled: false
  order: 93
  name: "Crucible Crafter"
  icon-material: mythiccrucible:ancient_table
  type: PLACE_BLOCKS
  target: "mythiccrucible:ancient_table"
  amount: 4
  toast:
    enabled: true
    type: GOAL
    title: "<gradient:#86EFAC:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Place configured MythicCrucible furniture or blocks.</gray>"
  description:
    - "&7Example achievement for MythicCrucible furniture or blocks."
  rewards:
    random-command: true
    commands:
      - "xp add %player% 5 levels"
      - "give %player% emerald 3"

mythic_hunter_example:
  enabled: false
  order: 98
  name: "Mythic Hunter"
  icon-material: NETHER_STAR
  type: KILL_MOBS
  target: "mythicmobs:skeleton_knight"
  amount: 10
  toast:
    enabled: true
    type: CHALLENGE
    title: "<gradient:#FCA5A5:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Kill <white>%required%</white> configured MythicMobs enemies.</gray>"
  description:
    - "&7Example achievement using a MythicMobs mob ID."
    - "&7Enable only if that mob exists on your server."
  rewards:
    chunk-points: 2

modelengine_hunter_example:
  enabled: false
  order: 99
  name: "Model Engine Slayer"
  icon-material: NETHER_STAR
  type: KILL_MOBS
  target: "modelengine:ancient_golem"
  amount: 5
  toast:
    enabled: true
    type: CHALLENGE
    title: "<gradient:#FCA5A5:#FACC15><bold>%achievement_name%</bold></gradient>"
    description: "<gray>Kill <white>%required%</white> configured ModelEngine enemies.</gray>"
  description:
    - "&7Example achievement using a ModelEngine model ID."
    - "&7Enable only if ModelEngine is installed and the model exists."
  rewards:
    exp-levels: 8

```

{% endtab %}
{% endtabs %}

## <mark style="color:$primary;">Optional Integrations</mark>

ChunkLock uses soft dependencies.\
These plugins are supported but not required.

* Vault
* PlaceholderAPI
* ItemsAdder
* Oraxen
* Nexo
* MythicMobs
* MythicCrucible
* ExecutableItems
* AdvancedItems
* EcoItems
