Real Database Layer
SQLite and H2 for lightweight servers, MySQL and MariaDB for production networks, with binary item blobs instead of fragile text storage.
Not another `/pv 1` plugin. NexaVaults is built around SQL storage, Redis-ready network sync, upgradeable premium vaults, sharing, custom item integrations, offline admin spy, migration tools and Folia/Leaf-ready modern server support.
SQL Storage
SQLite to MySQL
Redis Ready
network sync
Premium Vaults
buy + upgrade
Async Saves
queued writes
Sharing
roles + sessions
Item Hooks
IA + Oraxen + MMO
Migration
import reports
Live Vault Session
One active inventory state for every local viewer
Revision
#1284
Audit
PUT / TAKE / ADMIN_EDIT
Storage
Binary item blobs
Basic vault plugins stop at opening a numbered inventory. NexaVaults adds the infrastructure serious servers ask for: databases, network locks, premium vault products, staff inspection, sharing, custom item hooks and migration.
SQLite and H2 for lightweight servers, MySQL and MariaDB for production networks, with binary item blobs instead of fragile text storage.
Optional Redis pub/sub invalidation and SQL-backed vault locks prepare the plugin for multi-server setups.
Vaults are products: players can buy, unlock, upgrade, renew and rent custom vault types with different sizes, prices and limits.
Built on modern Paper 1.21 APIs with `folia-supported: true`, designed for current Paper, Folia and Leaf-style server forks.
Vault saves, autosave flushing, scheduled snapshots, lock heartbeats and rent checks are pushed through async scheduler paths where the server can safely do so.
Viewer, member and manager grants, temporary session sharing, ownership transfer and a community vault make storage social.
Staff can inspect and edit offline player vaults through admin spy, with item changes attributed in the audit log.
Backup, restore, dry-run reports and PlayerVaultsX, PlayerVaultsZ, AxVaults and CocoVaults import paths help servers move without starting over.
Live shared inventory state, per-vault locks, WAL recovery, save queues and revision guards protect item integrity.
Soft hooks for ItemsAdder, Oraxen and MMOItems keep custom item servers searchable and compatible without making those plugins mandatory.
Server owners can grant storage through permissions, sell vault types with Vault economy, or combine both models for ranks, seasonal passes and premium upgrades.
Baseline player storage with no purchase cost.
Economy-backed upgrade path for monetized servers.
Reset-aware vault type for store and claim phases.
Shared server-wide vault with a fixed global owner.
Configurable selector with locked vaults, pagination, pinned ordering, placeholders, custom icons and amount display modes.
Rename vaults, add descriptions, set material icons, use item-in-hand icons, pin vaults and assign categories or tags.
Viewer, member and manager grants, temporary session sharing, owner notifications, ownership transfer and community vault support.
Search indexed items by material, display name, lore, CustomModelData and supported custom item hooks like ItemsAdder, Oraxen and MMOItems.
Blacklist, whitelist, CustomModelData specs, enchant removal, attribute cleanup and custom NBT cleanup are controlled by config.
Optional pickup overflow can move accepted items into vaults for players with the `nexavaults.feature.auto-inventory` permission.
Integration hooks are soft dependencies controlled by `config.yml`, so NexaVaults can run as a clean standalone vault plugin or connect into custom item, economy, placeholder and region systems when they are installed.
Custom item metadata is preserved by binary storage, and persistent item keys are indexed for search when present.
Search indexing can include plugin item identifiers instead of treating every special item as only a plain vanilla material.
Paid unlocks, premium type upgrades, renewals, interaction fees and recurring rent use the server's existing economy provider.
Expose vault stats through placeholders and restrict vault access by protected worlds or regions when WorldGuard is present.
The vault open and save model follows the NexaTeams team vault principle: avoid isolated inventory copies, keep one live state active, and persist changes through guarded recovery paths.
Every local viewer of the same vault uses one active Inventory instance. The active view stays open until the last viewer closes, with NexaTeams-style slot scans and broadcasts after click and drag edits.
Pending writes are logged before commit. Dirty viewers are saved before the DB write, while revision checks stop stale async saves from replacing newer data.
Manual and scheduled snapshots support preview, rollback, latest revert and automatic before-delete and before-purge protection.
NexaVaults is designed to keep expensive storage work away from normal player interaction paths while still preserving item order and consistency for each vault.
Vault content saves are queued through `NexaVaults-SaveQueue`, so database writes do not sit directly inside the inventory click flow.
Saves are chained per vault, keeping writes ordered so a slower old save cannot race a newer state and overwrite it.
HikariCP backs the SQL layer with configurable maximum pool size, minimum idle connections and connection timeout settings.
Autosave flushes, scheduled snapshots, lock heartbeats and recurring rent checks run on repeating async tasks.
Performance Settings
config.yml and scheduled runtime tasks
autosave-minutes: 5
maximum-pool-size: 10
minimum-idle: 2
connection-timeout-ms: 10000
The plugin avoids treating performance and safety as opposites. Player-facing inventory work stays responsive, while persistence is still protected by WAL transactions, revision checks, search index replacement and network invalidation after successful saves.
Staff can open a player's selector or a specific vault while the owner is offline, then add or remove items with audit attribution.
GUI history, CSV/TXT export, large withdrawal alerts, rapid access detection and item-level actor details.
Delete, reset, give extra slots, force close, global/player/vault locks, replace contents, purge expired data and remove specific items globally.
Network Diagnostics
/vaultadmin network
enabled=false
server-id=survival-1
redis-channel=nexavaults:sync
prevent-same-vault-multi-open=true
Run SQLite or H2 for small servers, then move to MySQL or MariaDB with Redis invalidation and SQL-backed cross-server locks when the network needs it. The same architecture uses async scheduled maintenance and pooled database connections for production servers.
Database Backends
SQLite, H2, MySQL and MariaDB with binary item storage.
Migration Suite
Backups, dry-run reports and PlayerVaultsX, PlayerVaultsZ, AxVaults and CocoVaults import paths.
Server owners do not want to lose years of player storage just to switch vault systems. NexaVaults includes backup, restore, dry-run scanning and plugin-specific import entrypoints so moving from another vault plugin is visible and report-driven.
Supported Import Paths
PlayerVaultsX, PlayerVaultsZ, AxVaults, CocoVaults and generic legacy YAML-shaped data.
Safer Transfer Flow
Dry-run reports and automatic backup commands let staff inspect what will migrate before committing.
Migration Commands
Designed for staff-led plugin replacement
/vaultadmin backup
/vaultadmin migrate dryrun PlayerVaults/newvaults
/vaultadmin migrate PlayerVaultsX
/vaultadmin migrate AxVaults
/vaultadmin migrate CocoVaults
Extra systems like buying, upgrades, renewals, sharing, ownership transfer, community vaults, search, history, sorting and metadata editing can be switched on or off from config.yml. Menus, prices, limits, storage, network sync and integrations are configurable too.
Feature Toggles
config.yml
features.buy: true
features.sharing: true
features.transfer: true
features.metadata-editing: true
/vault
/vault buy premium
/vault upgrade 2 premium
/vault renew 2 14
/vault share 3 Player member session
/vault icon 3 hand
/vault find diamond
/vaultadmin spy Player 2
/vaultadmin snapshot Player 2 manual-check
/vaultadmin rollback Player 2 snapshotId
/vaultadmin exportaudit csv Player 2
/vaultadmin purge inactive 30
/vaultadmin migrate PlayerVaultsX
/vaultadmin network
Folia / Leaf
modern forks
SQL Storage
SQLite to MariaDB
Premium Vaults
buy + upgrade
Sharing
roles + sessions
Redis
invalidation
Migration
dry-run reports