Sueta

inventoryrestore

1.3.0

InventoryRestore backs up player inventories and lets staff inspect and restore with crash recovery, autosave, and a Discord webhook & in game logging system

·Plugin
Tested MC versions
1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 26.1, 26.2, 26.3

InventoryRestore

Discord
GitHub
Minecraft
Folia

InventoryRestore backs up player inventories and lets staff inspect, restore, and document refunds—with optional MySQL, crash recovery, autosave, and a Discord webhook for refund confirmations.


Features

Backups & storage

  • Automatic saves when players join, quit, die, change worlds, crashes, and on a configurable autosave interval

  • Force backup for one online player or everyone online (/ir forcebackup).

  • YAML (default) or MySQL for centralized storage.

  • Per-player limits per save type (max-saves: join, quit, death, world-change, force, crash).

## Maximum saves a backup will hold per type per user.
max-saves:
  join: 10
  quit: 10
  death: 50
  world-change: 10
  force: 10
  crash: 20
  • Material ignore list so chosen items are never stored (backup-ignore-materials) this is so that item is not taking up lots of storage for example string if you have a /string plugin.
## Materials (Bukkit names) excluded from backups and not stored. Example: [DIRT, STONE]
## Empty list = nothing ignored.
backup-ignore-materials: []
  • Offline restores & inventory viewing

  • Export restores to shulkers, chests, bundles & drop Incase you dont want to restore someones current inventory you can put chests at their base, put a bundle in their inventory etc.

Staff GUIs

  • Main menu — browse players (restore mode shows names; refund mode can hide names for privacy).
    Main menu

  • Player menu — choose backup category (join, quit, death, world change, force, crash).
    Main inventory backup menu

JoinsQuitsDeaths
Joins backupsQuits backupsDeath backups
World changesForce savesCrashes
World change backupsForce savesCrash backups
  • Rollback list — paginated list of snapshots with timestamps (timezone/format configurable).

Rollback list

  • Main inventory backup — full 36-slot preview, armor & off-hand in the same layout as vanilla, plus actions:
    Player / restore menu
    • Restore main inventory + armor + off-hand (with overwrite warning when the target still has items; skipped if their inventory is completely empty when detectable).
    • Ender chest backup view and restore.
    • Hunger and XP restore (when target is online).
    • Teleport to saved backup location (permission inventoryrestore.restore.teleport).
    • Export to storage (extract items for manual handling).
    • Backup activity — who opened or restored a snapshot (audit trail).
  • Overwrite warning — shows the target’s current inventory (or last saved layout offline) including armor & off-hand before confirming a full restore.
    Overwrite warning

Screenshots — restore actions & tools

Teleport to backup coordsEnder chestEnder chest
Restore coordsEnder chest restore 1Ender chest restore 2
Restore foodRestore XPRestore offline
Restore foodRestore XPRestore offline
Export (chest)Export (bundle)
Export chestExport bundle

Backup activity

Refund / restore history (1)Refund / restore history (2)
Restore history 1Restore history 2

Commands & safety

  • /restore / /ir restore [player|uuid] — open restore GUI; supports UUID or name tab-complete.
  • /refund / /ir refund [player|uuid] — refund GUI + ledger context.
  • /ir enable, /ir disable, /ir reload, /ir version, /ir help.
  • /ir import confirm — one-time migration from legacy backup data (requires inventoryrestore.import; grant via your permissions plugin if needed).
  • Configurable death event ordering vs other plugins (allow-other-plugins-edit-death-inventory).
  • loadbefore several death-chest style plugins to reduce ordering conflicts.

Integrations & ops

  • Optional Discord refund webhook when a full restore is confirmed from the refund GUI (refund-webhook in config.yml).
  • Update checker on startup (configurable).
  • Sounds for restore, teleport, food, hunger, and XP (each togglable).

Commands

CommandPermissionDescription
/restore [player]inventoryrestore.viewbackupsOpen restore GUI (optional target).
/refund [player]inventoryrestore.refundOpen refund GUI.
/ir restore [player]inventoryrestore.viewbackupsSame as /restore.
/ir refund [player]inventoryrestore.refundSame as /refund.
/ir forcebackup allinventoryrestore.forcebackupForce-save all online players.
/ir forcebackup player <name>inventoryrestore.forcebackupForce-save one online player.
/ir enableinventoryrestore.enableTurn plugin on.
/ir disableinventoryrestore.disableTurn plugin off.
/ir reloadinventoryrestore.reloadReload config.
/ir versioninventoryrestore.versionVersion info.
/ir helpinventoryrestore.helpIn-game command list.
/ir import confirminventoryrestore.importImport legacy backups (destructive; confirm only).

Child permission inventoryrestore.restore.teleport — allows teleporting to the backup’s saved world/coords from the GUI.

Full permission tree is in plugin.yml.


Configuration (config.yml)

OptionWhat it does
enabledMaster switch.
max-savesCaps per type per player.
backup-lines-visibleRows visible on rollback list (max 5).
folder-locationData path or DEFAULT.
mysqlEnable DB + pool settings.
sounds.*.enabledToggle feedback sounds.
time-zone / time-formatBackup timestamp display.
allow-other-plugins-edit-death-inventoryDeath save timing vs other plugins.
restore-to-player-buttonShow full-restore button.
save-empty-inventoriesWhether empty snapshots are kept.
backup-ignore-materialsBukkit material names to skip.
refund-webhookDiscord POST on refund-path full restore.
autosave-*Interval autosave + crash recovery behavior.
update-checkerGitHub Releases update notice (vanillaxtra/inventoryrestore).
bStatsAnonymous metrics (see below).
debugExtra console logging.

📊 bStats

bStats: servers using InstantBrew

Similar projects

Plugin →