Minecraft Game Modes
In Chunklock, players start locked inside a single 16 × 16 chunk. Every neighbouring chunk is sealed off, and opening one costs something: usually items that depend on what's in that chunk or its biome. Players gather, pay, step into the new chunk, and slowly carve a path across the world. It's survival with a constant "one more chunk" goal.
This guide takes you from an empty server to a launched Chunklock server: choosing the right project (several share the name), sizing and pre-generating the world, tuning unlock costs, setting up teams and permissions, keeping it fast, backing it up, and running it as one game mode in a network.
Time needed: about 1 hour to set up, plus several hours (overnight is fine) for pre-generation.
Before you start you need:
- A Minecraft server on Paper, with the Minecraft version pinned on Startup. Paper setup
- 4–6 GB of memory for up to about 20 players.
- Enough disk for a pre-generated world (step 3).
Choose your Chunklock project
Several unrelated projects use the name. They are not compatible with each other: install exactly one.
| Chunklock plugin (Lunary1) | Chunklock datapack (Delta Lore & Quillbee) | ChunkBlock (BentoBox game mode) | |
|---|---|---|---|
| What it is | Paper plugin for a shared survival world. | Vanilla datapack. | OneBlock-style islands where each chunk is bought with island levels. |
| World | One dedicated world, natural terrain. | Your normal world. | Void world, one island per player or team. |
| Progress | Per player or team: each starts in their own chunk, spread around the world. | Shared: the whole server unlocks one territory together. | Per island. |
| Cost | Items from the chunk being bought (or money with Vault). | Items based on the biome; difficulty multiplier. | Island levels (Level addon). |
| Configured with | YAML files, /chunklock reload. |
/trigger commands as an operator. |
BentoBox config files, like AOneBlock. |
| Best for | A public Chunklock server or network mode. | Friends' servers, up to about 6 players. | Networks already running BentoBox. |
| Price | Free (source on GitHub). | Free. | Free. |
| Minecraft versions | Released 2.3.0 is built for Paper 1.20.4–1.21.10; a version for newer Minecraft is in development. | Listed up to 1.21.11 on Modrinth. | Current BentoBox range (newest releases). |
There is also Chunklocked, a Fabric mod remake of the datapack. Every player must install it in their own client too, so it suits a private modded group rather than a public server.
The rest of this guide covers the plugin in depth (steps 2–8), then the datapack and ChunkBlock.
Install the Chunklock plugin
- Make a backup: Backups → Create Backup.
- On Startup, set the Minecraft version and Java the plugin supports (see the table), then start and stop once.
- Download the plugin jar. The newest release is on the project's GitHub releases page (
Lunary1/chunklock); Hangar may lag a release behind. Check that the version you download lists your Minecraft version. - In Files →
plugins, Upload the jar (or Pull from URL with the release link). Install plugins - Optional plugins it uses if present: Vault (money costs and paid re-rolls), FancyHolograms (cost holograms on chunk borders), Oraxen or MMOItems (custom items as costs).
- Install LuckPerms, Chunky, spark and CoreProtect at the same time.
- Restart. Run
pluginsin the console: Chunklock should be green.
The plugin creates plugins/Chunklock/ with these files:
| File | Controls |
|---|---|
config.yml |
Core settings and language. |
worlds.yml |
The Chunklock world name, its diameter, spacing between players' start areas. |
economy.yml |
Items or money, cost formulas, re-rolls. |
biome-unlocks.yml |
Fixed per-biome item costs (when using biome cost mode). |
block-values.yml |
How valuable each block is when scanning a chunk. |
team-settings.yml |
Team size and team cost scaling. |
borders.yml, holograms.yml |
The glass borders and cost holograms. |
performance.yml |
Border update rates. |
database.yml |
Storage: mapdb (local files, default) or mysql. |
lang/en.yml |
Every message players see. |
Size and create the Chunklock world
The plugin uses one dedicated world (chunklock_world by default). Every player gets their own starting chunk inside it, spaced apart from everyone else's.
Pick a size
/chunklock setup <diameter> creates the world, sets a world border of that diameter, and pre-generates everything inside it. Big diameters take a very long time and a lot of disk:
| Players over the season | Diameter | Chunks to generate (about) | Disk, roughly |
|---|---|---|---|
| Up to 15 | 4000 |
63,000 | 1–2 GB |
| 15–40 | 6000 |
141,000 | 3–4 GB |
| 40+ | 8000–10000 |
250,000–390,000 | 6–10 GB |
Chunklock players spread slowly: a dedicated player unlocks perhaps a few hundred chunks in a season. You need room for everyone's start areas plus their growth, not a 30,000-block world. The minimum is 1000 and the maximum 100,000.
These are estimates. Generate the world, check its size on Files, and remember backups need space too.
Run setup
- Join the server as an operator (the command has to be run in game, not in the console).
- Run
/chunklock setup 6000. - Leave it running. It reports progress in chat. Stay online, keep other players off, and don't restart until it finishes.
- When it says setup is complete, players can start.
Fill in the Nether and End
Setup only pre-generates the Chunklock Overworld. If players will build portals, pre-generate the Nether too with Chunky, inside a border one-eighth the size. In the console:
chunky world chunklock_world_nether
chunky center 0 0
chunky radius 500
chunky start
Check the Nether world's actual folder name in Files first.
Check it worked
Run /chunklock start from a normal player account. You should be teleported into a single unlocked chunk with glass walls on its edges. /chunklock status shows one chunk unlocked.
Tune unlock costs
Items or money
In economy.yml:
type: "materials"
materials:
enabled: true
cost-mode: "resource-scan"
resource-scan:
base-cost: 16
min-cost: 1
max-cost: 128
price-commitment:
reroll-cooldown-minutes: 60
vault-fallback: false
| Setting | Options | Effect |
|---|---|---|
type |
materials or vault |
Pay with items, or with money (needs Vault and an economy). |
cost-mode |
resource-scan or biome |
resource-scan: the chunk you're buying decides its price (a forest asks for wood, a desert for sand), and never asks for something you can't reach yet. biome: fixed costs per biome from biome-unlocks.yml; predictable, but players can get stuck if their area lacks an item. |
base-cost |
number | Starting item amount, adjusted for rarity and progress. |
min-cost, max-cost |
number | Floor and cap on any single price. |
reroll-cooldown-minutes |
minutes | Once a player has seen a price, it's held until they pay or re-roll. Without Vault a re-roll has this cooldown per chunk; with Vault it costs money that doubles each time. |
vault-fallback |
true/false |
Let players pay money when they lack the items. |
For a money economy, the vault: section sets base-cost (e.g. 100), cost-per-unlocked (added per chunk already owned) and multipliers per difficulty and biome.
Fixed biome costs
If you use cost-mode: "biome", set what each biome costs in biome-unlocks.yml. Every item listed is required:
PLAINS:
WHEAT: 8
HAY_BLOCK: 2
FOREST:
OAK_LOG: 32
DESERT:
SAND: 64
CACTUS: 8
Apply and test
- Run
/chunklock reloadafter any edit. - Walk to a locked chunk's border and right-click a block (or run
/chunklock gui) to see its price. - Unlock it with the GUI or
/chunklock unlockwhile standing in it.
Balancing tips
- The first ten unlocks should take minutes, not hours; players quit if their first chunk is a dead end.
- Pricing by distance and progress means late chunks get expensive. Test with a fresh account: unlock 20 chunks and see whether it still feels fair.
- Tell players before you change prices on a live server. Plugin updates can change prices too: read the release notes.
Teams and multiplayer
Solo, co-op or competitive
- Solo: everyone plays alone. Starting areas are at least
claims.min-distance-between-claimschunks apart (inworlds.yml, default 2). Raise it to 6–10 so neighbours don't collide straight away. - Teams (co-op): a team shares its unlocked chunks. Costs rise with team size so a big team isn't simply faster.
- Competitive:
team-settings.ymlhas options for claiming chunks another team owns, at a higher price and a daily limit. Turn this down or off if you want a peaceful server.
max-team-size: 6
team-cost-multiplier: 0.15
max-cost-multiplier: 3.0
contested-cost-multiplier: 3.0
max-contested-claims-per-day: 5
| Setting | Effect |
|---|---|
max-team-size |
Members per team. |
team-cost-multiplier |
Extra cost per member beyond the first (0.15 = +15% each). |
max-cost-multiplier |
Cap on the team multiplier. |
contested-cost-multiplier |
Price multiplier for claiming another team's chunk. |
max-contested-claims-per-day |
How many contested claims a team may make per day. |
Player commands
| Command | Does |
|---|---|
/chunklock start |
Begin: get a starting chunk and teleport to it. Once per player. |
/chunklock status |
Chunks unlocked, team, next cost. |
/chunklock unlock |
Unlock the chunk you're standing in. |
/chunklock gui (or right-click a block) |
Unlock menu with prices and a map. |
/chunklock spawn |
Back to your starting chunk. |
/chunklock team create <name>, invite <player>, accept, leave, kick <player>, info |
Team management. |
/chunklock help |
Everything you can use. |
/cl works in place of /chunklock.
Admin commands
| Command | Does |
|---|---|
/chunklock setup <diameter> |
Create and pre-generate the world (once). |
/chunklock reload |
Reload all config files. |
/chunklock status <player> |
A player's progress. |
/chunklock unlock <player> |
Unlock the chunk that player is in, free; fixes stuck players. |
/chunklock bypass [player] |
Toggle ignoring locks (for building spawn or helping players). |
/chunklock reset <player> |
Wipe one player's progress. |
/chunklock resetall |
Wipe everyone. Asks for confirmation. Back up first. |
/chunklock debug, /chunklock database |
Health and storage status. |
Run /chunklock help on your version for the exact list; commands change between releases.
Permissions with LuckPerms
Player commands are allowed by default through chunklock.use. Admin commands need chunklock.admin (operators have it). Set up groups in the console:
lp group default permission set chunklock.use true
lp creategroup helper
lp group helper parent add default
lp group helper permission set chunklock.bypass true
lp creategroup mod
lp group mod parent add helper
lp group mod permission set chunklock.unlock true
lp group mod permission set chunklock.reset true
lp creategroup admin
lp group admin parent add mod
lp group admin permission set chunklock.admin true
| Node | Allows |
|---|---|
chunklock.use |
Player commands (status, start, unlock, spawn, team). |
chunklock.bypass |
Ignore locks (/chunklock bypass). |
chunklock.unlock |
Force-unlock chunks for players. |
chunklock.reset |
Reset a player. |
chunklock.reload |
Reload configs. |
chunklock.admin |
Everything, including setup and resetall. |
chunklock.bypass makes unlocks free and lets the holder enter any chunk. Give it to staff only, and remind them to turn it off.
Beyond Chunklock, give normal players the usual survival basics (EssentialsX /home, /tpa, /msg). Think carefully about teleport commands: /tpa to a friend in another area skips the whole point of the game. Many Chunklock servers allow /tpa only between team members, or not at all.
Performance
Chunklock is mostly ordinary survival, plus border and hologram updates for every player.
| Where | Setting | Value | Why |
|---|---|---|---|
/chunklock setup |
diameter | As small as fits your community | Everything inside is generated up front. |
server.properties |
view-distance |
8 |
Players see locked chunks but only a small area matters. |
server.properties |
simulation-distance |
6 |
Standard survival saving. |
paper-world-defaults.yml |
misc.redstone-implementation |
ALTERNATE_CURRENT |
Faster redstone. |
paper-world-defaults.yml |
hopper.cooldown-when-full |
true |
Fewer hopper checks. |
performance.yml |
border-update-delay, max-border-updates-per-tick |
Defaults; raise the delay if borders show in spark | Fewer border updates per tick. |
holograms.yml |
Holograms | Off if you don't use FancyHolograms | Skips the work entirely. |
Backups, storage and resets
What to back up
Chunklock keeps progress in its own storage (database.yml → type: "mapdb", local files in plugins/Chunklock/) and the blocks in chunklock_world. With MapDB, a panel backup captures both at the same moment, which is what you want.
Switch to mysql only if several servers must share Chunklock data. Then create the database on Databases (Databases), fill in database.yml's mysql: section, and remember that panel backups don't include databases: you need a separate database backup taken at the same time.
Schedule
- Schedules →
Backup every 6 hours: Minute0, Hour*/6. Tasks: Send Commandsave-all, then Create Backup after 10 seconds. Backup schedules - Lock a backup on launch day, and before every plugin update or cost change.
Seasons
- Announce it. Lock and download a backup.
- Run
/chunklock resetall(type the confirmation) to clear progress, teams and stats. - For a new map as well: stop the server, delete
chunklock_world(and its Nether and End) in Files, start, and run/chunklock setupagain.
Anti-grief
Locked chunks keep strangers out of each other's territory, but team members and anyone in shared chunks can still grief. Install CoreProtect (/co inspect, /co rollback u:<player> t:1d) and, if you allow building in the spawn area, protect it with WorldGuard or by keeping it locked to players.
The datapack instead
The datapack is the simplest option for a private group playing one shared territory.
- Stop the server. On Startup, choose a Minecraft version the datapack lists.
- Upload the datapack zip to
world/datapacks/(yourlevel-namefolder) before the world is first created, or on a world nobody has unlocked anything in yet. - Start, and check it's active with
/datapack list. - As an operator, run
/trigger ChunkDifficultyto choose the difficulty. This only works before any chunk is unlocked. - Optional: put players into vanilla teams (
/team add red,/team join red <player>) and run/trigger ChunkSpreadPlayersto spread them around a 1000 × 1000 area, which also sets their spawn points. - To remove it cleanly later, use
/trigger ChunkUninstalland follow the pack's uninstall instructions.
The authors recommend at most about 6 players and 8 GB of memory. Pre-generate with Chunky as usual (Pre-generate). The datapack is reported not to work with ViaBackwards, and its borders may not render for players using OptiFine or Lunar Client.
ChunkBlock instead
ChunkBlock is an official BentoBox game mode: OneBlock with chunk unlocking. Each player starts on a magic block confined to a single chunk. Island levels are the currency: walk up to the border and hit it to claim the next chunk, at levels-per-chunk levels each (default 1), up to the island's protection range and max-chunks. If the level drops, the most recently claimed chunks lock again, unless relock-on-level-loss: false.
- Install BentoBox, the Level addon (required) and ChunkBlock into
plugins/BentoBox/addons/, as in the OneBlock guide. - Players use
/ch(alias/chunkblock):/ch chunksshows a map of their territory and credit. - Admins use
/chadmin:/chadmin chunks <player>inspects or resets a player's chunks,/chadmin bypassignores the lock (needschunkblock.mod.bypasschunks, not given to operators by default).
Phases, Limits, Challenges, backups and seasons work exactly as in the OneBlock guide, with chunkblock as the permission prefix. ChunkBlock can run on the same BentoBox server as AOneBlock and BSkyBlock.
Running it in a network
Chunklock works well as one back-end behind Velocity, next to a lobby, Skyblock and OneBlock. Run several game modes as one network
Which Chunklock fits a network
- The plugin on its own server: the usual choice. Players pick Chunklock in the lobby and land in
chunklock_world. Make that the server's main world, or send players there on join, so nobody lands in the normalworld. - ChunkBlock on your existing BentoBox server: no extra server needed, but it's island-style, not natural terrain.
- The datapack is a poor fit for a public network: one shared progression for everyone.
Back-end settings
| Setting | Value |
|---|---|
server.properties → online-mode |
false (Velocity checks accounts). |
config/paper-global.yml → proxies.velocity |
enabled: true, online-mode: true, the forwarding secret. |
| Minecraft version | Whatever the Chunklock plugin supports. Players on newer clients can still join if ViaVersion is installed on Velocity or on this back-end. Test it. |
| Pre-generation | Done before the server is added to Velocity's try list. |
Shared LuckPerms
Use the same LuckPerms MariaDB database on every server and set server: chunklock in plugins/LuckPerms/config.yml. Ranks stay global; add Chunklock-only nodes with a context:
lp group mod permission set chunklock.unlock true server=chunklock
lp group mod permission set chunklock.reset true server=chunklock
Economy
If unlocks cost items (the default), the economy barely matters here. If you use type: "vault", keep the economy separate from other game modes: Skyblock and OneBlock players can earn money far faster than Chunklock players, and a shared balance would let them buy whole regions.
One server or several?
Chunklock should get its own server. It uses natural terrain and a big pre-generated world, it may need an older Minecraft version than your other servers, and its seasons rarely line up with Skyblock's. The only Chunklock-style mode that shares a server sensibly is ChunkBlock, on BentoBox.
Common problems
| Problem | Cause | Fix |
|---|---|---|
| Strange double locks or costs | Two Chunklock projects installed (plugin and datapack). | Remove one. |
| Plugin errors on start | Your Minecraft or Java version isn't one the plugin supports. | Use a version the release lists, or wait for an update. |
/chunklock start says the world isn't set up |
Setup hasn't been run. | Run /chunklock setup <diameter> in game as an operator. |
| Setup takes hours | The diameter is large; everything inside is generated. | Expected. Use a smaller diameter next time. |
| Players spawn in the void | Bug in older plugin versions. | Update to the latest release. |
| A player can't afford anything nearby | Biome cost mode with items their area lacks. | Use resource-scan, enable re-rolls or vault-fallback, or /chunklock unlock <player> once. |
| Price changed after an update | New releases can change pricing. | Read release notes; announce before updating. |
| Staff unlocked chunks for free by accident | Bypass mode left on. | /chunklock bypass again to turn it off. |
| No holograms | FancyHolograms missing or failed to load. | Install it, or turn holograms off in holograms.yml. |
| Datapack not active | Not in the world's datapacks/ folder, or not restarted. |
Check /datapack list. |
| Lag when exploring the Nether | Nether not pre-generated. | Pre-generate it with Chunky. |
Launch checklist
- [ ] One Chunklock project chosen; Minecraft version and Java match what it supports.
- [ ] Seed and terrain datapacks decided before setup.
- [ ]
/chunklock setupfinished; world size checked on Files. - [ ] Nether pre-generated if portals are allowed.
- [ ] Costs tested with a fresh account for the first 20 chunks.
- [ ] Start-area spacing and team settings decided.
- [ ] LuckPerms groups set; staff know how to turn bypass off.
- [ ] Teleport commands reviewed so they don't skip progression.
- [ ] CoreProtect installed; spawn protected.
- [ ] Backups every 6 hours, a locked launch backup, a daily restart.
- [ ] In a network: Velocity forwarding set,
online-mode=false, joined through the proxy to test.
Going further
- Better pre-generated worlds
- Run several game modes as one network
- OneBlock servers, for ChunkBlock's phases and settings
- The Chunklock plugin's GitHub repository has a
docs/wikifolder with every command and file.

