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.

218

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}` placeholderonly 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 placeholdersdynamic 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 PlaceholderAPIany 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>`.

---

ADS