TheStorage v1.0.0

Premium Storage plugin with Ender Chest Pages, Backpacks, Virtual Slots, Sorting, and sleek GUIs!
smart-banner-1054x312-highres (2).png
Meet TheStorage — a Premium system with upgradable Ender Chest pages, physical backpack items, virtual backpack slots, and full GUI control over unlocks and layout.

smart-banner-1054x124-highres (13).png

▪ Upgradable Ender Chest Pages:
Up to 9 configurable pages (default 3 unlocked), 45 slots per page, per-page unlock costs, and optional permission gates.

▪ Physical Backpack Items:
Tiered backpacks (Small → Mega) with custom names, lore, slot sizes, and Base64 player-head textures. Right-click to open on the go.

▪ Virtual Backpack Slots:
Main menu slots to equip/store backpacks safely — unlock more slots with economy and/or permissions (up to 18 slots).

▪ Multi-Page Backpacks:
Large tiers (e.g. 90 slots) automatically use pagination with sort and page navigation in the portable layout.

▪ Override Vanilla Ender Chest:
Right-clicking an Ender Chest opens TheStorage instead — plays chest animation and respects enderchest-open-mode (MENU or direct PAGE_1).

▪ EC Page Icon Selector:
Players can choose a custom display icon for each unlocked Ender Chest page from a built-in selector GUI.

▪ Sort Items:
One-click sort inside Ender Chest pages and backpack inventories.

▪ Storage Protection:
- Prevent backpacks inside other backpacks (prevent-nesting)
- Prevent backpacks inside Ender Chest pages (prevent-backpacks)

▪ Upgradable GUIs:
Main menu, EC pages, backpack menu, icon selector, and portable backpack layouts — fillers, sounds, textures, and console open/close commands.

▪ Vault Economy:
Unlock EC pages and backpack slots using server currency (costs in config.yml & backpacks.yml). Economy and permission requirements can be toggled independently.

▪ Flexible Storage:
YAML
, MySQL, or SQLite with async operations and auto-save.

▪ Performance Focused:
Lightweight design with batch-friendly SQL and efficient inventory handling.

▪ Fully Configurable:
Page costs, backpack tiers, GUI layouts, sounds, messages, unlock rules, and number formatting.

smart-banner-1054x124-highres (8).png

สกรีนช็อต 2026-05-24 141433.png
สกรีนช็อต 2026-05-24 141443.png

สกรีนช็อต 2026-05-24 141517.png
สกรีนช็อต 2026-05-24 141523.png

สกรีนช็อต 2026-05-24 141546.png
สกรีนช็อต 2026-05-24 141551.png

สกรีนช็อต 2026-05-24 141557.png
สกรีนช็อต 2026-05-24 141604.png

สกรีนช็อต 2026-05-24 141619.png
สกรีนช็อต 2026-05-24 141632.png

สกรีนช็อต 2026-05-24 141644.png
สกรีนช็อต 2026-05-24 141711.png
สกรีนช็อต 2026-05-24 141724.png
สกรีนช็อต 2026-05-24 141734.png
สกรีนช็อต 2026-05-24 141821.png
สกรีนช็อต 2026-05-24 141827.png
The video showcase, i will be release in the next update....

smart-banner-1054x124-highres (11).png

Player Commands
/thestorage or /thestorage open — Opens the main Storage GUI.
Permission: thestorage.use
/thestorage help — Shows the help menu.
Permission: thestorage.use

Admin Commands
/thestorage forceopen <player> — Forces a player to open their Storage menu.
Permission: thestorage.admin
/thestorage give ec <player> <pages> — Grants additional Ender Chest pages to a player.
Permission: thestorage.admin
/thestorage give backpack <player> <tier> — Gives a backpack item (e.g. small, medium, large, greater, jumbo, mega).
Permission: thestorage.admin
/thestorage reload — Reloads all configuration files.
Permission: thestorage.admin

smart-banner-1054x124-highres (12).png

thestorage.use — Open Storage GUI and help command.
thestorage.admin — reload, forceopen, give commands.
thestorage.unlock.ec.<page> — Unlock a specific Ender Chest page (when permission unlocking is enabled).
thestorage.unlock.bp.<slot> — Unlock a specific virtual backpack slot (when permission unlocking is enabled).

smart-banner-1054x124-highres (14).png

smart-banner-512x124-highres (6).png


smart-banner-1054x124-highres (15).png

smart-banner-512x124-highres (1).png

%thestorage_ec_pages_unlocked% — Number of Ender Chest pages unlocked.
%thestorage_backpack_slots_unlocked% — Number of virtual backpack slots unlocked.
%thestorage_total_used_slots% — Total used slots across all EC pages.
%thestorage_used_slots_<page_num>% — Used slots on a specific EC page (e.g. %thestorage_used_slots_1%).
%thestorage_has_backpack_<slot>% — Whether a backpack is equipped in slot (true/false).
%thestorage_backpack_tier_<slot>% — Tier ID of backpack in slot (or None).

smart-banner-1054x124-highres (10).png

smart-banner-1054x124-highres (9).png

YAML:
# ------------------------------------------
# Permissions List
# ------------------------------------------
# thestorage.use              - Allows opening the main storage GUI selection (/storage)
# thestorage.admin            - Admin permission to reload configs, force-open, and give pages/backpacks
# thestorage.unlock.ec.<page> - Permission required to unlock a specific Ender Chest page (e.g. thestorage.unlock.ec.2)
# thestorage.unlock.bp.<slot> - Permission required to unlock a specific Backpack slot (e.g. thestorage.unlock.bp.3)
# ------------------------------------------

# ------------------------------------------
# Interaction Settings
# ------------------------------------------
# override-vanilla-enderchest: If true, right-clicking an ender chest opens storage.
override-vanilla-enderchest: true

# ------------------------------------------
# Database Settings
# ------------------------------------------
# Configure where and how player storage data is saved.
# type: Can be YAML, MYSQL, or SQLITE
database:
  type: "YAML"
  mysql:
    host: "localhost"
    port: 3306
    database: "thestorage"
    username: "root"
    password: ""
    use-ssl: false

# enderchest-open-mode: How to open storage when clicking an ender chest.
# Modes:
#   "MENU"   - Opens the main storage GUI selection.
#   "PAGE_1" - Directly opens Ender Chest Page 1.
enderchest-open-mode: "PAGE_1"

# ------------------------------------------
# Unlock Requirements
# ------------------------------------------
# Configure conditions for unlocking slots and pages.
# economy: Should it use economy for unlocking? (Checks page-costs/slot-costs)
# permission: Should it require permission for unlocking? (e.g. thestorage.unlock.ec.2)
unlock-requirements:
  economy: true
  permission: false

# ------------------------------------------
# Economy Settings
# ------------------------------------------
# economy-mode: Which economy system to hook into (Supports vault).
economy-mode: "vault"

# ------------------------------------------
# Number Formatting
# ------------------------------------------
# pattern: Format for displaying numbers (e.g. #,##0 shows as 1,000).
# use-suffixes: If true, formats large numbers with suffixes (1,000,000 -> 1M).
number-formatting:
  pattern: "#,##0"
  use-suffixes: false
  suffixes:
    thousand: "k"
    million: "M"
    billion: "B"
    trillion: "T"

# auto-save-interval-minutes: Interval in minutes to automatically save player data.
auto-save-interval-minutes: 5

# ------------------------------------------
# Ender Chest Pages
# ------------------------------------------
# Configure the Ender Chest system.
# max-pages: Maximum number of pages a player can unlock.
# slots-per-page: Amount of slots per page (Recommended: 45).
# default-pages: Amount of pages unlocked by default.
# prevent-backpacks: Prevent players from putting backpacks into the Ender Chest.
# page-costs: Economy cost to unlock each page.
# Note: Requires permission "thestorage.unlock.ec.<page>" if permission unlocking is enabled.
ender-chest:
  max-pages: 9
  slots-per-page: 45
  default-pages: 3
  prevent-backpacks: true
  page-costs:
    1: 5000
    2: 10000
    3: 25000
    4: 100000
    5: 250000
    6: 500000
    7: 1000000
    8: 2500000
    9: 5000000



# ------------------------------------------
# GUI Settings
# ------------------------------------------
# Configure sounds and commands executed on GUI interactions.
# open-sound: Sound played when opening the main storage GUI.
# close-sound: Sound played when closing the main storage GUI.
# unlock-sound: Sound played when successfully unlocking an EC page or backpack slot.
# click-sound: Sound played on valid button clicks inside GUI.
# error-sound: Sound played when action is not allowed or player lacks funds/perms.
#
# open-commands: Commands executed via Console when a player opens the main GUI.
# close-commands: Commands executed via Console when a player closes the main GUI.
# Use [PLAYER] as a placeholder for the player's name.
# Example:
#   open-commands:
#     - "effect give [PLAYER] speed 5 1 true"
gui-settings:
  open-sound: "BLOCK_CHEST_OPEN"
  close-sound: "BLOCK_CHEST_CLOSE"
  unlock-sound: "ENTITY_PLAYER_LEVELUP"
  click-sound: "UI_BUTTON_CLICK"
  error-sound: "ENTITY_VILLAGER_NO"
  open-commands: []
  close-commands: []
YAML:
# ==========================================
# TheStorage GUI Config
# Developed by Adivise
# ==========================================

# ------------------------------------------
# Main Storage GUI (Hub)
# ------------------------------------------
storage-gui:
  title: "Storage"
 
  # Visual layout matrix
  # I = EC Icon        E = EC Page Slots    B = BP Icon
  # S = BP Slots       C = Close Button     # = Filler Glass
  layout:
    - "####I####"
    - "EEEEEEEEE"
    - "####B####"
    - "SSSSSSSSS"
    - "SSSSSSSSS"
    - "####C####"

  ec-page:
    unlocked:
      name: "&aEnder Chest #%page%"
      lore:
        - ""
        - "&7Click to open this page."
        - ""
        - "&eLeft-Click to open!"
        - "&eRight-Click to change icons."
    current:
      name: "&aEnder Chest Page %page% &7(Current)"
      lore:
        - ""
        - "&7You are viewing this page."
    locked:
      material: RED_STAINED_GLASS_PANE
      name: "&cEnder Chest Page %page%"
      lore:
        - ""
        - "&7Cost: &6%cost%"
        - "&7Permission: &c%permission%"
        - ""
        - "&eClick to unlock!"
    locked-perm:
      material: RED_STAINED_GLASS_PANE
      name: "&cEnder Chest Page %page%"
      lore:
        - ""
        - "&7Permission: &c%permission%"
        - ""
        - "&eRequire permission to unlock!"
    locked-cost:
      material: RED_STAINED_GLASS_PANE
      name: "&cEnder Chest Page %page%"
      lore:
        - ""
        - "&7Cost: &6%cost%"
        - ""
        - "&eClick to unlock!"
    locked-all:
      material: RED_STAINED_GLASS_PANE
      name: "&cEnder Chest Page %page%"
      lore:
        - ""
        - "&cLOCKED"

  backpack-slot:
    empty:
      material: ORANGE_STAINED_GLASS_PANE
      name: "&7Empty Backpack Slot"
      lore:
        - ""
        - "&7Place a backpack here."
    locked:
      material: RED_STAINED_GLASS_PANE
      name: "&cBackpack Slot #%slot%"
      lore:
        - ""
        - "&7Cost: &6%cost%"
        - "&7Permission: &c%permission%"
        - ""
        - "&eClick to unlock!"
    locked-perm:
      material: RED_STAINED_GLASS_PANE
      name: "&cBackpack Slot #%slot%"
      lore:
        - ""
        - "&7Permission: &c%permission%"
        - ""
        - "&eRequire permission to unlock!"
    locked-cost:
      material: RED_STAINED_GLASS_PANE
      name: "&cBackpack Slot #%slot%"
      lore:
        - ""
        - "&7Cost: &6%cost%"
        - ""
        - "&eClick to unlock!"
    locked-all:
      material: RED_STAINED_GLASS_PANE
      name: "&cBackpack Slot #%slot%"
      lore:
        - ""
        - "&cLOCKED"
    filled:
      lore:
        - ""
        - "&7Size: &e%size%"
        - ""
        - "&eLeft-Click to open!"
        - "&eRight-Click to take out!"

  bindings:
    I:
      material: ENDER_CHEST
      name: "&aEnder Chest"
      lore:
        - "&7Store your items safely!"
    B:
      material: CHEST
      name: "&aBackpacks"
      lore:
        - "&7Store your backpacks here!"
    C:
      material: BARRIER
      name: "&cClose Menu"
      lore:
        - "&7Click to close this menu."
    "#":
      material: GRAY_STAINED_GLASS_PANE
      name: " "

# ------------------------------------------
# EC Page GUI (Item Storage)
# ------------------------------------------
ec-page-gui:
  title: "Ender Chest #%page%"

  # Visual layout matrix
  # B = Back       S = Sort     P = Prev Page  N = Next Page
  # I = Item Slots # = Filler
  layout:
    - "B###S##PN"
    - "IIIIIIIII"
    - "IIIIIIIII"
    - "IIIIIIIII"
    - "IIIIIIIII"
    - "IIIIIIIII"

  bindings:
    B:
      material: ARROW
      name: "&aGo Back"
      lore:
        - "&7To Storage Menu"
    S:
      material: HOPPER
      name: "&aSort Items"
    N:
      material: PLAYER_HEAD
      name: "&aNext Page"
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGNhOTYxYWViZjJjYTg3Yjk4MWY2MGFjODNkZjllMTYwMTIwZGI3ZTI3MWI5NjI3OGUxMTNhOGM3YjI3Y2JmYSJ9fX0="
    P:
      material: PLAYER_HEAD
      name: "&aPrevious Page"
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjQ5YmExYTVhZTBhYzg5OTcwZGEyNGNkZmUzOGNiM2ZkZDY5MzA5ZDA4MTE0ZTJkZTc3M2VmOGRmM2ZjNGFhNSJ9fX0="
    "#":
      material: GRAY_STAINED_GLASS_PANE
      name: " "
    no-previous:
      material: ORANGE_STAINED_GLASS_PANE
      name: "&cNo Previous Page"
    no-next:
      material: ORANGE_STAINED_GLASS_PANE
      name: "&cNo Next Page"

# ------------------------------------------
# Backpack GUI
# ------------------------------------------
backpack-gui:
  title: "Backpack #%slot%"

  # Layout matrix dynamically scales based on size if portable,
  # but uses this top row layout for standard backpacks.
  # I = Item Slots
  layout:
    - "B##<S>#PN"
    - "IIIIIIIII"
    - "IIIIIIIII"
    - "IIIIIIIII"
    - "IIIIIIIII"
    - "IIIIIIIII"

  bindings:
    B:
      material: ARROW
      name: "&aGo Back"
      lore:
        - "&7To Storage Menu"
    S:
      material: HOPPER
      name: "&aSort Items"
    N:
      material: PLAYER_HEAD
      name: "&aNext Backpack"
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGNhOTYxYWViZjJjYTg3Yjk4MWY2MGFjODNkZjllMTYwMTIwZGI3ZTI3MWI5NjI3OGUxMTNhOGM3YjI3Y2JmYSJ9fX0="
    P:
      material: PLAYER_HEAD
      name: "&aPrevious Backpack"
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjQ5YmExYTVhZTBhYzg5OTcwZGEyNGNkZmUzOGNiM2ZkZDY5MzA5ZDA4MTE0ZTJkZTc3M2VmOGRmM2ZjNGFhNSJ9fX0="
    "<":
      material: PLAYER_HEAD
      name: "&aPrevious Page"
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDgzNDhhYTc3ZjlmYjJiOTFlZWY2NjJiNWM4MWI1Y2EzMzVkZGVlMWI5MDVmM2E4YjkyMDk1ZDBhMWYxNDEifX19"
    ">":
      material: PLAYER_HEAD
      name: "&aNext Page"
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTdiMDNiNzFkM2Y4NjIyMGVmMTIyZjk4MzFhNzI2ZWIyYjI4MzMxOWM3YjYyZTdkY2QyZDY0ZDk2ODIifX19"
    "#":
      material: GRAY_STAINED_GLASS_PANE
      name: " "
    no-previous:
      material: ORANGE_STAINED_GLASS_PANE
      name: "&cNo Previous Backpack"
    no-next:
      material: ORANGE_STAINED_GLASS_PANE
      name: "&cNo Next Backpack"
    no-page-previous:
      material: GRAY_STAINED_GLASS_PANE
      name: "&cFirst Page"
    no-page-next:
      material: GRAY_STAINED_GLASS_PANE
      name: "&cLast Page"
    locked-slot:
      material: RED_STAINED_GLASS_PANE
      name: "&cLocked Slot"

# ------------------------------------------
# Icon Selector GUI
# ------------------------------------------
icon-selector-gui:
  title: "Select Icon for Page %page%"

  # Visual layout matrix
  # I = Icon Slots  B = Back Button  # = Filler
  layout:
    - "#########"
    - "#IIIIIII#"
    - "#IIIIIII#"
    - "#IIIIIII#"
    - "#IIIIIII#"
    - "B########"

  bindings:
    B:
      material: ARROW
      name: "&aGo Back"
    "#":
      material: GRAY_STAINED_GLASS_PANE
      name: " "

  icons:
    - ENDER_CHEST
    - CHEST
    - BARREL
    - DIAMOND
    - EMERALD
    - GOLD_INGOT
    - IRON_INGOT
    - REDSTONE
    - COAL
    - LAPIS_LAZULI
    - NETHER_STAR
    - NAME_TAG
    - SLIME_BALL
    - MAGMA_CREAM
    - BLAZE_POWDER
 
  icon-item:
    name: "&aClick to select"
    lore:
      - "&7Change the icon of"
      - "&7your Ender Chest page."
YAML:
# ==========================================
# TheStorage Messages Config
# Developed by Adivise
# ==========================================

# ------------------------------------------
# General Plugin Messages
# ------------------------------------------
plugin:
  prefix: "&8[&bTheStorage&8] &r"
  no-permission: "&cYou don't have permission to do that!"
  must-be-player: "&cYou must be a player to do that!"
  successfully-reloaded: "&aPlugin has been reloaded successfully!"
  invalid-player: "&cInvalid Player!"

# ------------------------------------------
# Command & Help Messages
# ------------------------------------------
command:
  unknown-sub-command: "&cUnknown sub-command. Use: /thestorage help"
  usage-forceopen: "&cUsage: /thestorage forceopen <player>"
  opened-other: "&aOpened Storage GUI for &f%player%&a!"
  usage-give-ec: "&cUsage: /thestorage give ec <player> <pages>"
  usage-give-backpack: "&cUsage: /thestorage give backpack <player> <tier>"
  gave-ec-pages: "&aGave &f%amount% &aEC pages to &f%player%&a!"
  gave-backpack: "&aGave &f%tier% Backpack &ato &f%player%&a!"
  usage-give: "&cUsage: /thestorage give <ec|backpack> <player> <amount|tier>"
  invalid-number: "&cInvalid number!"
  invalid-backpack-tier: "&cInvalid backpack tier! Available: %tier_list%"
  help:
    - "&b&m----------------------------------------"
    - "&b&lTheStorage &7- Commands Help"
    - "&e/storage &7- Open main storage menu"
    - "&e/storage open &7- Open main storage menu"
    - "&e/storage help &7- Show this help menu"
    - ""
    - "&c[Admin Commands]"
    - "&e/storage forceopen <player> &7- Force open storage for player"
    - "&e/storage give ec <player> <pages> &7- Give Ender Chest pages to player"
    - "&e/storage give backpack <player> <tier> &7- Give custom backpack to player"
    - "&e/storage reload &7- Reload config files"
    - "&b&m----------------------------------------"

# ------------------------------------------
# Storage & GUI Interaction Messages
# ------------------------------------------
storage:
  # Unlock messages
  page-unlocked: "&aYou unlocked &eEnder Chest Page %page%&a! &7(Cost: &6%cost%&7)"
  page-already-unlocked: "&cThis page is already unlocked!"
  not-enough-money: "&cYou don't have enough coins! &7(Need: &6%cost%&7)"
  all-pages-unlocked: "&cAll pages are already unlocked!"
  backpack-slot-unlocked: "&aYou unlocked &eBackpack Slot #%slot%&a! &7(Cost: &6%cost%&7)"
  backpack-slot-already-unlocked: "&cThis slot is already unlocked!"
  all-backpack-slots-unlocked: "&cAll backpack slots are already unlocked!"
  must-unlock-first: "&cYou must unlock Ender Chest Page %page% first!"

  # Icon changer messages
  icon-changed: "&aPage icon changed to &e%icon%&a!"

  # Restrictions & Limitations
  cannot-put-backpack-in-backpack: "&cYou cannot put a backpack inside another backpack!"
  cannot-put-backpack-in-ec: "&cYou cannot put a backpack in an Ender Chest!"
YAML:
# ==========================================
# TheStorage - Backpacks Config
# Developed by Adivise
# ==========================================

# ------------------------------------------
# Backpack Slot Settings
# ------------------------------------------
# max-slots: Maximum number of backpack slots a player can have.
# default-slots: Amount of slots unlocked by default.
# prevent-nesting: Prevent putting a backpack inside another backpack.
settings:
  max-slots: 18
  default-slots: 5
  prevent-nesting: true

# ------------------------------------------
# Slot Costs
# ------------------------------------------
# Economy cost to unlock each backpack slot.
# Note: Requires permission "thestorage.unlock.bp.<slot>" if permission unlocking is enabled.
slot-costs:
  1: 5000
  2: 10000
  3: 25000
  4: 50000
  5: 100000
  6: 150000
  7: 200000
  8: 300000
  9: 500000
  10: 750000
  11: 1000000
  12: 1500000
  13: 2000000
  14: 2500000
  15: 3000000
  16: 4000000
  17: 5000000
  18: 7500000

# ------------------------------------------
# Portable Backpack Settings
# ------------------------------------------
# When a player right-clicks a backpack item, it opens as a simple inventory
# without the layout menu (no Back, Sort, Next/Prev buttons from gui.yml).
# These settings control the portable backpack behavior.
portable:
  # The layout used for portable backpacks. It works exactly like gui.yml.
  # S = Sort Items
  # < = Previous Page
  # > = Next Page
  # I = Item Slots
  # # = Filler Glass
  layout:
    - "###<S>###"
    - "IIIIIIIII"
    - "IIIIIIIII"
    - "IIIIIIIII"
    - "IIIIIIIII"
    - "IIIIIIIII"
 
  bindings:
    S:
      material: HOPPER
      name: "&aSort Items"
    "<":
      material: PLAYER_HEAD
      name: "&aPrevious Page"
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDgzNDhhYTc3ZjlmYjJiOTFlZWY2NjJiNWM4MWI1Y2EzMzVkZGVlMWI5MDVmM2E4YjkyMDk1ZDBhMWYxNDEifX19"
    ">":
      material: PLAYER_HEAD
      name: "&aNext Page"
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTdiMDNiNzFkM2Y4NjIyMGVmMTIyZjk4MzFhNzI2ZWIyYjI4MzMxOWM3YjYyZTdkY2QyZDY0ZDk2ODIifX19"
    no-page-previous:
      material: GRAY_STAINED_GLASS_PANE
      name: "&cFirst Page"
    no-page-next:
      material: GRAY_STAINED_GLASS_PANE
      name: "&cLast Page"
    locked-slot:
      material: RED_STAINED_GLASS_PANE
      name: "&cLocked Slot"
    "#":
      material: GRAY_STAINED_GLASS_PANE
      name: " "

# ------------------------------------------
# Backpack Tiers
# ------------------------------------------
# Configure backpack tiers. You can add or remove tiers.
# slots: Capacity of this backpack tier. Supports any multiple of 9.
#         If slots > 45 (with layout) or > 54 (portable without sort),
#         the backpack will automatically use multi-page pagination.
# name: Display name of the backpack.
# color: Chat color prefix for messages.
# texture: Base64 Texture value for the custom player head icon.
tiers:
  small:
    slots: 9
    name: "&fSmall Backpack"
    color: "&f"
    texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWRmMjgzNTk3NWFjZWUxNzM0MjZjNWM2NTIzM2Y0YzFiNTA2YTc2ZGZjZDQxOGUzMDA3NjUzNmM4ZWYzZDM5YyJ9fX0="
    lore:
      - ""
      - "&7Sizes: &e9 &7slots"
      - ""
      - "&eClick to open backpack."
  medium:
    slots: 18
    name: "&aMedium Backpack"
    color: "&a"
    texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTc4NjY4MDVmODc1MzM5ZWZiOTRlNjY3ODM3YzE5M2YyYTFiY2VkZWM4YjQxYmFiYmJmMGJiN2E3YzhmNjE0OCJ9fX0="
    lore:
      - ""
      - "&7Sizes: &e18 &7slots"
      - ""
      - "&eClick to open backpack."
  large:
    slots: 27
    name: "&9Large Backpack"
    color: "&9"
    texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmIwOWRmOGYzODc1Yjk1YzlkMDU3NzI4MTUyZjlmNDRlNTQwZmQ3YWY4MjVkZjQ0YjNkYjQxNTVjY2VlYzQyOSJ9fX0="
    lore:
      - ""
      - "&7Sizes: &e27 &7slots"
      - ""
      - "&eClick to open backpack."
  greater:
    slots: 36
    name: "&5Greater Backpack"
    color: "&5"
    texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDA4OTQ3ODE4MjBmODFiNzA2YTA4MTU3N2Q3MzkxYTZjMzBmMmM0NzRiMDg3YWNhMTRkNTRiNmY2NTlmMmVhNyJ9fX0="
    lore:
      - ""
      - "&7Sizes: &e36 &7slots"
      - ""
      - "&eClick to open backpack."
  jumbo:
    slots: 45
    name: "&6Jumbo Backpack"
    color: "&6"
    texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWQ1YzM4ZmI1NjMyMGZhMTM2MzdhY2ZlODIwNzdiNmQ3ODBiODg5Zjc3NDJkNjliY2M2ZTVhZTAzNWVhZmQyNyJ9fX0="
    lore:
      - ""
      - "&7Sizes: &e45 &7slots"
      - ""
      - "&eClick to open backpack."
  mega:
    slots: 90
    name: "&dMega Backpack"
    color: "&d"
    texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjQyNWZmODA2NmU2OTlkNTE1MDU2Zjc4MjcxNTQ2YmFhODhkNzgxZjFhODk0NjUzYTBmNDAxOWU4YjE0YmNiNCJ9fX0="
    lore:
      - ""
      - "&7Sizes: &e90 &7slots"
      - ""
      - "&eClick to open backpack."
YAML:
# ==========================================
# TheStorage Commands Config
# Developed by Adivise
# ==========================================

open-command:
  description: "Open storage GUI"
  syntax: "/thestorage open"
  permission: "thestorage.use"
  aliases: ["o", "gui"]
  enabled: true

forceopen-command:
  description: "Force open GUI for player"
  syntax: "/thestorage forceopen <player>"
  permission: "thestorage.admin"
  aliases: ["fo"]
  enabled: true

reload-command:
  description: "Reload config files"
  syntax: "/thestorage reload"
  permission: "thestorage.admin"
  aliases: ["rl"]
  enabled: true

give-command:
  description: "Give EC pages or backpack to player"
  syntax: "/thestorage give <ec|backpack> <player> <amount|tier>"
  permission: "thestorage.admin"
  aliases: ["g"]
  enabled: true

help-command:
  description: "Show help menu"
  syntax: "/thestorage help"
  permission: "thestorage.use"
  aliases: ["h", "?"]
  enabled: true

smart-banner-1054x312-highres (3).png
Buy a license now
$4.99
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
1 year
Share and earn
Refer this resource and earn a 10% commission.
66 Views
0 Purchases
1 Downloads
May 26, 2026 Published
N/A Updated
Not yet rated
96.9 KB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Economy
  1. GUI
  1. Storage
Game mode
  1. Survival
  1. Skyblock
  1. Oneblock
Supported software
  1. Paper
  1. Purpur
Supported versions
  1. 1.21.11
  1. 1.21
Supported languages
  1. English
Creator
Owner
Struggling to cover the costs of your server? Set up your own webstore with Tebex in under 30 seconds.
Lag-free, customizable servers ready in minutes.
Host your adventure today!
Recommended for you
Premium Sacks plugin with custom Tiers, Auto-Pickup, Smelting, Compressing, and sleek GUIs!
Not yet rated
0 purchases
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,169 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 52 ratings
3,088 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,029 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 72 ratings
2,800 purchases
Share and earn
Refer this resource and earn a 10% commission.
66 Views
0 Purchases
1 Downloads
May 26, 2026 Published
N/A Updated
Not yet rated
96.9 KB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Economy
  1. GUI
  1. Storage
Game mode
  1. Survival
  1. Skyblock
  1. Oneblock
Supported software
  1. Paper
  1. Purpur
Supported versions
  1. 1.21.11
  1. 1.21
Supported languages
  1. English
Creator
Owner
Struggling to cover the costs of your server? Set up your own webstore with Tebex in under 30 seconds.
Lag-free, customizable servers ready in minutes.
Host your adventure today!
Recommended for you
Premium Sacks plugin with custom Tiers, Auto-Pickup, Smelting, Compressing, and sleek GUIs!
Not yet rated
0 purchases
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,169 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 52 ratings
3,088 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,029 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 72 ratings
2,800 purchases
Top