OneBlock Plugin
A self-contained OneBlock survival experience for any Paper, Spigot, or Purpur server.
OneBlock lets admins turn any block on the server into a OneBlock — a single block that regenerates every time it's broken, each time pulling a new block (and sometimes a mob) from a level-specific table. Break it enough times and the OneBlock advances to the next level, unlocking new themed drops all the way from "Podzol & melon" up to "The end?" at level 28, after which it can loop back to an Infinity stage.
Everything is tracked server-side in a small SQLite database via HikariCP — location, current level, and break progress per OneBlock — so nothing is lost on restart. The whole experience is configured through a single YAML file, requires no client-side mods, and is built to stay lightweight even with many OneBlocks active across the server (and across worlds, with optional Multiverse-Core support).
Features
Unlimited OneBlocks
Turn any block at any coordinate into a OneBlock — there's no cap on how many can exist on your server.
Dynamic Progression
Each OneBlock evolves the more it's broken, climbing through up to 28 themed levels that spawn new and more valuable blocks (and mobs) as it goes.
Persistent Data
Location, level, and break progress for every OneBlock are stored in a database via HikariCP, so nothing is lost across restarts.
Griefing Protection
OneBlocks are explosion-proof — safe from creepers, TNT, and other griefers trying to destroy them.
Multiverse Support
Works flawlessly alongside Multiverse-Core, so OneBlocks can live in their own dedicated worlds.
Lightweight
Optimised for performance — runs smoothly in the background without impacting server tick rate.
Compatibility
| Minecraft Version | Server Software | Optional Dependency | Permission Node |
|---|---|---|---|
| 1.21.x | Paper | Multiverse-Core | OneBlock.Admin |
| 1.21.x | Spigot | Multiverse-Core | OneBlock.Admin |
| 1.21.x | Purpur | Multiverse-Core | OneBlock.Admin |
Installation
Getting Started
Requirements:
- Paper, Spigot, or Purpur 1.21.x
- Java 21 or newer
- OP / administrator access on the server
-
Download
Grab the latest
OneBlock-1.1.3.jarrelease from the plugin's distribution page. -
Place in plugins/
Copy the JAR file into your server's
plugins/directory. -
Restart server
Fully restart the server (a
/reloadis not sufficient) so the plugin can register correctly. -
Configure
Open
plugins/OneBlock/config.ymland adjust levels, drops, and mobs to your liking. -
Create your first OneBlock
Run
/oneblock set <x> <y> <z>with the absolute coordinates of the block you want to convert into a OneBlock.
Tip: Always perform a full server restart after installing or updating OneBlock — a simple /reload can leave the plugin in an inconsistent state.
Progression Phases
How Levels Work
Every OneBlock tracks its own break counter (level-size) and current level. Each time a player breaks it, the plugin rolls a random block — and sometimes a mob — from that level's tables and places/spawns it. Once enough breaks have accumulated for the current level, the OneBlock advances to the next one, unlocking a new theme, new blocks, and new mobs. The table below reflects the plugin's bundled default config.yml (Max_Level: 28, ThenComesInfinity: true).
| Level | Theme | Example Drops | Size |
|---|---|---|---|
| 1 | Podzol & melon | Podzol, Grass Block, Melon | 20 |
| 2 | Forest | Birch Log, Oak Log, Oak Leaves | 50 |
| 3 | Little cave | Stone, Coal Ore, Gravel | 64 |
| 4 | Deposits of rocky rocks | Granite, Diorite, Andesite | 40 |
| 5 | Little desert | Sand, Sandstone, Cactus | 32 |
| 6 | Ore deposit | Iron Ore, Copper Ore, Cobblestone | 100 |
| 7 | The first chest | Mossy Cobblestone, White Terracotta, Orange Terracotta | 64 |
| 8 | Deep forest | Spruce Log, Dark Oak Log, Spruce Leaves | 100 |
| 9 | Mine | Stone, Coal Ore, Gold Ore | 64 |
| 10 | Snow? | Snow Block, Packed Ice, Iron Ore | 64 |
| 11 | Red desert? | Red Sand, Red Sandstone, Clay | 32 |
| 12 | Acacia & mushrooms | Acacia Log, Brown Mushroom Block, Pumpkin | 90 |
| 13 | Sea | Prismarine Bricks, Sea Lantern, Dark Prismarine | 50 |
| 14 | Am I rich? | Diamond Ore, Emerald Ore, Chiseled Sandstone | 16 |
| 15 | Mangrove swamp | Mangrove Leaves, Mud, Bee Nest | 50 |
| 16 | Obs... | Obsidian, Carved Pumpkin, Cut Sandstone | 64 |
| 17 | Hell!? | Netherrack, Glowstone, Soul Sand | 32 |
| 18 | Deep Dark | Sculk, Sculk Sensor, Sculk Shrieker | 16 |
| 19 | Infernal terracotta? | Nether Bricks, Nether Quartz Ore, Green Terracotta | 32 |
| 20 | Is that quartz? | Nether Quartz Ore, Netherrack, Nether Bricks | 40 |
| 21 | Never mine... | Prismarine, Amethyst Block, Crimson Nylium | 20 |
| 22 | Never... | Netherrack, Crimson Stem | 40 |
| 23 | Ne... | Warped Stem, Nether Gold Ore, Oxidized Copper | 64 |
| 24 | Ancient City | Deepslate Bricks, Sculk Sensor, Redstone Lamp | 80 |
| 25 | — | Crimson Hyphae, Warped Hyphae, Cracked Nether Bricks | 20 |
| 26 | Deep crying | Shroomlight, Crying Obsidian, Blackstone | 32 |
| 27 | — | Ancient Debris, Polished Blackstone, Nether Bricks | 90 |
| 28 | The end? | End Stone, Obsidian, Carved Pumpkin | 32 |
| ∞ (0) | Infinity | Randomised mix of all blocks from levels 1–28 | 64 |
Level names, block pools, mob pools, progress-bar colours, and break-counts shown above are fully customisable per level through config.yml — this table reflects the plugin's bundled default configuration only.
Commands & Permissions
Command Reference
| Command | Description |
|---|---|
/oneblock set <x> <y> <z> | Turns the block at the given absolute coordinates into a OneBlock. Alias: add. |
/oneblock delete <x> <y> <z> | Removes the OneBlock at the given absolute coordinates. Alias: remove. |
/oneblock deletebyid <id> | Removes a OneBlock by its database ID. |
/oneblock deleteAllOnebLocks | Removes every OneBlock currently registered on the server. |
/oneblock list | Lists every registered OneBlock with its ID, world, coordinates, level, and progress. |
Aliases
| Alias | Equivalent To |
|---|---|
/ob | /oneblock |
/The12Forest | /oneblock |
Permissions
| Node | Description | Default |
|---|---|---|
OneBlock.Admin | Required to use the /oneblock command and any of its subcommands. | OP |
Warning: /oneblock deleteAllOnebLocks is irreversible and will wipe every OneBlock — and its level/progress data — from the server's database in one go. Use with extreme caution.
Configuration
config.yml
The configuration file is located at:
plugins/OneBlock/config.yml
| Option | Description |
|---|---|
Max_Level | The highest level number defined in the config — the last "real" level before infinity (level '0') takes over. |
ThenComesInfinity | If true, every level past Max_Level reuses level '0' forever; if false, progression loops back to level '1' instead. |
'N'.level-name | Display name shown to players while their OneBlock is on level N (use '0' for the infinity level). |
'N'.progress-bar-color | Colour of the level's progress indicator, e.g. GREEN. |
'N'.level-size | Number of block breaks required to complete level N. |
'N'.blocks | List of block types that can be placed while a OneBlock is on level N. |
'N'.mobs | List of mobs that can spawn while a OneBlock is on level N — can be left empty ([]). |
Example
Max_Level: 28
ThenComesInfinity: true
'1':
level-name: "Level: 1 - Podzol & melon"
progress-bar-color: GREEN
level-size: 20
blocks:
- PODZOL
- GRASS_BLOCK
- MELON
mobs:
- ZOMBIE
- SPIDER
'0':
level-name: "Infinity"
progress-bar-color: GREEN
level-size: 64
blocks:
- GRASS_BLOCK
- STONE
- OBSIDIAN
- END_STONE
mobs: []
Block and mob identifiers must match valid Bukkit Material and EntityType enum names — consult the official Bukkit JavaDocs for the full list of valid values.
Live Demo
Try OneBlock Right Now
Spin up a real, isolated Paper server with OneBlock pre-installed — directly from your browser.
Clicking Start Server launches a fresh Paper 1.21.x instance in a fully isolated sandbox just for you. It comes pre-configured with OneBlock and is automatically destroyed when you leave or after a 2-hour limit. To keep things fair, a maximum of 4 demo servers can run at the same time — if the limit is reached, please try again in a few minutes.