Skip to content
RitomasssCommunity
Product documentation

NexaVaults Documentation

NexaVaults is a premium vault platform with player vaults, permission progression, upgrades, admin spy, audit logs, snapshots and optional network sync.

21Java target
Paper 1.21Server target
SQL/H2Storage mode
Vault + PAPIHook posture

Overview#

Product purpose, target audience, main systems, dependencies and quick links.

Quick links: Installation, First Setup, Commands, Permissions, Configuration, GUI, Placeholders, Storage, Integrations, Common Setups, Troubleshooting, Changelog and Support.

What is NexaVaults?#

A configurable player storage system for personal, shared and seasonal vault workflows.

Who is it for?#

Survival, SkyBlock, Prison and network owners who need safe player storage with monetizable progression.

Supported server types#

Survival, SkyBlock, Prison, SMP and seasonal networks.

Main features#

  • Player vaults
  • Permission progression
  • Economy upgrades
  • Vault customization
  • Sharing
  • Admin spy
  • Audit logs
  • Snapshots
  • Product Positioning
  • Player Vault Access
  • Permission Based Progression
  • Purchase And Economy Based Progression

Dependencies#

  • Java 21
  • Paper 1.21
  • Vault optional
  • PlaceholderAPI optional
  • SQL libraries bundled by project

Installation#

Installation gets the plugin to boot. First Setup prepares it for production use.

Do not replace plugin jars while the server is running. Always make a backup before updating.
Download the latest NexaVaults jar from the official buyer/download source.
Stop the server before replacing the jar.
Upload the jar to /plugins.
Start the server once and confirm the plugin folder was generated.
Configure license, storage and core files listed in the Configuration section.
Restart the server and run the main status/admin command.

First Setup#

Recommended first configuration pass after the plugin has generated its files.

Make one change at a time, reload or restart, then test the player workflow with a real account.

Setup checklist#

  1. Choose vault types
  2. Configure storage
  3. Set permission limits
  4. Configure economy upgrades
  5. Give permissions
  6. Test open, save and admin inspect

Production notes#

  • Give permissions through LuckPerms or your permission manager.
  • Keep backups of YAML files and database tables.
  • Use a staging server before large updates.
  • Do not claim Folia or network support unless the full setup has been tested.

Commands#

Commands, permissions, and usage examples.

Command entries are read from this product's plugin.yml.
/vaultCommand
Description

Primary NexaVaults command.

Permission

nexavaults.use

Example

/vault

/vaultadminCommand
Description

Administrative NexaVaults command.

Permission

nexavaults.admin

Example

/vaultadmin

Permissions#

Permission nodes are based on plugin.yml. Assign admin and bypass permissions carefully.

/lp group admin permission set nexavaults.admin true
/lp group default permission set nexavaults.use true
nexavaults.use

Allows a player to use personal vaults.

Default: truePlayers
nexavaults.admin

Allows administrative vault actions.

Default: opOwner/Admin
nexavaults.alerts

Receives suspicious activity alerts.

Default: opOwner/Admin
nexavaults.bypass.rules

Bypasses interaction restrictions.

Default: opOwner/Admin
nexavaults.feature.auto-inventory

Allows overflow pickup into vaults.

Default: falseCustom group

Configuration#

Configuration YAML files below contain short bundled default excerpts, not full files. Message YAML is documented only in Messages & Language.

Validate YAML indentation before restarting the server.
config.yml short excerpt, not full file

Main runtime settings, license, modules, limits, storage and feature behavior.

Short YAML preview only. This block shows selected lines from config.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from config.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
license-key: "LICENSE"

vaults:
  default-size: 54
  default-max-vaults: 3
  permission-mode: HIGHEST_INCLUDES_PREVIOUS
  show-locked-vaults: true
  open-cooldown-seconds: 1
  delete-confirmation-seconds: 15
  save-on-close: true
  save-on-shutdown: true
  selector-page-size: 21
  selector-item-amount-mode: VAULT_NUMBER
  default-type: default

features:
  buy: true
  upgrade: true
  renew: true
  sharing: true
  transfer: true
  community-vault: true
  search: true
  history: true
  sorting: true
  metadata-editing: true

safety:
  prevent-concurrent-open: true
  sanitize-on-save: true
  blacklist-mode: DISABLED
  whitelist-items: []
  blacklist-items:
    - SHULKER_BOX
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/config.yml to review every setting.
# ...
Top-level keys

license-key, vaults, features, safety, sharing, security

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

vault-types.yml short excerpt, not full file

Plugin-specific YAML settings used by this product.

Short YAML preview only. This block shows selected lines from vault-types.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from vault-types.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
vault-types:
  default:
    display-name: "<gold>Default Vault</gold>"
    size: 54
    price: 0.0
    currency: VAULT
    share-limit: 3
    expires-after-days: -1
    interaction-fee: 0.0
    recurring-rent: 0.0
    recurring-rent-interval-days: 30
    mode: NORMAL
  premium:
    display-name: "<gradient:gold:yellow>Premium Vault</gradient>"
    size: 54
    price: 25000.0
    currency: MONEY
    share-limit: 6
    expires-after-days: -1
    interaction-fee: 0.0
    recurring-rent: 0.0
    recurring-rent-interval-days: 30
    mode: NORMAL
  seasonal:
    display-name: "<gradient:aqua:white>Season Vault</gradient>"
    size: 18
    price: 50000.0
    currency: MONEY
    share-limit: 0
    expires-after-days: -1
    interaction-fee: 0.0
    recurring-rent: 0.0
    recurring-rent-interval-days: 30
    mode: CLAIM_AFTER_RESET
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/vault-types.yml to review every setting.
# ...
Top-level keys

vault-types

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

Messages & Language#

Translation and formatting guidance based on the product's bundled resources.

Message reload follows the product's reload command. Restart after jar, storage or license changes.

How to edit messages#

This product ships messages.yml. Edit the generated copy in the plugin folder, keep placeholders intact, then reload the plugin command or restart for startup-level changes.

Formatting#

<red>Error message</red>
&cLegacy color message
{player} {amount} {reason}
messages.yml short excerpt, not full file
Short YAML preview only. This block shows selected lines from messages.yml. The generated file contains more message keys than this docs excerpt.
# ...
# Short documentation excerpt from messages.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
prefix: "<gray>[<gold>NexaVaults</gold>]</gray> "
player-only: "<red>Only players can use this command.</red>"
player-not-online: "<red>That player must be online.</red>"
no-permission: "<red>You do not have permission.</red>"
invalid-number: "<red>That vault id is invalid.</red>"
invalid-usage: "<red>Invalid command usage. Check the command format and try again.</red>"
command-error: "<red>That command could not be completed. Check console for details.</red>"
selector-open-command: "<yellow>Use <gold>/vault</gold> to open the selector.</yellow>"
clear-command-renamed: "<yellow>Use <gold>clear</gold> instead of <gold>delete</gold>.</yellow>"
vault-opened: "<green>Opened vault <yellow>%vault%</yellow>.</green>"
open-cooldown: "<red>Please wait <yellow>%seconds%s</yellow> before opening another vault.</red>"
vault-saved: "<green>Saved vault <yellow>%vault%</yellow>.</green>"
vault-deleted: "<green>Cleared vault <yellow>%vault%</yellow>.</green>"
delete-confirm: "<yellow>Run the same clear command again within %seconds%s to confirm.</yellow>"
vault-created: "<green>Created vault <yellow>%vault%</yellow>.</green>"
vault-not-found: "<red>Vault <yellow>%vault%</yellow> does not exist.</red>"
vault-already-exists: "<red>The target player already has that vault number.</red>"
vault-locked: "<red>That vault cannot be opened right now.</red>"
vault-in-use: "<red>That vault is already open elsewhere.</red>"
vault-slot-locked: "<red>That vault slot is locked. Unlock it with permissions or your rank.</red>"
vault-open-blocked: "<red>Vault opening is currently locked by an administrator.</red>"
vault-locked-self: "<red>You already have that vault open.</red>"
vault-list-entry: "<gray>-</gray> <gold>Vault %vault%</gold> <gray>(%used%/%size%)</gray>"
vault-renamed: "<green>Renamed vault <yellow>%vault%</yellow> to <yellow>%name%</yellow>.</green>"
vault-described: "<green>Updated description for vault <yellow>%vault%</yellow>.</green>"
vault-icon-updated: "<green>Updated icon for vault <yellow>%vault%</yellow>.</green>"
vault-pin-updated: "<green>Toggled pin state for vault <yellow>%vault%</yellow>.</green>"
vault-category-updated: "<green>Updated category for vault <yellow>%vault%</yellow> to <yellow>%category%</yellow>.</green>"
share-updated: "<green>Shared vault <yellow>%vault%</yellow> with <yellow>%player%</yellow> as <yellow>%role%</yellow>.</green>"
share-removed: "<green>Removed <yellow>%player%</yellow> from vault <yellow>%vault%</yellow>.</green>"
share-self: "<red>You cannot share a vault with yourself.</red>"
share-not-found: "<red>That player does not have access to this vault.</red>"
reload-complete: "<green>NexaVaults configuration and menus reloaded.</green>"
search-header: "<gold>Search results for:</gold> <yellow>%query%</yellow>"
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/messages.yml to review every setting.
# ...

GUI / Menus#

GUI cards describe the actual menus available in this product build.

Each card shows the configured menu title, inventory size, item count and detected actions when those values exist.

Admin Vault#

Admin vault inspection menu for opening and reviewing another player's vault safely.

  • Configured title: Admin | %owner% | %name%
  • Configured items: 3

Player Vault#

Player vault inventory where the owner stores and manages personal vault contents.

  • Configured title: %name%
  • Configured items: 3

Shared Vault#

Shared vault inventory for storage that can be accessed by allowed players or groups.

  • Configured title: %owner% | %name%
  • Configured items: 3

Vault Selector#

Vault selector menu for choosing which personal or shared vault to open.

  • Configured title: Vault Selector (%page%/%max_page%)
  • Size: 54 slots
  • Configured items: 6

Placeholders#

PlaceholderAPI examples available for this product.

Use the exact identifier shown here in scoreboards, chat formats and external display plugins.

Placeholder surface#

Identifier: nexavaults. The expansion covers maximum vaults, used vaults, free vault slots and premium feature state.

Usage notes#

  • Install PlaceholderAPI before using these values in scoreboards or chat formats.
  • Reload PlaceholderAPI expansions after plugin updates.
  • Keep placeholder identifiers lowercase exactly as shown unless the product uses a legacy mixed-case identifier.
PlaceholderAPI examples documented
PlaceholderExample outputDescription
%nexavaults_vaults_max%3Returns the player's maximum vault count.
%nexavaults_vaults_used%1Returns the number of vaults currently used.
%nexavaults_vaults_free%2Returns remaining available vault slots.
%nexavaults_premium_enabled%trueReturns premium vault feature state.

Storage#

Storage docs explain YAML, SQLite, MySQL, MariaDB and backup expectations when supported.

Always back up before changing storage type or updating a production server.

Storage recommendation#

Use single-server SQL/H2/SQLite style storage for a single server. Use MySQL and Redis when network synchronization is enabled and tested.

Backup checklist#

  • Stop the server before copying live flat files.
  • Export SQL databases before updates.
  • Keep plugin version and server version in backup notes.
  • Test migration on a copy first.

Integrations#

Each integration explains purpose, required/optional status, setup steps and troubleshooting.

Soft hooks load after the dependency is available through Bukkit's plugin manager.
Vault Optional hook

Purpose: Provides economy withdrawals, deposits, prices, banks or metadata through Vault.

Troubleshooting: If balances, rewards or banks do not work, confirm Vault has an active economy provider and that no economy plugin loads after this product.

  1. Install Vault and one compatible economy or permission provider.
  2. Restart the server and confirm Vault reports a provider in console.
  3. Enable prices, banks, rewards or currency features that depend on Vault.
  4. Test one deposit and one withdrawal with a non-op account.
PlaceholderAPI Optional hook

Purpose: Registers or consumes PlaceholderAPI values for scoreboards, formats and external displays.

Troubleshooting: If values stay blank, reload expansions and verify the identifier exactly matches the placeholder shown in this docs page.

  1. Install PlaceholderAPI or the listed placeholder provider.
  2. Install required expansions when the provider uses external expansions.
  3. Use the exact placeholder identifiers documented in this page.
  4. Reload the display plugin after changing scoreboard, tablist, menu or chat format files.
Redis Optional hook

Purpose: Synchronizes runtime state between servers in a network setup.

Troubleshooting: If sync fails, verify server ids are unique, secrets match and the Redis/proxy channel is reachable from every server.

  1. Configure a unique server id for every server in the network.
  2. Set the same secret/channel values on every connected server.
  3. Start Redis or the proxy messaging layer before testing cross-server state.
  4. Test the same player workflow on two servers and watch for sync warnings.
MySQL Runtime library

Purpose: Provides persistent storage for player data, stats, transactions, vaults or network state.

Troubleshooting: If storage fails, copy the first SQL error, then verify credentials, database permissions, driver availability and firewall access.

  1. Create the database and user before enabling SQL storage.
  2. Enter host, port, database, username and password in the storage config.
  3. Restart and confirm the connection pool opens without authentication errors.
  4. Run one write action, then verify the table or database file was updated.
H2 Optional hook

Purpose: Provides persistent storage for player data, stats, transactions, vaults or network state.

Troubleshooting: If storage fails, copy the first SQL error, then verify credentials, database permissions, driver availability and firewall access.

  1. Create the database and user before enabling SQL storage.
  2. Enter host, port, database, username and password in the storage config.
  3. Restart and confirm the connection pool opens without authentication errors.
  4. Run one write action, then verify the table or database file was updated.
NexaCombat Optional hook

Purpose: Connects this product to another Nexa plugin so team, chat, combat, shop or vault state can be reused.

Troubleshooting: If the Nexa bridge does not react, confirm both plugin versions are compatible and that the shared module/hook is enabled on the same server.

  1. Install both Nexa plugins on the same server or network target.
  2. Confirm both products load successfully before testing the bridge.
  3. Enable the related hook or module in config when available.
  4. Test the shared workflow, such as team checks, chat metadata, combat restrictions, shop transactions or vault access.
NexaShop Optional hook

Purpose: Connects this product to another Nexa plugin so team, chat, combat, shop or vault state can be reused.

Troubleshooting: If transactions fail, verify the currency id, provider startup order and whether the player has enough balance or inventory space.

  1. Install the economy/shop provider and create the currency key used by this product.
  2. Match the currency id in the product config.
  3. Test a buy/sell/withdraw flow with a player account.
  4. Check transaction logs if balances do not change.

Quick Start#

Open, edit, save and reopen one vault before enabling sharing or upgrades.

Keep save-on-close and anti-dupe protection enabled during every test.
Open selectorUse /vault (aliases /pv, /v, /cv) and select a vault.
Save contentsStore items, close and reopen to verify save-on-close and inventory restoration.
Test limitsCheck rename, description, icon, pin/category, sorting, permission limit and upgrade cost.

Player Vault Setup#

Make personal storage and presentation options predictable to players.

Test full inventories, reconnect and denied access before sharing valuable items.

Personal flow#

  1. Open/select vault and store a test item.
  2. Rename and set icon/description if enabled.
  3. Close/reopen after reconnect.
  4. Upgrade only after checking cost and permission.

Recovery tests#

  1. Close with full inventory.
  2. Disconnect during save.
  3. Reopen after restart.
  4. Confirm no duplicate or missing item.

Shared & Community Vault Setup#

Roll out viewer, member, manager and ownership policies separately.

Do not grant manager access to players who only need to view or deposit.
Sharing workflow permissions
  1. Enable sharing/community vault feature.
  2. Create a dedicated shared vault type.
  3. Add viewer/member/manager roles separately.
  4. Test access, removal and ownership transfer while closed.
Seasonal reset safe cleanup
  1. Export or back up vault contents.
  2. Announce reset and lock writes during migration.
  3. Verify audit/history and restore test data before reopening.

Production Rollout#

Protect vault contents during upgrades, sharing changes and migrations.

Back up vault data before serializer/schema changes or seasonal resets.

Go-live#

  • Separate open/edit/share/upgrade permissions.
  • Keep anti-dupe and audit history enabled.
  • Test concurrent opens, restart and disconnect.
  • Monitor save errors and recovery claims.

Baseline#

vaults: save-on-close: true anti-dupe: true audit-log: true sharing: require-confirmation: true upgrades: require-permission: true

Operational Reference#

Vault operation is permission/feature based: open → select → edit → save → share/upgrade.

Keep save-on-close and anti-dupe protection enabled. Test full inventories, disconnects and concurrent opens before selling vault upgrades.

Player vault loop#

  1. Open /vault (aliases /pv, /v, /cv) and choose a vault from the selector.
  2. Store items, close and reopen to verify save-on-close.
  3. Use rename, description, icon, pin/category and sorting options if enabled.
  4. Upgrade or renew only after checking the configured cost and permission limit.
  5. Test denied access with another player before sharing.

Shared/community vault#

  1. Enable sharing/community features and create a dedicated vault type.
  2. Add viewer/member/manager access separately; do not grant manager for simple viewing.
  3. Test ownership transfer and remove a member while the vault is closed.
  4. Inspect audit/history after changes and back up before a seasonal reset.

Safe baseline#

vaults:
  default-size: 54
  default-max-vaults: 3
  permission-mode: HIGHEST_INCLUDES_PREVIOUS
  save-on-close: true
  save-on-shutdown: true
safety:
  prevent-concurrent-open: true
  sanitize-on-save: true

Rank/season rollout#

Map rank permissions to vault count and size, test upgrade/revoke behavior, then use a seasonal migration plan. Never lower a vault size without deciding what happens to items outside the new capacity.

Common Setups#

Ready-to-follow scenarios reduce support tickets and make the product easier to configure.

Tune durations, limits, prices and permissions with the YAML files above.

Survival Vault Setup#

Use conservative defaults, SQLite or simple file storage, readable messages and relaxed limits for community servers.

Prison Rank Vault Setup#

Map permissions to progression tiers, test upgrades, then document reset or season migration behavior.

Shared Vault Setup#

Apply this setup by editing the related config files, assigning permissions and testing the full player workflow.

Seasonal Reset Setup#

Map permissions to progression tiers, test upgrades, then document reset or season migration behavior.

Network Vault Setup#

Use production SQL, unique server IDs, shared sync secrets and a controlled Redis or proxy transport.

Troubleshooting#

Start with console logs, config diffs, plugin version and reproduction steps.

The first error in console is usually more useful than repeated follow-up errors.
Vault does not open issue

Confirm the player has vault permission, the team/player vault exists and the menu/storage layer did not fail during startup.

Items do not save issue

Check vault close/save errors, item serialization compatibility and whether the server shuts down before async saves finish.

Admin spy cannot edit issue

Confirm admin spy/edit permission and whether the target vault is locked by another viewer or storage operation.

Upgrade price is wrong issue

Check the upgrade tier order, economy provider, permission multipliers and configured price path.

Database connection failed issue

Verify host, port, database name, credentials, firewall access and the storage type in the generated YAML file.

Snapshots do not restore issue

Verify snapshots are enabled, snapshot storage exists and the restore target vault is not open during restore.

FAQ#

Short answers for common buyer and staff questions.

Does NexaVaults support Folia?#

No Folia claim is made for this product page. Run it on the server target listed in Overview.

Does it support old Minecraft versions?#

This page targets Paper 1.21 with Java 21. Legacy 1.8 support is not part of this docs page.

Does it require MySQL?#

Use single-server SQL/H2/SQLite style storage for a single server. Use MySQL and Redis when network synchronization is enabled and tested.

Can I disable modules?#

This product has a small runtime surface; use the listed YAML files and commands rather than a module system.

Can I edit all messages?#

Yes. Edit messages.yml and reload or restart according to the setting changed.

Does it support PlaceholderAPI?#

Yes. The documented identifier and examples are listed in the Placeholders section.

Changelog#

Product release notes grouped by version. Major public changes are written for buyers and server owners, not as raw commit logs.

v1.0.0#

Latest documented update: 2026-04-28.

Added
  • Added LICENSE.
  • Added NOTICE.
  • Added documentation/Features content.
  • Added m2.conf.
  • Added mvn.

Support#

Send enough information to reproduce the issue.

Join Discorddiscord.gg/fANhQcyA7XInclude logs, config snippets and exact steps. Screenshots alone are not enough for config or database issues.

Before asking for support#

  • Test on the latest available plugin version.
  • Check server version and Java version.
  • Temporarily remove unrelated plugins when debugging conflicts.
  • Attach changed YAML files when config is involved.
Plugin: NexaVaults
Plugin version:
Server version:
Java version:
Server software:
Database type:
Installed hooks:
Error log:
Steps to reproduce:
Expected behavior:
Screenshots/video: