VGRAVES GUIS
Features
The GUI system is action-driven. Static items only need the correct action and settings to control real runtime behavior.
Built-in Actions
| Group | Actions |
|---|---|
| Player flow | view-grave, pay-claim, pay-claim-disabled, ticket-use, give-up |
| Pagination and layout | page-prev, page-next, empty-state, info, decoration |
| Admin flow | admin-view-grave, admin-claim-self, admin-claim-target, admin-delete, admin-back, admin-page-prev, admin-page-next |
Practical Action Examples
Below are small real-world snippets that show how these actions are typically configured inside a GUI file.
view-grave
Use this on the repeated player list item that opens one saved grave in the detail menu.
grave_entry:
material: CHEST
action: view-grave
slots:
- 10
- 11
- 12
display_name: "&e&lDeath Save #{index}"pay-claim
Use this when the grave can currently be reclaimed for currency.
pay:
material: EMERALD
action: pay-claim
slot: 52
view_requirement: "{price_available}"
display_name: "&a&lReclaim Items"pay-claim-disabled
Use this as the fallback button when paid reclaim is unavailable for the selected grave.
pay_disabled:
material: BARRIER
action: pay-claim-disabled
slot: 52
view_requirement: "{price_unavailable}"
display_name: "&c&lCurrency Claim Disabled"ticket-use
Use this when you want the player to restore the grave by consuming one virtual ticket.
ticket:
material: PAPER
action: ticket-use
slot: 53
model_data: 2
display_name: "&e&lUse Ticket"give-up
Use this to dissolve the grave and drop its contents at the saved death location.
give_up:
material: EGG
action: give-up
slot: 51
display_name: "&a&lGrave Give Up"page-prev and page-next
Use these on paginated list menus such as the main player grave browser or the admin grave browser.
previous_page:
material: ARROW
action: page-prev
slot: 18
next_page:
material: ARROW
action: page-next
slot: 26info
Use this for pure information items that do not trigger logic, such as saved XP or target metadata.
xp_info:
material: EXPERIENCE_BOTTLE
action: info
slot: 50
display_name: "&bSaved XP: &a{xp}"decoration
Use this for fillers and separators that only shape the GUI visually.
separator:
material: GRAY_STAINED_GLASS_PANE
action: decoration
slots:
- "36-44"
display_name: " "admin-view-grave
Use this in the admin list menu to open one selected grave of the target player.
grave_entry:
material: CHEST
action: admin-view-grave
slots:
- 10
- 11
- 12
display_name: "&c&lGrave #{index}"admin-claim-self
Use this in the admin detail menu to restore the grave directly to the admin viewer.
claim_self:
material: ENDER_CHEST
action: admin-claim-self
slot: 52
display_name: "&a&lClaim To Yourself"admin-claim-target
Use this to restore the grave directly to its original owner.
claim_target:
material: CHEST_MINECART
action: admin-claim-target
slot: 53
display_name: "&b&lClaim To Owner"admin-delete and admin-back
Use these in the admin detail view for destructive management and safe navigation back to the list.
delete:
material: LAVA_BUCKET
action: admin-delete
slot: 44
back:
material: ARROW
action: admin-back
slot: 51Supported GUI Item Options
material,slot,slots, and slot ranges such as"0-26"amount,damage,model_data, andprioritydisplay_name,lore,item_flags, andenchantmentsenchantment_glint_overrideandview_requirement
Supported GUI Materials
- Normal Bukkit materials such as
STONE,CHEST,PAPER, andPLAYER_HEAD. - Special built-in values like
air,water_bottle,main_hand,off_hand, and the armor placeholders. - HeadDatabase values such as
HDB-13376. - Custom textured player heads through
PLAYER_HEADwith a texture string, URL, or raw texture id.
Normal material
A simple decorative filler item using a normal Bukkit material.
filler:
material: GRAY_STAINED_GLASS_PANE
action: decoration
slots:
- "0-26"Special built-in value
Use built-in placeholders like off_hand when you want the GUI to render a saved equipment slot.
saved_offhand:
material: off_hand
action: info
slot: 49
display_name: "&eSaved Offhand"HeadDatabase item
Use an HDB id directly in the material field for GUI icons.
target_info:
material: HDB-13376
action: info
slot: 4
display_name: "&eViewing: &f{target}"Custom textured head
Use PLAYER_HEAD with a texture string when you want a custom icon without depending on HeadDatabase.
claim_target:
material: PLAYER_HEAD
texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzRlOGZmMzBlMzkzNzA5ODYzN2MwYWYwM2ExZjJhNmIxN2YwZTgyOGFiMmE1N2EyNjdhMDFkYTQ4NGJhMGM1NyJ9fX0="
action: admin-claim-target
slot: 53view_requirement Expressions
!value
value1 && value2
value1 || value2
not value
value1 and value2
value1 or value2
parentheses
==, !=, >, >=, <, <=Example:
view_requirement: "({price_available} == true) && ({tickets} > 0)"Practical view_requirement Examples
Show paid reclaim only when available
This is the most common pattern: show the reclaim button only if the current grave has a valid currency price.
pay:
material: EMERALD
action: pay-claim
slot: 52
view_requirement: "{price_available}"Show disabled fallback when reclaim is unavailable
Use the inverse helper so the barrier item appears only when currency reclaim is not possible.
pay_disabled:
material: BARRIER
action: pay-claim-disabled
slot: 52
view_requirement: "{price_unavailable}"Require both price and tickets
This pattern is useful when you want a button to appear only if multiple runtime conditions are true.
special_offer:
material: EMERALD
action: info
slot: 50
view_requirement: "({price_available} == true) && ({tickets} > 0)"Hide something with negation
Use logical negation when you want to show a placeholder only while a condition is false.
missing_price_hint:
material: BARRIER
action: info
slot: 50
view_requirement: "!{price_available}"