Published Jan 14th, 1/14/25 1:28 pm
- 329 views, 6 today
- 24 downloads, 0 today
1
Hardcore Mode with life sharing
Works for Hardcore AND Ultra Hardcore
In vanilla hardcore, when someone dies on a server they will be locked out of the server while everyone else can still play. This datapack changes this to make hardcore more suitable for a server.
All players have a shared life total displayed on the action bar and the world only ends when it reaches zero. Difficulty is set to hard automatically on load to mimic vanilla hardcore.
All players also glow to see each other better.
The hearts in the hotbar will look like regular hearts, you might want to use a texture pack that changes them to hardcore hearts.
Features:
- Config for (almost) everything
- Shared lives system
- Ability to gain back lives
- Ability to opt out for guests
- Custom advancements
More detailed explainations below.
Installation:
Put this datapack in the datapack folder of your world like any other pack. No resource pack is required. DO NOT enable minecraft's vanilla hardcore mode, this pack replaces it entirely.
Playing with keepInventory on is encouraged (it is off by default), as losing a life is a big enough punishment for dying even without dropping all your items.
Please DO NOT reupload this pack without giving credit, and if you use it for a video or stream give credit and link this page in the description.
If you want to play Ultra Hardcore just do
/gamerule naturalRegeneration false
Uninstalling:
Use the command
/function uhc:config/uninstall
and immediately disable the datapack or stop your world/server, then delete the datapack from your world's datapacks folder.
Shared lives system:
There is a single lives total shared among all* players, by default you start with 3 lives and there is a max of 5 lives you can't go over (see config to change these).
If anyone* dies a title is displayed to all players to inform them (showing who died) and a life is removed from the total.
If the life total reaches 0 a "Game Over" text will be displayed and everyone* will become a spectator, just like vanilla hardcore.
* see "opt-out" below
Gaining extra lives:
There is a way to gain lives (this can be disabled, see "config" below). You need to give a heart of the sea to an Allay. The Allay will start to spin, glow and emit sounds and particles and after a set time (configurable) you will gain an extra life and the heart is consumed. This only works if your lives total is below the max lives (configurable), when at max lives you will see "[MAX]" next to the life total and giving a heart to an Allay will do nothing (it will just hold it like normal) until someone dies. When gaining an extra life a title will be displayed to everyone, players will emit particles and a sound will be played.
I chose this method because it requires exploring dangerous places to get the Allay (and bring it back home) and because the heart of the sea is an item that's not easy to find (but not impossible), not renewable, not farmable and not that useful in vanilla.
Opt out:
If you want to invite a guest in your world but want to let them play casually without worrying about death and without you worrying about them losing your precious lives, players can opt out of Hardcore. An opted out player will:
- not affect the life total when dying
- not glow like hardcore players
- not see the death and extra lives notifications
- still see the life total, but in white text
- not become a spectator when a Game Over happens
Only an operator can make someone opt in or out of hardcore, the commands are:
- To opt in yourself:
/function uhc:opt/in
- To opt out yourself:
/function uhc:opt/out
- To make someone else opt in:
/execute as <name> run function uhc:opt/in
- To make someone else opt out:
/execute as <name> run function uhc:opt/out
Config:
You can configure the lives total, the max lives possible, the ability to gain extra lives and the time it takes for an Allay to "charge" before giving an extra life. You can also change what item to use to gain an extra life. Below is a list of commands to do these things (operator only).
Set lives (default: 3)
This changes how many lives you currently have. It can go over the maximum, but you won't be able to gain lives normally until the lives total goes back to below the maximum.
/function uhc:config/life_count {"lives":X}
replace X with a number.
Max lives (default: 5)
This changes the maximum lives you can have. Setting it to one or below effectively disables gaining extra lives.
/function uhc:config/max_lives {"lives":X}
replace X with a number.
Gaining extra lives (default: enabled)
This enables or disables the gaining extra lives functionality with the Allays, when disabled an Allay holding a heart of the sea will behave like in vanilla. If this is disabled while an Allay is charging that extra life will still be granted when it's done.
- Enable:
/function uhc:config/extra_lives/enable
- Disable:
/function uhc:config/extra_lives/disable
Allay charge time (default: 100)
This changes how long an Allay holds the heart of the sea (while spinning, making sounds and emitting particles) before consuming it and granting an extra life. The time is in ticks (seconds*20).
/scoreboard players set #timer UHC_Constants X
replace X with number of ticks.
Item for extra lives (default: "heart_of_the_sea")
Unfortunately to change the item itself you need to go into the code (the file is "uhc/function/tick.mcfunction", first line, there's a comment showing you where) and change it there, I couldn't implement an easier way.
Compatibility | Minecraft 1.13 |
to | Minecraft 1.21 |
Tags |
6511339
119
Create an account or sign in to comment.