KCDS 0.3.4.1

Joining from the launcher now goes through the KCDS menu, so a password-protected server asks for its password; two crash fixes, a clear message for a player on another KCDS version, clothes other players see, and new scripting features.

A 0.3.4.1 client plays on 0.3.4 servers and a 0.3.4 client on 0.3.4.1 servers. The version message is shown once the server runs 0.3.4.1. Download and install 0.3.4.1 once (the client zip or KCDS-Setup); from then on the launcher updates itself on every start.

Fixes

  • Joining from the launcher shows the KCDS menu (#659). A player started by the launcher with a server address (serverAddress in kcds-launcher.json, or kcds-launcher.exe --connect from a community's own launcher) saw the game's single-player menu while the game connected in the background, and a server with a password could not be joined that way. The KCDS menu now shows and joins that server itself: the connecting screen, the password field when the server asks for one, the version message, and the server list after leaving.
  • No crash when a join is cancelled or refused after leaving a server (#661). After the player had left a server, cancelling the next join (or a server refusing it) could crash the game.
  • A crash in the client's error handling is fixed (#644). When the game hit an error near the end of a thread's stack, the client's error report itself crashed the game.
  • A player on another KCDS version is told so (#642). Joining a server that runs another version used to end in a timeout. The server now answers with its version, and the server browser offers the update (or says the server runs an older version), however the player joined: from the list, by address or by a kcds:// link.
  • Clothes no longer vanish for other players (#621). While a body was being rebuilt (a respawn, a change of skeleton, a world load) the game could report no worn clothes for a moment, and other players then saw the player in underwear until they changed clothes again. Such a moment is no longer sent; taking clothes off still shows on everyone's screen.
  • A press hint and a hold hint on one key both work (#662). With both on a key only the hold was shown and fired. Now both show; a short press runs the press hint and a full hold the hold hint, as the game's own prompts do.
  • The password dialog no longer repeats the server's words under the menu's own text.

For server scripts

  • Held props in the game's grip (#646): playAnimation props take attach: 'game', which hangs the item on the hand's slot the way the game holds an item of its kind (by the model's grip point).
  • Props that rest in the world (#499): a prop's rest names a Prop that lies in the world before and after the animation; the events propPickedUp and propPlaced tell when the animation takes it and puts it down.
  • WebSocket in server scripts (#648), closed with the resource.
  • PropGhost scale per axis (#677): scale takes a number or a Vector3, in create and setPose, as Prop.spawn does.
  • GroundItem.showOnlyTo (#683): a stack shown to one player only, who alone can take it up; also the spawn option visibleTo.
  • Follow.start(target, { hint, playerCanStop }) (#667): without the game's "Stop following" prompt, and a follow the player cannot end with a key.
  • Vfx: an effect name the game's particle libraries do not have throws a RangeError (#663).
  • Npc.create takes brain, interactable, targetable and fightsBack (#684), so a figure can stand without a brain from its first frame.
  • TypeScript declarations name WorldRayHit, AnimationInfo and AnimationPropInfo (#511).

Servers

  • Node.js 26 LTS is recommended for the resource host (22 or newer still works); the Linux image runs Node.js 26.