Limits#
Limits allows you to limit island blocks and entities in GameModes like BSkyBlock and AcidIsland.
This addon was made to help limit lag-inducing entities or blocks, e.g., hoppers. It can be used to limit regular blocks and entities but not all can be limited.
Created and maintained by tastybento.
Useful links
Installation#
- Place the Limits addon jar in the addons folder of the BentoBox plugin
- Restart the server
- The addon will create a data folder and inside the folder will be a config.yml
- Edit the config.yml how you want.
- Restart the server if you make a change
Commands#
There is a user command and an admin command called "limits". Admins can check the limits of a specific island owner. Both show a GUI panel with the limits and the current count.
Setup - Config.yml#
The config.yml has the following sections:
- blocklimits
- worlds
- entitylimits
blocklimits#
This section lists the maximum number of blocks allowed for each block material. Do not use non-block materials because they will not work. The limits apply to all game worlds.
worlds#
This section lists block limits for specific worlds. You must name the world specifically, e.g. AcidIsland_world and then list the materials and the limit.
entitylimits#
This section lists the default entity limits within a player's island space (protected area and to island limit). A limit of 5 will allow up to 5 entities in over world. Affects all types of creature spawning. Also includes entities like MINECARTS. Note that entity limits are no longer supported in the Nether and End because limits require chunks to be loaded to count entities and it causes too much lag.
Note: Only the first 49 limited blocks and entities are shown in the limits GUI.
entitygrouplimits#
Experimental feature
The following feature is only available in development builds, which you may find on ci.codemc.io.
entitygrouplimits:
friendly:
limit: 2
entities:
- COW
- SHEEP
monsters:
limit: 4
entities:
- ZOMBIE
- CREEPER
Permissions#
Island owners can have exclusive permissions that override the default or world settings. The format is:
Format is GAME-MODE-NAME.island.limit.MATERIAL.LIMIT
example: bskyblock.island.limit.hopper.10
Permissions activate when the player logs in.
Usage permissions are (put the gamemode name, e.g. acidisland at the front):
GAMEMODE_NAME.limits.player.limits:
description: Player can use limits command
default: true
GAMEMODE_NAME.mod.bypass:
description: Player can bypass limits
default: op
GAMEMODE_NAME.limits.admin.limits:
description: Player can use admin limits command
default: op
Full permissions are listed here.
Placeholders#
Tip
[gamemode] is a prefix that differs depending on the gamemode you are running.
The prefix is the lowercased name of the gamemode, i.e. if you are using BSkyBlock, the prefix is bskyblock.
Properly translated placeholders for each gamemode can be found:
Please read the main Placeholders page.
| Placeholder | Description | Limits version |
|---|---|---|
%Limits_[gamemode]_island_[material]_count% | Current count of material (lower cased) on the island | 1.17.2 |
%Limits_[gamemode]_island_[material]_limit% | The limit of material (lower cased) for the island | 1.17.2 |
Translations#
Help us keep translations accurate
Most BentoBox and addon translations are now generated with the help of AI, so the bulk of the work is already done — but AI is not perfect. What we really need from the community is error reports and corrections.
- Spotted a mistake or awkward phrasing? Open an issue or a PR on the relevant repository at bentobox.world (a short link to our GitHub org), or tell us on Discord.
- Want to add a brand-new language? Open a PR adding a new locale file to
src/main/resources/locales/in the relevant repo, or ask on Discord and we'll get you started.
| Language | Language code | Progress |
|---|---|---|
| English (United States) | en-US | 100% (Default) |
| Chinese, China | zh-CN | 91% |
| Chinese, Taiwan | zh-TW | 91% |
| Croatian | hr | 91% |
| Czech | cs | 91% |
| Dutch | nl | 91% |
| French | fr | 91% |
| German | de | 91% |
| Hungarian | hu | 91% |
| Indonesian | id | 91% |
| Italian | it | 91% |
| Japanese | ja | 91% |
| Korean | ko | 91% |
| Latvian | lv | 91% |
| Polish | pl | 91% |
| Portuguese | pt | 91% |
| Romanian | ro | 91% |
| Spanish | es | 91% |
| Turkish | tr | 91% |
| Ukrainian | uk | 91% |
| Vietnamese | vi | 91% |
Items that cannot be limited#
Some items cannot be limited (right now). The reasons are usually because there are too many ways to remove the item without it being tracked. If you are a programmer and can work out how to fix these, then please submit a PR!
- Primed TNT
- Evoker Fangs
- Llama Spit
- Dragon Fireball
- Area Effect Cloud
- Ender signal
- Small fireball
- Fireball
- Thrown Exp Bottle
- Shulker Bullet
- Wither Skull
- Tridents
- Arrows
- Spectral Arrows
- Snowballs
- Eggs
- Leashes
- Ender crystals
- Ender pearls
- Ender dragon
- Item frames
- Paintings
Changelog#
What's new in v1.28.0 — Java 21 required
Released: 2026-04-01
- Shulker duplication farms properly limited on Paper. Uses Paper's
ShulkerDuplicateEventto enforce limits before duplication occurs, fixing a bypass where shulkers teleported outside the island before the limit check. - Copper chest limits can no longer be bypassed. All copper chest variants (oxidized, waxed, scraped, golem-created) are now normalized to a single tracked material. Block state transitions are properly counted.
- Invalid config entries handled gracefully. Malformed namespaced keys, non-block materials, and uncountable materials (lava, water, air) in
blocklimitsconfig now produce clear warning messages instead of NPEs. - 🔺 Java 21 is now required (previously Java 17). Ensure your server runs Java 21 before upgrading.
- Bumped Spigot target to 1.21.11.
What's new in v1.28.1
Released: 2026-04-07
Hotfix for two regressions in 1.28.0:
- Existing databases load again. In 1.28.0 the
IslandBlockCountmap fields changed fromMap<Material, Integer>toMap<NamespacedKey, Integer>, breaking reads of pre-1.28.0 JSON files. A backwards-compatible GsonTypeAdapternow reads legacy enum names, namespaced strings, and the complex array form. No manual migration required — old files load as-is. - Block names in the limits GUI are readable again. Items were showing as
Minecraft:hopperdue to incorrect key formatting.