Skip to content

Custom Designs

Version: 2.0.1

A design decides which block a player’s gravestone uses. One design is built in, “Simple Tombstone” (default). You add more by putting JSON files into mods/kyuubisoft_graveyard/custom-items/. Each file turns a vanilla furniture model into a gravestone block that players can choose in the menu.

The Designs tab of the graveyard menu The Designs tab: the active design, an unlocked one, one for sale and one that only an admin can unlock.


  1. On every start the plugin reads the JSON files in custom-items/ and builds mods/KyuubiSoftGraveyard_Designs.jar: a small asset pack with one gravestone block per file. The jar is only rebuilt when a JSON file is newer than the jar.
  2. The server loads that jar at the next start. Only then do the new blocks exist.
  3. Each file also gets an entry in designs in graveyard.json, so the design appears in the Designs tab.

That is why a new or changed design needs two restarts: the first builds the jar, the second loads it.


  1. In mods/kyuubisoft_graveyard/custom-items/, copy _template.json and name the copy after your design, for example EmeraldStatue.json. Files starting with _ are ignored, and files in subfolders are not read.
  2. Edit the file:
custom-items/EmeraldStatue.json
{
"Parent": "Furniture_Temple_Emerald_Statue",
"TranslationProperties": {
"Name": "Emerald Statue Gravestone",
"Description": "A radiant emerald statue honoring the fallen."
},
"Premium": true,
"Price": 500
}
  1. Restart the server. The log shows:
[Graveyard] Custom designs JAR generated/updated!
[Graveyard] RESTART the server to activate new designs.
  1. Restart the server again.
  2. Open /ksgraveyard menu → Designs. “Emerald Statue Gravestone” is listed with its price.

From the file EmeraldStatue.jsonValue
Block / item IDFurniture_KS_Gravestone_EmeraldStatue
Design ID (for design_give)emeraldstatue (the file name in lower case)
Name in the menuTranslationProperties.Name, or the file name when it is missing

Do not start the file name with Furniture_KS_Gravestone_ (the README.txt in the folder shows such names): the plugin adds the prefix itself, and a prefixed file name creates two design entries.


FieldRequiredMeaning
ParentyesA vanilla item ID. The gravestone uses that item’s model and look. Always set it
TranslationProperties.NamenoName in the menu and of the block. Default: the file name
TranslationProperties.DescriptionnoDescription of the block
Premiumnotrue = players must buy it or get it from an admin. Default false (free for everyone)
PricenoWhole number. With Premium: true: the price; 0 = only admins can unlock it. Default 0
CurrencynoOnly used for the graveyard-only currency, see Configuration. Default coins
BlockTypenoExtra block settings copied into the gravestone block, for example Light. Flags, Interactions and Gathering are set by the plugin and cannot be changed

Every generated block opens the grave window with F, and players cannot break it.

On every start the design entry in graveyard.json (displayName, blockId, premium, price, currency) is overwritten from the JSON file. Change prices in the JSON file, not in graveyard.json.


Parent IDModel
Furniture_Village_TombstoneVillage tombstone (also the model of the built-in “Simple Tombstone”)
Furniture_Village_StatueVillage statue
Furniture_Temple_Emerald_StatueEmerald temple statue
Furniture_Temple_Scarak_StatueScarak temple statue
Furniture_Ancient_CoffinAncient coffin
Furniture_Village_CoffinVillage coffin

Other furniture items work the same way. Check the exact item ID (upper and lower case matter); with a wrong Parent the design does not work.


custom-items/GlowingTomb.json
{
"Parent": "Furniture_Village_Tombstone",
"TranslationProperties": {
"Name": "Glowing Tombstone",
"Description": "A tombstone that glows in the dark."
},
"BlockType": {
"Light": {
"Color": "#ff4400",
"Radius": 5
}
},
"Premium": true,
"Price": 1000
}

PremiumPriceIn the Designs tab
falseanyFree: every player can select it
truemore than 0For sale: Buy with the server economy, then it stays unlocked
true0Locked: only /ksgraveyard design_give <player> <design> unlocks it

Buying a design also makes it the active design. Without an economy (or with purchaseWithEconomy: false), designs cannot be bought; give them with design_give.


Change: edit the JSON file and restart twice.

Remove:

  1. Delete the JSON file.
  2. Delete the design’s entry from designs in graveyard.json. The plugin does not remove it by itself.
  3. Run /ksgraveyard reload or restart. The design is gone from the Designs tab.

The block itself stays in the designs jar until the jar is rebuilt (when another design file changes); when no JSON file is left, the jar is deleted at the next start. Players whose active design was removed get defaultDesign for their next gravestone. Remove a design only when no gravestone with that design is standing any more.