InvSwitcher#
InvSwitcher separates player inventories and other aspects between the various worlds.
Created and maintained by tastybento.
Useful links
The following are switched per-world:
- Inventory & armor
- Advancements
- Food level
- Experience
- Health
- Game mode (creative, survival, etc.)
- Money (per-world economy, added in 1.18.0)
How to use#
- Place the addon jar in the addons folder of the BentoBox plugin
- Restart the server
- Done!
Config.yml#
InvSwitcher has a config.yml with two main sections.
Worlds#
Lists the gamemode worlds that InvSwitcher operates in. Nether and End worlds are included automatically.
worlds:
- bskyblock_world
- acidisland_world
- oneblock_world
# ... etc.
Options#
Controls which player aspects are switched per-world and, optionally, per-island.
options:
inventory: true
health: true
food: true
advancements: true
gamemode: true # game mode (Survival/Creative/etc.)
experience: true
ender-chest: true
statistics: true
money: true # Per-world money (added in 1.18.0). Requires Vault.
# Per-island inventory switching (added in 1.17.0)
# The world-level option must also be true for the island option to take effect.
islands:
active: true # Enable per-island switching overall
inventory: true # Give players a different inventory on each island they own
health: false
food: false
advancements: false
gamemode: false
experience: false
ender-chest: true
statistics: false
money: false # Per-island wallets (added in 1.18.0). False = per-world money only.
Set islands.active: true to allow players who own more than one island to maintain separate inventories (and other aspects) per island, not just per gamemode world.
Economy#
Added in 1.18.0. When options.money is enabled, InvSwitcher registers itself as the Vault economy provider and keeps a separate balance for each switched world. Transactions (shop sales, /pay, jobs, etc.) are routed to the balance of the world they belong to — even when the target player is offline or in a different world. Worlds InvSwitcher does not manage are passed through to your existing economy plugin (e.g. EssentialsX); if no other economy is present, InvSwitcher handles every world itself.
Requires Vault
Per-world money requires the Vault plugin. A separate economy plugin is optional — InvSwitcher can be the only economy. If you run the Bank addon, island wallets become per-world too.
The economy: block is only used when options.money is true:
economy:
starting-balance: 0.0 # Balance given on first entry to a managed world (unless imported)
currency-name-singular: Dollar
currency-name-plural: Dollars
fractional-digits: 2 # Digits after the decimal point
import-existing-balances: true # Import each player's existing balance once, on first entry
delegate-unmanaged-worlds: true # Pass unmanaged worlds through to the previous economy plugin
debug: false # Log every transaction to the console (verbose)
Commands#
Added in 1.18.0. Each managed game mode gains its own economy commands, scoped to that game mode's world, so /bsb balance shows your BSkyBlock balance and /ai balance your AcidIsland balance regardless of where you are standing.
Tip
[player_command] and [admin_command] are the commands that differ depending on the gamemode you are running.
| Command | Description |
|---|---|
/[player_command] balance | Show your money balance for this world |
/[player_command] pay <player> <amount> | Pay another player |
| Command | Description |
|---|---|
/[admin_command] eco give <player> <amount> | Give money to a player |
/[admin_command] eco take <player> <amount> | Take money from a player |
/[admin_command] eco set <player> <amount> | Set a player's balance |
/[admin_command] eco balance <player> | Show a player's balance |
What it does#
This addon will give players a separate inventory, health, food level, advancements and experience for each gamemode installed and their corresponding worlds. It enables players to play each gamemode independently of each other.
An example#
BSkyBlock's Inventory, Health, Food level, Advancements and Experience are shared only between its corresponding worlds: - BSkyBlock_world - BSkyBlock_world_nether - BSkyBlock_world_the_end
Please note: - It is not limited to just BentoBox worlds. It applies to all worlds on the server (right now).
Changelog#
What's new in v1.17.0
Released: 2026-03-31
- Per-island inventory switching. Players who own more than one island can now maintain separate inventories (and optionally health, food, experience, ender-chest, statistics) per island within the same gamemode. Enable with
options.islands.active: trueand configure each sub-option. The world-level option must also betruefor its island counterpart to take effect. - ⚙️ New
options.islandssection inconfig.yml. - Bug fix: inventory was lost when returning to the original island.
What's new in v1.17.1
Released: 2026-05-09
- 🐛 Fixed inventory cleared when teleporting from a BentoBox world to a non-BentoBox world. When a player left a BentoBox game world (e.g. BSkyBlock) for a non-BentoBox world (e.g. the default overworld or a third-party plugin world), their "outside" inventory could be lost because each non-BentoBox world stored data under its own key. All non-BentoBox worlds now share a single storage key, so the player's inventory is always restored correctly. Includes automatic migration for data saved under the old per-world keys.
What's new in v1.18.0 — requires BentoBox 3.17.0
Released: 2026-05-31
- 🔺⚙️🔡 Per-world money. InvSwitcher can now give every game world its own separate economy, on top of the inventories, health, XP and stats it already switches. With
options.moneyenabled it registers itself as the Vault economy provider and routes every transaction to the correct world's balance — even when the player is offline or in a different world. - ⚙️ New config:
options.money,options.islands.money, and aneconomy:block (starting balance, currency names, fractional digits, import toggle, delegate toggle, debug). Existing configs keep working; the new keys are added with safe defaults. - 🔡 New commands & placeholders: per-game-mode
balanceandpayfor players, admineco give/take/set/balance, plus<gamemode>_invswitcher_balanceand<gamemode>_invswitcher_balance_formattedplaceholders, translated into every language BentoBox ships. - 🐛 Advancements no longer inflate experience on world switch.
- 🐛 BentoBox island resets no longer wipe the wrong world's inventory — InvSwitcher now clears the stored data for the correct world instead.
🔺 Requires BentoBox 3.17.0: InvSwitcher now listens to BentoBox's player-reset events (including the new money-reset event), which were introduced in 3.17.0. It will not load on older BentoBox versions.
🔺 Economy behaviour change: when options.money is enabled, InvSwitcher becomes the server's Vault economy provider. Worlds it does not manage are passed through to your existing economy (e.g. EssentialsX); managed worlds get their own per-world balance. Requires the Vault plugin.
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 | InvSwitcher version |
|---|---|---|
%[gamemode]_invswitcher_balance% | The player's money balance for this gamemode's world | 1.18.0 |
%[gamemode]_invswitcher_balance_formatted% | The player's money balance for this gamemode's world formatted with currency name | 1.18.0 |
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 | 100% |
| Chinese, Hong Kong | zh-HK | 100% |
| Croatian | hr | 100% |
| Czech | cs | 100% |
| Dutch | nl | 100% |
| French | fr | 100% |
| German | de | 100% |
| Hungarian | hu | 100% |
| Indonesian | id | 100% |
| Italian | it | 100% |
| Japanese | ja | 100% |
| Korean | ko | 100% |
| Latvian | lv | 100% |
| Polish | pl | 100% |
| Portuguese | pt | 100% |
| Portuguese, Brazil | pt-BR | 100% |
| Romanian | ro | 100% |
| Russian | ru | 100% |
| Spanish | es | 100% |
| Turkish | tr | 100% |
| Ukrainian | uk | 100% |
| Vietnamese | vi | 100% |