ModsJava
✨ xInventories
Advanced Per-World Inventory Management for Paper & Spigot 1.20.5+ ━━━━━━━━━━ Downloads ━━━━━━━━━━ Stable Release - Recommended for production servers…
⬇ Download on Spigot
━━━━━━━━━━ Downloads ━━━━━━━━━━
- Stable Release - Recommended for production servers
- Nightly Build - Latest development build (may be unstable)
━━━━━━━━━━ Overview ━━━━━━━━━━
xInventories is a powerful and modern per-world inventory management plugin for Paper and Spigot 1.20.5+ servers. Keep player inventories, experience, health, hunger, potion effects, and ender chests completely separate across different worlds or world groups.
Whether you're running a survival server with a creative world, a minigame network, or a skyblock server with multiple islands, xInventories gives you complete control over how player data is managed across your worlds.
━━━━━━━━━━ Features ━━━━━━━━━━
- Per-World Inventories - Separate inventories for different worlds or world groups
- Per-GameMode Inventories - Optionally separate inventories by gamemode
- Flexible World Groups - Group multiple worlds together to share inventories
- Regex Pattern Matching - Automatically assign worlds using patterns (e.g., skyblock_.*)
- Multiple Storage Backends - Choose from YAML, SQLite, or MySQL
- High-Performance Caching - Caffeine-powered write-behind caching
- Admin GUI - Visual interface for managing groups, worlds, and player inventories
- Backup & Restore - Create and restore backups of all player data
- Data Migration - Seamlessly migrate between storage backends
- Full Developer API - Comprehensive API with events and subscriptions
- PlaceholderAPI Support - Built-in placeholders for scoreboards and more
- Inventory Versioning - Automatic version history with rollback capability
- Death Recovery - Recover inventories lost on death
- Player State Separation - Per-group statistics, advancements, and recipes
- PWI-Style Settings - Flying, fall distance, fire ticks, air, display name per-group
- Templates - Pre-defined inventory templates for starter kits and loadouts
- Item Restrictions - Whitelist/blacklist items per group with confiscation vault
- Confiscation Vault - Store and reclaim restricted items via /xinv vault
- NBT Filters - Advanced filtering by enchantments, custom model data, name/lore patterns
- Shared Slots - Share specific slots across all groups
- Conditional Groups - Dynamic groups based on permissions, time, or PlaceholderAPI
- World Group Inheritance - Groups inherit settings from parent groups
- Temporary Groups - Time-limited group assignments for events/minigames
- Inventory Locking - Temporarily lock inventories with bypass permissions
- Audit Logging - Track all inventory modifications with full history
- Bulk Operations - Apply actions to all players in a group
- Anti-Dupe Detection - Detect potential item duplication exploits
- Inventory Search - Search across all player inventories
- Statistics Dashboard - Plugin performance metrics
- Vault Economy - Per-group economy balances
- LuckPerms Contexts - Current group as LuckPerms context
- Folia Support - Multi-threaded server compatibility
- Plugin Import - Import from PerWorldInventory, MultiVerse-Inventories, MyWorlds
- Cross-Server Sync - Redis-based sync for BungeeCord/Velocity networks
- Inventory Merge - Merge two groups' inventories with conflict resolution
- Export/Import JSON - Export inventories for external tools or backup
- 20+ GUI Screens - Comprehensive admin interface for all features
━━━━━━━━━━ Requirements ━━━━━━━━━━
- Paper 1.20.5+ or Spigot 1.20.5+ (1.20.5 - 26.1.2+ supported)
- Java 21+ (the jar targets Java 21; Minecraft 26.1+ servers require Java 25 per Mojang, and the same jar runs there too)
New in v1.2.0: Paper 26.1.2 support (Mojang's new year-based versioning), plus a fix for a GUI bug where items could occasionally be moved out of a menu, and several inventory save/sync hardening fixes.
Since v1.1.0: Full Spigot support! The plugin automatically downloads required libraries on Spigot servers.
━━━━━━━━━━ Installation ━━━━━━━━━━
- Download the jar file (lightweight ~1.7MB)
- Place it in your server's plugins/ folder
- Restart your server
- Configure plugins/xInventories/config.yml
- Set up world groups in plugins/xInventories/groups.yml
Note: On Paper 1.21+, dependencies are provided by the server. On Spigot or older Paper versions, xInventories automatically downloads required libraries from Maven Central on first startup (with SHA-256 checksum verification). Dependencies are cached in plugins/xInventories/libraries/.
━━━━━━━━━━ Commands ━━━━━━━━━━
Base command: /xinventories (aliases: /xinv, /xi)
Spoiler: Click to view all commands
Core Commands
Group & World Management
Version History & Death Recovery
Templates & Restrictions
Economy & Locking
Import & Sync
Utility Commands
- /xinv - Show help menu
- /xinv reload - Reload configuration
- /xinv gui - Open admin GUI
- /xinv save [player] - Save player inventory
- /xinv load <player> [group] - Load player inventory
- /xinv whoami - Show current group and match reason
Group & World Management
- /xinv group list|info|create|delete|setdefault - Manage groups
- /xinv world assign|unassign|list - Manage world assignments
- /xinv pattern add|remove|list - Manage regex patterns
Version History & Death Recovery
- /xinv version list|restore|diff - Inventory version history
- /xinv death list|restore|preview - Death recovery
Templates & Restrictions
- /xinv template list|apply|create - Manage templates
- /xinv restrict list|add|remove - Item restrictions
Economy & Locking
- /xinv lock <player> [reason] [duration] - Lock inventory
- /xinv unlock <player> - Unlock inventory
- /xinv conditions <group> - View group conditions
Import & Sync
- /xinv import detect|<plugin> - Import from other plugins
- /xinv sync status|force - Network sync status
Utility Commands
- /xinv cache stats|clear - Manage cache
- /xinv backup create|restore|list|delete - Manage backups
- /xinv convert <from> <to> - Migrate storage
- /xinv debug - Debug information
━━━━━━━━━━ Permissions ━━━━━━━━━━
Spoiler: Click to view all permissions
Admin Permission
Command Permissions
Bypass Permissions
- xinventories.admin - Full admin access (default: op)
Command Permissions
- xinventories.command - Use base command (default: true)
- xinventories.command.reload - Reload config (default: op)
- xinventories.command.save - Save inventories (default: op)
- xinventories.command.load - Load inventories (default: op)
- xinventories.command.group - Manage groups (default: op)
- xinventories.command.world - Manage worlds (default: op)
- xinventories.command.pattern - Manage patterns (default: op)
- xinventories.command.cache - Manage cache (default: op)
- xinventories.command.backup - Manage backups (default: op)
- xinventories.command.convert - Migrate storage (default: op)
- xinventories.command.debug - Debug commands (default: op)
- xinventories.command.version - Version history (default: op)
- xinventories.command.death - Death recovery (default: op)
- xinventories.command.template - Manage templates (default: op)
- xinventories.command.restrict - Item restrictions (default: op)
- xinventories.command.conditions - View conditions (default: op)
- xinventories.command.lock - Lock/unlock inventories (default: op)
- xinventories.command.import - Import from plugins (default: op)
- xinventories.command.sync - Network sync (default: op)
- xinventories.gui - Access admin GUI (default: op)
Bypass Permissions
- xinventories.bypass - Bypass all inventory switching (default: false)
- xinventories.bypass.<group> - Bypass specific group (default: false)
- xinventories.lock.bypass - Bypass inventory locks (default: op)
- xinventories.restrict.bypass - Bypass item restrictions (default: op)
━━━━━━━━━━ Configuration ━━━━━━━━━━
Spoiler: groups.yml Example
Code (Text):
# Survival worlds - share inventory
survival:
priority: 10
worlds:
- "world"
- "world_nether"
- "world_the_end"
settings:
separateGameModeInventories: true
saveEnderChest: true
# Creative worlds - separate inventory
creative:
priority: 10
worlds:
- "creative"
patterns:
- "creative_.*"
settings:
separateGameModeInventories: false
# Minigames - fresh inventory each time
minigames:
priority: 20
patterns:
- "game_.*"
- "arena_.*"
settings:
saveHealth: false
saveExperience: false
clearOnJoin: true
# Conditional group example (VIP players)
vip_survival:
priority: 15
worlds: []
conditions:
permission: "xinventories.group.vip"
survival:
priority: 10
worlds:
- "world"
- "world_nether"
- "world_the_end"
settings:
separateGameModeInventories: true
saveEnderChest: true
# Creative worlds - separate inventory
creative:
priority: 10
worlds:
- "creative"
patterns:
- "creative_.*"
settings:
separateGameModeInventories: false
# Minigames - fresh inventory each time
minigames:
priority: 20
patterns:
- "game_.*"
- "arena_.*"
settings:
saveHealth: false
saveExperience: false
clearOnJoin: true
# Conditional group example (VIP players)
vip_survival:
priority: 15
worlds: []
conditions:
permission: "xinventories.group.vip"
━━━━━━━━━━ Storage Options ━━━━━━━━━━
YAML (Default)
Best for small servers. Human-readable, easy to edit manually.
SQLite
Best for medium servers. Better performance, single database file.
MySQL
Best for large servers and networks. Required for multi-server setups.
Migrate between backends with: /xinv convert <from> <to>
━━━━━━━━━━ Network Sync ━━━━━━━━━━
For BungeeCord/Velocity networks, xInventories supports real-time inventory synchronization using Redis:
- Real-time sync across all servers
- Distributed locking prevents data conflicts
- Configurable conflict resolution (latest-wins or merge)
- Server heartbeat monitoring
- Automatic cache invalidation
━━━━━━━━━━ PlaceholderAPI ━━━━━━━━━━
Spoiler: Available Placeholders
- %xinventories_group% - Current inventory group
- %xinventories_group_display% - Current group display name
- %xinventories_bypass% - Bypass status
- %xinventories_groups_count% - Total groups
- %xinventories_item_count% - Total items in inventory
- %xinventories_empty_slots% - Empty inventory slots
- %xinventories_armor_count% - Equipped armor pieces
- %xinventories_version_count% - Number of saved versions
- %xinventories_death_count% - Number of death records
- %xinventories_balance% - Per-group economy balance
- %xinventories_last_save% - Last save timestamp
- %xinventories_locked% - Whether inventory is locked
- %xinventories_lock_reason% - Lock reason if locked
- %xinventories_storage_type% - Storage backend
- %xinventories_cache_size% - Cache entries
- %xinventories_cache_max% - Max cache size
- %xinventories_cache_hit_rate% - Cache hit rate
- %xinventories_version% - Plugin version
━━━━━━━━━━ Developer API ━━━━━━━━━━
xInventories provides a comprehensive API for developers:
Code (Text):
// Get the API
val api = XInventoriesProvider.get()
// Get player's current group
val group = api.getGroupForWorld(player.world)
// Save/load inventories
api.savePlayerData(player)
api.loadPlayerData(player, "creative")
// Subscribe to events
api.onInventorySwitch { context ->
println("${context.player.name} switched groups")
}
// Version history API
api.versioning?.getVersions(player.uniqueId, "survival", 10)
// Death recovery API
api.deathRecovery?.getDeathRecords(player.uniqueId, 5)
val api = XInventoriesProvider.get()
// Get player's current group
val group = api.getGroupForWorld(player.world)
// Save/load inventories
api.savePlayerData(player)
api.loadPlayerData(player, "creative")
// Subscribe to events
api.onInventorySwitch { context ->
println("${context.player.name} switched groups")
}
// Version history API
api.versioning?.getVersions(player.uniqueId, "survival", 10)
// Death recovery API
api.deathRecovery?.getDeathRecords(player.uniqueId, 5)
━━━━━━━━━━ Support ━━━━━━━━━━
- GitHub Issues - Bug reports and feature requests
- Source Code - Open source on GitHub
━━━━━━━━━━ Screenshots ━━━━━━━━━━
Spoiler: Click to view screenshots
Main Admin GUI
Group Management
Player Inventory Viewer
Group Management
Player Inventory Viewer
Made with love by Reset65 | Licensed under MIT
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.20, 1.20.6, 1.21
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
✨ xInventories is a free Minecraft Java mod. Compatible with Minecraft 1.20, 1.20.6, 1.21, 26.1. Downloaded 178 times (via Spigot). Download it and open it directly in the game.