DISCORD
PlayerVaultZ
⚡ Lightning-fast modern vault system with intelligent pagination, smart sorting, and instant search capabilities. Features seamless PlayerVaultsX migration in minutes.
✨ Features
- Pagination — Sleek multi-page interface with intuitive navigation controls
- Sorting — Advanced organization modes for pristine vault management
- Smart Search — Instant anvil-based finder with clickable results that jump to exact vault/page/slot locations
- Import — Flawless PlayerVaultsX vault migration system
️ Protection & Security
- Blacklist System — Block items by material, custom name, lore, or NBT tags with configurable deny messages and admin bypass
Code (Text):
# Blacklist settings
blacklist:
# Enable item blacklist
enabled: true
# List of blacklisted materials that cannot be stored in vaults
# Use Material names from https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
materials:
- BEDROCK
- COMMAND_BLOCK
- COMMAND_BLOCK_MINECART
- CHAIN_COMMAND_BLOCK
- REPEATING_COMMAND_BLOCK
- STRUCTURE_BLOCK
- STRUCTURE_VOID
- BARRIER
- DEBUG_STICK
- KNOWLEDGE_BOOK
- SPAWNER
# List of blacklisted items by custom name (supports color codes)
# Items with these exact display names will be blocked
custom-names:
- "&cAdmin Item"
- "&4Banned Item"
# List of blacklisted items by lore (checks if lore contains this text)
# Supports color codes
lore-contains:
- "SOULBOUND"
- "Quest Item"
- "Cannot be stored"
# List of blacklisted NBT tags
# Items with these NBT tags will be blocked
nbt-tags:
- "AdminItem"
- "NoVault"
# Message shown when a player tries to store a blacklisted item
message: "&cThis item cannot be stored in vaults!"
# Allow admins to bypass the blacklist
admin-bypass: true
- Auto-Backup — Scheduled backups on vault close/player join with compressed .yml.gz storage and retention limits
- Restore GUI — Browse backup history per vault, preview contents, selective item/page restoration with safety checks
- ⚠️ Emergency Recovery — Loss-detection triggers with pre-restore safety backups
Code (Text):
# PlayerVaultZ Configuration
# Advanced player vault plugin with single-page vaults
# Vault settings
vaults:
# Cache settings
cache:
# How long to keep vaults in memory (minutes)
cache-expire-time: 30
# Maximum number of vaults to cache
max-cached-vaults: 100
# Performance settings
performance:
# Auto-save interval (minutes, -1 to disable)
auto-save-interval: 5
# Session timeout (minutes)
session-timeout: 30
# Update settings
updates:
# Check for updates on startup
check-for-updates: true
# Blacklist settings
blacklist:
# Enable item blacklist
enabled: true
# List of blacklisted materials that cannot be stored in vaults
# Use Material names from https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
materials:
- BEDROCK
- COMMAND_BLOCK
- COMMAND_BLOCK_MINECART
- CHAIN_COMMAND_BLOCK
- REPEATING_COMMAND_BLOCK
- STRUCTURE_BLOCK
- STRUCTURE_VOID
- BARRIER
- DEBUG_STICK
- KNOWLEDGE_BOOK
- SPAWNER
# List of blacklisted items by custom name (supports color codes)
# Items with these exact display names will be blocked
custom-names:
- "&cAdmin Item"
- "&4Banned Item"
# List of blacklisted items by lore (checks if lore contains this text)
# Supports color codes
lore-contains:
- "SOULBOUND"
- "Quest Item"
- "Cannot be stored"
# List of blacklisted NBT tags
# Items with these NBT tags will be blocked
nbt-tags:
- "AdminItem"
- "NoVault"
# Message shown when a player tries to store a blacklisted item
message: "&cThis item cannot be stored in vaults!"
# Allow admins to bypass the blacklist
admin-bypass: true
# Backup & Restore settings
backup:
# Enable automatic backup system
enabled: true
# Automatic backup triggers
triggers:
# Create backups on scheduled intervals (minutes)
scheduled:
enabled: true
interval: 30
# Backup when player closes vault
vault-close:
enabled: true
# Backup when player joins server (for important vaults)
player-join:
enabled: false
# Emergency backup when item loss is detected
loss-detection:
enabled: true
# Minimum items lost to trigger emergency backup
threshold: 5
# Backup before major operations (like sorting, bulk restore)
pre-operation:
enabled: true
# Backup retention
retention:
# Maximum number of backups to keep per vault
max-backups: 15
# Keep at least one backup per day for this many days
daily-retention: 7
# Keep at least one backup per hour for this many hours
hourly-retention: 24
# Storage settings
storage:
# Backup compression (reduces file size by ~70%)
compress: true
# Backup location (relative to plugin data folder)
folder: "backups"
# Include metadata in backups (creation time, access count, etc.)
include-metadata: true
# Selective restore system (InventoryRollbackPlus style)
restore:
# Enable the interactive restore GUI
gui-enabled: true
# Show item tooltips with restore information
show-tooltips: true
# Restore GUI settings
gui:
# Play sounds during restore operations
sounds: true
# Show particle effects when restoring items
particles: true
# Maximum items that can be restored at once via GUI
max-items-per-click: 64
# Safety features
safety:
# Require confirmation for bulk restore operations
confirm-bulk-restore: true
# Create backup before restoring (in case of mistakes)
backup-before-restore: true
# Log all restore operations for audit trail
log-operations: true
# Debug settings
debug:
# Enable debug messages in console
enabled: false
Customization
- ️ GUI Designer — Fully configurable navigation bars, filler items, custom titles/placeholders, and sound effects
- Navigation Styles — Choose from arrows, books, player heads, or custom navigation icons
- ✨ Custom Items — Native support for Nexo with automatic vanilla fallback
- Sound System — Customizable audio feedback for all interactions
Code (Text):
# PlayerVaultZ GUI Configuration
# Customize the vault interface appearance and navigation
# Vault GUI Settings
vault:
# Title of the vault inventory (supports placeholders)
# Placeholders: {vault_number}, {owner}, {player}
title: "&8Vault #{vault_number}"
# Number of rows (1-6, but row 6 is always navigation)
# This should always be 6 for the navigation bar
rows: 6
# Navigation Bar Configuration
# Slots 45-53 (bottom row of a 6-row inventory)
navigation:
# Previous vault button
previous-vault:
enabled: true
slot: 45
material: ARROW
display-name: "&a« Previous Vault"
lore:
- "&7Go to vault {prev}"
- "&7Current: Vault {current}"
# Custom model data for resource packs
custom-model-data: 0
# For custom item plugins (Nexo)
# Uncomment and use ONE of the following:
#nexo-id: "nexo:my_custom_arrow"
# Show only if player has access to previous vault
show-only-if-accessible: true
# Item to show when button is disabled/hidden
disabled-item:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
lore: []
# Next vault button
next-vault:
enabled: true
slot: 53
material: ARROW
display-name: "&aNext Vault »"
lore:
- "&7Go to vault {next}"
- "&7Current: Vault {current}"
custom-model-data: 0
show-only-if-accessible: true
disabled-item:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
lore: []
# Vault info item
vault-info:
enabled: true
slot: 49
material: CHEST
display-name: "&6Vault Information"
lore:
- "&7Owner: &e{owner}"
- "&7Vault: &e#{vault_number}"
- "&7Items: &e{item_count}/45"
custom-model-data: 0
# Glow effect
glow: false
# Search button
search:
enabled: true
slot: 51
material: COMPASS
display-name: "&bSearch Vaults"
lore:
- "&7Search for items across"
- "&7all your vaults"
- ""
- "&eClick to search!"
custom-model-data: 0
glow: true
# Only show for vault owner
show-only-for-owner: true
disabled-item:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
lore: []
# Sort button
sort:
enabled: true
slot: 47
# Nexo custom item (falls back to material if Nexo not available)
# nexo-id: "nexo:##"
material: HOPPER # Fallback material if Nexo fails
custom-model-data: 0
display-name: "&dSort Vault"
lore:
- "&7Current mode: &e{sort_mode}"
- "&7{sort_description}"
- ""
- "&eLeft-click: &7Sort items"
- "&eRight-click: &7Change sort mode"
# Permission required to see this button
permission: "playervaultz.sort"
disabled-item:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
lore: []
# Close button
close:
enabled: false
slot: 50
material: BARRIER
display-name: "&cClose Vault"
lore:
- "&7Click to close this vault"
custom-model-data: 0
disabled-item:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
lore: []
# Example of using Nexo custom item:
#material: PAPER # Base material (will be overridden by custom item)
#nexo-id: "nexo:close_button"
# Filler items for empty navigation slots
filler:
# List of slots to fill (45-53)
slots: [46, 48, 52]
material: GRAY_STAINED_GLASS_PANE
display-name: " "
lore: []
custom-model-data: 0
# Search Results GUI
search-results:
title: "&bSearch: &f{search_term}"
rows: 6
# Navigation for search results
navigation:
previous-page:
slot: 45
material: ARROW
display-name: "&a« Previous Page"
lore:
- "&7Page {current} of {total}"
next-page:
slot: 53
material: ARROW
display-name: "&aNext Page »"
lore:
- "&7Page {current} of {total}"
page-info:
slot: 49
material: BOOK
display-name: "&6Search Results"
lore:
- "&7Term: &f{search_term}"
- "&7Results: &f{result_count}"
- "&7Page: &f{current}/{total}"
new-search:
slot: 47
material: COMPASS
display-name: "&bNew Search"
lore:
- "&7Search for different items"
close:
slot: 51
material: BARRIER
display-name: "&cClose Search"
lore:
- "&7Return to vault"
filler:
slots: [46, 48, 50, 52]
material: GRAY_STAINED_GLASS_PANE
display-name: " "
# Sound effects
sounds:
# Enable/disable all sounds
enabled: true
# Sound when opening a vault
vault-open:
sound: BLOCK_CHEST_OPEN
volume: 1.0
pitch: 1.0
# Sound when closing a vault
vault-close:
sound: BLOCK_CHEST_CLOSE
volume: 1.0
pitch: 1.0
# Sound when clicking navigation
navigation-click:
sound: UI_BUTTON_CLICK
volume: 0.5
pitch: 1.0
# Sound when item is blacklisted
blacklist-deny:
sound: ENTITY_VILLAGER_NO
volume: 1.0
pitch: 1.0
# Sound when switching vaults
vault-switch:
sound: ITEM_BOOK_PAGE_TURN
volume: 0.7
pitch: 1.2
# Sort Method Descriptions
sort-methods:
descriptions:
CATEGORY_NAME: "Groups by material type then category"
MATERIAL_GROUPED: "Groups by material type"
NAME_ONLY: "Sorts alphabetically by item name"
BLOCKS_FIRST: "Places blocks before other items"
ITEMS_FIRST: "Places items/tools before blocks"
TIER_FIRST: "Sorts by material tier (netherite, diamond, etc.)"
CUSTOM_NAME: "Shows renamed items first"
# Messages (color codes supported with &)
messages:
vault-opened: "&aOpened vault #{vault_number}"
vault-closed: "&eVault closed and saved"
no-permission: "&cYou don't have permission to access vault #{vault_number}"
vault-full: "&cThis vault is full!"
search-no-results: "&eNo items found matching '{search_term}'"
Command Suite
- /pv — Access primary vault
- /pv <#> — Open specific vault number
- /pv <player> <#> — Browse another player's vault (permission required)
- /pv search — Launch instant search interface
- /pvadmin — Administrative control panel (reload, diagnostics, cache management, backup/restore)
- /pvimport playervaultsx — Execute PlayerVaultsX migration
Migration Guide
- Deploy .yml files to plugins/PlayerVaultZ/import/playervaultsx
- ▶️ Execute /pvimport playervaultsx to initialize migration
- Progress tracking displays in chat with completion statistics
- Tip: Create full server backup before migration
Permissions
- playervaultz.use — Enable vault access (default: true)
- playervaultz.vaults.N — Grant N vault slots (e.g., playervaultz.vaults.5)
- playervaultz.other — Access other players' vaults (admin)
- playervaultz.sort — Enable vault sorting (default: true)
- playervaultz.sort.others — Sort other players' vaults (admin)
- playervaultz.import — Execute import commands (admin)
- playervaultz.admin — Full administrative suite
- playervaultz.unlimited.vaults — Unlimited vault access
Installation
- Deploy JAR to plugins/ directory
- ⚙️ Configure permissions via your management plugin
- Optional: Import existing PlayerVaultsX data
Requirements
- ️ Server: Paper/Spigot 1.21+ (api-version 1.21)
- ☕ Java: 21 or higher