OneBlock Plugin

A self-contained OneBlock survival experience for any Paper, Spigot, or Purpur server.

Paper 1.21.x Spigot Purpur Open Source

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:

  1. Download

    Grab the latest OneBlock-1.1.3.jar release from the plugin's distribution page.

  2. Place in plugins/

    Copy the JAR file into your server's plugins/ directory.

  3. Restart server

    Fully restart the server (a /reload is not sufficient) so the plugin can register correctly.

  4. Configure

    Open plugins/OneBlock/config.yml and adjust levels, drops, and mobs to your liking.

  5. 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
1Podzol & melonPodzol, Grass Block, Melon20
2ForestBirch Log, Oak Log, Oak Leaves50
3Little caveStone, Coal Ore, Gravel64
4Deposits of rocky rocksGranite, Diorite, Andesite40
5Little desertSand, Sandstone, Cactus32
6Ore depositIron Ore, Copper Ore, Cobblestone100
7The first chestMossy Cobblestone, White Terracotta, Orange Terracotta64
8Deep forestSpruce Log, Dark Oak Log, Spruce Leaves100
9MineStone, Coal Ore, Gold Ore64
10Snow?Snow Block, Packed Ice, Iron Ore64
11Red desert?Red Sand, Red Sandstone, Clay32
12Acacia & mushroomsAcacia Log, Brown Mushroom Block, Pumpkin90
13SeaPrismarine Bricks, Sea Lantern, Dark Prismarine50
14Am I rich?Diamond Ore, Emerald Ore, Chiseled Sandstone16
15Mangrove swampMangrove Leaves, Mud, Bee Nest50
16Obs...Obsidian, Carved Pumpkin, Cut Sandstone64
17Hell!?Netherrack, Glowstone, Soul Sand32
18Deep DarkSculk, Sculk Sensor, Sculk Shrieker16
19Infernal terracotta?Nether Bricks, Nether Quartz Ore, Green Terracotta32
20Is that quartz?Nether Quartz Ore, Netherrack, Nether Bricks40
21Never mine...Prismarine, Amethyst Block, Crimson Nylium20
22Never...Netherrack, Crimson Stem40
23Ne...Warped Stem, Nether Gold Ore, Oxidized Copper64
24Ancient CityDeepslate Bricks, Sculk Sensor, Redstone Lamp80
25Crimson Hyphae, Warped Hyphae, Cracked Nether Bricks20
26Deep cryingShroomlight, Crying Obsidian, Blackstone32
27Ancient Debris, Polished Blackstone, Nether Bricks90
28The end?End Stone, Obsidian, Carved Pumpkin32
∞ (0)InfinityRandomised mix of all blocks from levels 1–2864

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 deleteAllOnebLocksRemoves every OneBlock currently registered on the server.
/oneblock listLists every registered OneBlock with its ID, world, coordinates, level, and progress.

Aliases

Alias Equivalent To
/ob/oneblock
/The12Forest/oneblock

Permissions

Node Description Default
OneBlock.AdminRequired 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_LevelThe highest level number defined in the config — the last "real" level before infinity (level '0') takes over.
ThenComesInfinityIf true, every level past Max_Level reuses level '0' forever; if false, progression loops back to level '1' instead.
'N'.level-nameDisplay name shown to players while their OneBlock is on level N (use '0' for the infinity level).
'N'.progress-bar-colorColour of the level's progress indicator, e.g. GREEN.
'N'.level-sizeNumber of block breaks required to complete level N.
'N'.blocksList of block types that can be placed while a OneBlock is on level N.
'N'.mobsList 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.

Idle