-
Notifications
You must be signed in to change notification settings - Fork 18
Home
This wiki is made for modpack makers and server admins and so on to get a greater understanding of how to customize the mod to their liking
Config file located in config/yigd.json
. This is meant to let you know what each config does. Since comments are illegal in json, this will not work to paste in your config file
{
"inventoryConfig": { // Configure everything you want about the player inventory on death
"dropPlayerHead": false, // Should the player drop their head? true/false
"itemLoss": { // Configure the possibility to lose items
"enabled": false, // Enable sub-module
"affectStacks": false, // If true, entire stacks will vanish. If false, single items in these stacks will vanish
"usePercentRange": true, // If true, range (defined below) will be a percentage of the player inventory. If false, range will be a total number of items/stacks lost (depending on config)
"lossRangeFrom": 0, // Lower bound of loss range
"lossRangeTo": 100, // Upper bound of loss range
"percentChanceOfLoss": 50, // For each selected item, what is the chance (in percent) of the item vanishing?
"canLoseSoulbound": false // If false, soulbound can't be affected by the item loss mechanic
},
"vanishingEnchantments": [ // List of all enchantments that will have a "vanishing" trait, like the curse of vanishing vanilla enchantment
"minecraft:vanishing_curse"
],
"soulboundEnchantments": [ // List of all enchantments that will have a "soulbound" trait, meaning items with this enchantment will not be dropped on death, and you keep them when you respawn
"yigd:soulbound"
],
"loseSoulboundLevelOnDeath": false, // If true, soulbound levels will decrease when dying
"vanishingSlots": [], // List of slots in your inventory (IDs for vanilla inventory will be 0-40) in which items will always be deleted on death
"soulboundSlots": [], // List of slots in your inventory (IDs for vanilla inventory will be 0-40) in which items are always kept on respawn
"dropOnGroundSlots": [] // List of slots in your inventory (IDs for vanilla inventory will be 0-40) in which items will always drop on ground (instead of ending up in a grave if the grave config component would be enabled)
},
"expConfig": { // Configure everything you want about player XP on death
"dropBehaviour": "BEST_OF_BOTH", // When VANILLA, XP drops with vanilla mechanics, with at most 100 XP points (takes you roughly to level 7 from no XP). Can be either VANILLA or PERCENTAGE. When PERCENTAGE, the dropPercentage config will decide how much is dropped. BEST_OF_BOTH evaluates both vanilla and percent drop and picks the highest, and WORST_OF_BOTH does the same but with the lowest value
"dropPercentage": 0, // How much of your XP that will drop. All other XP will be gone. Will not make any difference if dropBehaviour is set to VANILLA
"keepPercentage": 0 // How much OF YOUR STORED XP should be kept on respawn
},
"graveConfig": { // Configure your graves any way you want
"enabled": true, // Are graves enabled? Configs outside graveConfig will still work when this module is disabled
"storeItems": true, // Should items be stored in the grave?
"storeXp": true, // Should XP be stored in the grave?
"informGraveLocation": true, // Should players receive a message when they respawn, telling them where their last grave is located?
"requireItem": false, // If true, graves will not generate unless an item (from requiredItem config) is in inventory
"requiredItem": "yigd:grave", // Decides what item is required for a grave to spawn (requires "requireItem" config to work)
"requireShovelToLoot": false, // If true, you will not be able to loot a grave unless you have a shovel
"retrieveMethods": { // What methods can be used in order to retrieve/loot graves
"onClick": true, // Graves can be looted by right-clicking them
"onBreak": false, // Graves can be looted by breaking them
"onSneak": false, // Graves can be looted by sneaking on top of them
"onStand": false // Graves can be looted by standing on top of them
},
"mergeStacksOnRetrieve": true, // Should stacks in your inventory merge with stacks in the grave? For example, if false, if you have 22 planks in the grave, and 15 in your inventory, you will get two stacks of 15 respectively 22 planks after looting the grave. If true, you'll get one stack with 37 planks
"dropOnRetrieve": "IN_INVENTORY", // Can be IN_INVENTORY (fills your inventory as much as possible with grave items) or ON_GROUND (drops all items from grave on the ground).
"dropGraveBlock": false, // If true, a grave block will be dropped when looting a grave
"generateEmptyGraves": false, // If false, a grave will not generate unless there are something that the grave should contain
"overrideSpawnProtection": true, // If true, you will be able to override spawn protection for grave blocks (exclusively)
"claimPriority": "GRAVE", // Which layout should be prioritized when claiming your own grave. Can be GRAVE (layout from death prioritized) or INVENTORY (current inventory layout prioritized). This config will sync across servers for players, meaning players can have different personalized priorities.
"graveRobbing": { // Sub-module for grave robbing (looting graves that is not your own)
"enabled": true, // Enable sub-module
"onlyMurderer": false, // Only allow the killer of the player to loot the grave
"afterTime": 1, // Decides together with timeUnit, after how long the grave is robbable
"timeUnit": "HOURS", // Decides together with afterTime, after how long the grave is robbable
"robPriority": "INVENTORY", // Which layout should be prioritized when claiming your own grave. Can be GRAVE (layout from death prioritized) or INVENTORY (current inventory layout prioritized). This config will sync across servers for players, meaning players can have different personalized priorities.
"notifyWhenRobbed": true, // Notify grave owner when a grave is robbed (if player is offline they will be notified when they log back on)
"tellWhoRobbed": true // Notify grave owner who robbed their grave (if player is offline they will be notified when they log back on)
},
"graveTimeout": { // Sub-module for configuring grave timouts, which will remove the grave after some time
"enabled": false, // Enable sub-module
"afterTime": 5, // Decides together with timeUnit, after how long the grave will disappear
"timeUnit": "HOURS", // Decides together with afterTime, after how long the grave will disappear
"dropContentsOnTimeout": true // If false, all items will vanish with the grave. If true they will drop where the grave previously was
},
"treatBindingCurse": true, // If true, graves will not force curse of binding from a grave onto you, nor will remove curse of vanishing from your current equipment when looting a grave with armor in that slot (assuming the priorities would otherwise grant that)
"generateGraveInVoid": true, // Generate a grave when the player falls into the void or not
"lowestGraveY": 3, // Lowest Y the grave can generate RELATIVE TO MINIMUM Y VALUE IN CURRENT WORLD. In the overworld (with minimum y=-64, graves would generate as lowest at y=-61, but in the end with minimal y=0, graves would generate as lowest at y=3)
"generateOnlyWithinBorder": true, // If false graves are allowed to generate outside the world border
"ignoredDeathTypes": [], // Damage sources/death types that will prevent graves from spawning, if they are the source of the player dying
"unlockable": true, // If true, graves can be unlocked (most notably through GUI reached with commands)
"randomSpawn": { // Sub-module for any entity to have a chance to spawn when looting a grave. Default is 0% chance of a zombie with the player head of the grave owner to spawn
"percentSpawnChance": 0, // Chance the entity will spawn
"spawnEntity": "minecraft:zombie", // Which entity might spawn
"spawnNbt": "{ArmorItems:[{},{},{},{id:\"minecraft:player_head\",tag:{SkullOwner:{Name:\"${owner.name}\",Id:\"${owner.uuid}\"}},Count:1b}]}" // The nbt of entity. There exists custom arguments (see further below)
},
"generateOnLastGroundPos": false, // If true, graves will generate where the player last touched ground, and not in the air if the player died mid-air
"generationMaxDistance": { // Radius of x, y, and z axis that will be searched for a viable place to generate grave (with filters according to useSoftBlockWhitelist and useStrictBlockBlacklist configs)
"x": 5,
"y": 5,
"z": 5
},
"useSoftBlockWhitelist": false, // If true, grave will first try to generate only where a block in the block tag replace_soft_whitelist is located
"useStrictBlockBlacklist": true, // If true, grave will first try to generate only where a block in the block tag keep_strict_blacklist is NOT located
"replaceOldWhenClaimed": true, // Replace the block that was previously occupying the grave's block position, before the grave spawned, when the grave is claimed
"persistentGraves": { // Sub-module for having graves stay in the world after retrieving them. When clicking on these graves they will instead show info about the death, and can be mined with silk touch to be moved
"enabled": false, // Enable sub-module
"showDeathDay": true, // Show which in game day player died on
"showDeathIrlTime": true, // Show which IRL time player died on
"useAmPm": true // Use dumb american time system (I hate that I let true be the standard)
},
"dimensionBlacklist": [], // List of dimensions where graves can not generate (example: ["minecraft:the_nether"])
"blockUnderGrave": { // Customize the block generated under the grave, if it was previously an air block
"enabled": true, // Enable sub-module
"blockInDimensions": [ // List of dimensions and block in said dimension
{
"key": "minecraft:overworld", // Dimension ID
"value": "minecraft:cobblestone" // Block ID
},
{
"key": "minecraft:the_nether",
"value": "minecraft:soul_soil"
},
{
"key": "minecraft:the_end",
"value": "minecraft:end_stone"
},
{
"key": "misc",
"value": "minecraft:dirt"
}
],
"generateOnProtectedLand": false // If you're playing with land claim mods, this can prevent blocks under the graves from generating (preventing griefing)
},
"sellOutOfflinePeople": false, // Broadcast messages when players log off, where their last unclaimed grave is located, allowing people to rob it more easily
"maxBackupsPerPerson": 50, // Max amount of graves for each person. When this number is reached, old graves start getting deleted
"dropFromOldestWhenDeleted": true // If true, graves being deleted due to too many graves, will drop their contents before vanishing
},
"respawnConfig": { // Module controlling everything you want about respawning
"respawnEffects": [], // Effects applied to player when respawning. See further below for format
"respawnHealth": 20, // Amount of health applied to player when respawning. If less than or equal to 0, health is not touched by the mod on respawn
"resetHunger": true, // If false, hunger won't be reset when dying and respawning (if you starved to death you will respawn starving)
"respawnHunger": 20, // Requires resetHunger to be true. This value is what hunger will be set/reset to
"resetSaturation": true, // If false, saturation won't be reset when dying and respawning
"respawnSaturation": 20.0, // Requires resetSaturation to be true. This value is what saturation will be set/reset to
"extraItemDrops": [] // Extra items received on respawn (every time). See further down for format
},
"compatConfig": { // Module for configuring compatibilities with other mods
"standardDropRuleInClaim": "PUT_IN_GRAVE", // Standard drop rule for all items when dying in a claimed area. Can be PUT_IN_GRAVE (attempt to put in grave if enabled, overwritten by every other drop rule in special cases), DROP (drop the items on the ground, not overwritten), KEEP (keep the items when respawning, not overwritten), and DESTROY (deleting the items, not overwritten.
"enableInventorioCompat": true, // Enable inventorio compatibility
"defaultInventorioDropRule": "PUT_IN_GRAVE", // Standard drop rule for all items in inventorio inventory. Can be PUT_IN_GRAVE (attempt to put in grave if enabled, overwritten by every other drop rule in special cases), DROP (drop the items on the ground, not overwritten), KEEP (keep the items when respawning, not overwritten), and DESTROY (deleting the items, not overwritten.
"enableLevelzCompat": true, // Enable LevelZ compatibility
"defaultLevelzDropRule": "PUT_IN_GRAVE", // Default drop rule for LevelZ XP. Can be PUT_IN_GRAVE (attempt to put in grave if enabled, overwritten by every other drop rule in special cases), DROP (drop the items on the ground, not overwritten), KEEP (keep the items when respawning, not overwritten), and DESTROY (deleting the items, not overwritten.
"enableNumismaticOverhaulCompat": true, // Enable numismatic overhaul compatibility
"defaultNumismaticDropRule": "PUT_IN_GRAVE", // Default drop rule for numismatic overhaul coins. Can be PUT_IN_GRAVE (attempt to put in grave if enabled, overwritten by every other drop rule in special cases), DROP (drop the items on the ground, not overwritten), KEEP (keep the items when respawning, not overwritten), and DESTROY (deleting the items, not overwritten.
"enableOriginsInventoryCompat": true, // Enable origins class inventory compatibility
"defaultOriginsDropRule": "PUT_IN_GRAVE", // Default drop rule from origins classes' inventories. Can be PUT_IN_GRAVE (attempt to put in grave if enabled, overwritten by every other drop rule in special cases), DROP (drop the items on the ground, not overwritten), KEEP (keep the items when respawning, not overwritten), and DESTROY (deleting the items, not overwritten.
"enableTravelersBackpackCompat": true, // Enable travelers backpack compatibility
"defaultTravelersBackpackDropRule": "PUT_IN_GRAVE", // Default drop rule for travelers backpack's backpack. Can be PUT_IN_GRAVE (attempt to put in grave if enabled, overwritten by every other drop rule in special cases), DROP (drop the items on the ground, not overwritten), KEEP (keep the items when respawning, not overwritten), and DESTROY (deleting the items, not overwritten.
"enableTrinketsCompat": true, // Enable trinkets compatibility
"defaultTrinketsDropRule": "PUT_IN_GRAVE" // Standard drop rule for trinkets. Can be PUT_IN_GRAVE (attempt to put in grave if enabled, overwritten by every other drop rule in special cases), DROP (drop the items on the ground, not overwritten), KEEP (keep the items when respawning, not overwritten), and DESTROY (deleting the items, not overwritten.
},
"commandConfig": { // Configure commands
"mainCommand": "yigd", // What the base command should be. Recommended to keep as "yigd" as anything else might confuse users. Perfectly fine to change if you want though
"basePermissionLevel": 0, // Permission level to execute the base command (default: /yigd)
"viewLatestPermissionLevel": 0, // Permission level to execute the "view latest" command (default: /yigd latest)
"viewSelfPermissionLevel": 0, // Permission level to execute the "view self" command (default: /yigd grave)
"viewUserPermissionLevel": 2, // Permission level to execute the "view user" command (default: /yigd grave [user])
"viewAllPermissionLevel": 2, // Permission level to execute the "view all" command (default: /yigd moderate)
"restorePermissionLevel": 2, // Permission level to execute the "restore" command (default: /yigd restore [user, optional] [position, optional])
"robPermissionLevel": 2, // Permission level to execute the "rob" command (default: /yigd rob [user/grave id, optional])
"whitelistPermissionLevel": 3, // Permission level to execute the "whitelist" command (default: /yigd whitelist add/remove [user] OR /yigd whitelist toggle)
"deletePermissionLevel": 3, // Permission level to execute the "delete" command (only accessible through GUI)
"unlockPermissionLevel": 0 // Permission level to unlock graves (only accessible through GUI)
},
"graveRendering": { // Customize your rendering of the graves
"useCustomFeatureRenderer": true, // If true, grave is rendered dynamically, instead of statically (with a baked model). Required for all other configs in this module
"useSkullRenderer": true, // Render skulls on graves (if they have skulls on them)
"useTextRenderer": true, // Render text on graves (if they has text)
"adaptRenderer": false, // If true, ground layer of grave will take the texture of the block under the grave
"useGlowingEffect": true, // If true, your graves will appear with a border like the glowing effect, while within glowingDistance blocks of the grave
"glowingDistance": 15 // How far away the glowing effect will render for you (requires useGlowingEffect to be true)
},
"extraFeatures": { // Extra features of the mod with optional registering. These configs are required to be the same on both server and client
"soulboundEnchant": { // Custom soulbound enchantment. Items with this enchantment will be kept when respawning
"enabled": true, // Enable enchantment
"isTreasure": true, // Can be enchanted on loot items?
"isAvailableForEnchantedBookOffer": true, // Can be bought from librarian villagers?
"isAvailableForRandomSelection": false // Can be obtained through an enchantment table, or found on loot items?
},
"deathSightEnchant": { // Custom death sight enchantment, goes on helmet and allows players to see graves with the glowing effect
"enabled": false, // Enable enchantment
"isTreasure": true, // Can be enchanted on loot items?
"isAvailableForEnchantedBookOffer": true, // Can be bought from librarian villagers?
"isAvailableForRandomSelection": false // Can be obtained through an enchantment table, or found on loot items?
"range": 64.0, // What range enchantment works on
"targets": "PLAYER_GRAVES" // Can be OWN_GRAVES (only for your own deaths), PLAYER_GRAVES (for all player deaths), or ALL_GRAVES (not limited to graves generated when dying)
},
"graveKeys": { // Custom key items for the graves
"enabled": false, // Enable the item
"rebindable": true, // If true, player can sneak + right click to rebind key to their latest grave
"required": true, // If true, grave can't be claimed without the proper key
"receiveOnRespawn": true, // If true, a key is received on respawn
"obtainableFromGui": true, // If true, players can get a key to the specific grave when opening the grave GUI and clicking on a key button
"targeting": "PLAYER_GRAVE" // Can be ANY_GRAVE (key can open all graves), PLAYER_GRAVE (key can open all graves bound to the same player as key), or SPECIFIC_GRAVE (key is specific to every grave)
},
"deathScroll": { // Custom scroll item
"enabled": false, // Enable custom item
"rebindable": false, // If true, player can sneak + right click to rebind to latest grave/death
"receiveOnRespawn": false, // Receive the item when respawning
"clickFunction": "VIEW_CONTENTS" // Can be RESTORE_CONTENTS (restores the death/grave), VIEW_CONTENTS (bringing up the GUI for specific grave), or TELEPORT_TO_LOCATION (teleport the user of the item to the death location)
},
"graveCompass": { // Compass pointing to a grave
"receiveOnRespawn": false, // Receive the compass when you respawn
"consumeOnUse": true, // Delete from player inventory once the grave is found?
"deleteWhenUnlinked": true, // Delete if linked grave is not found anymore?
"cloneRecoveryCompassWithGUI": false, // If player has a recovery compass, grave GUI will show a button with a compass, that if clicked, will give the player a grave compass pointing towards the grave (if pointToClosest is disabled)
"pointToClosest": "DISABLED" // When DISABLED, grave compasses will only point to one grave. When ALL, compass will point towards the closest grave of all player graves. When PLAYER, compass will point towards the closest grave belonging to compass-holder.
}
}
}
Inventory slot IDs (used for vanishingSlots
, soulboundSlots
and dropOnGroundSlots
config)
Damage sources (used for ignoredDeathTypes
config)
in_fire
lightning_bolt
on_fire
lava
hot_floor
in_wall
cramming
drown
starve
cactus
fall
fly_into_wall
out_of_world
generic
magic
witherdragon_breath
dry_out
sweet_berry_bush
freeze
stalagmite
falling_block
falling_anvil
falling_stalactite
sting
mob_attack
mob_attack_no_aggro
player_attack
arrow
trident
mob_projectile
fireworks
fireball
unattributed_fireball
wither_skull
thrown
indirect_magic
thorns
explosion
player_explosion
sonic_boom
bad_respawn_point
outside_border
generic_kill
NBT custom arguments for randomSpawn
->spawnNbt
config
Following key values will be replaced dynamically for respective values in the NBT:
${owner.name}
- Playername of grave owner${owner.uuid}
- UUID of grave owner${looter.name}
- Playername of grave looter${looter.uuid}
- UUID of grave looter
${item[i]}
- a NBT representation of the i'th item in the vanilla inventory part of the grave${!item[i]}
- a NBT representation of the i'th item in the vanilla inventory part of the grave, but the same item will be deleted from grave
Respawn Effects config example
Following is an example of the respawn config being used to apply invisibility (1) and speed (2) to respawned players for 30 seconds (600 ticks){ ... "respawnEffects": [ { "effectName": "minecraft:invisibility", // Effect ID "effectLevel": 1, // Effect level. Must be 1 or more "effectTime": 600, // Effect time in ticks (there are 20 ticks in a second) "showBubbles": false // Should bubbles be visible? }, { "effectName": "minecraft:speed", "effectLevel": 2, "effectTime": 600, "showBubbles": false } ] ... }
extraItemDrops
example config
This is an example of the
extraItemDrops
config{ ... "extraItemDrops": [ { "itemId": "minecraft:stick", // Item ID "count": 1, // Item count "itemNbt": "{Enchantments:[{id:\"minecraft:knockback\",lvl:5}]}" // Item NBT (this has no custom arguments) } ] ... }
Datapack files can be added with datapacks. If you want files to be loaded in all worlds for a modpack or similar, I would suggest using kubejs, openloader or paxi, or any other mod that will add a global data/datapack folder
This will define the whitelist of blocks used in graveConfig.useSoftBlockWhitelist
. Located at data/yigd/tags/blocks/replace_soft_whitelist.json
. Used like a normal minecraft tag file. Graves will prioritize blocks in this tag for valid spaces when generating, if the useSoftBlockWhitelist
is set to true. If the block under a grave as it generates is in this tag, it will also be replaced for the "block under grave"-block (definied by configs)
This will define the blacklist of blocks used in graveConfig.useStrictBlockBlacklist
. Located at data/yigd/tags/blocks/replace_blacklist.json
. Used like a normal minecraft block tag file. Graves will try very hard to not generate where blocks with this block tag is placed, as long as useStrictBlockBlacklist
is set to true.
If there are any items that should be using the soulbound trait at all times, no matter enchantment, they can be added here. Tag can be found/edited at data/yigd/tags/items/natural_soulbound.json
If there are any items that should be using the vanishing curse trait at all times, no matter enchantment, they can be added here. Tag can be found/edited at data/yigd/tags/items/natural_vanishing.json
If you want some items to always drop on the ground, and never be possible to be added to graves, you can add these items in this item tag. Tag can be found/edited at data/yigd/tags/items/grave_incompatible.json
If the config graveSettings.itemLoss is enabled, items in this tag will be unaffected by the random item loss. Empty by default. To not lose too much valuables you can add container items here (shulker boxes, backpacks, and similar items). Tag can be found/edited at data/yigd/tags/items/loss_immune.json
Items in this tag can not get enchanted with the soulbound enchantment. Tag can be found/edited at data/yigd/tags/items/soulbound_blacklist.json
These files are added to datapacks. The information about datapack tags applies to this in a similar manner
With this feature you can specify a number of coordinates that your grave will spawn at if possible, no matter where you die. When you die these coordinates are checked, and if any of them are empty, your grave will generate there. If all coordinates are occupied by a block, normal grave spawning rules will be applied (where you died). With this you can build a public graveyard where all dead player graves will end up at. File for customizing this feature should be created in data/yigd/custom/graveyard.json
.
These coordinates are specific to the overworld. Graveyard will and can not attempt to spawn in any other dimension
The structure of the json should look something like this:
{
"point2point": false,
"dimension": "minecraft:overworld",
"use_closest": false,
"coordinates": [
{
"for_player": "Notch"
"direction": "NORTH",
"x": 235,
"y": 71,
"z": 14
},
{
"direction": "EAST",
"x": 237,
"y": 71,
"z": 14
},
{
"direction": "WEST",
"x": 239,
"y": 71,
"z": 14
},
...
]
}
Setting point2point
to true
will cause graves to generate on every empty block between the two first given coordinates.
Otherwise you can add as many coordinates as you want to generate as many graves in a graveyard as possible.
The dimension
is optional. By default it's set to overworld, but you could specify any other dimension, as long as they exist, for the graveyard to operate in.
The use_closest
is optional. By default it's set to false. When true, all coordinates will be searched for the closest one to the player. When using point2point
this can take a moment, depending on the amount of blocks between those points.
For each coordinate you can pass a for_player
"parameter", which will whitelist this position for that player only. That player DOES NOT become blacklisted everywhere else
The direction
field is optional. If not included graves will generate the same direction as you were facing on death. The corresponding value can be any of NORTH
, WEST
, SOUTH
, or EAST
, and has to be in full capitals.
Since resource packs does not work on servers, you can instead place your grave.json
file in your data/yigd/custom
folder, to use its hitbox. This will only sync the hitbox for people who are using the same hitbox as the server. This will not force users to use this hitbox on their clients. By default this hitbox is empty, which should result in all client hitboxes working without any lag or issues.
If you want specific coordinates to override grave generation, you can add these areas in this file.
{
"default_drop_rule": "PUT_IN_GRAVE",
"values": [
{
"from": [100, 0, 100],
"to": [300, 100, 300],
"area_drop_rule": "KEEP",
"y_dependant": false,
"world_id": "minecraft:overworld"
}
...
]
}
default_drop_rule
is the default drop rule that will take charge everywhere that is not a specially defined area
values
is the list/array of all the area overrides
from
is corner one, limiting the area
to
is corner two. Total area will be between corner 1 and 2 (from
and to
)
area_drop_rule
decide the new drop rule in this area. You can use PUT_IN_GRAVE, KEEP, DROP, or DESTROY
y_dependant
is a boolean to tell weather the Y coordinates should be taken into account. If there's a defined height to the override area.
world_id
is the minecraft ID that refers to whatever world you want the override to be active in
You're in Grave Danger uses Permission API to do some things. If players do not have specific permissions in this list, command configuration will be a fallback
yigd.command.base_permission
is required for all /yigd
commands
/yigd latest
requires yigd.command.view_latest
permission
/yigd grave
requires yigd.command.view_self
permission
/yigd grave [player]
requires yigd.command.view_user
permission
/yigd moderate
requires yigd.command.view_all
permission
/yigd restore
(with or without arguments) requires yigd.command.restore
permission
/yigd rob
(with arguments) requires yigd.command.rob
permission
/yigd whitelist
(with all included commands) requires yigd.command.whitelist
permission
Respective buttons through GUI also requires the same permissions
To delete graves through GUI you're required to have the yigd.command.delete
permission
To lock/unlock graves through GUI you're required to have the yigd.command.locking
permission
If you have any further questions, you can join my discord server, or find any alternative way of asking me