Releases: MusaMisto/FracturedHardcore
Release list
Fractured Hardcore 0.1.5
Bug-fix release from live play. Drop-in replacement for 0.1.4 (or 0.1.3): same save file, no config.
What changed
- A held Totem of Undying now fires before the downed state, on every life. Until now the mod entered the downed state before vanilla's totem check could run for anyone not on their final life, a deliberate early design choice that turned out to be wrong in play. A totem in either hand is now consumed exactly as in vanilla: you stay on your feet at 1 HP with the usual effects, you are not downed and no death is counted. You are only downed when you hold no totem. Bypass damage (void,
/kill) still ignores totems, as in vanilla. - The offline-bar test now also proves, at packet level, that viewers receive the per-second bar updates while the downed player is disconnected (the fix itself shipped in 0.1.4).
- A millisecond timing flake in the 0.1.4 upgrade test is fixed; no behaviour change.
Make sure the new jar is actually running
The server log at startup lists the mods; look for - hcheart 0.1.5. Another quick check: audit lines written by 0.1.4+ read DOWNED until=2026-…Z and … ms left; if you see until=<number> and … ticks left, the server is still on 0.1.3.
Requirements
| Component | Version |
|---|---|
| Minecraft Java dedicated server | 26.2 |
| Fabric Loader | ≥ 0.19.5 |
| Fabric API | 0.159.0+26.2 or newer for 26.2 |
| Java | 25 |
Upgrade
- Stop the server and back up the world (a
players.datwritten by 0.1.4+ is not readable by 0.1.3; the backup is the only way back). - Replace the old jar with
fractured-hardcore-0.1.5.jarinmods/. - Start the server and confirm
- hcheart 0.1.5in the mod list. - Optional: the resource pack is byte-identical to every previous release (same SHA-1); existing
server.propertieslines keep working. To point at this release:
resource-pack=https://github.com/MusaMisto/FracturedHardcore/releases/download/v0.1.5/fractured-hardcore-resourcepack-0.1.5.zip
resource-pack-sha1=1223e50c22fd2ca07e44f9c48c13ef697c86ca2dVerification
- Built and tested by CI on a fresh runner: run 34611791105. 36 JUnit tests and 43 gametests on a headless 26.2 server, all passing. New gametests: a totem in the offhand and in the main hand fires instead of downing (vanilla's own "totem used" statistic reads 1), the next lethal hit without a totem downs, bypass damage with a totem kills and counts.
- The attached jar and zip are byte-identical to a clean local build of commit
24a433e(reproducible build). - Jar SHA-256:
90ede3fd86915ac8675154b147ea70a52d1409302c8e1ffac60744b32e5ed269 - Pack SHA-1:
1223e50c22fd2ca07e44f9c48c13ef697c86ca2d
Known limitations
- Expiry is noticed by the server tick; while the server is down or paused for being empty, an expiry in that window is recorded on the first tick after a player joins.
- Every death screen reads "Game over! / Spectate world"; the button still respawns non-eliminated players.
- A downed player's own camera stays at standing height in open areas; everyone else sees them prone.
Fractured Hardcore 0.1.4
Bug-fix release from live play. Drop-in replacement for 0.1.3: same save file, no config. Upgrade only; see the rollback note.
What was wrong
- A player who logged in with an expired downed clock was "self-revived". Vanilla 26.2 makes a freshly joined player immune to every kind of damage,
/kill-type damage included, until their client reports loaded. The join handler ran before that, so the bleed-out kill could never land at join, and the 0.1.3 fallback then cleared the downed state. Your server log shows this asBleed-out kill did not take … clearing downed stateat the join second. - A downed player who disconnected had a frozen boss bar and a paused clock. The tick loop only walked online players, and the clock was measured in world ticks, which stop whenever the server pauses for being empty or is down.
What changed
- A failed kill never clears state. The kill waits until the client has loaded and is retried every tick.
- The tick walks the records, online or not: the bar keeps counting while the player is offline, and when the clock hits zero the death is counted right then, everyone is told, the tab list updates, and the actual kill is applied the moment the player next logs in, without a second death.
- The clock is real time. Logging out, an empty server or a restart never stop it.
/hc giveupannounces only if the kill actually landed, and says "try again in a moment" while your client is still loading.- Save files from 0.1.3 are converted on the first tick: a downed player's remaining time carries over exactly (world time is saved with the world), and a clock that had already run out under 0.1.3 rules owes the death.
Requirements
| Component | Version |
|---|---|
| Minecraft Java dedicated server | 26.2 |
| Fabric Loader | ≥ 0.19.5 |
| Fabric API | 0.159.0+26.2 or newer for 26.2 |
| Java | 25 |
Upgrade from 0.1.3
- Stop the server and back up the world (keep this backup: it is the only way to roll back, see below).
- Replace the 0.1.3 jar with
fractured-hardcore-0.1.4.jarinmods/. - Start the server. Records carry over; a player who was downed at that moment keeps their remaining time (logged as
Downed clock of <name> came from 0.1.3 …). - Optional: the resource pack is byte-identical to the 0.1.2 and 0.1.3 zips (same SHA-1). Existing
server.propertieslines keep working; to point at this release use:
resource-pack=https://github.com/MusaMisto/FracturedHardcore/releases/download/v0.1.4/fractured-hardcore-resourcepack-0.1.4.zip
resource-pack-sha1=1223e50c22fd2ca07e44f9c48c13ef697c86ca2dRollback caveat: a players.dat written by 0.1.4 is not readable by 0.1.3 (downed and owed-kill state would be dropped). To roll back, restore the pre-upgrade players.dat from the backup.
Your ledger: deaths that 0.1.3 failed to charge are visible in logs/hcheart-audit.log as DOWNED_CLEARED bleed-out fallback lines; restore them with /hc set <player> <deaths> <restores> if you want the count right.
Verification
- Built and tested by CI on a fresh runner: run 34604595634. 35 JUnit tests and 41 gametests on a headless 26.2 server, all passing. The new gametests replay the reported incidents exactly: a join with the client not yet loaded and an expired clock, an offline expiry, and the 0.1.3 save-file conversion.
- The attached jar and zip are byte-identical to a clean local build of commit
c139a73(reproducible build). - Jar SHA-256:
4ad3e6903d3f75d5298afae3c3840767aa1c55895a443f2ad85b8e265b3a1af3 - Pack SHA-1:
1223e50c22fd2ca07e44f9c48c13ef697c86ca2d
Known limitations
- Expiry is noticed by the server tick. While the server is down or paused for being empty, an expiry in that window is recorded on the first tick after a player joins; the clock itself is real time, so nothing is gained by the pause.
- Every death screen reads "Game over! / Spectate world"; the button still respawns non-eliminated players.
- A downed player's own camera stays at standing height in open areas; everyone else sees them prone.
Fractured Hardcore 0.1.3
Feature release. Drop-in replacement for 0.1.2: same save data, no migration, no config. The resource pack is unchanged (same SHA-1), so existing server.properties lines keep working.
What changed
- A revive channel pauses the bleed-out clock. The moment someone starts reviving a downed player, the clock freezes with whatever time is left; the boss bar reads "clock paused while being revived". If the channel breaks (reviver moved, either player hurt, food ran out, disconnect), the clock resumes from exactly that remainder. Reaching a friend with two seconds to spare is now enough. The remainder is stored on disk, so a crash mid-revive keeps it; the clock resumes when that player next joins.
Requirements
| Component | Version |
|---|---|
| Minecraft Java dedicated server | 26.2 |
| Fabric Loader | ≥ 0.19.5 |
| Fabric API | 0.159.0+26.2 or newer for 26.2 |
| Java | 25 |
Upgrade from 0.1.2
- Stop the server and back up the world.
- Replace the 0.1.2 jar with
fractured-hardcore-0.1.3.jarinmods/. - Start the server. Nothing else changes. The attached resource pack is byte-identical to the 0.1.2 one; if you want
server.propertiesto point at this release, use:
resource-pack=https://github.com/MusaMisto/FracturedHardcore/releases/download/v0.1.3/fractured-hardcore-resourcepack-0.1.3.zip
resource-pack-sha1=1223e50c22fd2ca07e44f9c48c13ef697c86ca2d
resource-pack-prompt={"text":"Fractured Hardcore: draws the Crimson Heart as a heart. Optional."}
require-resource-pack=falseVerification
- Built and tested by CI on a fresh runner: run 34061271977. 30 JUnit tests and 37 gametests on a headless 26.2 server, all passing. The new gametest reproduces the report: a downed player with 2 s left, a channel that outlives the deadline, a break that resumes the same remainder, and the bleed-out only after it runs down.
- The attached jar and zip are byte-identical to a clean local build of commit
3608306(reproducible build). - Jar SHA-256:
a0b0c131a078b47af1881bc027a285d729f997b5b560d3a0658e31f837ab4d09 - Pack SHA-1:
1223e50c22fd2ca07e44f9c48c13ef697c86ca2d(theresource-pack-sha1value)
Known limitations
- A server crash in the middle of a revive leaves the clock paused until the downed player next joins; it then resumes with the time that was left.
- The heart texture needs the resource pack; a client without it sees the star.
- Every death screen reads "Game over! / Spectate world"; the button still respawns non-eliminated players.
- A downed player's own camera stays at standing height in open areas; everyone else sees them prone.
Fractured Hardcore 0.1.2
Feature release after the first live sessions. Drop-in replacement for 0.1.1: same save data, no migration, no config. The new resource pack is optional.
What changed
- Crimson Heart texture. With the optional resource pack the Heart is drawn as a crimson hardcore heart (the sprite is cut from the reference in
docs/assets/heart.png, pixel for pixel, scaled ×2) instead of a Nether Star. Without the pack, or for players who decline it, it stays the glinting red-named star. Hearts crafted before 0.1.2 pick the texture up the next time their owner logs in (inventory and ender chest). - Revive sounds. While someone is being revived, a note-block note plays every 0.4 s and climbs two octaves in semitones over the 8-second channel. A low bass note means the channel broke. Completion plays a bright amethyst chime with a light level-up sparkle on top. Everyone nearby hears them.
- Downed crawl speed halved again. Downed players now crawl at 25 % of normal speed (was 50 %).
Requirements
| Component | Version |
|---|---|
| Minecraft Java dedicated server | 26.2 |
| Fabric Loader | ≥ 0.19.5 |
| Fabric API | 0.159.0+26.2 or newer for 26.2 |
| Java | 25 |
Upgrade from 0.1.1
- Stop the server and back up the world.
- Replace the 0.1.1 jar with
fractured-hardcore-0.1.2.jarinmods/. - Optional, recommended: add the texture pack. The release asset URL below works directly; no separate hosting needed. Add these lines to
server.properties:
resource-pack=https://github.com/MusaMisto/FracturedHardcore/releases/download/v0.1.2/fractured-hardcore-resourcepack-0.1.2.zip
resource-pack-sha1=1223e50c22fd2ca07e44f9c48c13ef697c86ca2d
resource-pack-prompt={"text":"Fractured Hardcore: draws the Crimson Heart as a heart. Optional."}
require-resource-pack=false- Start the server. Players get the usual pack prompt on join; accepting or declining changes only how the Heart looks.
Verification
- Built and tested by CI on a fresh runner: run 34021916805. 27 JUnit tests and 35 gametests on a headless 26.2 server, all passing. The gametests now also capture the packets sent to the mock clients, so the 20 rising notes and the chime are asserted, not assumed.
- The attached jar and zip are byte-identical to a clean local build of commit
612ae24(reproducible build; the pack is stored uncompressed with fixed timestamps so its SHA-1 is stable everywhere). - Jar SHA-256:
1939d53c27137fe8b5520571ac7320f5e3801332b637684ce17e4c3a1252f36e - Pack SHA-1:
1223e50c22fd2ca07e44f9c48c13ef697c86ca2d(this is theresource-pack-sha1value)
Known limitations
- The heart texture needs the resource pack; a client without it sees the star. A Heart left in a chest keeps the old look until a player carrying it logs in.
- The hardcore flag is sent once at login and cannot be split between heart texture and death-screen wording, so every death screen reads "Game over! / Spectate world"; the button still respawns non-eliminated players.
- A downed player's own camera stays at standing height in open areas; everyone else sees them prone.
Fractured Hardcore 0.1.1
Patch release after the first live session. Drop-in replacement for 0.1.0: same save data, no migration, no config.
What changed
- Hardcore hearts for everyone. 0.1.0 sent the client's hardcore flag only to players on their final life, so everyone else saw regular hearts. 0.1.1 leaves the flag to vanilla: on a hardcore world every player sees hardcore hearts. The trade-off, because the client derives both from one flag, is that every death screen now reads "Game over!" with a Spectate world button. That button still respawns you normally; only an eliminated player (4 deaths) actually becomes a spectator.
/hc giveupfor downed players who are alone. Step 1,/hc giveup(or the [Give up] link in the downed message), prints what the death would cost and a clickable [Confirm: give up] link. Step 2,/hc giveup confirm, bleeds you out immediately. It is the same death path as the 180 s clock running out, so the penalty is identical, and it is refused when you are not downed. Audit eventGAVE_UP.
Requirements
| Component | Version |
|---|---|
| Minecraft Java dedicated server | 26.2 |
| Fabric Loader | ≥ 0.19.5 |
| Fabric API | 0.159.0+26.2 or newer for 26.2 |
| Java | 25 |
Upgrade from 0.1.0
- Stop the server and back up the world.
- Replace
fractured-hardcore-0.1.0.jarwithfractured-hardcore-0.1.1.jarinmods/. - Start the server. No
/hc reset allneeded; every record carries over. Players see hardcore hearts as soon as they log in.
Verification
- Built and tested by CI on a fresh runner: run 33990473420. 22 JUnit tests and 33 gametests on a headless 26.2 server, all passing.
- The attached jar is byte-identical to a clean local build of commit
9e61dc0(reproducible build). - SHA-256:
af463d3433bb9c2a92d6c15cb05eb09a89ff21538b3eb1a8fb83b883ecaf1cf3
Known limitations
- The hardcore flag is sent once at login and cannot be split between heart texture and death-screen wording; see above.
- A downed player's own camera stays at standing height in open areas; everyone else sees them prone.
Fractured Hardcore 0.1.0
First release of Fractured Hardcore, a server-side Fabric mod for Minecraft Java 26.2 that replaces hardcore's instant permadeath with a three-tier survival system. Players connect with a completely vanilla client.
Highlights
- Downed instead of dead. Lethal damage pins you at 1 HP, prone and glowing, immune to ordinary damage and ignored by mobs (Warden included), for 180 s of world time. A friend right-clicks you for 8 s to revive you at no penalty.
- True death shrinks the cap. Bleed out and you respawn with the vanilla Respawn button at one step lower on the ladder 10 → 8 → 6 → 4 hearts. Three deaths puts you on your final life; the fourth is permanent (spectator).
- Crimson Heart. A craftable Nether Star (4 Echo Shards, 4 Netherite Scrap, 1 Nether Star) that restores one level. Price escalates and never resets: 1 Heart, then 2, then 3… Hearts can never be lost to a beacon or another recipe.
- Self-repairing joins. Every login resets the max-health base value, reapplies the penalty from stored state, and rescues players stranded in spectator by stock hardcore rules.
- Admin tooling.
/hc info|set|reset all|give, adeaths_hctab-list objective, an append-only audit log, and a rolling backup script.
Requirements
| Component | Version |
|---|---|
| Minecraft Java dedicated server | 26.2 |
| Fabric Loader | ≥ 0.19.5 |
| Fabric API | 0.159.0+26.2 or newer for 26.2 |
| Java | 25 |
Install
- Back up the world.
- Put
fractured-hardcore-0.1.0.jarand Fabric API intomods/, start the server, and look forLoaded Fractured Hardcore state for N player(s)in the log. - Run
/hc reset allonce before the first session. - Schedule
scripts/backup.shhourly during sessions.
Full player rules, admin guide, architecture and known limitations: see the README.
Verification
- Built and tested by CI on a fresh runner: run 33988722837. 23 JUnit tests and 31 gametests on a headless 26.2 server, all passing.
- The attached jar is byte-identical to a clean local rebuild of commit
c05781c(reproducible build). - SHA-256:
9198736a3f437fe5b81b4d7afe83f852b2c405b4ba4d62f1686b8719ff25aab4
Known limitations
- The client caches the hardcore flag at login, so a player who reaches final life mid-session keeps the Respawn button until they relog; a fourth death that session still ends in spectator with an explanatory title.
- A downed player's own camera stays at standing height in open areas; everyone else sees them prone.