Skip to content

Fractured Hardcore 0.1.4

Choose a tag to compare

@MusaMisto MusaMisto released this 11 Sep 13:31
· 4 commits to main since this release

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 as Bleed-out kill did not take … clearing downed state at 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 giveup announces 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

  1. Stop the server and back up the world (keep this backup: it is the only way to roll back, see below).
  2. Replace the 0.1.3 jar with fractured-hardcore-0.1.4.jar in mods/.
  3. 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 …).
  4. Optional: the resource pack is byte-identical to the 0.1.2 and 0.1.3 zips (same SHA-1). Existing server.properties lines 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=1223e50c22fd2ca07e44f9c48c13ef697c86ca2d

Rollback 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.