SafeChest
Never lose your items again! SafeChest automatically saves your inventory in a protected chest when you die. Teleport or fetch it back with simple commands.
SafeChest
---
📦 SafeChest v0.0.5 — The Ultimate Player Safety & Server Management System
> ultimate safety net and server management suite SafeChest automatically saves your entire inventory, armor, and off-hand item into a chest at your death location. Recover it easily — no more rage-quitting after falling into lava! > > ultimate safety net and server management suite We’ve added professional admin tools, sound effects, animated holograms, PlaceholderAPI integration, pagination, live GUI updates, and fixed critical performance bugs. This isn’t just a Death Chest plugin — it’s the ultimate safety net and server management suite for your players and staff.
---
✨ Key Features — v0.0.5 Edition
🛡️ Breaking your own chest now instantly restores your inventory — no more misclicks! Only you (or admins) can open or break your chest. Configurable protection from entity/block explosions. Breaking your own chest now instantly restores your inventory — no more misclicks!
⏳ only the `{time}` placeholder Floating display shows your name, item count, and real-time countdown. only the `{time}` placeholder ✨ only the `{time}` placeholder Holograms now only the `{time}` placeholder when time is running out (configurable threshold and colors). ✨ only the `{time}` placeholder Option to blink only the `{time}` placeholder for subtle, elegant alerts.
🧭 NEW: One click, and you’re back at your death spot. Use `/sctp 2` to teleport to a specific chest from your list. Configurable "force teleport" if no safe spot is found. 🔊 NEW: Play a configurable sound on teleport.
🧲 NEW: Perfect for deaths in the void, lava, or caves. The chest (and its hologram) move with you. 🔊 NEW: Play a configurable sound on fetch.
👁️ BARRIER close button View chest contents without moving — safe and read-only. Fully customizable GUI. ✨ BARRIER close button GUI BARRIER close button from the database. If the chest expires while you’re viewing it, the GUI closes automatically. ✨ BARRIER close button Dedicated BARRIER close button in slot 44 for explicit closure.
📋 paginated (5 per page) Clickable list of all your chests. Teleport to any instantly. Sort by time, filter by world, show UUIDs. ✨ paginated (5 per page) Results are now paginated (5 per page) with clickable `[Previous]` and `[Next]` buttons. Use `/sclist 3` to jump to page 3.
💰 logged to the server console Charge players for `/sctp` or `/scfetch` — configurable per group. Action Bar feedback on payment. 📝 logged to the server console All payments and chest interactions are now logged to the server console for auditing and debugging.
👥 first group Define custom rules for `default`, `vip`, `admin` — different durations, limits, prices, first group (e.g., VIPs get Barrels, Admins get Shulker Boxes). > 💡 Players are assigned to the first group they have permission for.
💬 dynamic placeholders After dying, get clickable buttons: dynamic placeholders, dynamic placeholders, dynamic placeholders. dynamic placeholders ✨ dynamic placeholders Hover text for buttons now shows dynamic placeholders like `{cost}` and `{time}`. Example: `"Cost: 50 coins. Expires in: 2m 30s."`
💾 manual migration required Supports manual migration required storage. manual migration required ⚠️ manual migration required Table name changed from `angelchests` to `safechests` — manual migration required on update.
⚙️ sounds, hologram animations, and much more Control sounds, hologram animations, and much more: particle types, action bar messages, GUI titles, button visibility, world restrictions, explosion protection, sounds, hologram animations, and much more — all editable in `config.yml`.
🔄 `/safechestreload` Reload configs without restarting the server — essential for live admins. Safer than `/reload`.
🎨 sounds ❤️ Configurable particles on creation. ✨ Configurable particles on recovery. Optional Action Bar messages. 🔊 sounds Configurable sounds on creation, restore, teleport, and expiration.
🌐 IMPROVED: Enable or disable the plugin in specific worlds. Filter `/sclist` to show only the current world. ✨ IMPROVED: Configuration now uses `behavior.disabled-worlds` (a blacklist) for clearer logic.
🧠 any plugin that supports PlaceholderAPI ✨ any plugin that supports PlaceholderAPI Use placeholders like `%safechest_time_left%`, `%safechest_item_count%`, `%safechest_location%` in any plugin that supports PlaceholderAPI (scoreboards, chat, menus, etc.).
🛠️ BRAND NEW: ✨ BRAND NEW: A powerful toolkit for server staff: * `inspect <player>`: List all active chests for a player (click to teleport). * `delete <uuid>`: Delete a specific chest by its UUID. * `purge`: Manually purge all expired chests from the database. * `stats`: Show server-wide statistics (total active/expired chests, players with chests, etc.).
⚠️ 🐞 Fixed: Economy Errors Not Logged * 🐞 Fixed: Economy Errors Not Logged — No more server freezes when clicking or breaking chests. Operations are now fully asynchronous. * 🐞 Fixed: Economy Errors Not Logged — Holograms now start their countdown timer correctly after a server reboot. * 🐞 Fixed: Economy Errors Not Logged — Payment failures are now logged to the server console for easy debugging.
---
📘 Wiki: How to Use SafeChest v0.0.5
🧭 1. Basic Usage (For Players)
💀 When You Die
- A chest will automatically appear at your death location. - All your items (inventory, armor, off-hand) are stored inside. - You’ll receive a [PREVIEW] chat message with clickable buttons: - [PREVIEW] → `/sctp` — Teleports you to the chest. Hover shows cost and time remaining. - [PREVIEW] → `/scfetch` — Brings the chest to you. Hover shows cost and time remaining. - [PREVIEW] → `/scpreview` — Shows chest contents without moving. Hover shows time remaining.
📥 To Recover Your Items
- `/scfetch` and `/scfetch` to restore your inventory. - Or use `/scfetch` to teleport to it. - Or use `/scfetch` to bring it to you.
👀 Preview Your Chest (No Movement Needed)
```bash /scpreview ``` - Opens a virtual inventory showing all your stored items. - Completely safe — you can’t take or modify anything. - The GUI red BARRIER every 5 seconds. If the chest expires, the GUI closes automatically. - Click the red BARRIER in the bottom row to close it manually.
📋 List All Your Active Chests (Paginated!)
```bash /sclist ``` - Shows all your active chests in pages of 5. - Configurable: Filter by current world, sort by expiration time, show UUID in hover. - Click any entry to teleport directly to that chest (if you have permission). - Use `/sclist 2` to jump to page 2.
---
⚙️ 2. Configuration (For Server Admins)
📁 Files You Can Customize
- `config.yml` — new messages for pagination, admin commands, and logging: storage, chest material, hologram text, particle types, death message buttons, GUI options, world restrictions, explosion protection, new messages for pagination, admin commands, and logging. - `groups.yml` — Define player groups (e.g., `default`, `vip`, `admin`) with custom durations, chest limits, command prices, new messages for pagination, admin commands, and logging. - `lang.yml` — Translate or customize every message in the plugin, including new messages for pagination, admin commands, and logging.
🎯 Example: Creating a VIP Group
In `groups.yml`:
```yaml vip: safechest-duration: 600 # 10 minutes max-allowed-safechests: 10 # Can have up to 10 active chests price-teleport: 50.0 # Costs 50 coins to teleport price-fetch: 100.0 # Costs 100 coins to fetch material: "BARREL" # ✅ NEW: VIPs get Barrels instead of Chests! ```
Then, give players the permission: `safechest.group.vip`
> 💡 Players are assigned to the first group they have permission for.
🖋️ Customizing the Hologram & Death Message
In `config.yml`:
```yaml angelchest: hologram-text: "&a&l[SafeChest]&rn&b{player}n&7{items} items / {time}"
✅ NEW SECTION: HOLOGRAM ANIMATION
hologram-animation: enabled: true threshold-seconds: 10 # Start blinking when 10 seconds or less remain color-on: "RED" color-off: "YELLOW" blink-only-time-placeholder: true # Only blink the {time} part
death-message: enabled: true show-buttons: true show-button-tp: true show-button-fetch: false # Disable fetch globally show-button-preview: true ```
Placeholders (for `hologram-text`, `lang.yml`, and death message hovers): - `{player}` — Player’s name. - `{items}` — Total number of items in the chest. - `{time}` — Time remaining until expiration. - `{cost}` — Cost of the action (for death message hovers).
> ✅ Multi-line holograms are now fully supported and restored on server restart.
🎮 Customizing the Player Experience
In `config.yml`:
```yaml messages: use-action-bar: true # Show "Chest Created!" in action bar instead of chat use-particles: true particle-on-create: "HEART" particle-on-restore: "END_ROD"
✅ NEW SECTION: SOUNDS
sounds: enabled: true on-create: "ENTITY_PLAYER_LEVELUP" on-restore: "ENTITY_ENDERMAN_TELEPORT" on-teleport: "ENTITY_ENDERMAN_TELEPORT" on-expire: "ENTITY_ITEM_BREAK"
commands: preview-gui: title: "&6My Items - SafeChest" # Change the GUI title info-item-material: "BOOK" # Change the info item force-close-only-with-esc: true # Only close preview with ESC key
aclist: show-only-current-world: true # Only show chests in the player's current world sort-by-expiration: true # Show expiring chests first show-uuid-in-hover: false # Hide UUID (useful for debugging if true) ```
🛡️ Advanced Behavior Control
In `config.yml`:
```yaml behavior:
✅ RENAMED: From 'enabled-worlds' to 'disabled-worlds'
disabled-worlds: ["world_the_end"] # Disable plugin in The End protect-from-entity-explosions: true # Protect from Creepers protect-from-block-explosions: false # Allow TNT to destroy chests force-clear-drops-on-death: true # Fix double-drop bug ```
---
💰 3. Economy Setup
SafeChest integrates with Vault. Make sure you have a compatible economy plugin installed (e.g., EssentialsX, CMI).
💵 Charging for Commands
In `groups.yml` or `config.yml`, set prices:
```yaml price-teleport: 50.0 price-fetch: 100.0 ```
Players will be charged automatically when using `/sctp` or `/scfetch`.
> ✅ If Vault is not installed, these features are silently disabled — no errors. (`softdepend: [Vault]`).
---
🔄 4. Reloading Configurations
As an admin, you can reload all configurations without restarting the server:
```bash /safechestreload ```
Required Permission: `safechest.reload`
This command: - Reloads `config.yml`, `groups.yml`, and `lang.yml`. - Clears expired chests from cache. - Reinitializes the plugin container. - Does NOT break active chests or holograms.
> 🚫 Warning: Avoid using `/reload` during heavy server activity. `/safechestreload` is much safer.
---
🛡️ 5. Permissions (Renamed!)
| Permission | Description | Default | |------------|-------------|---------| | `safechest.use` | Allows using the Death Chest system | `true` | | `safechest.protect` | Allows protecting your chest from others | `true` | | `safechest.protect.ignore` | Allows opening SafeChests protected of other players | `op` | | `safechest.tp` | Allows using `/sctp` | `true` | | `safechest.fetch` | Allows using `/scfetch` | `true` | | `safechest.group.<name>` | Assigns player to a group (e.g., `safechest.group.vip`) | — | | `safechest.reload` | Allows using `/safechestreload` | `op` | | `safechest.admin` | ✅ NEW: Allows using `/safechestadmin` | `op` |
> ✅ Use LuckPerms, PermissionsEx, or any other permission manager to assign these.
---
❓ 6. FAQ & Troubleshooting — v0.0.5
NOT A: Make sure you have permission `safechest.use`. Also, check if the world is NOT listed in `behavior.disabled-worlds` in `config.yml`.
Fixed in v0.0.3 and perfected in v0.0.5! A: Fixed in v0.0.3 and perfected in v0.0.5! Holograms are now automatically restored and their timers are restarted on server start. If they’re still missing, check server logs for errors.
Q: I get “Initializing... try again later”. A: The database is still loading. Wait a few seconds and try again.
Q: Can I change the chest to a Barrel or Shulker Box? A: Yes! In `config.yml`, set globally: ```yaml material: "BARREL" ``` Or per-group in `groups.yml`: ```yaml vip: material: "SHULKER_BOX" ```
Q: How do I disable the death message buttons? A: In `config.yml`, set `death-message.show-buttons: false`, or disable individual buttons like `show-button-fetch: false`.
Q: My players are complaining about double drops! A: Enable `behavior.force-clear-drops-on-death: true` in `config.yml` to fix this.
Q: How do I make `/sctp` work even if there’s no “safe spot”? A: Set `commands.teleport-unsafe-behavior: "force"` in `config.yml`.
rename your database table A: rename your database table You must rename your database table from `angelchests` to `safechests` before starting the server. Also, update all permissions and commands from `angelchest` to `safechest`.
Q: How do I see server stats? A: Use the new admin command: `/safechestadmin stats`.
Q: How do I delete a specific chest? A: Use `/safechestadmin delete <uuid>`. You can find the UUID via `/safechestadmin inspect <player>`.
---