Skip to content

v0.4.0-pre2: first spawn, blood, gore, weapons, delay (fixes from the first two-player test)

Pre-release
Pre-release

Choose a tag to compare

@Dudiebug Dudiebug released this 11 Oct 06:29
· 3 commits to main since this release

Pre-release: fixes from the first two-player test. Not yet re-tested on two machines. Every offline check passes: build with -Werror, 35 unit test programs under ASan/UBSan, a 300k-input protocol fuzz, 501/501 mutants killed, and the DLL export check. Protocol revision 10: everyone must update. v0.4.0-pre1 cannot join this version.

Fixed

  • First spawn. The client used to spawn with only their weapon and could not see the host. It now waits until the level has finished its own start-up cleanup, then spawns dressed. A stand-in the game destroys is re-created.
  • Severed limbs now show on both screens. The severed-parts map is now read with the correct UE 5.4 layout.
  • Blood and wounds now show on both screens. The owner of the hit fighter sends what it painted, and every other machine replays it on its stand-in.
  • Weapons disappearing. Drawing and sheathing are mirrored, so a drawn weapon shows in the stand-in's hand and goes back to its slot.
  • Tavern screen. The game's single-player win, lose and next-fight screens, and the pause they cause, are blocked in session matches.
  • Delay. The game now uses the time Steam received a pose, not the time it was read, so slow frames no longer inflate the buffer. Every 5 s, HSMMod.log shows frame time (avg/p99) and the ping to each player.

Install

Copy dwmapi.dll into <Half Sword>/HalfswordUE5/Binaries/Win64/, replacing any older copy. HSMMod.ini is created on first run. Everyone needs this same version and Steam game build 24185754.
Linux / Steam Deck (Proton): Proton loads its own built-in dwmapi.dll unless told otherwise. In Steam, right-click Half Sword → Properties → General → Launch Options and set:

WINEDLLOVERRIDES="dwmapi=n,b" %command%

Windows players need no launch option.

To use the older host-simulates-everyone sync, the host sets sync_mode=host under [net] in HSMMod.ini.

Known limits

  • A weapon picked up from the floor stays a loose prop on other screens and can trail the hand a little.
  • A weapon moved to the other side's sheath (right-hand weapon into a left slot) is not mirrored.
  • The grab pull is a soft handle, not the game's own grab constraint.
  • Level props are not synced.

Please report bugs with the HSMMod.log from both machines.

dwmapi.dll SHA-256: f4154f04727b58df3e3f823d8ecfa147b94674d7709dae31a6cad85d257312b5

Contains code ported from Cyrex0/HalfSword-MP, Copyright (c) 2026 Cyrex0 and the HalfSword-MP contributors, MIT (see THIRD_PARTY_NOTICES.md, attached). Unofficial fan mod, not affiliated with Half Sword Games.