Craftable, fully configurable block generators with custom drops, recipes, delays and explosion behaviour.

Turn any block into an endless resource. Craft a generator, place it, and it keeps a block of your choice above itself - break it, collect the loot, and it grows back. Perfect for skyblock, gens servers and survival worlds that need a renewable source of anything.
✨ Why BlockGens?
Most generator plugins give you a cobblestone generator and call it a day. BlockGens lets you decide everything:
- 🧱 Any blocks - the generator and the block it creates can be any blocks you like: sponge making stone, dirt making obsidian, glass making diamond ore.
- 🎁 Weighted drop tables - every break rolls a drop from your own list, with weights and amounts. Rare loot is one line of config away.
- 🛠️ Craft them or sell them - give each generator its own crafting recipe, or skip the recipe and sell generators in your shop instead.
- 🎨 Names and lore that look the part - full MiniMessage support: gradients, colors, formatting.
- ⏱️ Your pace - set how fast each generator regrows, from instant to minutes.
🛡️ Built to survive real servers
- Survives restarts - placed generators are stored in the world itself.
- No duping, no griefing - pistons cannot push generators around, endermen and withers leave them alone, and nothing can be squeezed into the spot of a regrowing block.
- Plays nice with protection plugins - if a region does not allow building or breaking, BlockGens does not either.
- Explosions your way - per generator, TNT and creepers can leave it untouched, drop it like a normal block, or destroy it for good.
- Never eats your blocks - place a generator under a chest and the chest stays; the generator simply starts once the space above is free.
🛒 Made for shops
/bg give works from the console, so any shop plugin can sell generators:
/bg give {player} sponge 5
Full inventory? The rest lands at the player's feet - nothing a player paid for ever disappears.
⚙️ Simple configuration
One file, three sections. A complete generator looks like this:
generators:
sponge:
delay: 20 # regrows after 1 second
blocks:
generator: sponge
generated: stone
drops:
diamond: { weight: 1, count: 1 }
bread: { weight: 9, count: 2 }
crafting:
shape: [ 'SSS', 'SPS', 'S S' ]
mapping: { 'S': STONE, 'P': PISTON }
explosion:
generator: drop
generated: remove
blocks:
sponge:
material: SPONGE
name: '<gradient:gold:yellow>Food Generator</gradient>'
lore: [ 'Place me and break the stone above!' ]
stone:
material: STONE
items:
diamond: { material: DIAMOND }
bread: { material: BREAD, name: '<green>Fresh bread' }
Change something, run /bg reload - no restart needed. Made a typo? The plugin tells you exactly what is wrong and where, and keeps the old config running.
📜 Commands and permissions
| Command | Permission | What it does |
|---|---|---|
/bg generator <generator> |
blockgens.get |
Gives you a generator |
/bg generated <generated> |
blockgens.get |
Gives you a generated block |
/bg item <item> |
blockgens.get |
Gives you a drop item |
/bg give <player> <generator> [amount] |
blockgens.give |
Gives generators to a player, also from the console |
/bg reload |
blockgens.reload |
Reloads the config |
/bg is short for /blockgens. All permissions go to operators by default and are part of blockgens.*.
📦 Requirements
- Paper 26.2 or newer, or a fork such as Purpur - Folia is not supported
- Java 25
💬 Support
Found a bug or have an idea? Open an issue on GitHub - the plugin is open source under the Apache 2.0 license.
BlockGens collects anonymous usage statistics with bStats. You can turn them off in plugins/bStats/config.yml.
Pinned Versions
- R26.2–26.3
Pages
Members
1Owner