Latest commit

History

739 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AOneBlock

A OneBlock Minecraft plugin, written by tastybento. Credit for the original idea: IJAminecraft.

Build StatusBugsReliability RatingLines of Code

About

AOneBlock puts you on a block in space. There is only one block. What do you do next?

Documentation

See BentoBox Docs docs.bentobox.world for documentation.

Commands

The user command is /ob. The admin command is /oba.

FAQ

Q: What phases are there?

A: There are 18 phases: Plains, Underground, Winter, Ocean, Jungle, Swamp, Dungeon, Desert, The Nether, Plenty, Desolation, Deep Dark, The End, Lush Caves, Dripstone Caves, Mangrove Swamp, Meadow, Cherry Grove, and Jagged Peaks. Each phase features a set of blocks, chests, items, and mobs appropriate for the setting.

Q: How many blocks are there in the phases?

A: There are currently 15 thousand blocks!

Q: What happens after the last phase?

A: The phases repeat.

Q: Why do I keep falling and dying!

A: There are tricks to surviving, but it might be difficult! You need to build space so you don't fall.

Q: I can't catch the blocks when I mine them! How do I do that?

A: You can't catch them all, but it is an infinite block!

Q: Why do certain blocks spawn more frequently than others?

A: They just do! It's random(ish). You can set the relative probability in the config files in the phases folder. Admins can also set certain blocks to appear at certain times no matter what. Look out for the sponge for example!

Q. How do I know which is the magic block?

A. Hit it and it will give out green particles. It's also at the center of your island.

Q. My magic block is no longer there! How do I get another one?

A. You will have to place a block there. Worse case, kill yourself and one will be generated.

Q. My magic block is liquid! How can I mine it?

A. Use a bucket.

Q: Which mobs can spawn?

A: Each phase has a different set of mobs that can spawn. Be careful because they may push you off! If you listen carefully, you may hear hostile mobs coming.

Q. I have no chance to react to hostile mobs spawning!

A. Be prepared. Listen carefully when you mine a block and you will hear hostile mobs coming before they spawn. If you are in a hostile phase, then expect mobs and build defenses to protect yourself. You can mine a block from quite far away.

Q. When mobs spawn, my defenses are destroyed! Why?

A. Mobs make space to spawn. If there's anything in the way, it'll be broken and dropped. You'll have to build accordingly. This is to prevent suffocation exploits.

Q: Do chests spawn?

A: Yes. Chests spawn with random items in them from the current phase. There are common, uncommon, rare and epic chests. Chests with sparkles are good.

Q: Is it possible to reach the Nether or End in this map?

A: The vanilla Nether exists by default but there is no End world, just an End Phase.

Q: What is the end goal?

A: It's whatever you want it to be!

Installation

  1. Install BentoBox and run it on the server at least once to create its data folders.
  2. Place this jar in the addons folder of the BentoBox plugin.
  3. Restart the server.
  4. The addon will create worlds and a data folder and inside the folder will be a config.yml and config files in phases folder.
  5. Stop the server.
  6. Edit config.yml and the .yml config files how you want.
  7. Delete any worlds that were created by default if you made changes that would affect them.
  8. Restart the server.

Phase config files

The config files to make the phases are in the phases folder.

There are two files per phase - a file that contains the blocks and mobs, and a file that contains the chests.

The first number of any file is how many blocks need to be mined to reach that phase. This is the phase's key number. Each phase also has a name, an icon, a biome and the following sections:

  • name
  • icon
  • fixedBlocks
  • holograms
  • biome
  • start-commands
  • end-commands
  • end-commands-first-time
  • requirements
  • blocks
  • mobs

In the chests file, it just has the phase number and a chests section.

name

Name of the phase

icon

The material for an icon to show

fixedBlocks

List of blocks that will generate at these specific block counts. The numbers are relative to the phase and not the overall player's count. If you define 0 here, then firstBlock is not required and firstBlock will be replaced with this block.

holograms

Hologram Lines to Display. The key number is the block of the phase to show the hologram. Chat color codes can be used. A hologram plugin is not required for these holograms. The First (Before Phase 1) Hologram is Located in your Locale.

Biome

The biomes for this phase.

Commands

A list of commands can be run at the start and end of a phase. Commands are run as the Console unless the command is prefixed with [SUDO], then the command is run as the player triggering the commands.

These placeholders in the command string will be replaced with the appropriate value:

  • [island] - Island name
  • [owner] - Island owner's name
  • [player] - The name of the player who broke the block triggering the commands
  • [phase] - the name of this phase
  • [blocks] - the number of blocks broken
  • [level] - your island level (Requires Levels Addon)
  • [bank-balance] - your island bank balance (Requires Bank Addon)
  • [eco-balance] - player's economy balance (Requires Vault and an economy plugin)

Examples:

 start-commands:
- 'give [player] WOODEN_AXE 1'
- 'broadcast [player] just started OneBlock!'
end-commands:
- '[SUDO]summon minecraft:wither'
These are run only the first time a phase is completed
end-commands-first-time:
- 'broadcast &c&l[!] &b[player] &fhas completed the &d&n[phase]&f phase for the first time.'

Requirements

You can stipulate a set of requirements to start the phase:

  • economy-balance - the minimum player's economy balance (Requires Vault and an economy plugin)
  • bank-balance - the minimum island bank balance (requires Bank Addon)
  • level - the island level (Requires Levels Addon)
  • permission - a permission string Example:
 requirements:
bank-balance: 10000
level: 10
permission: ready.for.battle

blocks

The blocks section list Bukkit Materials followed by a relative probability. All the probability values are added up for the whole phase and the chance of the block being placed is the relative probability divided by the total of all the probabilities.

mobs

The mob section list mobs that can spawn and their relative probability along with blocks. You can only list entities that are alive and can spawn in this list.

chests

If CHEST is listed in the blocks section, then it will be randomly filled according to this section. You can define as many chests as you like. The first number is a unique chest number. Then follows the chest contents that includes the slot number and the item stack contents. Finally there is the chest's rarity, which can be COMMON, UNCOMMON, RARE or EPIC. The best way to set chests is to do it in game. Fill a chest with the contents you want and then while looking at it enter the command /oba setchest <phase> <rarity> where is the name of the phase and rarity is the rarity. Use Tab Complete to see the options. The chest will be automatically added to the oneblocks.yml file and be ready to use. Deleting chests must be done by editing the oneblocks.yml file for now and reloading the addon.

Be very careful when editing the chest items and check that the material is a true Bukkit material and spelled correctly.

Custom block entries

Phase blocks: sections can also be written as a YAML list, which unlocks custom entry types:

blocks:
- type: block-datadata: redstone_wire[power=15]probability: 20# `type: block` runs the vanilla /setblock command at the magic-block# position. The data string may include block states `[…]`, NBT `{…}`,# and a trailing destroy|keep|replace mode — anything valid after# `setblock <x> <y> <z>`. Use single quotes around the data so any# double quotes inside the NBT don't clash with YAML string delimiters.
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10# #488: summon an entity with vanilla NBT/component data, same syntax as /summon.# After spawning, blocks inside the mob's (scaled) bounding box are cleared.
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 15# #303: spawn a MythicMob via BentoBox's MythicMobs hook. Requires the MythicMobs# plugin to be installed; otherwise the entry is logged and skipped at runtime.
- type: mythic-mobmob: SkeletalKnight # MythicMob internal type ID (required)level: 3# mob level (optional, default: 1)power: 1.0# mob power multiplier (optional, default: 0)display-name: "Boss"# override display name (optional)stance: ""# MythicMobs stance string (optional)underlying-block: STONE # block placed under the mob (optional, default: STONE)probability: 5

type: block is an alias for type: block-data — both route to the same handler. Use block-data when you only need simple block states (redstone_wire[power=15]); use block when the data contains NBT or a setblock mode flag so the intent is obvious at a glance.

Spawner gotcha: placing a spawner via /setblock only sets the fields you provide — everything else defaults to 0/-1, which leaves the spawner inactive (Delay:-1 means "never tick"). If you want it to actually spawn mobs, set Delay, MinSpawnDelay, MaxSpawnDelay, SpawnCount, SpawnRange, MaxNearbyEntities, and RequiredPlayerRange explicitly, as shown in the example above. Delay:0 spawns on the very next tick (visually instant), Delay:N waits N ticks before the first spawn, and Delay:-1 never ticks. Test your full data string in-game with /setblock ~ ~ ~ <data> first — if the spawner ticks there, it will tick from custom-blocks: too.

Note: the mob-data string is passed straight to the vanilla /summon command, so it must be valid NBT for your server version. A few 1.21 gotchas: attribute ids no longer use the generic./player. prefix (scale, not generic.scale), numeric attribute bases need a float suffix (base:2f), and CustomName must be a text-component list ([{text:Breezy}]), not a plain string. Test the command in-game first with /summon <your data> — if it works there it will work here. Bad NBT is logged and the spawn is skipped.

MythicMobs configuration

To use type: mythic-mob you need:

  1. MythicMobs (free or premium) installed on the server.
  2. BentoBox's built-in MythicMobs hook active (it registers automatically when MythicMobs is detected).

Fields:

FieldRequiredDefaultDescription
mobThe internal MythicMobs mob type ID as defined in your MythicMobs config (case-sensitive).
level1The level at which to spawn the mob.
power0The power multiplier for the mob.
display-namemob IDOverride the mob's display name.
stance""An optional MythicMobs stance string.
underlying-blockSTONEThe vanilla block placed at the magic-block position before the mob spawns.
probabilityThe relative spawn weight in the phase pool.

Alternative approach using commands:

If you experience any issues with MythicMobs skills or abilities when spawning via type: mythic-mob, you can use the MythicMobs /mm mobs spawn command inside the phase's start-commands or end-commands instead. This spawns the mob through MythicMobs directly, which ensures all skills and behaviours work exactly as configured:

start-commands:
# Spawn mob at the island's magic-block position using MythicMobs command.# Replace <world>, <x>, <y>, <z> with the actual coordinates, or use a# console command that targets the player's location.
- 'mm mobs spawn MY_MYTHIC_MOB 1 [world],[x],[y],[z]'

Tip: When spawning MythicMobs via commands you have full control over the exact spawn location and can still use all MythicMobs features without any compatibility limitations.

ItemsAdder custom blocks

Requires the ItemsAdder plugin to be installed. ItemsAdder blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: itemsadderid: namespace:block_id # ItemsAdder block ID (required)probability: 20

Short form — place the ItemsAdder block ID directly as a map key (same as vanilla materials):

blocks:
namespace:block_id: 20

Nexo custom blocks

Requires the Nexo plugin to be installed. Nexo blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: nexoid: nexo_block_id # Nexo block ID (required)probability: 20

Short form — place the Nexo block ID directly as a map key:

blocks:
nexo_block_id: 20

If you'd rather leave your existing blocks: map-form section untouched, you can put custom entries in a sibling custom-blocks: list. Both sections are read and their entries merged into the same weighted pool, so probabilities in the two sections are directly comparable:

blocks:
PODZOL: 40DIRT: 1000OAK_LOG: 2000custom-blocks:
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 50
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10
- type: mythic-mobmob: SkeletalKnightlevel: 3probability: 5

Other Add-ons

OneBlock is an add-on that uses the BentoBox API. Here are some other ones that you may be interested in:

You can add all the usual addons to OneBlock, like Challeges, Likes, Level, Warps, etc. but it is not required.

Bugs and Feature requests

File bug and feature requests here: https://github.com/BentoBoxWorld/OneBlock/issues

About

A OneBlock Minecraft Game for BentoBox

Resources

Code of conduct

Contributing

Stars

93 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

739 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AOneBlock

A OneBlock Minecraft plugin, written by tastybento. Credit for the original idea: IJAminecraft.

Build StatusBugsReliability RatingLines of Code

About

AOneBlock puts you on a block in space. There is only one block. What do you do next?

Documentation

See BentoBox Docs docs.bentobox.world for documentation.

Commands

The user command is /ob. The admin command is /oba.

FAQ

Q: What phases are there?

A: There are 18 phases: Plains, Underground, Winter, Ocean, Jungle, Swamp, Dungeon, Desert, The Nether, Plenty, Desolation, Deep Dark, The End, Lush Caves, Dripstone Caves, Mangrove Swamp, Meadow, Cherry Grove, and Jagged Peaks. Each phase features a set of blocks, chests, items, and mobs appropriate for the setting.

Q: How many blocks are there in the phases?

A: There are currently 15 thousand blocks!

Q: What happens after the last phase?

A: The phases repeat.

Q: Why do I keep falling and dying!

A: There are tricks to surviving, but it might be difficult! You need to build space so you don't fall.

Q: I can't catch the blocks when I mine them! How do I do that?

A: You can't catch them all, but it is an infinite block!

Q: Why do certain blocks spawn more frequently than others?

A: They just do! It's random(ish). You can set the relative probability in the config files in the phases folder. Admins can also set certain blocks to appear at certain times no matter what. Look out for the sponge for example!

Q. How do I know which is the magic block?

A. Hit it and it will give out green particles. It's also at the center of your island.

Q. My magic block is no longer there! How do I get another one?

A. You will have to place a block there. Worse case, kill yourself and one will be generated.

Q. My magic block is liquid! How can I mine it?

A. Use a bucket.

Q: Which mobs can spawn?

A: Each phase has a different set of mobs that can spawn. Be careful because they may push you off! If you listen carefully, you may hear hostile mobs coming.

Q. I have no chance to react to hostile mobs spawning!

A. Be prepared. Listen carefully when you mine a block and you will hear hostile mobs coming before they spawn. If you are in a hostile phase, then expect mobs and build defenses to protect yourself. You can mine a block from quite far away.

Q. When mobs spawn, my defenses are destroyed! Why?

A. Mobs make space to spawn. If there's anything in the way, it'll be broken and dropped. You'll have to build accordingly. This is to prevent suffocation exploits.

Q: Do chests spawn?

A: Yes. Chests spawn with random items in them from the current phase. There are common, uncommon, rare and epic chests. Chests with sparkles are good.

Q: Is it possible to reach the Nether or End in this map?

A: The vanilla Nether exists by default but there is no End world, just an End Phase.

Q: What is the end goal?

A: It's whatever you want it to be!

Installation

  1. Install BentoBox and run it on the server at least once to create its data folders.
  2. Place this jar in the addons folder of the BentoBox plugin.
  3. Restart the server.
  4. The addon will create worlds and a data folder and inside the folder will be a config.yml and config files in phases folder.
  5. Stop the server.
  6. Edit config.yml and the .yml config files how you want.
  7. Delete any worlds that were created by default if you made changes that would affect them.
  8. Restart the server.

Phase config files

The config files to make the phases are in the phases folder.

There are two files per phase - a file that contains the blocks and mobs, and a file that contains the chests.

The first number of any file is how many blocks need to be mined to reach that phase. This is the phase's key number. Each phase also has a name, an icon, a biome and the following sections:

  • name
  • icon
  • fixedBlocks
  • holograms
  • biome
  • start-commands
  • end-commands
  • end-commands-first-time
  • requirements
  • blocks
  • mobs

In the chests file, it just has the phase number and a chests section.

name

Name of the phase

icon

The material for an icon to show

fixedBlocks

List of blocks that will generate at these specific block counts. The numbers are relative to the phase and not the overall player's count. If you define 0 here, then firstBlock is not required and firstBlock will be replaced with this block.

holograms

Hologram Lines to Display. The key number is the block of the phase to show the hologram. Chat color codes can be used. A hologram plugin is not required for these holograms. The First (Before Phase 1) Hologram is Located in your Locale.

Biome

The biomes for this phase.

Commands

A list of commands can be run at the start and end of a phase. Commands are run as the Console unless the command is prefixed with [SUDO], then the command is run as the player triggering the commands.

These placeholders in the command string will be replaced with the appropriate value:

  • [island] - Island name
  • [owner] - Island owner's name
  • [player] - The name of the player who broke the block triggering the commands
  • [phase] - the name of this phase
  • [blocks] - the number of blocks broken
  • [level] - your island level (Requires Levels Addon)
  • [bank-balance] - your island bank balance (Requires Bank Addon)
  • [eco-balance] - player's economy balance (Requires Vault and an economy plugin)

Examples:

 start-commands:
- 'give [player] WOODEN_AXE 1'
- 'broadcast [player] just started OneBlock!'
end-commands:
- '[SUDO]summon minecraft:wither'
These are run only the first time a phase is completed
end-commands-first-time:
- 'broadcast &c&l[!] &b[player] &fhas completed the &d&n[phase]&f phase for the first time.'

Requirements

You can stipulate a set of requirements to start the phase:

  • economy-balance - the minimum player's economy balance (Requires Vault and an economy plugin)
  • bank-balance - the minimum island bank balance (requires Bank Addon)
  • level - the island level (Requires Levels Addon)
  • permission - a permission string Example:
 requirements:
bank-balance: 10000
level: 10
permission: ready.for.battle

blocks

The blocks section list Bukkit Materials followed by a relative probability. All the probability values are added up for the whole phase and the chance of the block being placed is the relative probability divided by the total of all the probabilities.

mobs

The mob section list mobs that can spawn and their relative probability along with blocks. You can only list entities that are alive and can spawn in this list.

chests

If CHEST is listed in the blocks section, then it will be randomly filled according to this section. You can define as many chests as you like. The first number is a unique chest number. Then follows the chest contents that includes the slot number and the item stack contents. Finally there is the chest's rarity, which can be COMMON, UNCOMMON, RARE or EPIC. The best way to set chests is to do it in game. Fill a chest with the contents you want and then while looking at it enter the command /oba setchest <phase> <rarity> where is the name of the phase and rarity is the rarity. Use Tab Complete to see the options. The chest will be automatically added to the oneblocks.yml file and be ready to use. Deleting chests must be done by editing the oneblocks.yml file for now and reloading the addon.

Be very careful when editing the chest items and check that the material is a true Bukkit material and spelled correctly.

Custom block entries

Phase blocks: sections can also be written as a YAML list, which unlocks custom entry types:

blocks:
- type: block-datadata: redstone_wire[power=15]probability: 20# `type: block` runs the vanilla /setblock command at the magic-block# position. The data string may include block states `[…]`, NBT `{…}`,# and a trailing destroy|keep|replace mode — anything valid after# `setblock <x> <y> <z>`. Use single quotes around the data so any# double quotes inside the NBT don't clash with YAML string delimiters.
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10# #488: summon an entity with vanilla NBT/component data, same syntax as /summon.# After spawning, blocks inside the mob's (scaled) bounding box are cleared.
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 15# #303: spawn a MythicMob via BentoBox's MythicMobs hook. Requires the MythicMobs# plugin to be installed; otherwise the entry is logged and skipped at runtime.
- type: mythic-mobmob: SkeletalKnight # MythicMob internal type ID (required)level: 3# mob level (optional, default: 1)power: 1.0# mob power multiplier (optional, default: 0)display-name: "Boss"# override display name (optional)stance: ""# MythicMobs stance string (optional)underlying-block: STONE # block placed under the mob (optional, default: STONE)probability: 5

type: block is an alias for type: block-data — both route to the same handler. Use block-data when you only need simple block states (redstone_wire[power=15]); use block when the data contains NBT or a setblock mode flag so the intent is obvious at a glance.

Spawner gotcha: placing a spawner via /setblock only sets the fields you provide — everything else defaults to 0/-1, which leaves the spawner inactive (Delay:-1 means "never tick"). If you want it to actually spawn mobs, set Delay, MinSpawnDelay, MaxSpawnDelay, SpawnCount, SpawnRange, MaxNearbyEntities, and RequiredPlayerRange explicitly, as shown in the example above. Delay:0 spawns on the very next tick (visually instant), Delay:N waits N ticks before the first spawn, and Delay:-1 never ticks. Test your full data string in-game with /setblock ~ ~ ~ <data> first — if the spawner ticks there, it will tick from custom-blocks: too.

Note: the mob-data string is passed straight to the vanilla /summon command, so it must be valid NBT for your server version. A few 1.21 gotchas: attribute ids no longer use the generic./player. prefix (scale, not generic.scale), numeric attribute bases need a float suffix (base:2f), and CustomName must be a text-component list ([{text:Breezy}]), not a plain string. Test the command in-game first with /summon <your data> — if it works there it will work here. Bad NBT is logged and the spawn is skipped.

MythicMobs configuration

To use type: mythic-mob you need:

  1. MythicMobs (free or premium) installed on the server.
  2. BentoBox's built-in MythicMobs hook active (it registers automatically when MythicMobs is detected).

Fields:

FieldRequiredDefaultDescription
mobThe internal MythicMobs mob type ID as defined in your MythicMobs config (case-sensitive).
level1The level at which to spawn the mob.
power0The power multiplier for the mob.
display-namemob IDOverride the mob's display name.
stance""An optional MythicMobs stance string.
underlying-blockSTONEThe vanilla block placed at the magic-block position before the mob spawns.
probabilityThe relative spawn weight in the phase pool.

Alternative approach using commands:

If you experience any issues with MythicMobs skills or abilities when spawning via type: mythic-mob, you can use the MythicMobs /mm mobs spawn command inside the phase's start-commands or end-commands instead. This spawns the mob through MythicMobs directly, which ensures all skills and behaviours work exactly as configured:

start-commands:
# Spawn mob at the island's magic-block position using MythicMobs command.# Replace <world>, <x>, <y>, <z> with the actual coordinates, or use a# console command that targets the player's location.
- 'mm mobs spawn MY_MYTHIC_MOB 1 [world],[x],[y],[z]'

Tip: When spawning MythicMobs via commands you have full control over the exact spawn location and can still use all MythicMobs features without any compatibility limitations.

ItemsAdder custom blocks

Requires the ItemsAdder plugin to be installed. ItemsAdder blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: itemsadderid: namespace:block_id # ItemsAdder block ID (required)probability: 20

Short form — place the ItemsAdder block ID directly as a map key (same as vanilla materials):

blocks:
namespace:block_id: 20

Nexo custom blocks

Requires the Nexo plugin to be installed. Nexo blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: nexoid: nexo_block_id # Nexo block ID (required)probability: 20

Short form — place the Nexo block ID directly as a map key:

blocks:
nexo_block_id: 20

If you'd rather leave your existing blocks: map-form section untouched, you can put custom entries in a sibling custom-blocks: list. Both sections are read and their entries merged into the same weighted pool, so probabilities in the two sections are directly comparable:

blocks:
PODZOL: 40DIRT: 1000OAK_LOG: 2000custom-blocks:
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 50
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10
- type: mythic-mobmob: SkeletalKnightlevel: 3probability: 5

Other Add-ons

OneBlock is an add-on that uses the BentoBox API. Here are some other ones that you may be interested in:

You can add all the usual addons to OneBlock, like Challeges, Likes, Level, Warps, etc. but it is not required.

Bugs and Feature requests

File bug and feature requests here: https://github.com/BentoBoxWorld/OneBlock/issues

About

A OneBlock Minecraft Game for BentoBox

Resources

Code of conduct

Contributing

Stars

93 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

739 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AOneBlock

A OneBlock Minecraft plugin, written by tastybento. Credit for the original idea: IJAminecraft.

Build StatusBugsReliability RatingLines of Code

About

AOneBlock puts you on a block in space. There is only one block. What do you do next?

Documentation

See BentoBox Docs docs.bentobox.world for documentation.

Commands

The user command is /ob. The admin command is /oba.

FAQ

Q: What phases are there?

A: There are 18 phases: Plains, Underground, Winter, Ocean, Jungle, Swamp, Dungeon, Desert, The Nether, Plenty, Desolation, Deep Dark, The End, Lush Caves, Dripstone Caves, Mangrove Swamp, Meadow, Cherry Grove, and Jagged Peaks. Each phase features a set of blocks, chests, items, and mobs appropriate for the setting.

Q: How many blocks are there in the phases?

A: There are currently 15 thousand blocks!

Q: What happens after the last phase?

A: The phases repeat.

Q: Why do I keep falling and dying!

A: There are tricks to surviving, but it might be difficult! You need to build space so you don't fall.

Q: I can't catch the blocks when I mine them! How do I do that?

A: You can't catch them all, but it is an infinite block!

Q: Why do certain blocks spawn more frequently than others?

A: They just do! It's random(ish). You can set the relative probability in the config files in the phases folder. Admins can also set certain blocks to appear at certain times no matter what. Look out for the sponge for example!

Q. How do I know which is the magic block?

A. Hit it and it will give out green particles. It's also at the center of your island.

Q. My magic block is no longer there! How do I get another one?

A. You will have to place a block there. Worse case, kill yourself and one will be generated.

Q. My magic block is liquid! How can I mine it?

A. Use a bucket.

Q: Which mobs can spawn?

A: Each phase has a different set of mobs that can spawn. Be careful because they may push you off! If you listen carefully, you may hear hostile mobs coming.

Q. I have no chance to react to hostile mobs spawning!

A. Be prepared. Listen carefully when you mine a block and you will hear hostile mobs coming before they spawn. If you are in a hostile phase, then expect mobs and build defenses to protect yourself. You can mine a block from quite far away.

Q. When mobs spawn, my defenses are destroyed! Why?

A. Mobs make space to spawn. If there's anything in the way, it'll be broken and dropped. You'll have to build accordingly. This is to prevent suffocation exploits.

Q: Do chests spawn?

A: Yes. Chests spawn with random items in them from the current phase. There are common, uncommon, rare and epic chests. Chests with sparkles are good.

Q: Is it possible to reach the Nether or End in this map?

A: The vanilla Nether exists by default but there is no End world, just an End Phase.

Q: What is the end goal?

A: It's whatever you want it to be!

Installation

  1. Install BentoBox and run it on the server at least once to create its data folders.
  2. Place this jar in the addons folder of the BentoBox plugin.
  3. Restart the server.
  4. The addon will create worlds and a data folder and inside the folder will be a config.yml and config files in phases folder.
  5. Stop the server.
  6. Edit config.yml and the .yml config files how you want.
  7. Delete any worlds that were created by default if you made changes that would affect them.
  8. Restart the server.

Phase config files

The config files to make the phases are in the phases folder.

There are two files per phase - a file that contains the blocks and mobs, and a file that contains the chests.

The first number of any file is how many blocks need to be mined to reach that phase. This is the phase's key number. Each phase also has a name, an icon, a biome and the following sections:

  • name
  • icon
  • fixedBlocks
  • holograms
  • biome
  • start-commands
  • end-commands
  • end-commands-first-time
  • requirements
  • blocks
  • mobs

In the chests file, it just has the phase number and a chests section.

name

Name of the phase

icon

The material for an icon to show

fixedBlocks

List of blocks that will generate at these specific block counts. The numbers are relative to the phase and not the overall player's count. If you define 0 here, then firstBlock is not required and firstBlock will be replaced with this block.

holograms

Hologram Lines to Display. The key number is the block of the phase to show the hologram. Chat color codes can be used. A hologram plugin is not required for these holograms. The First (Before Phase 1) Hologram is Located in your Locale.

Biome

The biomes for this phase.

Commands

A list of commands can be run at the start and end of a phase. Commands are run as the Console unless the command is prefixed with [SUDO], then the command is run as the player triggering the commands.

These placeholders in the command string will be replaced with the appropriate value:

  • [island] - Island name
  • [owner] - Island owner's name
  • [player] - The name of the player who broke the block triggering the commands
  • [phase] - the name of this phase
  • [blocks] - the number of blocks broken
  • [level] - your island level (Requires Levels Addon)
  • [bank-balance] - your island bank balance (Requires Bank Addon)
  • [eco-balance] - player's economy balance (Requires Vault and an economy plugin)

Examples:

 start-commands:
- 'give [player] WOODEN_AXE 1'
- 'broadcast [player] just started OneBlock!'
end-commands:
- '[SUDO]summon minecraft:wither'
These are run only the first time a phase is completed
end-commands-first-time:
- 'broadcast &c&l[!] &b[player] &fhas completed the &d&n[phase]&f phase for the first time.'

Requirements

You can stipulate a set of requirements to start the phase:

  • economy-balance - the minimum player's economy balance (Requires Vault and an economy plugin)
  • bank-balance - the minimum island bank balance (requires Bank Addon)
  • level - the island level (Requires Levels Addon)
  • permission - a permission string Example:
 requirements:
bank-balance: 10000
level: 10
permission: ready.for.battle

blocks

The blocks section list Bukkit Materials followed by a relative probability. All the probability values are added up for the whole phase and the chance of the block being placed is the relative probability divided by the total of all the probabilities.

mobs

The mob section list mobs that can spawn and their relative probability along with blocks. You can only list entities that are alive and can spawn in this list.

chests

If CHEST is listed in the blocks section, then it will be randomly filled according to this section. You can define as many chests as you like. The first number is a unique chest number. Then follows the chest contents that includes the slot number and the item stack contents. Finally there is the chest's rarity, which can be COMMON, UNCOMMON, RARE or EPIC. The best way to set chests is to do it in game. Fill a chest with the contents you want and then while looking at it enter the command /oba setchest <phase> <rarity> where is the name of the phase and rarity is the rarity. Use Tab Complete to see the options. The chest will be automatically added to the oneblocks.yml file and be ready to use. Deleting chests must be done by editing the oneblocks.yml file for now and reloading the addon.

Be very careful when editing the chest items and check that the material is a true Bukkit material and spelled correctly.

Custom block entries

Phase blocks: sections can also be written as a YAML list, which unlocks custom entry types:

blocks:
- type: block-datadata: redstone_wire[power=15]probability: 20# `type: block` runs the vanilla /setblock command at the magic-block# position. The data string may include block states `[…]`, NBT `{…}`,# and a trailing destroy|keep|replace mode — anything valid after# `setblock <x> <y> <z>`. Use single quotes around the data so any# double quotes inside the NBT don't clash with YAML string delimiters.
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10# #488: summon an entity with vanilla NBT/component data, same syntax as /summon.# After spawning, blocks inside the mob's (scaled) bounding box are cleared.
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 15# #303: spawn a MythicMob via BentoBox's MythicMobs hook. Requires the MythicMobs# plugin to be installed; otherwise the entry is logged and skipped at runtime.
- type: mythic-mobmob: SkeletalKnight # MythicMob internal type ID (required)level: 3# mob level (optional, default: 1)power: 1.0# mob power multiplier (optional, default: 0)display-name: "Boss"# override display name (optional)stance: ""# MythicMobs stance string (optional)underlying-block: STONE # block placed under the mob (optional, default: STONE)probability: 5

type: block is an alias for type: block-data — both route to the same handler. Use block-data when you only need simple block states (redstone_wire[power=15]); use block when the data contains NBT or a setblock mode flag so the intent is obvious at a glance.

Spawner gotcha: placing a spawner via /setblock only sets the fields you provide — everything else defaults to 0/-1, which leaves the spawner inactive (Delay:-1 means "never tick"). If you want it to actually spawn mobs, set Delay, MinSpawnDelay, MaxSpawnDelay, SpawnCount, SpawnRange, MaxNearbyEntities, and RequiredPlayerRange explicitly, as shown in the example above. Delay:0 spawns on the very next tick (visually instant), Delay:N waits N ticks before the first spawn, and Delay:-1 never ticks. Test your full data string in-game with /setblock ~ ~ ~ <data> first — if the spawner ticks there, it will tick from custom-blocks: too.

Note: the mob-data string is passed straight to the vanilla /summon command, so it must be valid NBT for your server version. A few 1.21 gotchas: attribute ids no longer use the generic./player. prefix (scale, not generic.scale), numeric attribute bases need a float suffix (base:2f), and CustomName must be a text-component list ([{text:Breezy}]), not a plain string. Test the command in-game first with /summon <your data> — if it works there it will work here. Bad NBT is logged and the spawn is skipped.

MythicMobs configuration

To use type: mythic-mob you need:

  1. MythicMobs (free or premium) installed on the server.
  2. BentoBox's built-in MythicMobs hook active (it registers automatically when MythicMobs is detected).

Fields:

FieldRequiredDefaultDescription
mobThe internal MythicMobs mob type ID as defined in your MythicMobs config (case-sensitive).
level1The level at which to spawn the mob.
power0The power multiplier for the mob.
display-namemob IDOverride the mob's display name.
stance""An optional MythicMobs stance string.
underlying-blockSTONEThe vanilla block placed at the magic-block position before the mob spawns.
probabilityThe relative spawn weight in the phase pool.

Alternative approach using commands:

If you experience any issues with MythicMobs skills or abilities when spawning via type: mythic-mob, you can use the MythicMobs /mm mobs spawn command inside the phase's start-commands or end-commands instead. This spawns the mob through MythicMobs directly, which ensures all skills and behaviours work exactly as configured:

start-commands:
# Spawn mob at the island's magic-block position using MythicMobs command.# Replace <world>, <x>, <y>, <z> with the actual coordinates, or use a# console command that targets the player's location.
- 'mm mobs spawn MY_MYTHIC_MOB 1 [world],[x],[y],[z]'

Tip: When spawning MythicMobs via commands you have full control over the exact spawn location and can still use all MythicMobs features without any compatibility limitations.

ItemsAdder custom blocks

Requires the ItemsAdder plugin to be installed. ItemsAdder blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: itemsadderid: namespace:block_id # ItemsAdder block ID (required)probability: 20

Short form — place the ItemsAdder block ID directly as a map key (same as vanilla materials):

blocks:
namespace:block_id: 20

Nexo custom blocks

Requires the Nexo plugin to be installed. Nexo blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: nexoid: nexo_block_id # Nexo block ID (required)probability: 20

Short form — place the Nexo block ID directly as a map key:

blocks:
nexo_block_id: 20

If you'd rather leave your existing blocks: map-form section untouched, you can put custom entries in a sibling custom-blocks: list. Both sections are read and their entries merged into the same weighted pool, so probabilities in the two sections are directly comparable:

blocks:
PODZOL: 40DIRT: 1000OAK_LOG: 2000custom-blocks:
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 50
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10
- type: mythic-mobmob: SkeletalKnightlevel: 3probability: 5

Other Add-ons

OneBlock is an add-on that uses the BentoBox API. Here are some other ones that you may be interested in:

You can add all the usual addons to OneBlock, like Challeges, Likes, Level, Warps, etc. but it is not required.

Bugs and Feature requests

File bug and feature requests here: https://github.com/BentoBoxWorld/OneBlock/issues

About

A OneBlock Minecraft Game for BentoBox

Resources

Code of conduct

Contributing

Stars

93 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

739 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AOneBlock

A OneBlock Minecraft plugin, written by tastybento. Credit for the original idea: IJAminecraft.

Build StatusBugsReliability RatingLines of Code

About

AOneBlock puts you on a block in space. There is only one block. What do you do next?

Documentation

See BentoBox Docs docs.bentobox.world for documentation.

Commands

The user command is /ob. The admin command is /oba.

FAQ

Q: What phases are there?

A: There are 18 phases: Plains, Underground, Winter, Ocean, Jungle, Swamp, Dungeon, Desert, The Nether, Plenty, Desolation, Deep Dark, The End, Lush Caves, Dripstone Caves, Mangrove Swamp, Meadow, Cherry Grove, and Jagged Peaks. Each phase features a set of blocks, chests, items, and mobs appropriate for the setting.

Q: How many blocks are there in the phases?

A: There are currently 15 thousand blocks!

Q: What happens after the last phase?

A: The phases repeat.

Q: Why do I keep falling and dying!

A: There are tricks to surviving, but it might be difficult! You need to build space so you don't fall.

Q: I can't catch the blocks when I mine them! How do I do that?

A: You can't catch them all, but it is an infinite block!

Q: Why do certain blocks spawn more frequently than others?

A: They just do! It's random(ish). You can set the relative probability in the config files in the phases folder. Admins can also set certain blocks to appear at certain times no matter what. Look out for the sponge for example!

Q. How do I know which is the magic block?

A. Hit it and it will give out green particles. It's also at the center of your island.

Q. My magic block is no longer there! How do I get another one?

A. You will have to place a block there. Worse case, kill yourself and one will be generated.

Q. My magic block is liquid! How can I mine it?

A. Use a bucket.

Q: Which mobs can spawn?

A: Each phase has a different set of mobs that can spawn. Be careful because they may push you off! If you listen carefully, you may hear hostile mobs coming.

Q. I have no chance to react to hostile mobs spawning!

A. Be prepared. Listen carefully when you mine a block and you will hear hostile mobs coming before they spawn. If you are in a hostile phase, then expect mobs and build defenses to protect yourself. You can mine a block from quite far away.

Q. When mobs spawn, my defenses are destroyed! Why?

A. Mobs make space to spawn. If there's anything in the way, it'll be broken and dropped. You'll have to build accordingly. This is to prevent suffocation exploits.

Q: Do chests spawn?

A: Yes. Chests spawn with random items in them from the current phase. There are common, uncommon, rare and epic chests. Chests with sparkles are good.

Q: Is it possible to reach the Nether or End in this map?

A: The vanilla Nether exists by default but there is no End world, just an End Phase.

Q: What is the end goal?

A: It's whatever you want it to be!

Installation

  1. Install BentoBox and run it on the server at least once to create its data folders.
  2. Place this jar in the addons folder of the BentoBox plugin.
  3. Restart the server.
  4. The addon will create worlds and a data folder and inside the folder will be a config.yml and config files in phases folder.
  5. Stop the server.
  6. Edit config.yml and the .yml config files how you want.
  7. Delete any worlds that were created by default if you made changes that would affect them.
  8. Restart the server.

Phase config files

The config files to make the phases are in the phases folder.

There are two files per phase - a file that contains the blocks and mobs, and a file that contains the chests.

The first number of any file is how many blocks need to be mined to reach that phase. This is the phase's key number. Each phase also has a name, an icon, a biome and the following sections:

  • name
  • icon
  • fixedBlocks
  • holograms
  • biome
  • start-commands
  • end-commands
  • end-commands-first-time
  • requirements
  • blocks
  • mobs

In the chests file, it just has the phase number and a chests section.

name

Name of the phase

icon

The material for an icon to show

fixedBlocks

List of blocks that will generate at these specific block counts. The numbers are relative to the phase and not the overall player's count. If you define 0 here, then firstBlock is not required and firstBlock will be replaced with this block.

holograms

Hologram Lines to Display. The key number is the block of the phase to show the hologram. Chat color codes can be used. A hologram plugin is not required for these holograms. The First (Before Phase 1) Hologram is Located in your Locale.

Biome

The biomes for this phase.

Commands

A list of commands can be run at the start and end of a phase. Commands are run as the Console unless the command is prefixed with [SUDO], then the command is run as the player triggering the commands.

These placeholders in the command string will be replaced with the appropriate value:

  • [island] - Island name
  • [owner] - Island owner's name
  • [player] - The name of the player who broke the block triggering the commands
  • [phase] - the name of this phase
  • [blocks] - the number of blocks broken
  • [level] - your island level (Requires Levels Addon)
  • [bank-balance] - your island bank balance (Requires Bank Addon)
  • [eco-balance] - player's economy balance (Requires Vault and an economy plugin)

Examples:

 start-commands:
- 'give [player] WOODEN_AXE 1'
- 'broadcast [player] just started OneBlock!'
end-commands:
- '[SUDO]summon minecraft:wither'
These are run only the first time a phase is completed
end-commands-first-time:
- 'broadcast &c&l[!] &b[player] &fhas completed the &d&n[phase]&f phase for the first time.'

Requirements

You can stipulate a set of requirements to start the phase:

  • economy-balance - the minimum player's economy balance (Requires Vault and an economy plugin)
  • bank-balance - the minimum island bank balance (requires Bank Addon)
  • level - the island level (Requires Levels Addon)
  • permission - a permission string Example:
 requirements:
bank-balance: 10000
level: 10
permission: ready.for.battle

blocks

The blocks section list Bukkit Materials followed by a relative probability. All the probability values are added up for the whole phase and the chance of the block being placed is the relative probability divided by the total of all the probabilities.

mobs

The mob section list mobs that can spawn and their relative probability along with blocks. You can only list entities that are alive and can spawn in this list.

chests

If CHEST is listed in the blocks section, then it will be randomly filled according to this section. You can define as many chests as you like. The first number is a unique chest number. Then follows the chest contents that includes the slot number and the item stack contents. Finally there is the chest's rarity, which can be COMMON, UNCOMMON, RARE or EPIC. The best way to set chests is to do it in game. Fill a chest with the contents you want and then while looking at it enter the command /oba setchest <phase> <rarity> where is the name of the phase and rarity is the rarity. Use Tab Complete to see the options. The chest will be automatically added to the oneblocks.yml file and be ready to use. Deleting chests must be done by editing the oneblocks.yml file for now and reloading the addon.

Be very careful when editing the chest items and check that the material is a true Bukkit material and spelled correctly.

Custom block entries

Phase blocks: sections can also be written as a YAML list, which unlocks custom entry types:

blocks:
- type: block-datadata: redstone_wire[power=15]probability: 20# `type: block` runs the vanilla /setblock command at the magic-block# position. The data string may include block states `[…]`, NBT `{…}`,# and a trailing destroy|keep|replace mode — anything valid after# `setblock <x> <y> <z>`. Use single quotes around the data so any# double quotes inside the NBT don't clash with YAML string delimiters.
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10# #488: summon an entity with vanilla NBT/component data, same syntax as /summon.# After spawning, blocks inside the mob's (scaled) bounding box are cleared.
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 15# #303: spawn a MythicMob via BentoBox's MythicMobs hook. Requires the MythicMobs# plugin to be installed; otherwise the entry is logged and skipped at runtime.
- type: mythic-mobmob: SkeletalKnight # MythicMob internal type ID (required)level: 3# mob level (optional, default: 1)power: 1.0# mob power multiplier (optional, default: 0)display-name: "Boss"# override display name (optional)stance: ""# MythicMobs stance string (optional)underlying-block: STONE # block placed under the mob (optional, default: STONE)probability: 5

type: block is an alias for type: block-data — both route to the same handler. Use block-data when you only need simple block states (redstone_wire[power=15]); use block when the data contains NBT or a setblock mode flag so the intent is obvious at a glance.

Spawner gotcha: placing a spawner via /setblock only sets the fields you provide — everything else defaults to 0/-1, which leaves the spawner inactive (Delay:-1 means "never tick"). If you want it to actually spawn mobs, set Delay, MinSpawnDelay, MaxSpawnDelay, SpawnCount, SpawnRange, MaxNearbyEntities, and RequiredPlayerRange explicitly, as shown in the example above. Delay:0 spawns on the very next tick (visually instant), Delay:N waits N ticks before the first spawn, and Delay:-1 never ticks. Test your full data string in-game with /setblock ~ ~ ~ <data> first — if the spawner ticks there, it will tick from custom-blocks: too.

Note: the mob-data string is passed straight to the vanilla /summon command, so it must be valid NBT for your server version. A few 1.21 gotchas: attribute ids no longer use the generic./player. prefix (scale, not generic.scale), numeric attribute bases need a float suffix (base:2f), and CustomName must be a text-component list ([{text:Breezy}]), not a plain string. Test the command in-game first with /summon <your data> — if it works there it will work here. Bad NBT is logged and the spawn is skipped.

MythicMobs configuration

To use type: mythic-mob you need:

  1. MythicMobs (free or premium) installed on the server.
  2. BentoBox's built-in MythicMobs hook active (it registers automatically when MythicMobs is detected).

Fields:

FieldRequiredDefaultDescription
mobThe internal MythicMobs mob type ID as defined in your MythicMobs config (case-sensitive).
level1The level at which to spawn the mob.
power0The power multiplier for the mob.
display-namemob IDOverride the mob's display name.
stance""An optional MythicMobs stance string.
underlying-blockSTONEThe vanilla block placed at the magic-block position before the mob spawns.
probabilityThe relative spawn weight in the phase pool.

Alternative approach using commands:

If you experience any issues with MythicMobs skills or abilities when spawning via type: mythic-mob, you can use the MythicMobs /mm mobs spawn command inside the phase's start-commands or end-commands instead. This spawns the mob through MythicMobs directly, which ensures all skills and behaviours work exactly as configured:

start-commands:
# Spawn mob at the island's magic-block position using MythicMobs command.# Replace <world>, <x>, <y>, <z> with the actual coordinates, or use a# console command that targets the player's location.
- 'mm mobs spawn MY_MYTHIC_MOB 1 [world],[x],[y],[z]'

Tip: When spawning MythicMobs via commands you have full control over the exact spawn location and can still use all MythicMobs features without any compatibility limitations.

ItemsAdder custom blocks

Requires the ItemsAdder plugin to be installed. ItemsAdder blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: itemsadderid: namespace:block_id # ItemsAdder block ID (required)probability: 20

Short form — place the ItemsAdder block ID directly as a map key (same as vanilla materials):

blocks:
namespace:block_id: 20

Nexo custom blocks

Requires the Nexo plugin to be installed. Nexo blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: nexoid: nexo_block_id # Nexo block ID (required)probability: 20

Short form — place the Nexo block ID directly as a map key:

blocks:
nexo_block_id: 20

If you'd rather leave your existing blocks: map-form section untouched, you can put custom entries in a sibling custom-blocks: list. Both sections are read and their entries merged into the same weighted pool, so probabilities in the two sections are directly comparable:

blocks:
PODZOL: 40DIRT: 1000OAK_LOG: 2000custom-blocks:
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 50
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10
- type: mythic-mobmob: SkeletalKnightlevel: 3probability: 5

Other Add-ons

OneBlock is an add-on that uses the BentoBox API. Here are some other ones that you may be interested in:

You can add all the usual addons to OneBlock, like Challeges, Likes, Level, Warps, etc. but it is not required.

Bugs and Feature requests

File bug and feature requests here: https://github.com/BentoBoxWorld/OneBlock/issues

About

A OneBlock Minecraft Game for BentoBox

Resources

Code of conduct

Contributing

Stars

93 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

739 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AOneBlock

A OneBlock Minecraft plugin, written by tastybento. Credit for the original idea: IJAminecraft.

Build StatusBugsReliability RatingLines of Code

About

AOneBlock puts you on a block in space. There is only one block. What do you do next?

Documentation

See BentoBox Docs docs.bentobox.world for documentation.

Commands

The user command is /ob. The admin command is /oba.

FAQ

Q: What phases are there?

A: There are 18 phases: Plains, Underground, Winter, Ocean, Jungle, Swamp, Dungeon, Desert, The Nether, Plenty, Desolation, Deep Dark, The End, Lush Caves, Dripstone Caves, Mangrove Swamp, Meadow, Cherry Grove, and Jagged Peaks. Each phase features a set of blocks, chests, items, and mobs appropriate for the setting.

Q: How many blocks are there in the phases?

A: There are currently 15 thousand blocks!

Q: What happens after the last phase?

A: The phases repeat.

Q: Why do I keep falling and dying!

A: There are tricks to surviving, but it might be difficult! You need to build space so you don't fall.

Q: I can't catch the blocks when I mine them! How do I do that?

A: You can't catch them all, but it is an infinite block!

Q: Why do certain blocks spawn more frequently than others?

A: They just do! It's random(ish). You can set the relative probability in the config files in the phases folder. Admins can also set certain blocks to appear at certain times no matter what. Look out for the sponge for example!

Q. How do I know which is the magic block?

A. Hit it and it will give out green particles. It's also at the center of your island.

Q. My magic block is no longer there! How do I get another one?

A. You will have to place a block there. Worse case, kill yourself and one will be generated.

Q. My magic block is liquid! How can I mine it?

A. Use a bucket.

Q: Which mobs can spawn?

A: Each phase has a different set of mobs that can spawn. Be careful because they may push you off! If you listen carefully, you may hear hostile mobs coming.

Q. I have no chance to react to hostile mobs spawning!

A. Be prepared. Listen carefully when you mine a block and you will hear hostile mobs coming before they spawn. If you are in a hostile phase, then expect mobs and build defenses to protect yourself. You can mine a block from quite far away.

Q. When mobs spawn, my defenses are destroyed! Why?

A. Mobs make space to spawn. If there's anything in the way, it'll be broken and dropped. You'll have to build accordingly. This is to prevent suffocation exploits.

Q: Do chests spawn?

A: Yes. Chests spawn with random items in them from the current phase. There are common, uncommon, rare and epic chests. Chests with sparkles are good.

Q: Is it possible to reach the Nether or End in this map?

A: The vanilla Nether exists by default but there is no End world, just an End Phase.

Q: What is the end goal?

A: It's whatever you want it to be!

Installation

  1. Install BentoBox and run it on the server at least once to create its data folders.
  2. Place this jar in the addons folder of the BentoBox plugin.
  3. Restart the server.
  4. The addon will create worlds and a data folder and inside the folder will be a config.yml and config files in phases folder.
  5. Stop the server.
  6. Edit config.yml and the .yml config files how you want.
  7. Delete any worlds that were created by default if you made changes that would affect them.
  8. Restart the server.

Phase config files

The config files to make the phases are in the phases folder.

There are two files per phase - a file that contains the blocks and mobs, and a file that contains the chests.

The first number of any file is how many blocks need to be mined to reach that phase. This is the phase's key number. Each phase also has a name, an icon, a biome and the following sections:

  • name
  • icon
  • fixedBlocks
  • holograms
  • biome
  • start-commands
  • end-commands
  • end-commands-first-time
  • requirements
  • blocks
  • mobs

In the chests file, it just has the phase number and a chests section.

name

Name of the phase

icon

The material for an icon to show

fixedBlocks

List of blocks that will generate at these specific block counts. The numbers are relative to the phase and not the overall player's count. If you define 0 here, then firstBlock is not required and firstBlock will be replaced with this block.

holograms

Hologram Lines to Display. The key number is the block of the phase to show the hologram. Chat color codes can be used. A hologram plugin is not required for these holograms. The First (Before Phase 1) Hologram is Located in your Locale.

Biome

The biomes for this phase.

Commands

A list of commands can be run at the start and end of a phase. Commands are run as the Console unless the command is prefixed with [SUDO], then the command is run as the player triggering the commands.

These placeholders in the command string will be replaced with the appropriate value:

  • [island] - Island name
  • [owner] - Island owner's name
  • [player] - The name of the player who broke the block triggering the commands
  • [phase] - the name of this phase
  • [blocks] - the number of blocks broken
  • [level] - your island level (Requires Levels Addon)
  • [bank-balance] - your island bank balance (Requires Bank Addon)
  • [eco-balance] - player's economy balance (Requires Vault and an economy plugin)

Examples:

 start-commands:
- 'give [player] WOODEN_AXE 1'
- 'broadcast [player] just started OneBlock!'
end-commands:
- '[SUDO]summon minecraft:wither'
These are run only the first time a phase is completed
end-commands-first-time:
- 'broadcast &c&l[!] &b[player] &fhas completed the &d&n[phase]&f phase for the first time.'

Requirements

You can stipulate a set of requirements to start the phase:

  • economy-balance - the minimum player's economy balance (Requires Vault and an economy plugin)
  • bank-balance - the minimum island bank balance (requires Bank Addon)
  • level - the island level (Requires Levels Addon)
  • permission - a permission string Example:
 requirements:
bank-balance: 10000
level: 10
permission: ready.for.battle

blocks

The blocks section list Bukkit Materials followed by a relative probability. All the probability values are added up for the whole phase and the chance of the block being placed is the relative probability divided by the total of all the probabilities.

mobs

The mob section list mobs that can spawn and their relative probability along with blocks. You can only list entities that are alive and can spawn in this list.

chests

If CHEST is listed in the blocks section, then it will be randomly filled according to this section. You can define as many chests as you like. The first number is a unique chest number. Then follows the chest contents that includes the slot number and the item stack contents. Finally there is the chest's rarity, which can be COMMON, UNCOMMON, RARE or EPIC. The best way to set chests is to do it in game. Fill a chest with the contents you want and then while looking at it enter the command /oba setchest <phase> <rarity> where is the name of the phase and rarity is the rarity. Use Tab Complete to see the options. The chest will be automatically added to the oneblocks.yml file and be ready to use. Deleting chests must be done by editing the oneblocks.yml file for now and reloading the addon.

Be very careful when editing the chest items and check that the material is a true Bukkit material and spelled correctly.

Custom block entries

Phase blocks: sections can also be written as a YAML list, which unlocks custom entry types:

blocks:
- type: block-datadata: redstone_wire[power=15]probability: 20# `type: block` runs the vanilla /setblock command at the magic-block# position. The data string may include block states `[…]`, NBT `{…}`,# and a trailing destroy|keep|replace mode — anything valid after# `setblock <x> <y> <z>`. Use single quotes around the data so any# double quotes inside the NBT don't clash with YAML string delimiters.
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10# #488: summon an entity with vanilla NBT/component data, same syntax as /summon.# After spawning, blocks inside the mob's (scaled) bounding box are cleared.
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 15# #303: spawn a MythicMob via BentoBox's MythicMobs hook. Requires the MythicMobs# plugin to be installed; otherwise the entry is logged and skipped at runtime.
- type: mythic-mobmob: SkeletalKnight # MythicMob internal type ID (required)level: 3# mob level (optional, default: 1)power: 1.0# mob power multiplier (optional, default: 0)display-name: "Boss"# override display name (optional)stance: ""# MythicMobs stance string (optional)underlying-block: STONE # block placed under the mob (optional, default: STONE)probability: 5

type: block is an alias for type: block-data — both route to the same handler. Use block-data when you only need simple block states (redstone_wire[power=15]); use block when the data contains NBT or a setblock mode flag so the intent is obvious at a glance.

Spawner gotcha: placing a spawner via /setblock only sets the fields you provide — everything else defaults to 0/-1, which leaves the spawner inactive (Delay:-1 means "never tick"). If you want it to actually spawn mobs, set Delay, MinSpawnDelay, MaxSpawnDelay, SpawnCount, SpawnRange, MaxNearbyEntities, and RequiredPlayerRange explicitly, as shown in the example above. Delay:0 spawns on the very next tick (visually instant), Delay:N waits N ticks before the first spawn, and Delay:-1 never ticks. Test your full data string in-game with /setblock ~ ~ ~ <data> first — if the spawner ticks there, it will tick from custom-blocks: too.

Note: the mob-data string is passed straight to the vanilla /summon command, so it must be valid NBT for your server version. A few 1.21 gotchas: attribute ids no longer use the generic./player. prefix (scale, not generic.scale), numeric attribute bases need a float suffix (base:2f), and CustomName must be a text-component list ([{text:Breezy}]), not a plain string. Test the command in-game first with /summon <your data> — if it works there it will work here. Bad NBT is logged and the spawn is skipped.

MythicMobs configuration

To use type: mythic-mob you need:

  1. MythicMobs (free or premium) installed on the server.
  2. BentoBox's built-in MythicMobs hook active (it registers automatically when MythicMobs is detected).

Fields:

FieldRequiredDefaultDescription
mobThe internal MythicMobs mob type ID as defined in your MythicMobs config (case-sensitive).
level1The level at which to spawn the mob.
power0The power multiplier for the mob.
display-namemob IDOverride the mob's display name.
stance""An optional MythicMobs stance string.
underlying-blockSTONEThe vanilla block placed at the magic-block position before the mob spawns.
probabilityThe relative spawn weight in the phase pool.

Alternative approach using commands:

If you experience any issues with MythicMobs skills or abilities when spawning via type: mythic-mob, you can use the MythicMobs /mm mobs spawn command inside the phase's start-commands or end-commands instead. This spawns the mob through MythicMobs directly, which ensures all skills and behaviours work exactly as configured:

start-commands:
# Spawn mob at the island's magic-block position using MythicMobs command.# Replace <world>, <x>, <y>, <z> with the actual coordinates, or use a# console command that targets the player's location.
- 'mm mobs spawn MY_MYTHIC_MOB 1 [world],[x],[y],[z]'

Tip: When spawning MythicMobs via commands you have full control over the exact spawn location and can still use all MythicMobs features without any compatibility limitations.

ItemsAdder custom blocks

Requires the ItemsAdder plugin to be installed. ItemsAdder blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: itemsadderid: namespace:block_id # ItemsAdder block ID (required)probability: 20

Short form — place the ItemsAdder block ID directly as a map key (same as vanilla materials):

blocks:
namespace:block_id: 20

Nexo custom blocks

Requires the Nexo plugin to be installed. Nexo blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: nexoid: nexo_block_id # Nexo block ID (required)probability: 20

Short form — place the Nexo block ID directly as a map key:

blocks:
nexo_block_id: 20

If you'd rather leave your existing blocks: map-form section untouched, you can put custom entries in a sibling custom-blocks: list. Both sections are read and their entries merged into the same weighted pool, so probabilities in the two sections are directly comparable:

blocks:
PODZOL: 40DIRT: 1000OAK_LOG: 2000custom-blocks:
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 50
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10
- type: mythic-mobmob: SkeletalKnightlevel: 3probability: 5

Other Add-ons

OneBlock is an add-on that uses the BentoBox API. Here are some other ones that you may be interested in:

You can add all the usual addons to OneBlock, like Challeges, Likes, Level, Warps, etc. but it is not required.

Bugs and Feature requests

File bug and feature requests here: https://github.com/BentoBoxWorld/OneBlock/issues

About

A OneBlock Minecraft Game for BentoBox

Resources

Code of conduct

Contributing

Stars

93 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

739 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AOneBlock

A OneBlock Minecraft plugin, written by tastybento. Credit for the original idea: IJAminecraft.

Build StatusBugsReliability RatingLines of Code

About

AOneBlock puts you on a block in space. There is only one block. What do you do next?

Documentation

See BentoBox Docs docs.bentobox.world for documentation.

Commands

The user command is /ob. The admin command is /oba.

FAQ

Q: What phases are there?

A: There are 18 phases: Plains, Underground, Winter, Ocean, Jungle, Swamp, Dungeon, Desert, The Nether, Plenty, Desolation, Deep Dark, The End, Lush Caves, Dripstone Caves, Mangrove Swamp, Meadow, Cherry Grove, and Jagged Peaks. Each phase features a set of blocks, chests, items, and mobs appropriate for the setting.

Q: How many blocks are there in the phases?

A: There are currently 15 thousand blocks!

Q: What happens after the last phase?

A: The phases repeat.

Q: Why do I keep falling and dying!

A: There are tricks to surviving, but it might be difficult! You need to build space so you don't fall.

Q: I can't catch the blocks when I mine them! How do I do that?

A: You can't catch them all, but it is an infinite block!

Q: Why do certain blocks spawn more frequently than others?

A: They just do! It's random(ish). You can set the relative probability in the config files in the phases folder. Admins can also set certain blocks to appear at certain times no matter what. Look out for the sponge for example!

Q. How do I know which is the magic block?

A. Hit it and it will give out green particles. It's also at the center of your island.

Q. My magic block is no longer there! How do I get another one?

A. You will have to place a block there. Worse case, kill yourself and one will be generated.

Q. My magic block is liquid! How can I mine it?

A. Use a bucket.

Q: Which mobs can spawn?

A: Each phase has a different set of mobs that can spawn. Be careful because they may push you off! If you listen carefully, you may hear hostile mobs coming.

Q. I have no chance to react to hostile mobs spawning!

A. Be prepared. Listen carefully when you mine a block and you will hear hostile mobs coming before they spawn. If you are in a hostile phase, then expect mobs and build defenses to protect yourself. You can mine a block from quite far away.

Q. When mobs spawn, my defenses are destroyed! Why?

A. Mobs make space to spawn. If there's anything in the way, it'll be broken and dropped. You'll have to build accordingly. This is to prevent suffocation exploits.

Q: Do chests spawn?

A: Yes. Chests spawn with random items in them from the current phase. There are common, uncommon, rare and epic chests. Chests with sparkles are good.

Q: Is it possible to reach the Nether or End in this map?

A: The vanilla Nether exists by default but there is no End world, just an End Phase.

Q: What is the end goal?

A: It's whatever you want it to be!

Installation

  1. Install BentoBox and run it on the server at least once to create its data folders.
  2. Place this jar in the addons folder of the BentoBox plugin.
  3. Restart the server.
  4. The addon will create worlds and a data folder and inside the folder will be a config.yml and config files in phases folder.
  5. Stop the server.
  6. Edit config.yml and the .yml config files how you want.
  7. Delete any worlds that were created by default if you made changes that would affect them.
  8. Restart the server.

Phase config files

The config files to make the phases are in the phases folder.

There are two files per phase - a file that contains the blocks and mobs, and a file that contains the chests.

The first number of any file is how many blocks need to be mined to reach that phase. This is the phase's key number. Each phase also has a name, an icon, a biome and the following sections:

  • name
  • icon
  • fixedBlocks
  • holograms
  • biome
  • start-commands
  • end-commands
  • end-commands-first-time
  • requirements
  • blocks
  • mobs

In the chests file, it just has the phase number and a chests section.

name

Name of the phase

icon

The material for an icon to show

fixedBlocks

List of blocks that will generate at these specific block counts. The numbers are relative to the phase and not the overall player's count. If you define 0 here, then firstBlock is not required and firstBlock will be replaced with this block.

holograms

Hologram Lines to Display. The key number is the block of the phase to show the hologram. Chat color codes can be used. A hologram plugin is not required for these holograms. The First (Before Phase 1) Hologram is Located in your Locale.

Biome

The biomes for this phase.

Commands

A list of commands can be run at the start and end of a phase. Commands are run as the Console unless the command is prefixed with [SUDO], then the command is run as the player triggering the commands.

These placeholders in the command string will be replaced with the appropriate value:

  • [island] - Island name
  • [owner] - Island owner's name
  • [player] - The name of the player who broke the block triggering the commands
  • [phase] - the name of this phase
  • [blocks] - the number of blocks broken
  • [level] - your island level (Requires Levels Addon)
  • [bank-balance] - your island bank balance (Requires Bank Addon)
  • [eco-balance] - player's economy balance (Requires Vault and an economy plugin)

Examples:

 start-commands:
- 'give [player] WOODEN_AXE 1'
- 'broadcast [player] just started OneBlock!'
end-commands:
- '[SUDO]summon minecraft:wither'
These are run only the first time a phase is completed
end-commands-first-time:
- 'broadcast &c&l[!] &b[player] &fhas completed the &d&n[phase]&f phase for the first time.'

Requirements

You can stipulate a set of requirements to start the phase:

  • economy-balance - the minimum player's economy balance (Requires Vault and an economy plugin)
  • bank-balance - the minimum island bank balance (requires Bank Addon)
  • level - the island level (Requires Levels Addon)
  • permission - a permission string Example:
 requirements:
bank-balance: 10000
level: 10
permission: ready.for.battle

blocks

The blocks section list Bukkit Materials followed by a relative probability. All the probability values are added up for the whole phase and the chance of the block being placed is the relative probability divided by the total of all the probabilities.

mobs

The mob section list mobs that can spawn and their relative probability along with blocks. You can only list entities that are alive and can spawn in this list.

chests

If CHEST is listed in the blocks section, then it will be randomly filled according to this section. You can define as many chests as you like. The first number is a unique chest number. Then follows the chest contents that includes the slot number and the item stack contents. Finally there is the chest's rarity, which can be COMMON, UNCOMMON, RARE or EPIC. The best way to set chests is to do it in game. Fill a chest with the contents you want and then while looking at it enter the command /oba setchest <phase> <rarity> where is the name of the phase and rarity is the rarity. Use Tab Complete to see the options. The chest will be automatically added to the oneblocks.yml file and be ready to use. Deleting chests must be done by editing the oneblocks.yml file for now and reloading the addon.

Be very careful when editing the chest items and check that the material is a true Bukkit material and spelled correctly.

Custom block entries

Phase blocks: sections can also be written as a YAML list, which unlocks custom entry types:

blocks:
- type: block-datadata: redstone_wire[power=15]probability: 20# `type: block` runs the vanilla /setblock command at the magic-block# position. The data string may include block states `[…]`, NBT `{…}`,# and a trailing destroy|keep|replace mode — anything valid after# `setblock <x> <y> <z>`. Use single quotes around the data so any# double quotes inside the NBT don't clash with YAML string delimiters.
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10# #488: summon an entity with vanilla NBT/component data, same syntax as /summon.# After spawning, blocks inside the mob's (scaled) bounding box are cleared.
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 15# #303: spawn a MythicMob via BentoBox's MythicMobs hook. Requires the MythicMobs# plugin to be installed; otherwise the entry is logged and skipped at runtime.
- type: mythic-mobmob: SkeletalKnight # MythicMob internal type ID (required)level: 3# mob level (optional, default: 1)power: 1.0# mob power multiplier (optional, default: 0)display-name: "Boss"# override display name (optional)stance: ""# MythicMobs stance string (optional)underlying-block: STONE # block placed under the mob (optional, default: STONE)probability: 5

type: block is an alias for type: block-data — both route to the same handler. Use block-data when you only need simple block states (redstone_wire[power=15]); use block when the data contains NBT or a setblock mode flag so the intent is obvious at a glance.

Spawner gotcha: placing a spawner via /setblock only sets the fields you provide — everything else defaults to 0/-1, which leaves the spawner inactive (Delay:-1 means "never tick"). If you want it to actually spawn mobs, set Delay, MinSpawnDelay, MaxSpawnDelay, SpawnCount, SpawnRange, MaxNearbyEntities, and RequiredPlayerRange explicitly, as shown in the example above. Delay:0 spawns on the very next tick (visually instant), Delay:N waits N ticks before the first spawn, and Delay:-1 never ticks. Test your full data string in-game with /setblock ~ ~ ~ <data> first — if the spawner ticks there, it will tick from custom-blocks: too.

Note: the mob-data string is passed straight to the vanilla /summon command, so it must be valid NBT for your server version. A few 1.21 gotchas: attribute ids no longer use the generic./player. prefix (scale, not generic.scale), numeric attribute bases need a float suffix (base:2f), and CustomName must be a text-component list ([{text:Breezy}]), not a plain string. Test the command in-game first with /summon <your data> — if it works there it will work here. Bad NBT is logged and the spawn is skipped.

MythicMobs configuration

To use type: mythic-mob you need:

  1. MythicMobs (free or premium) installed on the server.
  2. BentoBox's built-in MythicMobs hook active (it registers automatically when MythicMobs is detected).

Fields:

FieldRequiredDefaultDescription
mobThe internal MythicMobs mob type ID as defined in your MythicMobs config (case-sensitive).
level1The level at which to spawn the mob.
power0The power multiplier for the mob.
display-namemob IDOverride the mob's display name.
stance""An optional MythicMobs stance string.
underlying-blockSTONEThe vanilla block placed at the magic-block position before the mob spawns.
probabilityThe relative spawn weight in the phase pool.

Alternative approach using commands:

If you experience any issues with MythicMobs skills or abilities when spawning via type: mythic-mob, you can use the MythicMobs /mm mobs spawn command inside the phase's start-commands or end-commands instead. This spawns the mob through MythicMobs directly, which ensures all skills and behaviours work exactly as configured:

start-commands:
# Spawn mob at the island's magic-block position using MythicMobs command.# Replace <world>, <x>, <y>, <z> with the actual coordinates, or use a# console command that targets the player's location.
- 'mm mobs spawn MY_MYTHIC_MOB 1 [world],[x],[y],[z]'

Tip: When spawning MythicMobs via commands you have full control over the exact spawn location and can still use all MythicMobs features without any compatibility limitations.

ItemsAdder custom blocks

Requires the ItemsAdder plugin to be installed. ItemsAdder blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: itemsadderid: namespace:block_id # ItemsAdder block ID (required)probability: 20

Short form — place the ItemsAdder block ID directly as a map key (same as vanilla materials):

blocks:
namespace:block_id: 20

Nexo custom blocks

Requires the Nexo plugin to be installed. Nexo blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: nexoid: nexo_block_id # Nexo block ID (required)probability: 20

Short form — place the Nexo block ID directly as a map key:

blocks:
nexo_block_id: 20

If you'd rather leave your existing blocks: map-form section untouched, you can put custom entries in a sibling custom-blocks: list. Both sections are read and their entries merged into the same weighted pool, so probabilities in the two sections are directly comparable:

blocks:
PODZOL: 40DIRT: 1000OAK_LOG: 2000custom-blocks:
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 50
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10
- type: mythic-mobmob: SkeletalKnightlevel: 3probability: 5

Other Add-ons

OneBlock is an add-on that uses the BentoBox API. Here are some other ones that you may be interested in:

You can add all the usual addons to OneBlock, like Challeges, Likes, Level, Warps, etc. but it is not required.

Bugs and Feature requests

File bug and feature requests here: https://github.com/BentoBoxWorld/OneBlock/issues

About

A OneBlock Minecraft Game for BentoBox

Resources

Code of conduct

Contributing

Stars

93 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

739 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AOneBlock

A OneBlock Minecraft plugin, written by tastybento. Credit for the original idea: IJAminecraft.

Build StatusBugsReliability RatingLines of Code

About

AOneBlock puts you on a block in space. There is only one block. What do you do next?

Documentation

See BentoBox Docs docs.bentobox.world for documentation.

Commands

The user command is /ob. The admin command is /oba.

FAQ

Q: What phases are there?

A: There are 18 phases: Plains, Underground, Winter, Ocean, Jungle, Swamp, Dungeon, Desert, The Nether, Plenty, Desolation, Deep Dark, The End, Lush Caves, Dripstone Caves, Mangrove Swamp, Meadow, Cherry Grove, and Jagged Peaks. Each phase features a set of blocks, chests, items, and mobs appropriate for the setting.

Q: How many blocks are there in the phases?

A: There are currently 15 thousand blocks!

Q: What happens after the last phase?

A: The phases repeat.

Q: Why do I keep falling and dying!

A: There are tricks to surviving, but it might be difficult! You need to build space so you don't fall.

Q: I can't catch the blocks when I mine them! How do I do that?

A: You can't catch them all, but it is an infinite block!

Q: Why do certain blocks spawn more frequently than others?

A: They just do! It's random(ish). You can set the relative probability in the config files in the phases folder. Admins can also set certain blocks to appear at certain times no matter what. Look out for the sponge for example!

Q. How do I know which is the magic block?

A. Hit it and it will give out green particles. It's also at the center of your island.

Q. My magic block is no longer there! How do I get another one?

A. You will have to place a block there. Worse case, kill yourself and one will be generated.

Q. My magic block is liquid! How can I mine it?

A. Use a bucket.

Q: Which mobs can spawn?

A: Each phase has a different set of mobs that can spawn. Be careful because they may push you off! If you listen carefully, you may hear hostile mobs coming.

Q. I have no chance to react to hostile mobs spawning!

A. Be prepared. Listen carefully when you mine a block and you will hear hostile mobs coming before they spawn. If you are in a hostile phase, then expect mobs and build defenses to protect yourself. You can mine a block from quite far away.

Q. When mobs spawn, my defenses are destroyed! Why?

A. Mobs make space to spawn. If there's anything in the way, it'll be broken and dropped. You'll have to build accordingly. This is to prevent suffocation exploits.

Q: Do chests spawn?

A: Yes. Chests spawn with random items in them from the current phase. There are common, uncommon, rare and epic chests. Chests with sparkles are good.

Q: Is it possible to reach the Nether or End in this map?

A: The vanilla Nether exists by default but there is no End world, just an End Phase.

Q: What is the end goal?

A: It's whatever you want it to be!

Installation

  1. Install BentoBox and run it on the server at least once to create its data folders.
  2. Place this jar in the addons folder of the BentoBox plugin.
  3. Restart the server.
  4. The addon will create worlds and a data folder and inside the folder will be a config.yml and config files in phases folder.
  5. Stop the server.
  6. Edit config.yml and the .yml config files how you want.
  7. Delete any worlds that were created by default if you made changes that would affect them.
  8. Restart the server.

Phase config files

The config files to make the phases are in the phases folder.

There are two files per phase - a file that contains the blocks and mobs, and a file that contains the chests.

The first number of any file is how many blocks need to be mined to reach that phase. This is the phase's key number. Each phase also has a name, an icon, a biome and the following sections:

  • name
  • icon
  • fixedBlocks
  • holograms
  • biome
  • start-commands
  • end-commands
  • end-commands-first-time
  • requirements
  • blocks
  • mobs

In the chests file, it just has the phase number and a chests section.

name

Name of the phase

icon

The material for an icon to show

fixedBlocks

List of blocks that will generate at these specific block counts. The numbers are relative to the phase and not the overall player's count. If you define 0 here, then firstBlock is not required and firstBlock will be replaced with this block.

holograms

Hologram Lines to Display. The key number is the block of the phase to show the hologram. Chat color codes can be used. A hologram plugin is not required for these holograms. The First (Before Phase 1) Hologram is Located in your Locale.

Biome

The biomes for this phase.

Commands

A list of commands can be run at the start and end of a phase. Commands are run as the Console unless the command is prefixed with [SUDO], then the command is run as the player triggering the commands.

These placeholders in the command string will be replaced with the appropriate value:

  • [island] - Island name
  • [owner] - Island owner's name
  • [player] - The name of the player who broke the block triggering the commands
  • [phase] - the name of this phase
  • [blocks] - the number of blocks broken
  • [level] - your island level (Requires Levels Addon)
  • [bank-balance] - your island bank balance (Requires Bank Addon)
  • [eco-balance] - player's economy balance (Requires Vault and an economy plugin)

Examples:

 start-commands:
- 'give [player] WOODEN_AXE 1'
- 'broadcast [player] just started OneBlock!'
end-commands:
- '[SUDO]summon minecraft:wither'
These are run only the first time a phase is completed
end-commands-first-time:
- 'broadcast &c&l[!] &b[player] &fhas completed the &d&n[phase]&f phase for the first time.'

Requirements

You can stipulate a set of requirements to start the phase:

  • economy-balance - the minimum player's economy balance (Requires Vault and an economy plugin)
  • bank-balance - the minimum island bank balance (requires Bank Addon)
  • level - the island level (Requires Levels Addon)
  • permission - a permission string Example:
 requirements:
bank-balance: 10000
level: 10
permission: ready.for.battle

blocks

The blocks section list Bukkit Materials followed by a relative probability. All the probability values are added up for the whole phase and the chance of the block being placed is the relative probability divided by the total of all the probabilities.

mobs

The mob section list mobs that can spawn and their relative probability along with blocks. You can only list entities that are alive and can spawn in this list.

chests

If CHEST is listed in the blocks section, then it will be randomly filled according to this section. You can define as many chests as you like. The first number is a unique chest number. Then follows the chest contents that includes the slot number and the item stack contents. Finally there is the chest's rarity, which can be COMMON, UNCOMMON, RARE or EPIC. The best way to set chests is to do it in game. Fill a chest with the contents you want and then while looking at it enter the command /oba setchest <phase> <rarity> where is the name of the phase and rarity is the rarity. Use Tab Complete to see the options. The chest will be automatically added to the oneblocks.yml file and be ready to use. Deleting chests must be done by editing the oneblocks.yml file for now and reloading the addon.

Be very careful when editing the chest items and check that the material is a true Bukkit material and spelled correctly.

Custom block entries

Phase blocks: sections can also be written as a YAML list, which unlocks custom entry types:

blocks:
- type: block-datadata: redstone_wire[power=15]probability: 20# `type: block` runs the vanilla /setblock command at the magic-block# position. The data string may include block states `[…]`, NBT `{…}`,# and a trailing destroy|keep|replace mode — anything valid after# `setblock <x> <y> <z>`. Use single quotes around the data so any# double quotes inside the NBT don't clash with YAML string delimiters.
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10# #488: summon an entity with vanilla NBT/component data, same syntax as /summon.# After spawning, blocks inside the mob's (scaled) bounding box are cleared.
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 15# #303: spawn a MythicMob via BentoBox's MythicMobs hook. Requires the MythicMobs# plugin to be installed; otherwise the entry is logged and skipped at runtime.
- type: mythic-mobmob: SkeletalKnight # MythicMob internal type ID (required)level: 3# mob level (optional, default: 1)power: 1.0# mob power multiplier (optional, default: 0)display-name: "Boss"# override display name (optional)stance: ""# MythicMobs stance string (optional)underlying-block: STONE # block placed under the mob (optional, default: STONE)probability: 5

type: block is an alias for type: block-data — both route to the same handler. Use block-data when you only need simple block states (redstone_wire[power=15]); use block when the data contains NBT or a setblock mode flag so the intent is obvious at a glance.

Spawner gotcha: placing a spawner via /setblock only sets the fields you provide — everything else defaults to 0/-1, which leaves the spawner inactive (Delay:-1 means "never tick"). If you want it to actually spawn mobs, set Delay, MinSpawnDelay, MaxSpawnDelay, SpawnCount, SpawnRange, MaxNearbyEntities, and RequiredPlayerRange explicitly, as shown in the example above. Delay:0 spawns on the very next tick (visually instant), Delay:N waits N ticks before the first spawn, and Delay:-1 never ticks. Test your full data string in-game with /setblock ~ ~ ~ <data> first — if the spawner ticks there, it will tick from custom-blocks: too.

Note: the mob-data string is passed straight to the vanilla /summon command, so it must be valid NBT for your server version. A few 1.21 gotchas: attribute ids no longer use the generic./player. prefix (scale, not generic.scale), numeric attribute bases need a float suffix (base:2f), and CustomName must be a text-component list ([{text:Breezy}]), not a plain string. Test the command in-game first with /summon <your data> — if it works there it will work here. Bad NBT is logged and the spawn is skipped.

MythicMobs configuration

To use type: mythic-mob you need:

  1. MythicMobs (free or premium) installed on the server.
  2. BentoBox's built-in MythicMobs hook active (it registers automatically when MythicMobs is detected).

Fields:

FieldRequiredDefaultDescription
mobThe internal MythicMobs mob type ID as defined in your MythicMobs config (case-sensitive).
level1The level at which to spawn the mob.
power0The power multiplier for the mob.
display-namemob IDOverride the mob's display name.
stance""An optional MythicMobs stance string.
underlying-blockSTONEThe vanilla block placed at the magic-block position before the mob spawns.
probabilityThe relative spawn weight in the phase pool.

Alternative approach using commands:

If you experience any issues with MythicMobs skills or abilities when spawning via type: mythic-mob, you can use the MythicMobs /mm mobs spawn command inside the phase's start-commands or end-commands instead. This spawns the mob through MythicMobs directly, which ensures all skills and behaviours work exactly as configured:

start-commands:
# Spawn mob at the island's magic-block position using MythicMobs command.# Replace <world>, <x>, <y>, <z> with the actual coordinates, or use a# console command that targets the player's location.
- 'mm mobs spawn MY_MYTHIC_MOB 1 [world],[x],[y],[z]'

Tip: When spawning MythicMobs via commands you have full control over the exact spawn location and can still use all MythicMobs features without any compatibility limitations.

ItemsAdder custom blocks

Requires the ItemsAdder plugin to be installed. ItemsAdder blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: itemsadderid: namespace:block_id # ItemsAdder block ID (required)probability: 20

Short form — place the ItemsAdder block ID directly as a map key (same as vanilla materials):

blocks:
namespace:block_id: 20

Nexo custom blocks

Requires the Nexo plugin to be installed. Nexo blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: nexoid: nexo_block_id # Nexo block ID (required)probability: 20

Short form — place the Nexo block ID directly as a map key:

blocks:
nexo_block_id: 20

If you'd rather leave your existing blocks: map-form section untouched, you can put custom entries in a sibling custom-blocks: list. Both sections are read and their entries merged into the same weighted pool, so probabilities in the two sections are directly comparable:

blocks:
PODZOL: 40DIRT: 1000OAK_LOG: 2000custom-blocks:
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 50
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10
- type: mythic-mobmob: SkeletalKnightlevel: 3probability: 5

Other Add-ons

OneBlock is an add-on that uses the BentoBox API. Here are some other ones that you may be interested in:

You can add all the usual addons to OneBlock, like Challeges, Likes, Level, Warps, etc. but it is not required.

Bugs and Feature requests

File bug and feature requests here: https://github.com/BentoBoxWorld/OneBlock/issues

About

A OneBlock Minecraft Game for BentoBox

Resources

Code of conduct

Contributing

Stars

93 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

739 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AOneBlock

A OneBlock Minecraft plugin, written by tastybento. Credit for the original idea: IJAminecraft.

Build StatusBugsReliability RatingLines of Code

About

AOneBlock puts you on a block in space. There is only one block. What do you do next?

Documentation

See BentoBox Docs docs.bentobox.world for documentation.

Commands

The user command is /ob. The admin command is /oba.

FAQ

Q: What phases are there?

A: There are 18 phases: Plains, Underground, Winter, Ocean, Jungle, Swamp, Dungeon, Desert, The Nether, Plenty, Desolation, Deep Dark, The End, Lush Caves, Dripstone Caves, Mangrove Swamp, Meadow, Cherry Grove, and Jagged Peaks. Each phase features a set of blocks, chests, items, and mobs appropriate for the setting.

Q: How many blocks are there in the phases?

A: There are currently 15 thousand blocks!

Q: What happens after the last phase?

A: The phases repeat.

Q: Why do I keep falling and dying!

A: There are tricks to surviving, but it might be difficult! You need to build space so you don't fall.

Q: I can't catch the blocks when I mine them! How do I do that?

A: You can't catch them all, but it is an infinite block!

Q: Why do certain blocks spawn more frequently than others?

A: They just do! It's random(ish). You can set the relative probability in the config files in the phases folder. Admins can also set certain blocks to appear at certain times no matter what. Look out for the sponge for example!

Q. How do I know which is the magic block?

A. Hit it and it will give out green particles. It's also at the center of your island.

Q. My magic block is no longer there! How do I get another one?

A. You will have to place a block there. Worse case, kill yourself and one will be generated.

Q. My magic block is liquid! How can I mine it?

A. Use a bucket.

Q: Which mobs can spawn?

A: Each phase has a different set of mobs that can spawn. Be careful because they may push you off! If you listen carefully, you may hear hostile mobs coming.

Q. I have no chance to react to hostile mobs spawning!

A. Be prepared. Listen carefully when you mine a block and you will hear hostile mobs coming before they spawn. If you are in a hostile phase, then expect mobs and build defenses to protect yourself. You can mine a block from quite far away.

Q. When mobs spawn, my defenses are destroyed! Why?

A. Mobs make space to spawn. If there's anything in the way, it'll be broken and dropped. You'll have to build accordingly. This is to prevent suffocation exploits.

Q: Do chests spawn?

A: Yes. Chests spawn with random items in them from the current phase. There are common, uncommon, rare and epic chests. Chests with sparkles are good.

Q: Is it possible to reach the Nether or End in this map?

A: The vanilla Nether exists by default but there is no End world, just an End Phase.

Q: What is the end goal?

A: It's whatever you want it to be!

Installation

  1. Install BentoBox and run it on the server at least once to create its data folders.
  2. Place this jar in the addons folder of the BentoBox plugin.
  3. Restart the server.
  4. The addon will create worlds and a data folder and inside the folder will be a config.yml and config files in phases folder.
  5. Stop the server.
  6. Edit config.yml and the .yml config files how you want.
  7. Delete any worlds that were created by default if you made changes that would affect them.
  8. Restart the server.

Phase config files

The config files to make the phases are in the phases folder.

There are two files per phase - a file that contains the blocks and mobs, and a file that contains the chests.

The first number of any file is how many blocks need to be mined to reach that phase. This is the phase's key number. Each phase also has a name, an icon, a biome and the following sections:

  • name
  • icon
  • fixedBlocks
  • holograms
  • biome
  • start-commands
  • end-commands
  • end-commands-first-time
  • requirements
  • blocks
  • mobs

In the chests file, it just has the phase number and a chests section.

name

Name of the phase

icon

The material for an icon to show

fixedBlocks

List of blocks that will generate at these specific block counts. The numbers are relative to the phase and not the overall player's count. If you define 0 here, then firstBlock is not required and firstBlock will be replaced with this block.

holograms

Hologram Lines to Display. The key number is the block of the phase to show the hologram. Chat color codes can be used. A hologram plugin is not required for these holograms. The First (Before Phase 1) Hologram is Located in your Locale.

Biome

The biomes for this phase.

Commands

A list of commands can be run at the start and end of a phase. Commands are run as the Console unless the command is prefixed with [SUDO], then the command is run as the player triggering the commands.

These placeholders in the command string will be replaced with the appropriate value:

  • [island] - Island name
  • [owner] - Island owner's name
  • [player] - The name of the player who broke the block triggering the commands
  • [phase] - the name of this phase
  • [blocks] - the number of blocks broken
  • [level] - your island level (Requires Levels Addon)
  • [bank-balance] - your island bank balance (Requires Bank Addon)
  • [eco-balance] - player's economy balance (Requires Vault and an economy plugin)

Examples:

 start-commands:
- 'give [player] WOODEN_AXE 1'
- 'broadcast [player] just started OneBlock!'
end-commands:
- '[SUDO]summon minecraft:wither'
These are run only the first time a phase is completed
end-commands-first-time:
- 'broadcast &c&l[!] &b[player] &fhas completed the &d&n[phase]&f phase for the first time.'

Requirements

You can stipulate a set of requirements to start the phase:

  • economy-balance - the minimum player's economy balance (Requires Vault and an economy plugin)
  • bank-balance - the minimum island bank balance (requires Bank Addon)
  • level - the island level (Requires Levels Addon)
  • permission - a permission string Example:
 requirements:
bank-balance: 10000
level: 10
permission: ready.for.battle

blocks

The blocks section list Bukkit Materials followed by a relative probability. All the probability values are added up for the whole phase and the chance of the block being placed is the relative probability divided by the total of all the probabilities.

mobs

The mob section list mobs that can spawn and their relative probability along with blocks. You can only list entities that are alive and can spawn in this list.

chests

If CHEST is listed in the blocks section, then it will be randomly filled according to this section. You can define as many chests as you like. The first number is a unique chest number. Then follows the chest contents that includes the slot number and the item stack contents. Finally there is the chest's rarity, which can be COMMON, UNCOMMON, RARE or EPIC. The best way to set chests is to do it in game. Fill a chest with the contents you want and then while looking at it enter the command /oba setchest <phase> <rarity> where is the name of the phase and rarity is the rarity. Use Tab Complete to see the options. The chest will be automatically added to the oneblocks.yml file and be ready to use. Deleting chests must be done by editing the oneblocks.yml file for now and reloading the addon.

Be very careful when editing the chest items and check that the material is a true Bukkit material and spelled correctly.

Custom block entries

Phase blocks: sections can also be written as a YAML list, which unlocks custom entry types:

blocks:
- type: block-datadata: redstone_wire[power=15]probability: 20# `type: block` runs the vanilla /setblock command at the magic-block# position. The data string may include block states `[…]`, NBT `{…}`,# and a trailing destroy|keep|replace mode — anything valid after# `setblock <x> <y> <z>`. Use single quotes around the data so any# double quotes inside the NBT don't clash with YAML string delimiters.
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10# #488: summon an entity with vanilla NBT/component data, same syntax as /summon.# After spawning, blocks inside the mob's (scaled) bounding box are cleared.
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 15# #303: spawn a MythicMob via BentoBox's MythicMobs hook. Requires the MythicMobs# plugin to be installed; otherwise the entry is logged and skipped at runtime.
- type: mythic-mobmob: SkeletalKnight # MythicMob internal type ID (required)level: 3# mob level (optional, default: 1)power: 1.0# mob power multiplier (optional, default: 0)display-name: "Boss"# override display name (optional)stance: ""# MythicMobs stance string (optional)underlying-block: STONE # block placed under the mob (optional, default: STONE)probability: 5

type: block is an alias for type: block-data — both route to the same handler. Use block-data when you only need simple block states (redstone_wire[power=15]); use block when the data contains NBT or a setblock mode flag so the intent is obvious at a glance.

Spawner gotcha: placing a spawner via /setblock only sets the fields you provide — everything else defaults to 0/-1, which leaves the spawner inactive (Delay:-1 means "never tick"). If you want it to actually spawn mobs, set Delay, MinSpawnDelay, MaxSpawnDelay, SpawnCount, SpawnRange, MaxNearbyEntities, and RequiredPlayerRange explicitly, as shown in the example above. Delay:0 spawns on the very next tick (visually instant), Delay:N waits N ticks before the first spawn, and Delay:-1 never ticks. Test your full data string in-game with /setblock ~ ~ ~ <data> first — if the spawner ticks there, it will tick from custom-blocks: too.

Note: the mob-data string is passed straight to the vanilla /summon command, so it must be valid NBT for your server version. A few 1.21 gotchas: attribute ids no longer use the generic./player. prefix (scale, not generic.scale), numeric attribute bases need a float suffix (base:2f), and CustomName must be a text-component list ([{text:Breezy}]), not a plain string. Test the command in-game first with /summon <your data> — if it works there it will work here. Bad NBT is logged and the spawn is skipped.

MythicMobs configuration

To use type: mythic-mob you need:

  1. MythicMobs (free or premium) installed on the server.
  2. BentoBox's built-in MythicMobs hook active (it registers automatically when MythicMobs is detected).

Fields:

FieldRequiredDefaultDescription
mobThe internal MythicMobs mob type ID as defined in your MythicMobs config (case-sensitive).
level1The level at which to spawn the mob.
power0The power multiplier for the mob.
display-namemob IDOverride the mob's display name.
stance""An optional MythicMobs stance string.
underlying-blockSTONEThe vanilla block placed at the magic-block position before the mob spawns.
probabilityThe relative spawn weight in the phase pool.

Alternative approach using commands:

If you experience any issues with MythicMobs skills or abilities when spawning via type: mythic-mob, you can use the MythicMobs /mm mobs spawn command inside the phase's start-commands or end-commands instead. This spawns the mob through MythicMobs directly, which ensures all skills and behaviours work exactly as configured:

start-commands:
# Spawn mob at the island's magic-block position using MythicMobs command.# Replace <world>, <x>, <y>, <z> with the actual coordinates, or use a# console command that targets the player's location.
- 'mm mobs spawn MY_MYTHIC_MOB 1 [world],[x],[y],[z]'

Tip: When spawning MythicMobs via commands you have full control over the exact spawn location and can still use all MythicMobs features without any compatibility limitations.

ItemsAdder custom blocks

Requires the ItemsAdder plugin to be installed. ItemsAdder blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: itemsadderid: namespace:block_id # ItemsAdder block ID (required)probability: 20

Short form — place the ItemsAdder block ID directly as a map key (same as vanilla materials):

blocks:
namespace:block_id: 20

Nexo custom blocks

Requires the Nexo plugin to be installed. Nexo blocks can be referenced in two ways:

Map form (inside a blocks: or custom-blocks: list):

blocks:
- type: nexoid: nexo_block_id # Nexo block ID (required)probability: 20

Short form — place the Nexo block ID directly as a map key:

blocks:
nexo_block_id: 20

If you'd rather leave your existing blocks: map-form section untouched, you can put custom entries in a sibling custom-blocks: list. Both sections are read and their entries merged into the same weighted pool, so probabilities in the two sections are directly comparable:

blocks:
PODZOL: 40DIRT: 1000OAK_LOG: 2000custom-blocks:
- type: mob-datadata: breeze{CustomName:[{text:Breezy,color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,attributes:[{id:scale,base:2f}]}underlying-block: STONEprobability: 50
- type: blockdata: 'spawner{Delay:0,MinSpawnDelay:200,MaxSpawnDelay:800,SpawnCount:1,SpawnRange:4,MaxNearbyEntities:6,RequiredPlayerRange:16,SpawnData:{entity:{id:breeze,CustomName:[{text:"Breezy Generator",color:"#f90606"}],CustomNameVisible:1b,Glowing:1b,active_effects:[{id:unluck,duration:200,ambient:1b,show_particles:1b}],attributes:[{id:scale,base:2f}]}}} replace'probability: 10
- type: mythic-mobmob: SkeletalKnightlevel: 3probability: 5

Other Add-ons

OneBlock is an add-on that uses the BentoBox API. Here are some other ones that you may be interested in:

You can add all the usual addons to OneBlock, like Challeges, Likes, Level, Warps, etc. but it is not required.

Bugs and Feature requests

File bug and feature requests here: https://github.com/BentoBoxWorld/OneBlock/issues

About

A OneBlock Minecraft Game for BentoBox

Resources

Code of conduct

Contributing

Stars

93 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages