
Sour Graves
A simple, configurable grave plugin for 1.21+
Автор: irishgreencitrus2,2 тыс.3обновлён 22 авг. 2025 г.
ПриключенияМеханики игрыУтилиты
Описание
Sour Graves
- Save your items from being deleted after a death!
- Items are always saved no matter how you die!
- Recover items by clicking on the grave
- Graves become public (raidable) after a timer (5 mins by default)
- Graves are deleleted with their items dropped on the ground after a timer (30 mins by default)
Default Configuration
# irishgreencitrus' Sour Graves v2 config
#
#
##############################################
# COMMENTS MADE IN THIS FILE WILL BE DELETED #
##############################################
#
#
# Notable updates since v1:
# - Graves are now stored in `graves.db` instead of `graves.json`.
# - If you have an existing `graves.json`, they should be converted to the new format.
# - Postgres and MySQL are also supported as external databases.
#
# Everything in the plugin is completely configurable.
# If you mess up the file, you can delete it to reset it to the defaults.
#
# Some key notes:
# - A player without any items in their inventory will not drop a grave.
# - A player with keepInventory enabled will not drop a grave.
# - The cleanup task is what actually deletes graves, as well as saves graves to disk.
# It should not be ran too infrequently, as your graves will not be saved if the server crashes.
# The default should probably be fine, but it can be raised or lowered as necessary.
## There is no need to edit this manually, it just tells the plugin whether to rewrite the config after it has been updated.
configVersion = 2
# After this many minutes, the grave will be accessible by all players.
# Set to `-1` to disable this.
publicInMinutes = 5
# After this many minutes, the grave will be deleted.
# Set to `-1` to disable this.
deleteInMinutes = 30
# The maximum number of graves a player can have.
# After this limit, a player's oldest grave will be deleted.
# Set to `-1` to disable this
maxGravesPerPlayer = 3
# Whether to prevent graves being created for PvP kills
disableForPvpKills = false
# Whether to drop the items of the oldest grave once a player has exceeded max graves
dropItemsOnTooManyGraves = true
# Whether to drop the items of a just-deleted grave. If false, the items just disappear
dropItemsOnGraveDeletion = true
# The particle to use for the grave recovery animation
recoverParticle = "SOUL"
# The number of particles to use in the grave recovery animation
recoverParticleAmount = 1000
# The sound to play on grave recovery
recoverSound = "minecraft:block.respawn_anchor.deplete"
# When should the first grave cleanup run, after the server has started
periodicCleanupDelayMinutes = 10
# How frequently the grave cleanup runs
periodicCleanupPeriodMinutes = 5
# Whether to send a player their grave coordinates once they respawn
notifyCoordsOnRespawn = false
# If this is `true`, the default Right-Click will now open an inventory.
# You can use Shift-Right-Click to restore the grave as normal.
allowChestLikeGraveAccess = false
# Swaps the behaviour of normal and shift clicking when `allowChestLikeGraveAccess` is `true`
chestAccessSwapNormalAndShift = false
# Whether to use legacy json-based file storage rather than the new SQLite database.
# I can't think of any reason to enable this, but the functionality remains, so the option also remains.
# Overrides any settings in [sql].
forceLegacyFileStorage = false
# A list of the worlds that graves will *not* spawn in.
# This will lead to the default behaviour i.e. dropping items.
# Example values: ['world_nether']
disabledWorlds = [ ]
# Changing the [sql] options require you to restart the server.
# NOTE: this only controls the supported SQL servers.
# SQLite storage is enabled by default and does not require any configuration.
[sql]
# Whether to enable connecting to a SQL server to store graves, instead of the JSON file.
# Useful for very large servers where a lot of graves are being created.
enable = false
# Supported SQL servers: MySQL and PostgreSQL
# Google 'jdbc connection URL' to find out what to put here
jdbcConnectionUri = "jdbc:postgres:admin@localhost/sourgraves"
username = "admin"
password = "changeme"
# Soft deletion will mean all grave data will stay in the database, and only ever be marked as deleted.
# This provides extra protection against item loss and allows complete recovery.
# Disabling this will not retroactively apply, and merely actually delete graves made after the change.
softDeletion = true
alreadyConvertedFromJson = true
[economy]
# Whether to enable the economy features of this plugin (Requires VaultUnlocked to be installed)
enable = false
# The cost to recover one of your own graves
graveRecoverCost = 1.0
# The cost either per grave or per item stack in the grave
graveRecoverPaymentType = "FLAT"
# The cost to rob someone else's grave
graveRobCost = 5.0
# The cost either per grave or per item stack in the grave
graveRobPaymentType = "FLAT"
# Change anything in here if you find the log messages too invasive.
# Most severe and warning messages cannot be disabled, by design.
[logMessages]
# Whether to enable the GitHub and Discord message on startup.
startupMessage = true
# Whether to log every time the cleanup task runs. Useful for debugging configuration.
# Not recommended to leave on for prolonged periods of time.
cleanupTask = false
# Whether to log if a grave hasn't stored its location. Can occur for graves created before v1.5.0.
# It is recommended to leave this enabled as it will only be printed once anyway.
graveMissingLocation = true
# Gives a warning if a grave that is about to be deleted has its chunk loaded but the armour stand (The player head) has been deleted.
# This could be a sign that another plugin is deleting armour stands.
armourStandNotFoundOnGravePurge = true
# Gives a warning on startup if you are still using legacy JSON storage and have more than 100 graves.
moreThan100GravesWarning = true
Permissions
sourgraves.admin.server:
description: Allows you to use `/sourgraves disk` and `/sourgraves config`
default: op
sourgraves.admin.settings:
description: Allows you to use `/sourgraves settings`
default: op
sourgraves.admin.give:
description: Allows you use `/sourgraves give`
default: op
sourgraves.player.graveaccess:
description: A player with this permission can open any grave, regardless of whether it is public.
default: false
sourgraves.player.permaprivate:
description: A player with this permission will have a grave that never goes public.
default: false
sourgraves.player.permagraves:
description: A player with this permission will have a grave that never expires by itself. This doesn't affect other situations which delete a grave.
default: false
sourgraves.utils.player:
description: Allows you to use `/sourgraves player`
default: op
sourgraves.utils.locateown:
description: Allows you to use `/sourgraves locate`
default: true
Found a bug, have questions or feature requests?
Join the Discord on the right hand side and drop me a message.
Последние версии
Все версии →release
Sour Graves 2.4.0
2.4.022 авг. 2025 г.582Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8paper, purpur
Что нового
- Fix give by grave uuid not working
- Add `undelete` support, where you can restore a grave back when soft deletion is enabled
- Move `/sourgraves config reload` to `/sourgraves reload`
- Fix critical issue with 2.3.0 (sorry once again)
release
Sour Graves 2.2.0
2.2.031 июл. 2025 г.124Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8paper, purpur
Что нового
Move at what point during death grave storage happens.
It used to happen at `EventPriority.LOWEST` and this has been moved to `EventPriority.HIGH`.
This allows other plugins to modify the inventory before a Grave is created.
release
Sour Graves 2.1.1
2.1.129 июл. 2025 г.63Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8paper, purpur
Что нового
Fix bug where the plugin would crash if Vault was installed in place of VaultUnlocked.
release
Sour Graves 2.1.0
2.1.027 июл. 2025 г.54Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8paper, purpur
Что нового
Add bStats metrics.
https://bstats.org/plugin/bukkit/SourGraves/26681
release
Sour Graves 2.0.0
2.0.021 июл. 2025 г.78Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8paper, purpur
Что нового
# Release 2.0.0
## SQL support
- Change grave storage format from JSON to SQLite.
- Add automated conversion from legacy storage format to the new SQL based one.
- Also add support for the Postgres and MySQL servers.
- Support soft deletion for the SQL servers so that data is never lost, only marked as deleted.
Legacy JSON storage can be re-enabled in the config.
The plugin will disable itself to prevent data loss if the configuration is incorrect.
## Timers based on game time
Grave expiry is now based on game time rather than the system clock.
This means graves should be work better for servers that shutdown frequently.
## Improved log messages
- Log messages can now be configured
- Log messages are generally less frequent and less annoying
- Severe log messages now appear for a reason.
- The infamous message for graves which existed before `v1.4.0` only appear once per startup.
## More Permissions
- A player with `sourgraves.player.permaprivate` will never have their grave accessible to others.
- A player with `sourgraves.player.permagraves` will never have their grave expired and killed by the server, but it could still be killed by other means such as too many graves or the grave give command.
## More stable inventory saving
The plugin now respects other plugins that change `keepInventory` during death. This is a thing you can do (e.g. custom totems), so the plugin now respects it. This prevents item duplication.
## Grave `give` command
There is a new command available which is `/sourgraves give [options]`.
At the moment there are 3 versions of the command:
> Note: After this command is executed, the grave will be deleted from
> storage to prevent duplication of items.
### `by_grave_uuid`
```
/sourgraves give by_grave_uuid <uuid> <give_to>
```
Give the grave found at `uuid` to the player `give_to`
- The `uuid` can be found by looking through the database.
- `give_to` is the player to give the contents of the grave to.
### `oldest`
```
/sourgraves give oldest <grave_owner> <give_to>
```
Give the oldest grave owned by `grave_owner` to `give_to`.
- `grave_owner` is the player that owns the grave.
- `give_to` is the player to give the contents of the grave to.
### `newest`
```
/sourgraves give newest <grave_owner> <give_to>
```
Give the newest grave owned by `grave_owner` to `give_to`.
- `grave_owner` is the player that owns the grave.
- `give_to` is the player to give the contents of the grave to.
## Chest-like Grave Access
Enabling `allowChestLikeGraveAccess` will mean that clicking on a grave will
cause it to open an inventory instead of restoring it directly.
Shift-clicking will restore the grave as normal.
The click and shift-click behaviour can be swapped using `chestAccessSwapNormalAndShift`
## Other Config Options
- `disableForPvpKills` will mean that graves will not spawn for PvP kills, and the default Minecraft behaviour will occur.
- `forceLegacyFileStorage` for re-enabling JSON storage.
- `disabledWorlds` for disabling graves in a specific world.
release
Sour Graves 1.5.0
1.5.029 июн. 2025 г.140Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6paper, purpur
Что нового
# Release 1.5.0
- Add basic economy support
- Cache locations of unloaded graves, so locate command works properly on any grave
- Add `graveaccess` permission
- Remove extraneous messages relating to graves being valid
release
Sour Graves 1.4.0
1.4.025 июн. 2025 г.65Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6paper, purpur
Что нового
# Release 1.4.0
Add an option to disable the `[SourGraves] Cleaned graves and written to disk` message.
This is in the config as `logCleanupTaskRuns` and is now `false` by default.
release
Sour Graves 1.3.0
1.3.022 июн. 2025 г.60Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6paper, purpur
Что нового
# Release 1.3.0
- Fix bug related to Bukkit not properly reporting the version of the plugin.
- Fix items always being dropped even with the purge graves config being `false`.
- Add some notes into the config file.
release
Sour Graves 1.2.0
1.2.020 июн. 2025 г.62Minecraft: 1.21.6paper, purpur
Что нового
# Release 1.2.0
- Fix a bug related to permissions not working correctly which meant anyone could edit settings (oops)
- Add `/sourgraves locate` which allows a player to locate their oldest, newest, nearest or furthest grave.
- Add a setting to notify the player of their grave's coordinates when they respawn.
- Make the permissions more granular
release
Sour Graves 1.2.0
1.2.020 июн. 2025 г.35Minecraft: 1.21.5paper, purpur
Что нового
# Release 1.2.0
- Fix a bug related to permissions not working correctly which meant anyone could edit settings (oops)
- Add `/sourgraves locate` which allows a player to locate their oldest, newest, nearest or furthest grave.
- Add a setting to notify the player of their grave's coordinates when they respawn.
- Make the permissions more granular