OpenInv – Ultimate Multi-World Inventory Suite
OpenInv is a professional-grade administration plugin designed for Paper, Spigot, and Bukkit servers. It provides staff members with absolute control over player data through a sleek, interactive GUI system. Whether a player is online in another world or completely offline, OpenInv ensures you can always manage their items with precision and security.
What’s New in v1.4.2
This update brings major features for history, logging, private vaults, and autosaves.
- New
/openinv dropcommand allows admins to force-drop items from a player's inventory, Ender Chest, or both. - New
/openinv clearcommand allows admins to clear inventories, armor, or Ender Chests with confirmable execution. - Rewritten
/openinv historycommand now uses a redesigned GUI that supports multiple snapshots in a single interface. - Private Vault support for the PriVault plugin — OpenInv can now manage private vault contents when PriVault is installed.
- Config rewrite:
config.ymlhas been redesigned for better clarity and easier customization. - Offline snapshot preview support lets staff view saved history even when the target player is offline.
- Autosave enhancements now save player inventory snapshots on both join and quit.
Key Features
- GUI-based inventory and Ender Chest management for online and offline players.
- Snapshot history with preview, restore, and multi-snapshot browsing.
- Admin commands for
drop,clear,freeze,search, and vault management. - PriVault integration for private vault inspection and snapshots.
- Permission-driven view/modify/exempt system with flexible role control.
- Async database support for SQLite/MySQL and full localization.
Core Features
Advanced GUI Management
- Live Interactive Editing: Modify player inventories in real time with a responsive GUI.
- Native Multi-World Support: Inspect player data across worlds without bridges or external tools.
- Shulker Box Peeking: Right-click any Shulker Box in the GUI to preview its contents instantly.
- Private Vault Management: When PriVault is installed, OpenInv can open and manage player private vaults as a first-class data source.
Snapshot Time Machine
- Automatic Backups: OpenInv automatically saves inventory snapshots in the background.
- Join/Quit Autosave: The plugin saves snapshots when players join and when they quit.
- Optimized History GUI: The history interface now displays multiple snapshots in one window, making recovery faster.
- Offline Preview: Preview saved snapshots even if the player is currently offline.
Security & Permissions
- Master Modify Key: Only users with
openinv.modifycan move items in GUIs. - Role-Based Exemptions:
openinv.exemptprotects staff and VIP inventories from being opened by lower-ranked staff. - Override Support:
openinv.overrideallows trusted admins to bypass exemption protection in emergencies. - Command Logging: Every OpenInv command can be recorded for staff accountability.
Investigation & Admin Tools
- Freeze Inventories: Lock a player's inventory using
/openinv freeze <player>. - Global Item Search: Search a player's inventory for illegal or hidden items with
/openinv search <item> <player>. - Snapshot Preview: Preview saved inventory states directly from IDs.
- Vault Inspection: Manage player vaults and view vault backups when PriVault is available.
Commands Cheat Sheet
Base Commands & Aliases
| Command | Description |
|---|---|
/openinv |
Main OpenInv command with access to all subcommands. |
/invsee |
Alias for /openinv. |
/inv <player> |
Shortcut for /openinv check to open an online player's inventory. |
/invec <player> |
Shortcut for /openinv echeck to open an online player's Ender Chest. |
/offlineinv <player> [world] |
Open an offline player's inventory. |
/offlineec <player> [world] |
Open an offline player's Ender Chest. |
Subcommands (/openinv <subcommand>)
| Subcommand | Description |
|---|---|
help |
Displays the help menu with hover descriptions. |
info |
Shows plugin information, version status, and quick links. |
check <player> |
Open the inventory of an online player. |
echeck <player> |
Open the Ender Chest of an online player. |
offlineinv <player> [world] |
Open an offline player's inventory. |
offlineec <player> [world] |
Open an offline player's Ender Chest. |
history <player> |
Open a player's unified snapshot history. |
search <item> <player> |
Search a player's inventory for a specific item. |
freeze <player> |
Freeze a player's inventory so it cannot be used or moved. |
unfreeze <player> |
Unfreeze a player's inventory. |
preview <player> <id> |
Preview a saved snapshot by ID. |
vault |
Open the player's private vault via PriVault integration. |
drop |
Force drop items from a player. |
clear |
Clear a target's inventory, armor, or Ender Chest. |
reload |
Reloads config.yml, messages.yml, and reconnects the database if needed. |
Permissions Breakdown
Global Access
openinv.*— Grants access to every OpenInv command and feature.openinv.admin— Grants access to all admin-focused commands and actions.
Usage Permissions
openinv.use— Required to use the root command and/openinv help.openinv.usen— Used by the/invseealias to access OpenInv features.openinv.check— Allows/invand/openinv check.openinv.enderchest— Allows/invecand/openinv echeck.openinv.offlinecheck— Allows/offlineinv.openinv.offlineecheck— Allows/offlineec.openinv.history— Allows/openinv history.openinv.search— Allows/openinv search.openinv.container— Allows opening Shulker Boxes inside GUIs.openinv.preview— Allows/openinv preview <player> <id>.openinv.clear— Allows/openinv clear.openinv.clear.all— Allows/openinv clear all.openinv.drop— Allows/openinv drop.openinv.drop.all— Allows/openinv drop all.openinv.vault— Allows opening the vault selection menu.openinv.vault.edit— Allows editing a player's private vault.openinv.vault.snapshot— Allows viewing vault snapshots.openinv.vault.restore— Allows restoring vault snapshots.openinv.silent— Allows silent inventory operations.openinv.freeze— Allows/openinv freeze.openinv.unfreeze— Allows/openinv unfreeze.openinv.self— Allows viewing your own inventory/Ender Chest via GUI.
Modification Permissions
openinv.modify— Master permission for moving items in GUIs.openinv.modify.*— Grants both inventory and Ender Chest modification.openinv.modify.inv— Grants normal inventory modification.openinv.modify.ec— Grants Ender Chest modification.
Protection & Exemptions
openinv.exempt— Prevents others from opening your inventory.openinv.override— Bypassesopeninv.exemptprotection.openinv.exempt.modify— Prevents others from modifying your inventory.openinv.override.modify— Bypassesopeninv.exempt.modifyprotection.
Technical Details
- Asynchronous Processing: Background tasks such as database saves and offline loads run off the main server thread.
- Database Support: Local SQLite and networked MySQL are both supported.
- Snapshot Cleanup: Old snapshots can be auto-purged based on configuration settings.
- Localization: Includes support for over 20 language files and fully configurable messages.
- Compatibility: Works with Minecraft 1.16.x through 1.21.x and requires Java 17+.
Developed with ❤️ by INFIE03. Ensuring staff integrity and inventory security since 2025.
All Versions
+ Add VersionA polished update focusing on modern Minecraft compatibility, improved GUI interactions, and important bug fixes.
### New Features
- Latest Minecraft Support:** Updated the API version to
1.21and Java to21, guaranteeing native compatibility with the newest Minecraft versions and snapshots up to26.3. - Dynamic Ender Chests:** Added dynamic GUI sizing for Ender Chests! The plugin now automatically adjusts the GUI size to support custom ender chest sizes (up to 54 slots), such as those modified by Purpur.
- Added Navigation on History GUI:** The history interface now features new navigation options for smoother backup browsing.
### Bug Fixes
- Vault Plugin Validation:** Clicking the "Vault History" button when a vault plugin is not installed/enabled will now cleanly send an error message instead of failing silently.
- Crafting Area Clears & Drops:** Fixed an issue where
/openinv clearand/openinv dropskipped items in a player's personal 2x2 crafting grid, 3x3 workbench, and the item currently held on their cursor. These are now correctly cleared/dropped. - Tab Completion Clutter:** Fixed a bug where the
noadminflag was suggested at the incorrect time during tab completion for/openinv dropand/openinv clear, preventing it from cluttering the container types list.
This major update includes new administrative tools, a redesigned history system, support for PriVault, the ability to preview snapshots offline, improved autosaving, and a number of bug fixes.
## ✨ Added
- I have added a command called
/openinv dropwhich forces players to drop the items from their inventory, from their ender chest, or from both. - Support for the
noadminflag has been added so that everyone can be targeted except server administrators. - Added permissions:
openinv.dropopeninv.drop.all- I have added a command, /openinv clear, which allows player inventories, armor, and ender chests to be cleared.
- Included built-in confirmation support.
- Support for the
noadminflag has been added so that everyone can be targeted except server administrators. - Added permissions:
openinv.clearopeninv.clear.all- Added full support for **PriVault** private vaults.
- Included support for previewing offline snapshots.
- We have added automatic inventory snapshots when a player joins.
- We have added the facility for taking automatic inventory snapshots when the player quits.
## 🔄 Changed
- Rewrote the /openinv history system entirely.
- New history GUI.
- You can view various snapshots through one interface.
- The experience of navigating snapshots and previewing them has been improved.
- Revised the config.yml file to have a cleaner and more organized structure in order that it may be easier to customize.
- We have improved the performance of the history GUI and the overall workflow.
- Made vault handling and snapshot management better.
- Rewrote the
/openinv previewcommand. - Old:**
/openinv preview <id> - New:**
/openinv preview <player> <id> - The tab completion feature for the Snapshot ID will now provide suggestions for only those IDs that belong to the selected player.
## 🐛 Fixed
- A number of problems relating to history previews, snapshot loading, and access to offline snapshots have been resolved.
- Addressed the issue of unnecessary chat spam that occurred when clearing inventories via the GUI.
- A security issue was fixed which allowed '/openinv preview' to bypass the 'openinv.exempt' permission by making use of another player's history.
- Carried out the repair of a number of problems related to permissions that were impacting the commands and administrative tools.
- Various stability and performance issues have been resolved.
- And much more...
- OpenInv v1.4.1 - Critical Bug Fix Update**
- 🔧 Bug Fixes:**
- Fixed a critical data-loss bug related to
/openinv offlineec.**
### ✨ What’s New
- Ender Chest GUI Overhaul:** The Ender Chest viewer (
/invecand/offlineec) has been fully upgraded with quick-access buttons! - [NEW] Open Inventory:** Seamlessly switch from viewing a player's Ender Chest to their main inventory with a single click.
- [NEW] Clear EnderChest:** A dedicated button to completely wipe a player's Ender Chest (requires confirmation to prevent accidents).
- [NEW] Close Button:** Cleanly exit the menu.
- Premium
/openinv infoMenu:** Added a brand-new, beautifully styled in-game info command. It features an interactive Modrinth button and a **Dynamic Version Checker** that alerts you in-game if you're running the latest version! - Advanced Command Logging:** Security is paramount. We've introduced a dedicated
/logs/folder inside the plugin directory. Every OpenInv command executed by staff is now strictly logged with timestamps, the executor's name, and their exact location, ensuring 100% staff accountability. - Enhanced Background Auto-Save:** Optimized MySQL and SQLite auto-saving logic ensures that any live edits made to inventories or Ender Chests are securely saved without ever lagging the main server thread.
### 🐛 Bug Fixes & Tweaks
- Refined color schemes and formatting across several menus to provide a more premium "gray and gold" aesthetic.
- Improved the Offline Player data loader to handle edge cases when loading an offline player's Ender Chest.
### 🌍 Different Worlds, Different Items
The plugin now perfectly supports servers with multiple worlds!
- Per-World Saving:** If a player has different items in your "Survival" world and your "Creative" world, the plugin now remembers them separately.
- Auto-Save on Teleport:** Whenever a player moves from one world to another, the plugin instantly saves their items so you always see the most recent data.
- Smart Editing:** If you edit a player's inventory for a world they aren't currently in, the changes will "wait" for them and apply automatically the next time they enter that world.
### 🛠️ Smarter Commands
We’ve made the commands much easier to use:
- Unified
/inv**: You can now use/inv <player> [world]to check anyone. If they are online, it shows their live items. If you want to check a specific world they aren't in, it automatically shows you their saved items for that world.
### ⌨️ Faster Typing (Tab-Complete)
Typing commands is now much faster:
- Online vs. Offline:** When you type
/inv, it will only suggest players who are actually online. When you type/offlineinv, it will only suggest players who are offline. This keeps your list clean! - World Suggestions:** When you are typing an inventory command, you can now press
TABto see a list of all your server's worlds (likeworld,world_nether, etc.) so you don't have to remember the exact names.
### 🚀 Other Improvements
- More Reliable:** We fixed several small bugs to make sure player items are always saved safely and never get mixed up between worlds.
This update contains important stability fixes for modern Paper servers and SQLite database connections.
### 🐛 Bug Fixes & Improvements
- Fixed Startup Errors on Modern Paper Servers** 🔧
- Fixed Database Errors During Server Shutdown** 💾
SQLITE_READONLY_DBMOVED) that would sometimes appear in the console when stopping or restarting your server. This was caused by the plugin trying to save multiple players' inventories at the exact same time as the database was closing. We've smoothed out this shutdown process so all player data is saved safely, securely, and completely error-free!This update focuses on fixing permission bugs, improving staff tools, and making the plugin more reliable for server owners.
### ✨ New Features & Improvements
- Clean Console Experience** 🛡️
- Refined Command Security** 🔐
openinv.use** permission as a prerequisite. This ensures staff have been granted fundamental access before using administrative tools.- Hierarchical Modification System** 🏗️
openinv.modify.*acts as a master wildcard (grants everything).- Specific edits now require the master key (
openinv.modify) **plus** a granular node (.invor.ec).
/openinv historyGUI Updates** 🟢
- Translation Updates** 🌍
/openinv reload across all 20+ supported languages. It now includes a clear reminder that some configuration changes require a server restart to apply.### 🐛 Bug Fixes
- Offline player protection now actually works.**
openinv.exempt protection was being ignored. This is now fixed — offline players are properly protected from unauthorized viewing.- The
openinv.modify.*shortcut permission now works correctly.**
openinv.modify.* in LuckPerms now correctly grants full edit access to both inventories and Ender Chests even without the base modify node.- Resolve "No Perm" spam in chat.**
- Staff inventory locking issue.**
openinv.adminnow truly unlocks everything.**
openinv.admin. It is now a complete bypass.- Resolved a crash during startup (NPE).**
### 📋 Full Permission Reference (What Changed)
| Permission | What it does |
|---|---|
|
openinv.admin | Full access to everything — no other permissions needed ||
openinv.use | Required to use viewing commands (/inv, /offlineinv, etc.) ||
openinv.exempt | Protects YOUR inventory from being opened by others ||
openinv.override | Lets staff bypass exempt protection ||
openinv.modify | Master key required to edit ANY inventory ||
openinv.modify.inv | Allows editing player inventories ||
openinv.modify.ec | Allows editing Ender Chests ||
openinv.modify.* | Shortcut — allows editing both inv and EC ||
openinv.exempt.modify | Protects YOUR items from being moved ||
openinv.override.modify | Lets staff bypass edit protection ||
openinv.freeze | Allows using /openinv freeze ||
openinv.unfreeze | Allows using /openinv unfreeze ||
openinv.history | Allows viewing inventory backup history |- [Major Security Overhaul]**
- Multi-Layered Permission Logic**: Transitioned to a strict "Two-Key" system. Staff now require both the master
openinv.modifykey AND a target key (.invor.ec) to edit items. - Rank Exemption System**: Introduced
openinv.exempt.modifyto allow Admins and Owners to protect their inventories from being edited by lower-ranking staff. - Administrative Overrides**: Added
openinv.override.modifyto allow trusted high-level staff to bypass modification exemptions. - Bypass Permissions Hierarchy**: Decoupled permission inheritance in
plugin.ymlto prevent accidental permission "leaks" fromopstatus.
- [Bug Fixes & Security Hardening]**
- Shulker Viewer Lockdown**: Fixed a critical security leak where staff could still edit items inside an Admin's Shulker Box even if the Admin was protected.
- Drag Interaction Security**: Fixed a bug where clicking and dragging items could bypass modification checks.
- Inventory Synchronization**: Resolved an issue where offline edits didn't always reflect perfectly during a high-speed login event.
- [UX & Performance Improvements]**
- Message Throttling**: Implemented a 2-second cooldown on permission denial messages to prevent chat spam during failed interactions.
- Dynamic Console Logging**: Updated system startup logs to automatically pull the correct version from
plugin.yml(no more hardcoded version strings!). - Clear Inventory Confirmation**: Refined the safe-clear GUI to ensure accidental clicks don't result in lost data.
- Wildcard Support**: Fully populated
openinv.*andopeninv.modify.*in theplugin.ymlfor easier permissions setup.
- 🌟 OpenInv v0.9.1 Changelog
- Fixed Ender Chest Saving**: Resolved an issue that prevented offline player Ender Chest backups from saving correctly on servers using MySQL/MariaDB.
- Fixed Console Errors During Cleanup**: Fixed a bug that would occasionally cause errors in the console when the plugin tried to automatically delete older, outdated inventory backups.
- Safe Upgrading**: Upgrading to this version is perfectly safe! Any older inventory or Ender Chest backups you already have saved will continue to load without issues.
- Under-the-hood Improvements**: Improved how the database stores tracking data behind the scenes to prevent future saving errors and crashes.
### 💎 New Features & GUI Revamp
- Massive GUI Redesign:** The
/openinv checkand/openinv offlineinvmenus have been beautifully redesigned! We built a clean dark glass divider row, and completely reorganized the armor and offhand equipment slots to fit perfectly in the bottom right corner! - Fast-Action Buttons:** Added brand-new interactive buttons seamlessly integrated into the bottom-left of the player's inventory GUI:
- Ender Chest Shortcut:** Instantly swap to viewing the player's Ender Chest without leaving the GUI!
- Auto-Update Notifier:** OpenInv now talks directly to Modrinth! The plugin securely checks the Modrinth API on server startup and immediately alerts your console and any joining Admins via chat if a new plugin version is available, complete with the direct download link!
### 🛡️ Permissions & Security Upgrades
- Strict "View-Only" Mode:** Major security buff! If a staff member does not have the
openinv.modifypermission, the plugin now locks them into a strict "View-Only" mode. They can see the full inventory, but dragging, dropping, adding, or stealing items is hardware-blocked! - The "Master Key" Perm:** We completely revamped the internal command router. The
openinv.adminpermission now acts as a true global Master Key. Giving a player this single permission completely bypasses the need for the other 10 individual nodes (openinv.freeze,openinv.search, etc.)!
### 🧹 Cleanups
- Ghost Perm Scrubbing:** Completely scrubbed the codebase of confusing, unused fallback permissions (like
openinv.silentandopeninv.container) and dead legacy commands to keep your LuckPerms editor incredibly organized and clean!
### 🌍 New Features
- Full Multi-Language Support!** You can now translate the entire plugin into your preferred language! The plugin now fully supports external locale configurations. All in-game messages, alerts, and feedback can be customized or translated directly without touching the core code.
### 🐛 Critical Bug Fixes
- Server Shutdown Data Server Fix:** Resolved a major issue where the plugin would fail to save player inventory snapshots during server restarts (
database connection closed). The backend system now correctly waits for all background auto-saves to seamlessly and safely finish before fully disconnecting from the server database, meaning zero data loss on shutdown!
### ⚙️ Under the Hood
- Modularized Messaging System:** Re-engineered the central
MessageUtilsto dynamically support these new translation locales, paving the way for endless localization options.
- Seamless Shulker Editing**
- You can now right-click a Shulker Box *inside* an inventory to open it immediately. No need to place it down!
- Works just like a regular chest, but inside another inventory.
### 🐛 Fixes
- Improved Performance**: We made changes under the hood so the server runs smoother when using the plugin.
- Safety**: Added safeguards to prevent mistakes when editing configuration files.
### Added
- Smart Config Updater**: New configuration keys are now automatically added to
config.ymlandmessages.ymlupon update, while preserving your existing settings and comments. - Auto-Cleanup**: The plugin now automatically removes unused legacy files (like
data.yml) to keep your plugin folder clean.
### Changed
- Removed YAML Backups**: The old file-based backup system (YAML files in
backups/) has been fully removed in favor of the more efficient SQLite/MySQL database storage. - Config Handling**: Improved how lists (like
destinations) are handled in the config to prevent YAML parsing errors during updates.
### Fixed
- Fixed an
InvalidConfigurationExceptionthat could occur when updatingconfig.ymldue to incorrect list formatting. - Corrected the console start-up message to display the accurate plugin version
### 🚀 **New Features: Offline Editing**
Now you can manage inventories even when players are offline!
- Offline Inventory Editor**: Command
/openinv offlineinv <player>allowing full read/write access. - Offline Ender Chest Editor**: Command
/openinv offlineec <player>allowing full read/write access. - Sync on Join**: Changes made offline are securely saved to the database and applied instantly when the player joins the server.
- Smart Notifications**: Players receive a notification on join if their inventory or ender chest was modified while they were away (Configurable).
### ⚙️ **Configuration & Logging Control**
- Console Spam Control**: Added
log-to-consoletoggles for both Auto-Save and Death Snapshots. You can now keep your console clean! auto-save-inventory.log-to-console(Default:true)death-snapshots.log-to-console(Default:true)- Granular Notification Toggles**: Added separate configs for offline update messages:
notify.offline-update.inventorynotify.offline-update.enderchest
### 🧹 **Cleanup & Optimization**
- Removed Deprecated Rollback**: Completely removed the old temporary
/openinv rollbackcommand (RAM-only). - Why?* The new
/openinv historycommand uses the database and is persistent across restarts, making the old command obsolete. - Message Cleanup**: Removed redundant "Your inventory has been unfrozen by..." messages. Now significantly less spammy.
- Reload Fix**: Fixed a bug where
/openinv reloaddidn't correctly update the Auto-Save timer interval.
### 🐛 **Bug Fixes**
- Fixed redundant unfreeze notifications.
- Improved handling of offline player data synchronization.
### 🚀 Major Feature: Database System (NEW)
- Database Persistence System**: Introduced a fully database-driven architecture with support for MySQL and SQLite for permanent inventory snapshot storage.
- Database-Backed Systems**:
- Auto-saved inventory snapshots
- Death inventory snapshots
- Feature Toggles**: Added new toggles in
config.yml: auto-save-inventory.enableddeath-snapshots.enabled
### 🚀 New Commands & Shortcuts
- Intuitive Shortcuts**: Added faster command aliases:
/inv <player>: Shortcut for/openinv check/invec <player>: Shortcut for/openinv echeck/invsee: Alias for/openinv- Full Tab Completion**: All new shortcuts support player name and subcommand suggestions.
### 🛠️ Snapshot & GUI Improvements
- Dynamic GUI Limits**: Removed hardcoded labels; GUI limits are now read directly from
config.yml. - Expanded Rows**: GUI now supports up to 8 snapshots.
- Type-Aware Cleanup**: AUTO and DEATH snapshot deletion logic is separated to prevent cross-system data loss.
### 🧹 Streamlining & Optimization
- Save-on-Join Removal**: Removed the redundant save-on-join feature to improve player join performance.
- Standardized Versioning**: Configured for **1.16 - 1.21.x** compatibility using Java 17 and Spigot API 1.16.5.
- Clean Logs**: Reduced console output during startup and reload.
### 📖 Help & UI Polish
- Updated Help Menu**:
/openinv helpnow includes all new Commands. - Refreshed Welcome**: Modernized the OP join message.
### **Added Configuration Files:**
- Created **config.yml** for customizable messages.
- Created **data.yml** for storing player-specific data.
### **Implemented Help Command:**
- Added **/openinv help** command to display available commands and their descriptions.
- Tab completion for the help command now suggests available subcommands.
### Enhanced Search Command:
- Updated **/openinv search <item> <player>** to allow searching for items in a specified player's inventory.
- Added tab completion to suggest all Minecraft item names for the item argument and online player names for the player argument.
- Implemented error handling for invalid player names and item searches.
### Implemented Freeze Functionality:
- Added **/openinv freeze <player>** command to prevent a specified player from modifying their inventory.
- Players cannot drop or pick up items while their inventory is frozen.
- Added cooldown for messages to prevent spam when trying to drop or pick up items while frozen.
### Implemented Unfreeze Functionality:
- Added **/openinv unfreeze <player>** command to allow a player to modify their inventory again.
### Added Welcome Message for OP Players:
- When an OP player joins the game, a welcome message with available commands is sent in chat.
- Added colored console messages when the plugin is enabled, using ANSI escape codes for better visibility.