Corpse Settings
Corpse Global Settings
Fields
| Field | Type | Default | Description |
|---|---|---|---|
allowedWorlds | List<String> | empty | Worlds where a death leaves a corpse. Empty = every world. Outside these worlds a death is vanilla: no corpse, normal drops. One entry per world. '*' matches any run of characters and '?' exactly one, so 'dungeon_*' covers every world a dungeon generates for a run and 'dgbuild' is one named world. Each entry is compared, ignoring case, with the world name (its folder name) and with its dimension key (for example 'minecraft:the_nether'). |
excludedWorlds | List<String> | empty | Worlds where a death never leaves a corpse, even if they match the list above. Same syntax: 'dungeon_*', 'dgbuild', 'minecraft:the_end'. Empty = no exclusion. |
filteredWorldDeath | FilteredWorldDeath | VANILLA_DEATH_SCREEN | What a death looks like in a world the two lists above turn down (no effect when both lists are empty). VANILLA_DEATH_SCREEN: the ordinary Minecraft death, the player lies on the ground and sees the death screen. That body is drawn by the Minecraft client, it is not a Corpse entity and Corpse cannot remove it. INSTANT_RESPAWN: the player is respawned on the next tick, without the death screen. Items and experience drop as in vanilla in both cases. |
duration | Var<Int> | 300 | Seconds before the corpse disappears. 0 = never expire. |
onlyOwnerCanLoot | Var<Boolean> | false | If true, only the dead player may ever loot their own corpse. |
ownerProtectionSeconds | Var<Int> | 0 | Seconds during which only the owner may loot, after which the corpse opens to everyone. 0 = no protection. |
lootMode | CorpseLootMode | GUI | What a right-click does: open the inventory, hand everything over, or drop it on the ground. |
sneakSwapsLootMode | Var<Boolean> | true | Sneaking while interacting uses the other mode: the GUI when looting is direct, and direct looting when the GUI is the default. When the default is DROP, sneaking opens the GUI. |
interactionReach | Var<Double> | 6.0 | Longest distance in blocks between a player and a corpse for a click on it to count. Stops a modified client from looting a corpse it can see but is not near. 0 = no limit. |
interactionCooldownMillis | Var<Int> | 250 | Milliseconds during which further clicks of the same player on a corpse are ignored. One click sends several packets; without this the menu would open, or the loot be taken, several times over. |
reserveDroppedItems | Var<Boolean> | true | Reserve dropped items for the looter, so nobody else can pick them up. |
reserveDroppedItemsSeconds | Var<Int> | 30 | Seconds the reservation lasts. 0 = until the item despawns. |
glowEffect | Var<Boolean> | true | Whether the corpse glows. |
glowColor | Color | WHITE | Colour of the glow outline. |
renderArmor | Var<Boolean> | true | Render the armour the player was wearing on the corpse. |
spawnParticles | Var<Boolean> | true | Spawn particles when the corpse appears. |
spawnParticle | Particle | DAMAGE_INDICATOR | Particle spawned at chest height. |
spawnParticleCount | Var<Int> | 15 | How many of them. |
spawnParticleSecondary | Particle | SOUL | Second particle, spawned slightly higher. Set the count to 0 to use a single layer. |
spawnParticleSecondaryCount | Var<Int> | 8 | How many of the second particle. |
effectRange | Var<Double> | 32.0 | Range in blocks within which players hear corpse sounds. |
spawnSound | Sound | EMPTY | Sound played to nearby players when the corpse spawns. |
lootSound | Sound | EMPTY | Sound played to nearby players when the corpse is looted. |
notifyOnRespawn | Var<Boolean> | true | Tell the dead player where their corpse is when they respawn. |
respawnMessage | Var<String> | <red>☠ <gray>Your corpse is at <white><x>, <y>, <z> <gray>in <white><world> | Respawn message. Placeholders: <x> <y> <z> <world>. Leave empty for no message.PlaceholdersColors |
unknownWorldLabel | Var<String> | unknown | Shown in place of <world> when the corpse's world is no longer loaded.PlaceholdersColors |
cannotLootMessage | Var<String> | <red>You cannot loot this corpse. | Shown when a player may not loot this corpse. Leave empty for no message.PlaceholdersColors |
outOfReachMessage | Var<String> | — | Shown when a player clicks a corpse from farther than the interaction reach. Empty by default: no message.PlaceholdersColors |
inventoryFullMessage | Var<String> | <red>Your inventory is full. | Shown when the looter's inventory is full and items had to be dropped. Leave empty for no message.PlaceholdersColors |
corpseGoneMessage | Var<String> | <red>This corpse is no longer available. | Shown when the corpse is gone before the interaction completed. Leave empty for no message.PlaceholdersColors |
guiTitle | Var<String> | <red>☠ <player>'s corpse | Title of the loot menu. Placeholder: <player> for the dead player's name.PlaceholdersColors |
guiLootAllLabel | Var<String> | <green>Take everything | Label of the button that takes everything.PlaceholdersColors |
guiCloseLabel | Var<String> | <red>Close | Label of the close button.PlaceholdersColors |
guiPreviousPageLabel | Var<String> | <yellow>Previous page | Label of the previous page button, shown only when the corpse holds more than one page.PlaceholdersColors |
guiNextPageLabel | Var<String> | <yellow>Next page | Label of the next page button, shown only when the corpse holds more than one page.PlaceholdersColors |
guiExperienceLabel | Var<String> | <gray>Experience: <yellow><experience> | Line showing the experience the corpse holds. Placeholder: <experience>.PlaceholdersColors |
guiPageLabel | Var<String> | <gray>Page <white><page><gray>/<white><pages> | Line showing the current page. Placeholders: <page> and <pages>.PlaceholdersColors |
guiFillerMaterial | Material | BLACK_STAINED_GLASS_PANE | Item filling the menu slots that carry nothing. |
guiLootAllMaterial | Material | CHEST | Item of the button that takes everything. |
guiCloseMaterial | Material | BARRIER | Item of the close button. |
guiPageMaterial | Material | ARROW | Item of the previous and next page buttons. |
debugInteractions | Boolean | false | Log every corpse spawn and every interact packet to the console. Turn on only while diagnosing a corpse that does not react to clicks — it is one line per click. |
How to use it
Create at most one of these entries. If the project has none, built-in defaults are used. Most values accept a placeholder or a fact, so rules can depend on the player (for example a longer duration for a rank).
- Lifetime and access —
durationis in seconds (0= never expires).onlyOwnerCanLootblocks everyone else for good;ownerProtectionSecondsonly blocks them for that many seconds after death. The rule is fixed when the corpse is created. - Looting —
lootModeis what a right-click does:GUI(menu),DIRECT(everything into the looter's inventory, overflow dropped) orDROP(everything dropped at the corpse). WithsneakSwapsLootMode, sneaking uses the other mode (GUI becomes direct; direct or drop becomes GUI). - Dropped items — with
reserveDroppedItems, items dropped by a loot can only be picked up by the looter, forreserveDroppedItemsSeconds(0= until they despawn). - Appearance and effects —
glowEffectandglowColor,renderArmor, the two spawn particles and their counts (a count of0disables that layer),effectRangefor who hears the sounds, andspawnSoundandlootSound. - Messages —
respawnMessagesupports<x>,<y>,<z>and<world>; the menu texts are listed on the main page. - Diagnostics —
debugInteractionswrites one console line per click on a corpse. Use it only while testing.