I'm currently developing a new modpack that features a travelling trader theme. It will also feature some light mmo-esque things, like NPCs, a currency, and soft professions.
One of the things I want to implement in this modpack is a fun yet risk-based death system. I think that a complete inventory loss is too harsh, but keeping an inventory is too easy.
Well, years ago I played an MMO called Tibia that had a pretty cool death system, and would like to see a mod developed that does something similar.
I don't know how to write any Java code.
However, I can make awesome textures and models! I'm willing to make them for this mod.
Here's the idea:
Death and Corpses
When a player dies, a corpse will spawn in their place with the player's skin. The corpse will also contain the player's items and armor, unless the player was wearing a special amulet/ring when they died (explained further below).
This corpse will go through 3 stages of decay.
The time that each stage lasts can be configured via a config file.
Stage 1: Fresh corpse.
This is the stage that the corpse enters immediately upon the player dying.
During this stage, only the owner can loot the corpse.
If a player other than the owner attempts to loot the corpse, a message will appear in chat saying "A spirit guards %player%'s corpse."
Non-owner players can attempt to destroy the corpse, but doing so will also destroy all items contained in the corpse. Essentially, there is no way that anyone but the owner can get the items out.
The corpse also can not be moved during this stage.
Stage 2: Rotting corpse.
When the corpse enters this stage, the corpse will be open to the public.
Any player will be able to open the corpse and remove any items from it.
Players may also attach a lead to the corpse and drag it.
The corpse should NOT be capable of being carried inside another player's inventory.
Stage 3: Zombie! (or a pile of bones)
When the corpse enters this stage, one of two things can happen.
In the mod's config file, there should be 3 options for this stage.
Option 1 - Disabled. Basically, the corpse never enters stage 3. Kind of like a grave from Open Blocks or Extra Utilities.
Option 2 - Pile of bones. When the corpse enters stage 3, it turns into a pile of bones, and any items left inside the corpse are destroyed forever. The pile of bones can be broken, dropping regular bones on the ground (and maybe even a skull with the player's name on it)
Option 3 - Zombie! When the body enters stage 3 with this option enabled, the corpse turns into a mob spawner that still looks like a corpse. All items inside are destroyed, and the corpse can no longer be looted. However, when a player gets near a stage 3 corpse, a zombie spawns and the corpse vanishes.
The zombie will contain a regular zombie's loot table, plus it will contain 1 random item from the corpse. If the random item is a weapon or armor, the zombie will use it. If it's not, the zombie will simply hold that random item, and, when killed, the item will drop.
Something else will also happen to the zombie when it spawns. It will scale in difficulty based upon the player's level when it died. So, if a player has 0 levels, dies, and the corpse turns into a zombie, then the zombie will deal like half a heart of damage and only have half a heart of health.
However, if the player had 100 levels when they died, then the zombie can potentially have 100 hearts of damage, and deal 50 times normal damage. These are probably ridiculous numbers, but the point is that the more levels the player had, the more powerful the zombie will be.
Keeping Inventory on Death
In Tibia, when a player died, they dropped their entire inventory, plus a random piece of armor. In this mod, death will mean dropping all of your items, including armor, but like Tibia, there can be a method of protecting some of your belongings from loss upon death.
This method will come in the form of 3 gems.
These gems each serve to protect a different part of your inventory.
In order for these gems to function, a player must craft them into either a ring or an amulet. They can then be worn in Baubles slots. If Baubles is not installed, then they can still function while in the player's inventory.
Create a config option to enable/disable the requirement of the rings/amulets being equipped in Baubles slots to function. If enabled, and the amulets/rings are in the player's inventory, then will NOT function upon death. This is so the mod can be used without Baubles, or can force players to equip them rather than other rings/amulets in order to protect items upon death.
A player may also craft all 3 gems together to create an omni-gem.
Gem 1 - Protects armor from loss when you die. This should include mod armor slots, like Tinker Construct armor, or Galacticraft.
Gem 2 - Protects your hotbar items when you die. This should include alternate hotbars, like the swappable hotbar from TiC's traveler belt.
Gem 3 - Protects the 'inner' inventory - the part of your inventory that's not armor and not your hotbar.
Omni-gem - Protects ALL items on death.
There should be an additional config option as follows:
Gem destruction on death: true/false
If set to true, then all amulets/rings of loss will be destroyed when the player dies, forcing them to make/acquire another to protect their stuff the next time they die.
If set to false, then the amulets/rings of loss will never be destroyed. Essentially, the player only needs to craft it once, and their inventory will always be protected.
Additionally, there should be an item that's easily crafted called the gem pry. Using it on an amulet or ring will extract the gem, and destroy the rest of the ring/amulet. This will allow players who have already crafted any ring or amulet of loss using the 3 base gems to remove the gem, and craft it with the other 2 to create the omni-gem, which can then be crafted into a single amulet or ring that protects their entire inventory.
Or, the player can just craft an amulet/ring with the other 2 gems to get the omni-gem, which then must be crafted back into a ring or amulet.
Now, refer back to the corpses I talked about above. If a player dies, for example, while wearing an amulet that protects their hotbar items, then their corpse will contain everything BUT their hotbar items.
So, the amulets/rings of loss need to tie into the corpse mechanic, so that the loot the player retains and the loot left on the corpse upon death sync up, and are based on what amulets/rings the player was wearing when they died.
Predetermined Respawn Locations
In vanilla Minecraft, players can set their bed as their home, so when they die, they respawn at their bed. We all know this.
In Tibia, when a player died, they respawned in their home city's temple.
I think that it would be great if this mod included a method to override the vanilla system of respawning.
Via config option, bed respawning can be disabled or enabled.
This part of the mod also adds a new creative-only block called the Soulbinder... or something.
Basically, it's a block that map makers and modpack devs can place down in the world.
A player can right click the block to set it as their respawn location.
Not sure how the block would look, exactly. Maybe create multiple versions of the block - one that looks like a tombstone, a coffin, a statue, a shrine, an actual block (which map makers can right click it with any other block, and it'll take on the appearance of that block - if you ever used the mod "Carpenter's Blocks", it basically functions like one of the frames. This gives map makers the freedom to make the respawn block look like any other block)
Perhaps also include a creative only item that allows the map maker to assign which side of the block players respawn on. So, if I place down the statue version of the respawn block, I can use this creative tool to assign which side of the statue the player respawns. Seems silly, but it'll be essential in case the map maker, for example, uses the regular block version of the respawn block, and builds it into the floor of a structure... and wants players to spawn on top of it, rather than in front or behind it... or even under it.
Probably a few ways of allowing map makers to configure the respawn block. Open for ideas!
The overall idea here is that map makers can make a shrine, temple, graveyard, whatever, and players have to 'bind their soul' to it, so when they die, they respawn at that location. This allows map makers to prevent bed respawning, but still give players some restricted control over where they can respawn, instead of being restricted to the world's default location (like the original beach, etc)
Hope that makes sense...
Bonus idea! Allow players to craft/acquire an item that, when used, teleports the player to their respawn location. Like a hearthstone!
An aspect to death in Tibia was experience loss on death. This even resulted in players losing levels - a rare concept in MMOs!
Of course, levels in Minecraft work differently, but are still based on XP, and players still lose XP on death.
Well, like in Tibia, there should be a method of protecting your XP on death.
This comes in the form of 5 blessings.
Blessings can be acquired by consuming a special holy item. Maybe call it the prayer book, or holy water, or something like that.
When a player consumes one of these holy items, they gain a buff called "Blessing"
There are 5 tiers of this blessing.
Each tier reduces XP loss by 20%. With Blessing V, you keep all XP on death.
These blessings could probably be just potion effects with no expiration, and are removed upon death. Or it could be some other custom effect that shows up in the inventory window (like an icon with I, II, III, IV or V over the player model)
Now, tie this back into the zombie mentioned above.
Any XP the player keeps on death is removed from the zombie's XP.
Remember how I talked about a level 100 player dying, resulting in a very powerful level 100 zombie spawning on corpse decay stage 3? Well, if that player has Blessing V, they keep all 100 levels, meaning the zombie would have 0 levels. Likewise, if the player just had Blessing I, they would keep 20 levels, and the zombie would have the remaining 80 levels.