Universal Graves
Universal Graves is a flexible Minecraft mod that creates special gravestones upon player death, preserving all their items and experience. The mod offers numerous customization options for personalizing the appearance and functionality of graves.
This addon works exclusively on Fabric and Quilt platforms. For proper operation on servers, client-side installation is required.
Appearance
Commands and Permissions
/graves— main command, shows player's grave list (permissionuniversal_graves.list, available by default)/graves player <player>— opens interface with selected player's graves (requiresuniversal_graves.list_others)/graves modify <player>— allows modifying own graves (needsuniversal_graves.modify)/graves reload— reloads configuration and styles (requiresuniversal_graves.reload)
With universal_graves.teleport permission, you can teleport to any grave.
Configuration Settings
Main configuration file is located at ./config/universal-graves/config.json. Text formatting uses Simplified Text.
Messages support variables like ${variable}. For most grave messages, available variables include: player, protection_time, break_time, xp, item_count, position, world, death_cause, minecraft_day, creation_date, since_creation, id.
Data Types
{/ PREDICATE /}— predicate format{/ COST /}— cost format
{
// Cost type: "free", "creative", "item", "level"
"type": "",
// Used only for "item", describes item
"input": {/ ITEMSTACK /},
// Amount
"count": 0
}
{/ ITEMSTACK /}— represents an item
Simple format: "minecraft:skeleton_skull"
Full format:
{
"id": "minecraft:skeleton_skull",
"Count": 1,
// Optional NBT
"tag": {}
}
Main Settings
{
"config_version": 3,
"protection": {
"non_owner_protection_time": 900,
"self_destruction_time": 1800,
"drop_items_on_expiration": true,
"attackers_bypass_protection": false,
"use_real_time": false
},
"interactions": {
"unlocking_cost": { / COST / },
"give_death_compass": true,
"enable_click_to_open_gui": true,
"shift_and_use_quick_pickup": true,
"allow_remote_protection_removal": true,
"allow_remote_breaking": true,
"allow_remote_unlocking": false
},
"storage": {
"experience_type": "percent_points",
"experience_percent:setting_value": 100.0,
"can_store_only_xp": false,
"alternative_experience_entity": false,
"blocked_enchantments": ["somemod:soulbound"]
},
"placement": {
"player_grave_limit": -1,
"replace_any_block": false,
"max_distance_from_source_location": 8,
"shift_location_on_failure": true,
"max_shift_tries": 5,
"max_shift_distance": 40,
"generate_on_top_of_fluids": false,
"restore_replaced_block": false,
"restore_replaced_block_after_player_breaking": true,
"cancel_creation_for_damage_types": {
"minecraft:fire": "... message or empty"
},
"cancel_creation_for_ignored_attacker_types": {
"minecraft:player": "... message or empty"
},
"blocking_predicates": [{/ PREDICATE /}],
"block_in_protected_area": {
"goml:claim_protection": true
},
"blacklisted_worlds": ["dungeons:world"],
"blacklisted_areas": {
"minecraft:overworld": [
{
"x1": -100,
"y1": -200,
"z1": -100,
"x2": 100,
"y2": 500,
"z2": 100
}
]
},
"creation_default_failure_text": "...",
"creation_claim_failure_text": "..."
},
"teleportation": {
"cost": {/ COST /},
"required_time": 5,
"y_offset": 1.0,
"invincibility_time": 2,
"allow_movement_while_waiting": false,
"text": {
"timer": "...",
"timer_allow_moving": "...",
"location": "...",
"canceled": "..."
}
},
"model": {
"default": "default",
"alternative": [
{
"require": {/ PREDICATE /},
"model": "model_name"
}
],
"enable_geyser_workaround": true,
"gravestone_item_base": "minecraft:skeleton_skull",
"gravestone_item_nbt": {}
},
"ui": {/ UI DEFINITIONS, modify text /},
"text": {
"date_format": "dd.MM.yyyy, HH:mm",
"world_names": {
"custom:world": "Custom World!"
}
}
}
Grave Models
Grave models are stored in the config/universal-graves/models/ folder. By default, there should be an example.json file, which is a copy of the default style.
To override the default grave style, copy this file and rename it to default.json or another name specified in the configuration. You can use different names and alternatives to create random or unique models.