Minecraft Game Modes
In OneBlock, every player starts standing on a single magic block floating in the void. Break it and it turns into another block, sometimes a chest, sometimes a mob. As the count goes up, players move through phases (Plains, Underground, Winter, Ocean, Jungle, the Nether, the End and more), each with its own blocks, mobs and loot. Everything they build comes out of that one block.
This guide takes you from an empty server to a launched OneBlock server you can run for months: installed correctly, phases tuned (and your own phases added), progression gated with requirements, ranks set up in LuckPerms, lag kept under control, and backups that restore.
We use AOneBlock, a free game mode for BentoBox. BentoBox handles the islands, teams, protection and addons; AOneBlock adds the magic block and its phases. If you have read the Skyblock guide, much of this will be familiar: the island grid, addons, permissions and backups work the same way.
Time needed: about 1 to 2 hours for a working server, plus an evening if you want custom phases.
Before you start you need:
- A Minecraft server on Paper, with the version pinned on Startup. Paper setup
- The Java version current BentoBox releases need (Java 25 at the time of writing; the BentoBox release notes list the supported Paper range).
- At least 4 GB of memory; 6 GB or more past about 30 players online. Mob-heavy phases cost more than Skyblock.
Install BentoBox and AOneBlock
- Make a backup: Backups → Create Backup.
- Open Minecraft Plugins, search
BentoBoxand install it. Install plugins - Start the server, wait for
Done, then Stop. BentoBox createsplugins/BentoBox/addons/. - On your computer, download AOneBlock from download.bentobox.world (also published on Modrinth by the BentoBox team), plus the addons you choose below.
- Files →
plugins/BentoBox/addons/→ Upload the jars (or Pull from URL with a download link). - Start once more, wait for
Done, and Stop. AOneBlock createsplugins/BentoBox/addons/AOneBlock/withconfig.yml,phases_index.ymland aphases/folder, and the worldsoneblock_world,oneblock_world_netherandoneblock_world_the_end.
Choose your addons
| Addon | Why on OneBlock | Recommendation |
|---|---|---|
| Level | Island level and /ob top. Also used for phase requirements. |
Essential. |
| Challenges | Goals alongside the phases, so players have something to aim for besides breaking blocks. | Strongly recommended. |
| Limits | Caps mobs, hoppers and farms per island. | Essential: OneBlock spawns lots of mobs. |
| Warps or Visit | Players show off their islands and shops. | Recommended. |
| Border | Shows the island's buildable edge. | Recommended. |
| MagicCobblestoneGenerator | Ore generators; tiers can be gated by OneBlock phase or block count. | Optional: some servers want everything to come from the block. |
| Upgrades | Buy a bigger island, higher limits, faster crops. | Optional, needs an economy. |
| Bank | Shared island money; a possible phase requirement. | Optional; check it supports your version. |
| InvSwitcher | Separate inventories per game mode. | Required only if this server also runs Skyblock or another game mode. |
Keep BentoBox and every addon on matching versions, and update them together.
Configure AOneBlock before players join
Open plugins/BentoBox/addons/AOneBlock/config.yml. The settings that matter:
aoneblock:
command:
island: ob oneblock
admin: obadmin oneblockadmin oba
new-player-action: create
default-action: go
bossbar: true
actionbar: true
world:
friendly-name: OneBlock
world-name: oneblock_world
difficulty: NORMAL
holograms: true
starting-safety-duration: 10
mobs-clear-blocks: true
distance-between-islands: 400
protection-range: 50
island-height: 80
nether:
generate: true
islands: false
end:
generate: true
islands: false
island:
drop-on-top: true
mob-warning: 5
water-mob-protection: true
save-every: 10
max-team-size: 4
max-coop-size: 4
max-trusted-size: 4
max-homes: 1
reset:
reset-limit: 3
leavers-lose-reset: true
| Setting | Value | Why |
|---|---|---|
distance-between-islands |
400 |
A radius: island centres are 800 blocks apart. Can never change once islands exist. |
protection-range |
50 |
Starting buildable radius (100 × 100). Raise it per rank or with Upgrades. |
island-height |
80 |
Y level of the magic block. |
nether.islands, end.islands |
false |
OneBlock's default: the magic block exists only in the Overworld. Players reach a normal Nether and End through portals they earn. |
holograms |
true |
Shows the text set in phase files above the magic block. |
starting-safety-duration |
10 |
Seconds a new player is held still, used with the START_SAFETY flag, so nobody walks off the block before the world loads. |
mobs-clear-blocks |
true |
Clears blocks in the way when a mob spawns from the block, so it doesn't suffocate. |
drop-on-top |
true |
Broken blocks drop on top of the magic block instead of falling into the void. Set false only if a jobs plugin must see the block breaks. |
mob-warning |
5 |
Players hear a hostile mob coming a few blocks before it spawns. 0 turns the warning off. |
water-mob-protection |
true |
Fish and squid spawn in a water block instead of dying on stone. |
save-every |
10 |
Progress is written to the database every 10 blocks. It is also saved on phase change, logout and a clean shutdown, so this only matters for crashes. |
reset-limit |
3 |
Lifetime island resets. -1 unlimited, 0 none. |
leavers-lose-reset |
true |
Stops players leaving teams to farm fresh islands. |
Further down, create-island-on-first-login makes an island the moment a player joins. Turn it on for a dedicated OneBlock server; leave it off if a spawn or lobby explains things first.
If you changed anything in world:, delete the three oneblock_world folders in Files while the server is stopped, so they regenerate with your settings. Then Start.
Check it worked
- Join and run
/ob. You should land on a grass block with a hologram above it. - Break a few blocks and run
/ob count: it shows your block count and phase. - Run
/bentobox versionin the console to see every addon loaded.
Understand how phases work
The phase index
phases_index.yml is the source of truth for which phases run, in what order and for how long. Each entry points at a phase file:
phases:
- file: 0_plains
section: '0'
name: Plains
length: 700
- file: 700_underground
section: '700'
name: Underground
length: 1300
- file: 2000_winter
section: '2000'
name: Winter
length: 1000
gotoAtEnd: 0
| Key | Meaning |
|---|---|
file |
Phase file name in phases/, without .yml. Its chests are in <file>_chests.yml. |
section |
The top-level key inside that phase file. |
name |
Name shown in logs and admin tools. |
length |
Blocks in the phase. Each phase starts where the enabled phases above it end. |
enabled |
Optional; false leaves a phase out without deleting it. |
requiredMinecraftVersion |
Optional; the phase is skipped on older servers. |
gotoAtEnd |
Where the count jumps after the last phase. 0 loops back to Plains. |
The shipped index has about 20 phases (Plains through Cherry Grove, Jagged Peaks and newer biomes), a little over 15,000 blocks in total. Phases that need a newer Minecraft version than yours are skipped automatically.
You can also reorder phases and change lengths in game with /oba phases. Once you do, adminLengths: true is written to the index.
A phase file
Each phase file in phases/ (for example 0_plains.yml) holds:
| Key | What it does |
|---|---|
name |
Display name: boss bar, phases menu. |
icon |
Item shown in /ob phases. |
fixedBlocks |
Guaranteed blocks at exact positions within the phase, counting from 0. CHEST_WITH_<ITEM> places a chest containing that item. |
holograms |
Text above the magic block at given positions. Colour codes &a, hex 7FF55 and MiniMessage tags all work. |
biome |
Biome of the magic block's location only. |
start-commands, end-commands, end-commands-first-time |
Console commands at phase start and end. |
requirements |
Conditions to enter the phase (step 5). |
blocks |
Weighted pool of blocks. |
mobs |
Weighted pool of mobs, in the same pool as blocks. |
custom-blocks |
Optional: blocks with full block data, mobs with NBT, MythicMobs, ItemsAdder, Nexo or CraftEngine blocks. |
Weights, not percentages
The numbers in blocks: and mobs: are weights: tickets in a raffle. Each break, AOneBlock adds up every weight in the phase (blocks and mobs together) and picks one entry:
chance = entry's weight ÷ total of all weights in the phase
The shipped Plains phase totals 12,115, so GRASS_BLOCK: 2000 is 16.5% of breaks, CHEST: 200 is 1.7%, DIAMOND_ORE: 30 is 0.25% and COW: 150 is 1.2%. To make something twice as common, double its weight. To add a rare block without disturbing everything else, give it a small weight. Weights must be whole numbers of 1 or more.
Chests are a second roll. When CHEST comes up, AOneBlock picks a rarity (Common 62%, Uncommon 25%, Rare 9%, Epic 4%; fixed in the code), then a random chest of that rarity from the phase's _chests.yml.
Tune and customise phases
Change an existing phase
Example: Plains gives too few iron ores and you want a guaranteed water bucket earlier.
- Stop the server (or edit live and reload; stopping is safer for big changes). Lock a backup.
- Open
plugins/BentoBox/addons/AOneBlock/phases/0_plains.yml. - Change weights under
blocks:, e.g.IRON_ORE: 300→IRON_ORE: 500. - Under
fixedBlocks:, moveCHEST_WITH_WATER_BUCKETto an earlier position, e.g.150: CHEST_WITH_WATER_BUCKET. - Save, Start (or run
/bbox reload), then run/oba sanityin the console (add a phase name to check just one). It prints the phase's probabilities and flags mistakes such as misspelt block names.
Add your own phase
- In
phases/, createmy_mushroom.yml:
'my_mushroom':
name: Mushroom Island
icon: RED_MUSHROOM_BLOCK
biome: MUSHROOM_FIELDS
fixedBlocks:
0: MYCELIUM
1: CHEST_WITH_BOWL
holograms:
0: "<light_purple><bold>Mushroom Island!"
start-commands:
- 'broadcast [player] reached the Mushroom Island phase!'
end-commands-first-time:
- 'eco give [player] 500'
requirements:
level: 40
blocks:
MYCELIUM: 1500
RED_MUSHROOM_BLOCK: 600
BROWN_MUSHROOM_BLOCK: 600
MUSHROOM_STEM: 400
STONE: 800
IRON_ORE: 200
GOLD_ORE: 80
CHEST: 150
mobs:
MOOSHROOM: 120
Make its chest file: copy
0_plains_chests.yml, rename the copymy_mushroom_chests.yml, and change its top line from'0':to'my_mushroom':. The phase now has working chests from day one. Add your own with/oba setchest(step 4 below), then delete the copied Plains chests from the file once you have enough.Start the server. New files in
phases/are added to the end ofphases_index.ymlautomatically. Open/oba phasesto move the phase where you want it and set its length (for example 500).Add chests: place a chest in the world, fill it, look at it and run
/oba setchest my_mushroom RARE(orCOMMON,UNCOMMON,EPIC). Repeat for a few chests of each rarity. This is far easier than writing item data by hand.Run
/oba sanityand fix anything it reports for the new phase.Test:
/oba setcount <yourname> <block count just before the phase>and break blocks.
Commands in phases run as the console; prefix one with [SUDO] to run it as the player. Placeholders: [player], [owner], [island], [phase], [blocks], [level] (Level addon), [bank-balance] (Bank addon), [eco-balance] (Vault).
Custom blocks and mobs
custom-blocks: entries join the same weighted pool with a probability: value (also a weight). Types include block (full block data and NBT, e.g. a working spawner), mob-data (a mob with NBT such as a custom name or size), mythic-mob (needs MythicMobs), and itemsadder, nexo or craftengine blocks. The shipped 0_plains.yml has commented examples of each; copy from there. If a custom-block plugin isn't installed, its blocks fall back to stone.
Balance progression
The default phases go from Plains to the End in roughly 15,000 blocks. An active player breaks several hundred blocks an hour, so a dedicated player sees every phase in a few days. That's too fast for a server meant to last a season.
Phase requirements
Requirements hold a player at the end of the previous phase until they're met:
requirements:
level: 50
economy-balance: 10000
bank-balance: 5000
permission: oneblock.phase.nether
cooldown: 3600
| Requirement | Needs | Use it for |
|---|---|---|
level |
Level addon | "Build up your island before the Nether." The most common gate. |
economy-balance |
Vault + economy | Money gate. The money is checked, not taken. |
bank-balance |
Bank addon | Team money gate. |
permission |
Any permission | Gate by rank, or by a permission a Challenges reward grants. |
cooldown |
Seconds | Slows the fastest players, e.g. one hour between phases. |
A good pattern: Challenges reward a permission (lp user [player] permission set oneblock.phase.nether true), and the Nether phase requires it. Players must complete a challenge level to progress.
Other levers
- Longer phases: raise
lengthinphases_index.ymlor in/oba phases. - Rarer ores and chests: lower their weights. Epic chests are the main source of high-value items; check what's in them.
- What happens at the end:
gotoAtEnd: 0loops back to Plains. Set it to the start of a late phase if you'd rather players loop through end-game content. - Island level values: Level's
blockconfig.ymldecides what blocks are worth. See Skyblock: island levels.
Commands and flags
Player commands (/ob, also /oneblock)
| Command | Does | Permission (default) |
|---|---|---|
/ob |
Creates your island, or takes you home. | aoneblock.island (on) |
/ob count |
Block count and phase. | aoneblock.count (on) |
/ob phases |
Menu of all phases. | aoneblock.phases (off) |
/ob respawnBlock or /ob check |
Shows, or respawns, a missing magic block. | aoneblock.respawn-block (on) |
/ob bossbar, /ob actionbar |
Toggle progress displays. | on |
/ob setCount <number> |
Go back to a block count you already reached. | aoneblock.island.setcount (op) |
/ob team …, /ob settings, /ob sethome, /ob level, /ob top, /ob challenges, /ob warps |
Standard BentoBox island, team and addon commands, as on Skyblock. |
Admin commands (/oba, also /obadmin)
| Command | Does |
|---|---|
/oba setcount <player> <number> |
Move an island to a block count (and phase). |
/oba setchest <phase> <rarity> |
Save the chest you're looking at into a phase. |
/oba sanity [phase] |
Check phase files and print probabilities to the console. |
/oba phases |
Edit phase order and lengths. |
/oba setspawn, /oba tp <player>, /oba info, /oba delete <player>, /oba range set <player> <n>, /oba purge <days> |
Standard BentoBox admin commands. |
Flags
| Flag | Where | Default | Does |
|---|---|---|---|
MAGIC_BLOCK |
/ob settings |
Coop | Lowest rank allowed to break the magic block. |
START_SAFETY |
/oba settings |
Off | Holds new players still for starting-safety-duration seconds. Turn on. |
ONEBLOCK_BOSSBAR, ONEBLOCK_ACTIONBAR |
/ob settings |
On | Progress display, if enabled in config.yml. |
OBSIDIAN_SCOOPING |
world settings | Off | Right-clicking obsidian with a bucket gives lava back. |
Other protection flags (who may open chests, hurt animals, use doors) work exactly as on Skyblock; set defaults under default-island-flags in config.yml. Rank numbers: 0 visitor, 200 coop, 400 trusted, 500 member, 900 sub-owner, 1000 owner.
Placeholders
With PlaceholderAPI: %aoneblock_my_island_phase%, %aoneblock_my_island_count%, %aoneblock_my_island_next_phase%, %aoneblock_my_island_blocks_to_next_phase% and %aoneblock_my_island_percent_done%. Use them in a scoreboard or tab list.
Ranks and permissions with LuckPerms
Install LuckPerms and run these in the console. Number permissions use the highest number the island owner has, and are read while they're online.
lp group default permission set aoneblock.phases true
lp group default permission set aoneblock.island.warp true
lp group default permission set aoneblock.island.addwarp true
lp creategroup vip
lp group vip parent add default
lp group vip permission set aoneblock.team.maxsize.6 true
lp group vip permission set aoneblock.coop.maxsize.6 true
lp group vip permission set aoneblock.island.maxhomes.3 true
lp group vip permission set aoneblock.island.range.75 true
lp group vip permission set aoneblock.island.limit.hopper.48 true
lp group vip permission set aoneblock.island.setcount true
lp creategroup mod
lp group mod permission set aoneblock.mod.info true
lp group mod permission set aoneblock.mod.tp true
lp group mod permission set aoneblock.mod.bypassprotect true
lp group mod permission set aoneblock.mod.bypasslock true
lp creategroup admin
lp group admin parent add mod
lp group admin permission set aoneblock.admin.* true
lp group admin permission set bentobox.admin.* true
Give a rank with lp user <name> parent add vip. /bentobox perms lists every permission your addons register.
Economy, generators, limits and shops
Economy and shop
Install VaultUnlocked (or Vault) and EssentialsX, then a shop GUI such as EconomyShopGUI (free; Premium is paid). On OneBlock, items arrive fast and in bulk early on, so keep sell prices for common blocks (dirt, logs, cobblestone, sand) very low or zero, and let money come from ores, mob drops and challenges.
Generators
OneBlock players build cobblestone generators too, once they have lava and water. MagicCobblestoneGenerator tiers can be gated by AOneBlock phase or block count as well as island level, so generator ores unlock in step with the phases. Configure it as in the Skyblock guide, with aoneblock. in place of bskyblock. in the permissions.
Limits
The Limits addon covers AOneBlock out of the box (AOneBlock is in its gamemodes: list), and ignore-center-block: true keeps the magic block itself out of the counts. Mob phases make entity limits more important than on Skyblock:
gamemodes:
- AOneBlock
ignore-center-block: true
blocklimits:
HOPPER: 32
OBSERVER: 32
PISTON: 32
SPAWNER: 10
entitylimits:
VILLAGER: 20
ARMOR_STAND: 20
CHICKEN: 30
COW: 30
entitygrouplimits:
Monsters:
icon: ROTTEN_FLESH
limit: 120
entities:
- ZOMBIE
- SKELETON
- CREEPER
- SPIDER
- ENDERMAN
- WITCH
- BLAZE
Performance
OneBlock is heavier than Skyblock: every block break is a database update, every so often a mob spawns, and players build mob farms from spawners and phases.
| Where | Setting | Value | Why |
|---|---|---|---|
server.properties |
simulation-distance |
5 |
Farms far from players stop ticking. |
server.properties |
view-distance |
8 |
Plenty in a void world. |
AOneBlock config.yml |
save-every |
10–25 |
Fewer database writes on busy servers. Progress is still saved on logout and phase change. |
paper-world-defaults.yml |
entities.spawning.per-player-mob-spawns |
true |
Fair mob caps. |
paper-world-defaults.yml |
tick-rates.mob-spawner |
2 |
Spawners from phases tick half as often. |
paper-world-defaults.yml |
hopper.cooldown-when-full |
true |
Full hoppers stop checking every tick. |
paper-world-defaults.yml |
entities.spawning.alt-item-despawn-rate |
enabled, cobblestone: 300 |
Junk from generators despawns faster. |
paper-world-defaults.yml |
misc.redstone-implementation |
ALTERNATE_CURRENT |
Faster redstone. |
| Limits addon | Entity group limits | as above | Stops mob farms growing without end. |
The full Paper block is in the Skyblock performance step. Check with spark tps and spark profiler start --timeout 300 during your busiest hour. Fix lag
Backups, resets and seasons
Backups
BentoBox stores islands in its database (owners, teams, levels and AOneBlock's block counts in the OneBlockIslands data) and in the world files. Restore them together, from the same moment, or players end up with the wrong count or island.
- Keep BentoBox's default
JSONdatabase on a single server: it lives inplugins/BentoBox/database/, so panel backups capture it at the same moment as the worlds. If you use MariaDB, remember panel backups don't include databases. Databases - Schedule a backup every 6 hours: Send Command
save-all, then Create Backup 10 seconds later. Backup schedules - Lock a backup on launch day and before every phase edit or addon update.
Resets
- A player resets their own island with
/ob reset, withinreset-limit. /oba delete <player>removes an island;/oba resets add <player> 1gives an extra reset./oba purge <days>deletes the region files of islands nobody has touched in that many days.
A season wipe
- Announce it two weeks ahead. Lock and download a backup.
- Stop the server.
- Delete
oneblock_world,oneblock_world_netherandoneblock_world_the_endin Files. - In
plugins/BentoBox/database/, deleteIslands,Players,OneBlockIslands,IslandLevelsandChallengesPlayerData. KeepChallengeandChallengeLevel(your challenge definitions). Your phase files and configs are untouched. - Reset the economy if you want a fresh start, then Start.
Updates
AOneBlock regularly adds phases for new Minecraft biomes. After an update, new shipped phases are added to your index once (listed under shippedPhases); delete a phase's entry and files if you don't want it. Update BentoBox and all addons together, after a locked backup.
Anti-grief
Install CoreProtect to log and roll back block changes, and teach players that the MAGIC_BLOCK flag decides who can break their block: coop and above by default, which means a coop helper can mine through your progress.
Running it in a network
OneBlock fits as one back-end behind Velocity, alongside a lobby, Skyblock and Chunklock. Run several game modes as one network
- Back-end settings:
online-mode=falseinserver.properties, and Velocity forwarding enabled with the shared secret inconfig/paper-global.yml. Turn oncreate-island-on-first-loginso players who pick OneBlock in the lobby start straight away. - Shared LuckPerms: use the same MariaDB database on every server, set
server: oneblockin LuckPerms'config.yml, and add OneBlock perks with a context so they apply only here:lp group vip permission set aoneblock.team.maxsize.6 true server=oneblock. - Economy: keep it separate per game mode. OneBlock income comes very fast early on; sharing it with Skyblock or Chunklock floods their economies.
Same BentoBox server as Skyblock, or its own?
BentoBox runs several game modes in one install. Put AOneBlock and BSkyBlock in the same addons folder and each gets its own worlds and commands (/ob and /island).
| Choose one shared server when | Choose separate servers when |
|---|---|
| Your community is small (under about 30 online). | You expect more players, or OneBlock mob farms. |
| You want one bill and one set of addons. | You want separate season dates (they share the database). |
| You install InvSwitcher, so inventories, XP and health stay separate per game mode. | You want each mode's lag isolated from the others. |
On a shared server, watch for create-island-on-first-login: if both game modes have it on, a new player gets islands in both, and you can't predict which one they're teleported to. Turn it on in only one.
Common problems
| Problem | Cause | Fix |
|---|---|---|
| AOneBlock doesn't load | Java too old, or BentoBox too old for this AOneBlock. | Startup → newer Java; update BentoBox. Check the console for the exact message. |
| Addon jar is ignored | It's in plugins/, not plugins/BentoBox/addons/. |
Move it and restart. |
| Phase edits don't apply | Edited without reloading, or a YAML error. | /bbox reload or restart; run /oba sanity <phase>. |
| New phase file appears at the end | New files are appended to the index. | Reorder in /oba phases. |
| Phase skipped entirely | requiredMinecraftVersion is newer than your server, or enabled: false. |
Expected; check phases_index.yml. |
| Players stuck at the end of a phase | They don't meet its requirements. |
Tell them what's needed (show it in the phase hologram or a challenge), or lower it. |
| Stone appears instead of custom blocks | ItemsAdder, Nexo or CraftEngine isn't installed or loaded. | Install it, or remove the custom block. |
| Magic block missing | Broken by an explosion or a plugin. | /ob check (or /ob respawnBlock). |
| Mobs spawn and die instantly | Not enough space or water. | Keep mobs-clear-blocks and water-mob-protection on. |
Players can't open /ob phases |
aoneblock.phases is off by default. |
lp group default permission set aoneblock.phases true. |
| Block count went backwards after a crash | Progress since the last save was lost. | Lower save-every, and find the crash cause. |
| Server lags at peak hours | Mob farms and item piles. | Entity group limits, spark profiler, Paper settings above. |
| New player has islands in Skyblock and OneBlock | Both game modes create islands on first login. | Turn create-island-on-first-login off in one. |
Launch checklist
- [ ] Paper, pinned version, correct Java;
/bentobox versionlists AOneBlock and every addon. - [ ] Island distance, height and world names final; worlds regenerated after changes.
- [ ] Spawn island set with
/oba setspawn. - [ ] Phase lengths and requirements reviewed for the season length you want;
/oba sanityclean. - [ ] Custom phases and chests added and tested with
/oba setcount. - [ ]
START_SAFETYon;aoneblock.phasesgiven to default. - [ ] Level, Challenges, Limits installed and configured; entity group limits set.
- [ ] Economy and shop prices checked against early-game item floods.
- [ ] LuckPerms groups for players, ranks and staff; no staff on
op. - [ ] Paper performance settings applied;
spark tpshealthy with test players. - [ ] CoreProtect installed.
- [ ] Backup every 6 hours, a locked launch backup, a daily restart after a backup.
Going further
- Skyblock servers: blueprints, challenges, generators and Upgrades in more depth
- Chunklock servers, including ChunkBlock, a BentoBox mode that combines OneBlock with chunk unlocking
- Run several game modes as one network
- AOneBlock documentation at docs.bentobox.world, and the heavily commented
phases/0_plains.ymlon your own server, which documents every phase option.

