Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
yourShika Backpack's
A standalone, fully server-side backpack system for Paper/Spigot. Players need no client mod.
๐ฆ Description
yourShika Backpack's brings high-quality, dyeable backpacks with their own inventories to your survival server โ safe against dupe bugs, persistently stored and prepared for custom textures.
The plugin is inspired by Sophisticated Backpacks (GitHub), but is a completely standalone re-implementation. No code, no asset and no texture was taken from the mod. This is not a Forge/Fabric/NeoForge mod, but a Paper/Spigot plugin.
๐งฑ v1.3.0
- ๐งฑ Minecraft / Paper 26.2 support โ the plugin is now built against
paper-api:26.2.build.62-betaand runs on Paper 26.1.2 โ 26.2. No API breakage was needed: 26.2 still targets Java 25, and no 26.2-exclusive API is used, so the same jar works on both. - ๐ท๏ธ
api-versionupdated to'26.1.2'โ the old'1.21'declaration predates the newYY.D.Hversioning scheme.api-versionis the minimum server version, so26.1.2keeps 26.1.2 servers working while correctly declaring modern-scheme compatibility. - ๐งน Anvil rename future-proofed โ switched from the deprecated
AnvilInventory#getRenameText()(marked for removal) toAnvilView#getRenameText(). The build is now warning-free.
Note: Paper 26.2 currently only publishes alpha/beta builds (latest
26.2.build.62-beta); there is no-stable26.2 build yet. The API surface this plugin uses is unaffected.
๐ผ๏ธ v1.2.3
- ๐ผ๏ธ Restock & Feeding upgrades use their prepared Oraxen textures โ in v1.2.0
these two new upgrades were bound to made-up model IDs that collided with other
items, so with Oraxen active they showed the wrong texture. They now bind to the
bundled assets
ysbp_upgrade_restock(restock.png, CMD 2110) andysbp_upgrade_feeding(feeding.png, CMD 2137). The Auto-Restock upgrade is now simply called Restock. (config-version 11; fresh/merged configs pick this up โ a test server from v1.2.0โ1.2.2 should delete itsconfig.ymlto regenerate, or setfeedingCMD 2137 / renameauto_restockโrestockby hand.)
๐ต๐ฑ v1.2.2
- ๐ต๐ฑ Polish translation completed โ the Polish locale was missing 25 keys
(whole
rename,transfer,locate,assets,doctor,trashsections plus some help/error entries) that fell back to English. All three bundled locales (en,de,pl) are now at full key parity (102/102) โ no more English fallback for Polish players.
๐ v1.2.1
- ๐ All languages ready via config โ
en,deandplare now all extracted to the data folder on startup, so you can switchlanguage:to any of them and edit anymessages_<lang>.ymldirectly (previously only the active language and English were written out). - ๐ก๏ธ Translations survive updates โ on every start each bundled language file is
merged: new message keys are added while your own edits are kept untouched, so
upgrading the plugin never loses or overwrites your translations. Add your own
language by creating
messages_<code>.ymland settinglanguage:to that code.
โจ v1.2.0
New features & QoL
- โก Async storage cache โ backpack data now lives in an in-memory cache with
asynchronous, batched write-behind. Reads (open, page-flip, pickup, furnace
ticks,
%ysbp_*%placeholders) no longer hit the disk on the main thread, and writes are bundled off-thread. A full flush always runs on a clean shutdown. Tune the interval withstorage.flush-seconds(default 5). - ๐งท Config merge on update โ updating to a new config version now keeps your own settings and only adds the new keys/comments (a timestamped backup is still written), instead of overwriting the whole file.
- ๐งฒ Auto-Restock Upgrade (new) โ when a hotbar/inventory stack runs out, it is refilled from the backpack with the same item. Craft with Comparators + Chests around Upgrade Leather.
- ๐ Feeding Upgrade (new) โ automatically eats food from the backpack when you get hungry (with an eat sound). Craft with Hay Bales + Bread around Upgrade Leather.
- ๐ฆ Quick-Stack โ Shift-click the Info button to sweep all matching items from your inventory into the backpack. (Normal click still sorts.)
- ๐ Shift-click fills all pages โ shift-clicking items in now spreads them across every page of a multi-page backpack, not just the visible one.
- ๐ Last page remembered โ a multi-page backpack reopens on the page you last used.
- ๐
/bp statsโ total / placed / per-tier backpack counts and storage size. - ๐งน
/bp purge [dry|confirm]โ safely removes empty, orphaned backpack data (destroyed or churned empties). Non-empty data is never touched, so nothing an offline player still holds can be lost.
Bug fixes & hardening
- ๐ฉธ Soulbound dupe fixed โ a backpack no longer duplicates when another plugin sets
keepInventoryafter the death event starts; give-back is now loss-safe on disconnect. - ๐ด Off-hand swap (F) can no longer sneak a backpack into a mount inventory.
- ๐จ Creative protection now covers every sub-GUI (Upgrade / Furnace / Filter / Trash / XP).
- ๐พ Corruption resilience โ a single broken item no longer aborts loading the whole backpack; per-slot recovery keeps the rest.
- ๐ Deeper nesting check,
/bp list[Open] works for owners, recipe/achievement edits apply on/bp reload, and assorted null-safety fixes.
๐ v1.1.3
- ๐งฒ Magnet chat messages fixed โ
/bp magnet on|off(and the no-argument toggle) now correctly shows the โMagnet enabled/disabledโ confirmation instead of a โMissing message: magnet.on / magnet.offโ error. Cause:onandoffare reserved YAML booleans, so the keys were parsed asmagnet.true/magnet.falseand never resolved. The keys are now quoted in all message files (messages_de/en/pl.yml), so the fix applies to every language โ deleting a message file is not required.
โจ v1.1.2
- ๐งฒ Magnet toggle โ switch the magnet pull on/off per player with
/bp magnet on|off(no argument toggles). A short chat message confirms the new state; the setting also gates the Advanced Pickup vacuum. - ๐ซ One Magnet / one Pickup backpack at a time โ you can own many backpacks with these upgrades, but only one Magnet backpack and one Pickup backpack may be active in your inventory. Carrying more auto-disables that upgrade (dupe/behaviour safety) until only one remains, with a throttled action-bar notice.
- ๐งช Pickup filter โ the Pickup upgrade now has a filter menu (like the Compacting filter). Only the items you place there are pulled straight into the backpack. Matching is NBT-exact, so custom items / custom NBT can be whitelisted precisely. An empty filter picks up everything. Open it from the Pickup Filter button in the backpack menu.
๐ v1.1.1
- ๐ Textures update after
/oraxen reloadโ after redeploying assets and reloading Oraxen, freshly added/changed textures didn't apply to crafted, given or/bp infoitems (the plugin still served its cached item models) until you toggled the module off and on. The plugin now listens for Oraxen's reload event and auto-resyncs its canonical items, carried backpacks and placed models, so new textures apply immediately โ no module toggle needed. - ๐ง Placed models follow the module state โ disabling the Oraxen module (or removing Oraxen entirely) left placed backpack 3D models in the world, which would show missing textures once Oraxen is gone. Placed models now fall back to the vanilla look when the hook is off โ updated on toggle/reload for loaded ones and automatically when their chunks load.
โจ v1.1.0
- ๐ Soulbound Upgrade (new) โ a new functional upgrade with its own Oraxen
texture. A backpack with this upgrade stays with you when you die instead of
dropping, and you keep it after respawn. It is dupe-safe next to grave/deadbody
plugins: the death handler runs at
LOWESTpriority and removes soulbound backpacks from the death drops before grave plugins read them, and the backpack content lives server-side by ID (so even a stray copy shares the same storage). Craft it with a Totem of Undying + Soul Soil around Upgrade Leather. - ๐จ Carried backpack now uses your colors โ the carried/held Oraxen backpack
baked the tier color into its overlay layer (e.g. an Emerald backpack stayed
green and dyeing the accent didn't fully show). The overlay is now neutral
(tier-independent), so the body takes your main color (dyeable base) and the
accent variant colors the straps/pockets โ the same fix v1.0.9 shipped for placed
backpacks. (Resource-pack change โ run
/oraxen reloadafter updating; existing backpacks refresh automatically on open/join.)
๐ v1.0.9
- ๐จ Placed backpack now uses the main color โ the body of a placed Oraxen
backpack had the tier's default main color baked in (e.g. an Emerald backpack
stayed green) regardless of the chosen color. The body texture is now dyeable
(
tintindex 0+ neutral base), so the placed backpack body takes your main color while the accent variant still colors the frame/side parts. (Resource- pack change โ run/oraxen reloadafter updating.)
๐ v1.0.8
- ๐จ Accent color now updates when dyeing โ dyeing a backpack (or
/bp color) only re-tinted the main color and lore but kept the old Oraxen accent model, so the accent stayed at its previous color. The item is now fully refreshed so the accent texture switches to the new color too. - ๐ Existing backpacks get updated โ opening a backpack now also refreshes all other backpacks carried by the player, so previously dyed backpacks pull the corrected accent model (in addition to the existing refresh on join).
๐ v1.0.7
- ๐ฃ Achievement chat broadcast fixed โ unlocks are now announced in chat
reliably. Programmatically awarding an advancement only fired the toast (not the
chat line) on this version, so the broadcast is now sent by the plugin itself
(gated by
achievements.broadcast, default on).
๐ v1.0.6
- ๐ผ๏ธ Tab background fixed for MC 26.x โ newer versions resolve the background
via the texture-id convention (the client adds
textures/+.png). Even the classic full path renders as a missing texture there. The default is now the guaranteedminecraft:block/dirt. Changeable viaachievements.background(block/stone,block/netherrack, โฆ ornonefor no background).
๐ v1.0.5
- ๐ผ๏ธ Tab background configurable + new texture format โ it can be changed in the config without a new release if it shows up as missing texture.
- ๐ฃ Chat broadcast on by default โ unlocked achievements are now announced in
chat by default (
achievements.broadcast: true, respects theannounceAdvancementsgamerule). - ๐ณ Nicer menu โ achievements are now chained into themed branches (tiers, customization, placing, upgrades, stations) instead of one long column; tier achievements use the "goal" frame, hard ones the "challenge" frame.
๐ v1.0.4
- ๐ผ๏ธ Switched the tab background to a dedicated advancement background texture.
- ๐ Tab & all achievements visible โ the (invisible) root is granted to every player on join so the achievement tab appears and all achievements (greyed out until earned) are shown.
๐ v1.0.3
- ๐ ๏ธ Advancement datapack fix โ the
backgroundfield of the achievement tab must be a string; otherwise the advancements failed to load (Not a string: {...}). The tab and all achievements load cleanly now.
โจ v1.0.2
- ๐ Achievements are now real Minecraft advancements โ instead of a custom
command/menu they appear as their own tab ("yourShika Backpack's") in the
normal advancements screen (toast + progress handled by vanilla). The plugin
generates a small datapack automatically and loads it on first start. Still
configurable via
achievements.enabled/broadcast/disabled. - ๐งน
/bp achievementswas removed (replaced by the native integration).
โจ v1.0.1
- ๐ Achievements โ 28 achievements (title, description, icon). Unlocking gives a message + sound, optional server-wide announcement. Fully configurable.
- ๐ Pickup sound โ the Pickup upgrade plays a pickup sound when vacuuming items.
- ๐งฒ Magnet now pulls items over blocks instead of dragging them into the ground (a slight lift, nothing disappears anymore).
- ๐ ๏ธ Compacting recipe reworked โ it collided with the Iron upgrade before; now made from pistons + iron blocks (distinct and a bit harder).
- ๐ Everlasting more expensive โ now needs a Nether Star (Wither) + netherite + obsidian.
- ๐ Anvil protection โ upgrade items (Upgrade Leather, tier & function upgrades) can no longer be renamed in an anvil.
๐ v1.0.0 โ First stable release
The first official milestone. Contains all features of the 0.x line โ tiers & upgrade chain, dyeable backpacks, placeable backpacks with holograms, functional upgrades (Pickup, Magnet, Crafting/Smithing/Stonecutter, portable Furnace/Smoker/Blast Furnace with background operation, Compacting with filter, Ender-Link, Trash, Recall, Everlasting, XP Storage), dupe-safe storage, Oraxen assets incl. 3D models for placed backpacks, plus multi-language support (EN/DE/PL).
- ๐งช The XP Storage upgrade now has its own, style-matching item asset (experience bottle) for Oraxen.
- ๐ท๏ธ Tier upgrade keeps the name โ a custom backpack name (incl. colors) is kept when upgrading at the smithing table.
- โ Final review: assets, code and recipes checked; CI model check green.
โจ v0.9.1
- ๐ชช Hologram name rendered correctly โ placed backpacks with gradient/hex/ color-code names now show the name properly (instead of e.g. "<#aabbcc>โฆ").
- ๐งช New XP Storage upgrade โ store your experience in the backpack and withdraw it any time. Own button in the control bar with a GUI (deposit/withdraw, 1 level or all) and a live display of the stored XP.
โจ v0.9.0
- ๐ท๏ธ Rename in the anvil โ backpacks can be renamed directly in an anvil,
with full color support: hex (
&#RRGGBB/<#RRGGBB>), gradient/rainbow (<gradient:#a:#b>โฆ) and Minecraft color codes (&a,&lโฆ). - ๐งท Name persists when placed โ a placed and then picked-up backpack no longer loses its custom name (the name is stored server-side).
- ๐ฅ Portable furnace runs in the background โ smelting stations keep working even when the menu is closed. The furnace icon in the backpack shows a live-updating lore: what is being smelted, fuel type/amount and how many items will be smelted in total.
- ๐งฑ Compacting chat message โ on close the backpack reports what was compacted (e.g. "3x Diamond Block").
- ๐ค
/bp recallmenu now shows the owner of each placed backpack. - ๐๏ธ Trash protects backpacks โ backpacks (also inside shulkers/bundles) can no longer be put into the trash.
- ๐๏ธ Station limit โ at most 5 station upgrades fit per backpack so all icons in the control bar stay visible and don't fight for space.
โจ v0.8.0
Commands & management
- ๐ท๏ธ
/bp rename <name|reset>โ rename backpacks (configrename.allow-players, admins always) - ๐ฑ๏ธ Clickable
/bp listโ[Open][Copy][TP] - ๐
/bp locate [player|ID]+/bp goto <ID>โ locate placed backpacks & teleport to them - ๐
/bp transfer <ID> <player>โ change owner - ๐ฏ
/bp recallopens a selection menu when you have several backpacks (otherwise direct) - ๐งฐ
/bp assets <status|redeploy>&/bp doctor(diagnostics) - ๐ Admin audit log (
audit.log): give/openid/transfer/recall/pickup - ๐ข More PlaceholderAPI:
placed,used_slots,free_slots,tiers,count_<tier>
GUI
- ๐ Info item shows used/free slots
- โฎ๏ธ Shift-click the paging arrows jumps to the first/last page
Placed backpacks
- ๐งญ Rotate to face the player; optional hologram (name + owner); particles + sound when placing/picking up
Upgrades
- ๐๏ธ Trash with delete confirmation (
trash.confirm) โ closing without a click returns the items - ๐งฑ Compacting preview (chat) + presets (ores/farm/redstone/misc)
- ๐งฒ Magnet: throttle against lag + respect for item owner & pickup delay
Robustness & CI
- ๐ก๏ธ Deep-nesting protection: backpacks in shulkers/bundles are detected & blocked
- โป๏ธ Auto-recovery: save on page change + crash detection
- โ Recipe validation with clear config error messages
- ๐ค CI asset check: prevents one-sided faces in Oraxen models
โจ v0.7.2 (Placed Backpack Geometry)
- ๐ Placed Oraxen backpacks now use real cuboid geometry for flap, pocket, side pouches, straps and buckle instead of one-sided faces, so they no longer disappear from certain viewing angles.
- ๐ฆ Oraxen asset bundle bumped to version 6 so managed model files update automatically while custom server assets stay protected by the deployer.
โจ v0.7.1 (Portable Stations, Filter, configurable recipes)
- ๐ Items auto-update on join/update: existing backpacks and upgrade items are brought to the latest state when a player joins (and on reload), so nothing breaks or looks stale after a plugin update.
- ๐ฅ Portable Furnace / Blast Furnace / Smoker: the Smelting/Blasting/Smoking upgrade now adds a GUI station (icon in the backpack) that smelts like a real furnace. State is saved in the backpack โ logout, crash or server stop never lose items, and progress persists. Only one furnace-type upgrade per backpack.
- ๐งฑ Compacting Filter: the Compacting upgrade gets a filter GUI (icon in the backpack) where you pick which items get compacted on close (empty = everything).
- ๐ซ Upgrade slots accept only function upgrades โ Upgrade Leather and tier upgrades (Iron-, Netherite-Upgrade โฆ) can no longer be placed there.
- ๐ Upgrades button moved to the bottom-left corner of the backpack menu.
- ๐ ๏ธ Configurable recipes: function-upgrade recipes (incl. the advanced โ needs
its base upgrade rule), the tier-upgrade crafting shape and the Smithing
recipes (template material, Netherite base/addition) are all editable in
config.yml(config version 7, auto-migrates). - ๐
/bp info: recipe arrows are now justโ/โ; advanced upgrades show the required base upgrade as theXingredient.
๐ v0.6.1
- Horse-armor block hardened: a backpack can no longer be put on any mount โ horses, zombie/skeleton horses, donkeys, mules, llamas, camels โ via interaction, inventory, or dispenser.
- Smelting status is shown in the backpack's Info item: how much is left to smelt, how many items the fuel can smelt, and an estimated time.
- Backpack Info item is now English.
โจ v0.6.0 (more upgrades, languages, /bp give all)
- ๐ Languages: bundled English, German, Polish (
messages_en/de/pl.yml). Message files auto-update on plugin updates (new keys are merged in, your edits are kept). - ๐
/bp givenow gives everything โ backpacks, Upgrade Leather, tier upgrades (upgrade_copperโฆ) and every function upgrade (pickup,magnetโฆ). - ๐งฉ New functional upgrades: Ender-Link, Compacting, Smelting/Blasting/Smoking, Recall, Trash.
- ๐ Advanced upgrades require their base to craft (e.g. Advanced Pickup needs a Pickup Upgrade).
- ๐งน PacketEvents removed โ placement uses vanilla display entities and never needed it.
- ๐ผ๏ธ Oraxen textures now deploy for all items (decoupled from backups).
โจ v0.5.0 (English + Functional Upgrades)
- ๐ Plugin is now English by default (
language: en,messages_en.yml). - ๐งฉ Functional upgrades you craft and install into a backpack: Pickup/Advanced
Pickup, Magnet/Advanced Magnet, Crafting/Stonecutter/Smithing, Everlasting. Each
has a fair recipe (
'U'= Upgrade Leather) and appears in/bp info. - ๐
/bp infofully English; smithing view reworked. - ๐๏ธ Config version 5 (auto-migrates; old file backed up).
๐ v0.4.0 (Stability & Modules)
- Vanilla-like Oraxen defaults: backpack textures use the bundled reference as their style base. All pack PNGs are 64x64, upscaled from real 16x16 pixel art.
- No more freeze/crash when toggling modules. Recipes are now registered idempotently and not touched when toggling.
- Oraxen off = back to normal horse armor. Disabling the Oraxen module removes the custom model cleanly; enabling auto-updates online players' backpacks.
- Module/info GUIs: items can no longer be taken/moved.
/bp info: smithing recipes shown more clearly with English slot labels.
โจ v0.3.5
- ๐จ Real second accent color via Oraxen variants (e.g.
ysbp_leather_backpack_accent_red). The main color stays realLEATHER_HORSE_ARMORtinting. - ๐งฉ Oraxen YAMLs with 178 unique provider/CustomModelData values.
- ๐ฆ Versioned asset deployer: updates old defaults and creates backups under
AssetBackups/. - ๐ Oraxen item YAMLs are backed up before overwriting.
- โ๏ธ Smithing fix: tier & color are written on
SmithItemEvent, not in the preview.
โจ v0.3.0
- ๐ผ๏ธ Oraxen textures integrated: when the Oraxen module is active, the plugin
ships bundled textures & item definitions automatically. Just
/oraxen reload. - ๐
/bp infoโ recipe browser: a GUI with all backpacks and upgrade items; clicking an item shows its crafting/smithing recipe. - ๐ Auto-update of existing backpacks: name, lore and model are brought up to date on each open โ without changing ID, color, owner or contents.
- ๐ Upgrade items abuse-proof: Upgrade Leather and tier upgrades can only be used in the backpack recipes.
- ๐จ Removed the duplicate color display; polished names & lore.
- ๐ Dyeing is reliably retrievable again.
๐ง v0.2.2
- Color bug fixed: dyed backpacks keep their color even after placing & picking up (previously reverted to default).
- Upgrade colors: default colors are raised to the new tier on upgrade, individually dyed backpacks keep their color.
- Hooks auto-on: external hooks activate themselves once the respective plugin is installed.
- Owner: every backpack remembers who crafted it. Optional
security.owner-only: trueโ only owner (or admins) may open/pick up. Default: off. - Upgrade items prepared for custom textures: CustomModelData (2000โ2006) and
optional
item_modelper upgrade, configurable. - Netherite upgrade is created in the smithing table.
๐ง v0.2.1 (Bugfixes)
- Config auto-update: on structure changes
config.ymlupdates itself (old file backed up asconfig-backup-*.yml). - Only leather is directly craftable โ all higher tiers come from the upgrade chain (smithing).
- ID appears immediately in the lore on crafting.
- Netherite upgrade is now created in the smithing table.
- Upgrade Leather is rejected in the template slot of the upgrade.
- Dyeing: the result can now reliably be taken out (lands in the inventory).
๐ v0.2.0
- ๐ Update-safe storage (MUST): contents are stored in the versioned Paper byte format (with Minecraft data version + DataFixer). Items โ including arbitrary custom NBT/components โ survive server and plugin updates intact.
- ๐งต Upgrade chain: Leather โ Copper โ Iron โ Gold โ Diamond โ Emerald โ Netherite. The smithing-table upgrade keeps ID, contents and color.
- ๐งฐ Upgrade GUI: a dedicated inventory per backpack (button in the backpack GUI).
- ๐จ Dyeing in the crafting table: backpack in the center, dyes in the left column = main color, right column = accent color (mixed to hex).
- ๐ฆ Placeable backpacks: shift-right-click the ground to place (ItemDisplay + Interaction), right-click opens, sneak-right-click picks up.
- ๐ด Protection: backpacks cannot be used as horse armor and cannot be moved by hoppers/automation.
- ๐
/bp update: downloads the latest release JAR from GitHub. - ๐งช Module GUI:
/bp modulestoggles hooks live by clicking. - ๐ Recipe Book + JEI/REI/EMI: all real recipes are unlocked and visible.
- โ Custom-item hooks: Oraxen only (Nexo & ItemsAdder removed).
๐งฑ Minecraft/Paper version
- Target platform: Paper (also runs on Spigot, with possibly limited MiniMessage visuals)
- Built against:
io.papermc.paper:paper-api:26.2.build.62-beta - Runs on: Paper 26.1.2 โ 26.2 (
api-version: '26.1.2'; no 26.2-exclusive API is used) - Java: 25 required (Minecraft 26.x requires Java 25, Microsoft OpenJDK 25)
- Version scheme: since the new
YY.D.Hscheme, the Paper API uses<version>.build.<n>-<stage>instead of-R0.1-SNAPSHOT. The target version is easily changed via thepaper.versionproperty inpom.xml.
โจ Features
- โ Backpacks as normal items with a unique, forgery-proof ID (PDC)
- โ Own inventory per backpack โ same items, different contents
- โ Persistent storage (SQLite or YAML)
- โ Safe GUI with comprehensive dupe/loss protection
- โ Double-chest layout (54 slots) โ only enabled fields are usable
- โ Bigger tiers = more space, with automatic paging beyond one page
- โ 6 backpack tiers (Leather, Copper, Iron, Gold, Diamond, Netherite) + Emerald
- โ
Truly dyeable via dyeable leather items (DyeColor or hex
#RRGGBB) โ color visible even without a resource pack - โ Crafting recipes (configurable, can be enabled/disabled)
- โ Open by right-click (main & off hand) and command
- โ Admin give command and open by ID
- โ
CustomModelData +
item_modelcomponent per tier โ prepared for resource packs - โ
Modular hook system โ live status via
/bp modules - โ
Configurable messages (MiniMessage +
&codes), bundled EN/DE/PL - โ Protection against backpacks-in-backpacks
- โ No Vault (deliberately removed)
๐ ๏ธ Installation
- Download the plugin JAR from the Releases
(
yourShika-Backpacks-1.3.0.jar). - Put it into the
plugins/folder of your Paper 26.1.2 โ 26.2 (Java 25) server. - Start the server โ the data folder
plugins/yourShika Backpack's/is created automatically withconfig.yml, the message files and the database. - Optionally adjust
config.ymland run/bp reload.
โจ๏ธ Commands
Main command: /backpack ยท aliases: /bp, /ybackpack, /ysbackpack
| Command | Description |
|---|---|
/bp help |
Show help |
/bp open |
Open the backpack in your hand |
/bp info |
View backpacks, upgrades & recipes in a GUI |
/bp list [player] |
List backpacks (clickable: Open/Copy/TP) |
/bp rename <name|reset> |
Rename the backpack in your hand |
/bp recall |
Recall placed backpacks (needs Recall upgrade; selection menu for several) |
/bp locate [player|ID] |
Show coordinates of placed backpacks |
/bp goto <ID> |
Teleport to a placed backpack |
/bp transfer <ID> <player> |
Change a backpack's owner (admin) |
/bp color <color> [accent] |
Dye a backpack (DyeColor name or #RRGGBB) โ admin |
/bp give <player> <tier> [amount] [color] [accent] |
Give a backpack (admin) |
/bp openid <ID> |
Open a backpack by ID (admin) |
/bp modules |
Toggle external modules via GUI (admin) |
/bp assets <status|redeploy> |
Check / redeploy Oraxen assets (admin) |
/bp doctor |
Diagnostics (Oraxen, config, DB, assets, versions) (admin) |
/bp stats |
Backpack statistics: total, placed, per tier, storage size (admin) |
/bp purge [dry|confirm] |
Remove empty, orphaned backpack data โ safe, non-empty data untouched (admin) |
/bp update |
Download the latest version from GitHub (admin, restart needed) |
/bp reload |
Reload the configuration (admin) |
/bp version |
Plugin info |
Dyeing for players works via the crafting table (see below); the
/bp colorcommand is deliberately an admin function.
Achievements are real Minecraft advancements and appear as their own tab in the advancements screen โ there is no command for them.
๐ Permissions
| Permission | Description | Default |
|---|---|---|
yourshika.backpack.use |
Use backpacks | all |
yourshika.backpack.open |
Open your own backpack | all |
yourshika.backpack.list |
List your own backpacks | all |
yourshika.backpack.place |
Place/pick up backpacks | all |
yourshika.backpack.rename |
Rename backpacks | all |
yourshika.backpack.craft.<tier> |
Craft a specific tier | all |
yourshika.backpack.admin.color |
Dye a backpack via command | OP |
yourshika.backpack.admin.give |
Give backpacks | OP |
yourshika.backpack.admin.openid |
Open by ID | OP |
yourshika.backpack.admin.openother |
Open others' backpacks | OP |
yourshika.backpack.admin.listother |
List others' backpacks | OP |
yourshika.backpack.admin.modules |
Open/toggle module GUI | OP |
yourshika.backpack.admin.update |
Self-updater | OP |
yourshika.backpack.admin.reload |
Reload | OP |
yourshika.backpack.admin.debug |
Debug | OP |
๐ Backpacks, tiers, size & paging
Each backpack opens as a double chest (54 slots). The bottom row (9 slots) is the control bar (paging, info, upgrades). Of the remaining 45 slots only as many are enabled as the tier allows โ the rest is locked. Tiers with more than 45 storage slots are paged automatically (โ / โถ).
| Tier | Storage slots | Pages* | Upgrade slots | CustomModelData |
|---|---|---|---|---|
| Leather | 9 | 1 | 1 | 1001 |
| Copper | 18 | 1 | 2 | 1002 |
| Iron | 27 | 1 | 3 | 1003 |
| Gold | 45 | 1 | 4 | 1004 |
| Diamond | 54 | 2 | 5 | 1005 |
| Emerald | 81 | 2 | 6 | 1006 |
| Netherite | 108 | 3 | 6 | 1007 |
* At 45 usable slots per page (gui.storage-slots-per-page).
The upgrade slots are usable as their own inventory via the Upgrades button in
the backpack GUI.
Identity & security
Every backpack carries its ID, tier and colors in the PersistentDataContainer โ not in name or lore. This makes backpacks not forgeable by renaming. Contents are never stored in the item, but server-side bound to the ID. That is the core of the dupe protection: a copied item shares the same inventory. When paging, only the visible page is synced between inventory and buffer โ the operation stays atomic and dupe-safe.
Colors (truly dyeable)
Backpacks are based on a dyeable leather item (LEATHER_HORSE_ARMOR) by
default. The main color tints the item for real โ visible even without a
resource pack โ and is changeable via /bp color. Both DyeColor names
(BROWN, CYAN, โฆ) and hex values (#A0703C) are allowed.
๐จ CustomModelData, item_model & resource packs
- Each tier has its own CustomModelData (1001โ1007) and can optionally set a
modern
item_modelcomponent (item-model: "namespace:path"). - Without a resource pack backpacks work as normal (dyed) leather items.
- With a resource pack they look like custom items.
- External item systems (Oraxen) are optional. The default is always the built-in vanilla provider.
Oraxen assets
Under src/main/resources/oraxen/ there is a ready-made Oraxen bundle with 64x64
PNGs in vanilla style for all backpack tiers, tier-upgrade items and many prepared
function upgrades. Real backpacks are still created via plugin crafting, smithing or
/bp give so that ID, contents, owner and color are preserved.
๐งฐ Crafting, upgrade chain & dyeing
Only the leather backpack is crafted directly (8ร leather around a chest). All higher tiers come from the upgrade chain in the smithing table. Freshly crafted backpacks show their ID immediately in the lore.
Upgrade chain โ Leather โ Copper โ Iron โ Gold โ Diamond โ Emerald โ Netherite:
- Craft Upgrade Leather: 1ร leather (center) + 4ร string (crafting table).
- Craft a tier upgrade: Upgrade Leather + 8ร tier material (e.g. copper) โ Copper Upgrade (crafting table). Netherite upgrade: smithing table โ Upgrade Leather (template) + Netherite Ingot (base) + string (addition).
- Upgrade in the smithing table: plain leather (template) + previous backpack (base) + tier upgrade (addition) โ next backpack. ID, contents and color are kept.
Dyeing (crafting table): backpack in the center column, dyes in the left column = main color, right column = accent color. Position within a column does not matter; several dyes are mixed into a hex value. The backpack contents are fully preserved.
The real recipes appear in the Recipe Book and in JEI/REI/EMI. The position-independent dyeing is not a fixed recipe and is therefore not listed there.
๐พ Storage
- SQLite (default, recommended) โ
backpacks.db - YAML (alternative) โ
backpacks.yml
Saved on close, page change, logout, plugin disable, server stop and via autosave.
Update-safe (MUST): contents are stored in the versioned Paper byte format
(serializeAsBytes) โ incl. Minecraft data version. On load the DataFixer migrates
automatically to the current version, so items with arbitrary custom NBT/components
are not lost or corrupted after updates.
๐ External modules / hooks (automatic)
The plugin runs fully standalone. External hooks are encapsulated as modules and activate automatically as soon as the respective plugin is installed and the module is enabled in the config (default: enabled). If the plugin is missing, the module stays silently inactive.
Live status & toggling via GUI: /bp modules.
| Module | Purpose | Default |
|---|---|---|
| PlaceholderAPI | %ysbp_count%, %ysbp_highest_tier%, %ysbp_open% โฆ |
auto |
| Oraxen | Custom models/textures | auto |
Custom items: only Oraxen is supported as a custom-item hook (free to use, mature API). Nexo and ItemsAdder were deliberately removed. Vault is deliberately not supported.
Disable a single module (example):
hooks:
modules:
oraxen: false
๐บ๏ธ Roadmap
- More functional upgrade effects (Void, Filter, Stack, Inception, โฆ) โ the upgrade slots & items already exist.
- Own resource pack + deeper Oraxen integration.
- Backpacks-in-backpacks only via the planned Inception upgrade (with limits & dupe protection).
๐งช Build notes
Requirements: JDK 25 and Maven.
mvn clean package
The finished plugin is then located at:
target/yourShika-Backpacks-1.3.0.jar
The target Paper version can be adjusted via the paper.version property in
pom.xml.
๐ License
Released under the MIT License.
Inspired by Sophisticated Backpacks โ but a standalone implementation without any taken code, assets or textures.


