Sueta

Inventory Switcher

1.19.3

Separate inventories per game mode world and per island if players have more than one. Players keep different items, XP, advancements, and gear for each BentoBox game.

·Plugin
  1. 1.19.3latestAug 4, 2026
    ## New in this release ⚙️ Per-world money is now off by default.* InvSwitcher no longer registers itself as the Vault economy unless you opt in. Servers that want a separate balance per world can enable it with options.money: true in config.yml. Nothing else about the feature has changed.
    ⚙️ Existing configs are not rewritten. This new default only applies to fresh installs. If your config.yml already contains options.money: true and you do not want InvSwitcher to manage money, set it to false and restart.
    ## Compatibility ✔️ BentoBox 3.17.0 ✔️ Paper Minecraft 1.21.5 – 26.1.2 ✔️ Java 21 ## Upgrading 1. Take backups of your server, for safety 2. Download this jar and put it in your addons folder - delete the old one 3. Restart the server 4. You should be good to go! ## Legend * ⚙️ config options have been removed, renamed, or added ## What's Changed * ⚙️ Disable per-world money by default by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/65 Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.19…
    204 downloads
  2. 1.19.2Aug 4, 2026
    ## 🎁 What's new 1.19.2 fixes a data-loss bug affecting players who were online when the server stopped. Anything they did since their last world change — mined, traded, built up a hotbar — was lost, and on their next login the stale snapshot was written back over their real inventory. It looked like a rollback to whenever they last switched worlds. Players who had logged out normally before the shutdown were never affected. Also in this release: the per-world economy commands now actually work for normal players, four game mode worlds that were missing from the default config have been added, and the README gained a section on the disappearing-items problem caused by running a second inventory manager alongside InvSwitcher. ## ✨ Highlights ### 🐛 Inventories no longer roll back for players online at shutdown (#63) - On shutdown InvSwitcher saves every player still online. BentoBox closes its database immediately after addons are disabled, and players are only kicked afterwards, so the asynchronous write issued from saveOnShutdown() lost that race and was silently dropped. - The PlayerQuitEvent that would normally have saved those players fired after the database was already closed, so there was no second chance to persist. - Everything an online player did since their last world change was therefore lost — and because the addon re-applies the stored inventory on login, the stale snapshot then overwrote whatever they really had. - Players who logged out before the server stopped were unaffected: their quit save ran while the database was still open. - Shutdown saves are now synchronous, on both the normal and the statistics save paths. Regular in-game saves stay asynchronous, so nothing new runs on the main thread during play. ### 💰 Economy commands work for normal players (#63) - /<gamemode> balance and /<gamemode> pay failed with a permission error for every player who was not an operator. - The commands set permissions such as invswitcher.balance, which BentoBox prefixes with the parent game mode's permission prefix — producing, for example, bskyblock.invswitcher.balance. But addon.yml had no permissions: section, so those nodes were never registered with a default, and an undeclared node is denied to everyone but ops. - The nodes are now declared using BentoBox's [gamemode] placeholder, which expands into every game mode's prefix. User commands default to true, admin eco commands to op. - This only affects servers running the per-world economy — the commands are still only registered when options.money is enabled and Vault is installed. ### ⚙️ Missing game mode worlds added to the default config (#61) - skygrid-world, raft_world, brix_world and parkour_world were absent from the shipped worlds: list. - On a fresh install InvSwitcher silently did not manage those worlds, and a world that is never hooked produces no log line — so the gap stayed invisible until items started leaking between worlds. - Existing configs are not rewritten. If you already run any of these game modes, add the entries to your config.yml by hand. ### 📄 Do not run two inventory managers (#60) - New README section on the most common support case: InvSwitcher running alongside Multiverse-Inventories, PerWorldInventory or MultiInv. Both plugins save and restore the player on every world change and overwrite each other's data, and the symptom is disappearing items with nothing in the console. - Covers the Multiverse-Inventories bypass permission (mvinv.bypass.world.<world>) and the two things that commonly mislead admins: leaving BentoBox worlds out of every inventory group does not help, and /mv remove <world> is undone on the next restart. ### 🏗️ Build and CI (#63, #62, #59) - JaCoCo updated 0.8.12 → 0.8.15. 0.8.12 cannot read class file major version 69, so coverage instrumentation failed with Unsupported class file major version 69 on the JDK 25 CI agent. - The pinned publish-platforms.yml reusable workflow was bumped twice, most recently to pick up the multipart-JSON fix. ## ⚙️ Compatibility ✔️ BentoBox 3.17.0 ✔️ Paper Minecraft 1.21.5 – 26.1.2 ✔️ Java 21 ## 🔺 Updating — important notes ⚙️ New default worlds are not added to an existing config. The four worlds above are only present on a fresh install. If you run SkyGrid, Raft, Brix or Parkour, open your InvSwitcher/config.yml and add the relevant entries to the worlds: list, then restart. InvSwitcher logs the worlds it hooks into on startup — check that list to confirm. 🔺 New permission nodes. [gamemode].invswitcher.balance and [gamemode].invswitcher.pay are registered with a default of true, so most servers need to do nothing. If you use a permissions plugin that denies unlisted nodes, grant these to your default group. The admin nodes ([gamemode].invswitcher.admin.eco and its balance, give, take and set children) default to op. 🔺 If players were reporting rollbacks after restarts, they should stop after this update. Only players online at the moment the server stopped were affected. Data already lost cannot be recovered — those writes never reached the database. Take a backup before updating, as always. ## 📥 How to update 1. Take backups of your server, for safety. 2. Stop the server. 3. Drop the new InvSwitcher jar into the addons folder and remove the old one. 4. If you run SkyGrid, Raft, Brix or Parkour, add those worlds to your config.yml (see above). 5. Restart the server. 6. You should be good to go! ## Legend * ⚙️ config options have been removed, renamed, or added * 🔺 special attention needed ## What's Changed * 🔺 Register economy command permissions and save synchronously on shutdown by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/63 * ⚙️ Add missing game mode worlds to the default config by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/61 * 📄 Warn against running a second inventory manager by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/60 * 🏗️ Bump publish-platforms pin to the multipart-JSON fix by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/62 * 🏗️ Bump pinned publish-platforms.yml to ca2dcd1 by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/59 Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.19…
    14 downloads
  3. 1.19.1Jul 2, 2026
    ## 🎁 What's new 1.19.1 is a bug-fix release that resolves a death-screen softlock for players using per-island health. ## ✨ Highlights ### 🐛 Fixed per-island health death loop (#56) With per-island health enabled, a player who owned more than one island could get trapped in an endless respawn/death screen after dying. When their state was captured mid-death it recorded a health of 0; loading that value back into the player on the death island applied setHealth(0), killing them again the instant the world loaded. InvSwitcher now never applies a fatal stored health to a live player — a stored value of 0 (only ever produced mid-death) restores full health instead, matching vanilla respawn behaviour. ## ⚙️ Compatibility ✔️ BentoBox 3.17.0 ✔️ Paper Minecraft 1.21.5 – 26.1.2 ✔️ Java 21 ## 📥 How to update 1. Take backups of your server, for safety. 2. Stop the server. 3. Drop the new InvSwitcher jar into the addons folder and remove the old one. 4. Restart the server. 5. You should be good to go! ## What's Changed * 🐛 Fix per-island health death loop on respawn by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/57 Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.19…
    74 downloads
  4. 1.19.0Jun 21, 2026
    ## 🎁 What's new 1.19.0 is a follow-up to the 1.18.0 per-world economy release. It fixes two issues that stopped the new economy from working cleanly in a common setup. InvSwitcher now functions as a true standalone economy — you no longer need a separate economy plugin such as EssentialsX for it to take effect — and admin economy commands now report the correct balance for offline players instead of a stale value. ## ✨ Highlights ### 🐛 Standalone economy now works on its own InvSwitcher registers its own per-world Vault economy, but BentoBox hooks Vault during its early startup, before addons enable. When InvSwitcher was the only economy on the server, that early hook found nothing and was discarded, so BentoBox's getVault() stayed empty — and economy-dependent addons such as Bank disabled themselves with "Vault is required" even though a working per-world economy was present. InvSwitcher now registers a fresh Vault hook with BentoBox once its provider is live, so it works as the server's only economy.
    Companion framework PRs harden this further: [BentoBox #2995](https://github.com/BentoBoxWorld/BentoBox/pull/2995) retries the Vault hook after addons enable, and [Bank #67](https://github.com/BentoBoxWorld/Bank/pull/67) retries before disabling.
    ### 🐛 Correct balance reported for offline economy transactions Admin eco give, eco set, and eco take on an offline player reported a stale balance — for example "New balance: 0.00" right after giving 2,000. The money was always stored correctly, but the confirmation message re-read the balance from the database before the asynchronous save had flushed, returning the pre-transaction value. The commands now report the authoritative balance returned by the transaction itself. This release also hardens the underlying offline read-after-write path: offline saves are tracked while in flight so two rapid sequential transactions on the same offline player can no longer load independent stale copies and lose an update — without blocking the main thread or caching offline players indefinitely. ## ⚙️ Compatibility ✔️ BentoBox 3.17.0 ✔️ Paper Minecraft 1.21.5 – 26.1.2 ✔️ Java 21 ## 📥 How to update 1. Take backups of your server, for safety. 2. Stop the server. 3. Drop the new InvSwitcher jar into the addons folder and remove the old one. 4. Restart the server. 5. You should be good to go! ## What's Changed * 🐛 Register a fresh Vault hook so InvSwitcher works as a standalone economy by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/commit/d929649 * 🐛 Report offline economy balances correctly and harden offline saves by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/commit/a15c645 * Add MC 26.1.2 to Modrinth game-versions by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/52 Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.18…
    32 downloads
  5. 1.18.0May 31, 2026
    ## Release Highlights 🔺⚙️🔡 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. ⚙️ InvSwitcher is the economy — it registers itself as the Vault economy provider, so shop sales, `/pay`, jobs and other plugins all credit and debit the correct world's* balance — even when the player is offline or in a different world. 🔡 New commands & placeholders* — per-game-mode balance, pay, and admin eco give/take/set/balance, plus balance placeholders, translated into every language BentoBox ships. 🐛 Two inventory/XP fixes* — advancements no longer inflate XP on world switch, and BentoBox island resets no longer wipe the wrong world's inventory. ### Compatibility ✔️ BentoBox 3.17.0 ✔️ Paper Minecraft 1.21.5 – 26.1.2 ✔️ Java 21 ### Upgrading 1. As always, take backups just in case. (Make a copy of everything!) 2. Stop the server. 3. Update BentoBox to 3.17.0 — this release requires it. 4. Replace the InvSwitcher jar with this one. 5. If you want per-world money, install Vault (an economy plugin such as EssentialsX is optional) and leave options.money: true in config.yml. 6. Restart the server. 7. You should be good to go!
    🔺 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. If you run the Bank addon, island wallets become per-world too. On first entry to a managed world a player's existing balance is imported once (configurable via economy.import-existing-balances). Vault is required for money; an economy plugin is optional — InvSwitcher can be the only economy.
    ⚙️ New config: options.money, options.islands.money, and an economy: block (starting balance, currency names, fractional digits, import toggle, delegate toggle, debug). Existing configs keep working; the new keys are added with safe defaults.
    🔡 Locale note: a new English reference locale and 22 translated locale files have been added for the economy commands.
    ### Legend - 🔡 locale files may need to be regenerated or updated. - ⚙️ config options have been added. - 🔺 special attention needed. --- ## New Features ### 🔺⚙️🔡 Per-world economy InvSwitcher can now keep a separate money balance for each switched world, just as it does for inventories. With options.money enabled it registers itself as the Vault economy provider at the highest priority and routes every transaction to the balance of the world it belongs to. Because balances live in InvSwitcher's own data store, credits and debits land in the right world even when the target player is offline or standing somewhere else — fixing the classic "shop sale crosses worlds" problem. Worlds InvSwitcher does not manage are delegated to the previously-registered economy (e.g. EssentialsX), and if no other economy is present InvSwitcher handles everything itself. Configuration lives under options.money / options.islands.money and a new economy: block (starting balance, currency name, fractional digits, one-time balance import, delegation toggle, and a debug switch). Per-world is the default; per-island wallets are opt-in. ### 🔡 Economy commands, tab completion and placeholders Each managed game mode gains its own economy commands, scoped to that game mode's world: balance and pay for players, and eco give/take/set/balance for admins (with online-player tab completion on the player argument). /bsb balance shows your BSkyBlock balance and /ai balance your AcidIsland balance, regardless of where you are standing. Two PlaceholderAPI placeholders per game mode (<gamemode>_invswitcher_balance and ..._balance_formatted) expose the per-world balance. All strings are translated into every language BentoBox ships. --- ## Bug Fixes ### Advancements no longer inflate experience on world switch [[PR #47](https://github.com/BentoBoxWorld/InvSwitcher/pull/47)] Some advancements reward XP when their criteria are restored. When switching worlds, re-awarding stored advancements could incorrectly increase the player's experience. InvSwitcher now saves and restores the exact XP around the advancement-restore step. ### Island resets no longer clear the wrong world's inventory [[PR #49](https://github.com/BentoBoxWorld/InvSwitcher/pull/49)] When BentoBox fired an inventory/ender-chest/health/hunger/XP reset for a player who was in a non-BentoBox world, the live player (in the wrong world) could be affected. InvSwitcher now intercepts these reset events and clears the stored data for the correct world instead. This release also handles the new money-reset event the same way. --- ## Other Improvements * Economy console output is gated behind economy.debug to keep logs clean. * Admin economy commands refactored to remove duplicated code (no behaviour change). * addon.yml API version updated to 3.17.0. --- ## What's Changed * 🔺⚙️🔡 Add per-world economy via a Vault provider, with commands, tab completion, placeholders and locales by @tastybento * 🐛 Fix XP increase when restoring advancements on world switch by @Copilot in https://github.com/BentoBoxWorld/InvSwitcher/pull/47 * Intercept BentoBox player reset events to protect non-BentoBox world inventories by @Copilot in https://github.com/BentoBoxWorld/InvSwitcher/pull/49 Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.17…
    61 downloads
  6. 1.17.1May 9, 2026
    ## New in this release Fixed inventory cleared when teleporting from a BentoBox world to a non-BentoBox world* — Previously, 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. Now all non-BentoBox worlds share a single storage key, so the player's inventory is always restored correctly. Includes automatic migration for data saved under old per-world keys. ## Compatibility ✔️ BentoBox API 2.7.1 ✔️ Minecraft 1.21.x ✔️ Java 21 ## Upgrading 1. Take backups of your server, for safety 2. Download this jar and put it in your addons folder - delete the old one 3. Restart the server 4. You should be good to go! ## What's Changed * Fix inventory cleared when teleporting from BentoBox world to non-BentoBox world by @tastybento * Fix CI: add forceJavacCompilerUse to compiler plugin config by @tastybento Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.17…
    55 downloads
  7. 1.17.0Inventory Switcher 1.17.0Apr 16, 2026

    Compatibility

    ✔️ BentoBox API 2.7.1 ✔️ Minecraft 1.21.x - NOTE this addon will not work with previous versions. If you need those, use an older version of the addon ✔️ Java 21

    Changelog

    Legend
    - 🔡 locale files may need to be regenerated or updated. - ⚙️ config options have been removed, renamed or added. - 🔺 special attention needed.

    What's Changed

    * ⚙️ Add per-island inventory switching (#40) by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/41 * Fix inventory lost when returning to original island by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/42 * Update build version from 1.16.0 to 1.17.0 by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/43 Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.16…
    57 downloads
  8. 1.15.1InvSwitcher 1.15.1Apr 14, 2025
    ⚙️ This release adds Poseidon into the config.yml as a default.

    Compatibility

    ✔️ BentoBox API 2.7.1 ✔️ Minecraft 1.21.x - NOTE this addon will not work with previous versions. If you need those, use an older version of the addon ✔️ Java 21

    Changelog

    Legend
    - 🔡 locale files may need to be regenerated or updated. - ⚙️ config options have been removed, renamed or added. - 🔺 special attention needed.

    What's Changed

    * ⚙️ 1.15.1 by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/38 Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.15…
    228 downloads
  9. 1.15.0InvSwitcher 1.15.0Dec 17, 2024

    Compatibility

    ✔️ BentoBox API 2.7.1 ✔️ Minecraft 1.21.3+ ✔️ Java 21

    Changelog

    Legend
    - 🔡 locale files may need to be regenerated or updated. - ⚙️ config options have been removed, renamed or added. - 🔺 special attention needed.

    What's Changed

    * Update to MC 1.21.3 by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/36 * Release 1.15.0 by @tastybento in https://github.com/BentoBoxWorld/InvSwitcher/pull/37 Full Changelog: https://github.com/BentoBoxWorld/InvSwitcher/compare/1.14…
    100 downloads
  10. 1.12.0InvSwitcher for BentoBox 1.12.0Feb 5, 2024
    Compatibility - ✔️ BentoBox 2.0.0 - ✔️ Minecraft 1.20.4 - ✔️ Java 17
    279 downloads

Similar projects

Plugin →