VaultPack

Backpack & Ender Chest Storage System

Overview

VaultPack is a powerful backpack and ender chest expansion plugin for Minecraft servers. It provides players with up to 18 backpack slots and 9 ender chest pages, creating a comprehensive portable storage system with economy integration.

Key Features

  • 18 backpack slots with 6 upgrade tiers (9-54 slots each)
  • 9 ender chest pages (45 slots each = 405 total)
  • Unified storage GUI for easy access
  • Economy-based or permission-based unlocking
  • Death protection - items never lost
  • PlaceholderAPI support with 15+ placeholders
  • Full developer API (thread-safe)
  • MySQL or YAML storage
  • Folia compatible

Installation

  1. Download VaultPack from your BuiltByBit purchase
  2. Stop your Minecraft server
  3. Place the JAR file in your server's plugins/ directory
  4. Start your server
  5. Configure the plugin in plugins/VaultPack/config.yml
  6. Use /vaultpack reload to apply changes

Requirements: Paper/Spigot/Folia 1.21+, Java 21+
Optional: Vault (for economy), PlaceholderAPI (for placeholders)

Commands

Player Commands

CommandAliasesDescription
/backpack/bpOpen backpack selector GUI
/backpack open <slot>/bp open <1-18>Open specific backpack slot
/enderchest/ec, /echestOpen ender chest page selector
/enderchest open <page>/ec open <1-9>Open specific ender page
/storage/vault, /stOpen unified storage GUI

Admin Commands

CommandDescription
/vaultpack reloadReload plugin configuration
/vaultpack versionShow version and integration status
/vaultpack give <player> <slot>Unlock a backpack slot for player
/vaultpack giveitem <player> <type> [amount]Give backpack items to player
/vaultpack listList all backpack types
/vaultpack clear <player> <slot>Clear a player's backpack contents
/vaultpack reset <player>Reset all player data
/vaultpack inspect <player>View player's backpacks and ender chests

Permissions

Basic Permissions

PermissionDefaultDescription
vaultpack.usetrueAccess to backpack commands
vaultpack.adminopFull admin access
vaultpack.bypass.costopBypass economy costs

Slot Access Permissions

PermissionDescription
vaultpack.slots.*Access to all 18 backpack slots
vaultpack.slots.1 - vaultpack.slots.18Access to specific slot
vaultpack.enderchest.page.*Access to all 9 ender pages
vaultpack.enderchest.page.1 - .page.9Access to specific ender page

Crafting Permissions

PermissionDefaultDescription
vaultpack.craft.*trueCraft all backpack types
vaultpack.craft.smalltrueCraft small backpacks
vaultpack.craft.mediumtrueCraft medium backpacks
vaultpack.craft.largetrueCraft large backpacks
vaultpack.craft.greatertrueCraft greater backpacks
vaultpack.craft.jumbotrueCraft jumbo backpacks

Configuration

Main configuration file: plugins/VaultPack/config.yml

Backpack Settings

# Maximum backpack slots per player
max-backpack-slots: 18

# Default unlocked slots for new players
default-unlocked-slots: 1

# Backpack size tiers
backpack-sizes:
  small: 9      # 1 row
  medium: 18    # 2 rows
  large: 27     # 3 rows
  huge: 36      # 4 rows
  massive: 45   # 5 rows
  colossal: 54  # 6 rows

# Default size for new backpacks
default-backpack-size: small

Slot Unlock Costs

slot-unlock:
  enabled: true
  use-economy: true
  # Formula: base-cost + (slot-number * cost-per-slot)
  base-cost: 1000
  cost-per-slot: 500
  # Example: Slot 2 = 1000 + (2 * 500) = $2000

  # Use permissions instead/alongside economy
  use-permissions: true
  permission-format: "vaultpack.slots.%slot%"

Ender Chest Settings

enderchest-unlock:
  enabled: true
  use-economy: true
  base-cost: 2000
  cost-per-page: 1000
  # Example: Page 2 = 2000 + (2 * 1000) = $4000

  use-permissions: true
  permission-format: "vaultpack.enderchest.page.%page%"

Item Blacklist

item-blacklist:
  enabled: true
  materials:
    - BEDROCK
    - BARRIER
    - COMMAND_BLOCK
    - STRUCTURE_BLOCK
    # Uncomment to block shulker boxes
    # - SHULKER_BOX
  message: "&cThis item cannot be stored in backpacks!"

PlaceholderAPI Placeholders

All placeholders use the %vaultpack_ prefix.

General Placeholders

PlaceholderDescription
%vaultpack_total_slots%Number of unlocked backpack slots
%vaultpack_active_count%Number of active backpacks
%vaultpack_total_storage%Total storage slots across all backpacks

Slot-Specific Placeholders

Replace X with slot number (1-18):

PlaceholderDescription
%vaultpack_slot_X_unlocked%true/false if slot is unlocked
%vaultpack_slot_X_has_backpack%true/false if slot has backpack
%vaultpack_slot_X_tier%Tier name (small, medium, etc.)
%vaultpack_slot_X_size%Size in slots (9, 18, 27...)
%vaultpack_slot_X_used%Number of used slots
%vaultpack_slot_X_fullness%Fullness percentage (e.g., 45.5%)
%vaultpack_slot_X_fullness_bar%Visual fullness bar

Developer API

VaultPack provides a comprehensive, thread-safe API for plugin developers.

Getting the API

// Get the main API instance
VaultPackAPI api = VaultPackAPI.getInstance();

// Or get specific APIs
BackpackAPI backpackApi = api.getBackpackAPI();
EnderChestAPI enderApi = api.getEnderChestAPI();

Backpack Operations

// Check if player has backpack in slot
boolean hasBackpack = api.hasBackpack(player, slotNumber);

// Open a backpack for player
api.openBackpack(player, slotNumber);

// Get backpack contents
Map<Integer, ItemStack> contents = api.getBackpackContents(player, slot);

// Check slot unlock status
boolean unlocked = api.isSlotUnlocked(player, slotNumber);

// Unlock a slot programmatically
api.unlockSlot(player, slotNumber);

// Get statistics
int activeCount = api.getActiveBackpackCount(player);
int totalSlots = api.getTotalStorageSlots(player);
int usedSlots = api.getTotalUsedSlots(player);

Ender Chest Operations

// Check if ender page is unlocked
boolean unlocked = api.isEnderPageUnlocked(player, pageNumber);

// Open an ender page
api.openEnderPage(player, pageNumber);

// Get ender page contents
Map<Integer, ItemStack> contents = api.getEnderPageContents(player, page);

// Unlock a page
api.unlockEnderPage(player, pageNumber);

// Get ender statistics
int totalEnderSlots = api.getTotalEnderStorageSlots(player);
int usedEnderSlots = api.getTotalUsedEnderSlots(player);

Custom Events

// Listen for backpack events
@EventHandler
public void onBackpackOpen(BackpackOpenEvent event) {
    Player player = event.getPlayer();
    int slot = event.getSlotNumber();
    // Handle event...
}

@EventHandler
public void onSlotUnlock(SlotUnlockEvent event) {
    Player player = event.getPlayer();
    int slot = event.getSlotNumber();
    // Can be cancelled
    event.setCancelled(true);
}

@EventHandler
public void onBackpackCreate(BackpackCreateEvent event) {
    // Fired when a new backpack is created
}

Ready to use VaultPack?

Give your players the ultimate storage solution with expandable backpacks and ender chests!