KCDS 0.3.4.2

Many fixes to what other players see (doors, arrows in targets, smithing, dice tables, attacks, riders, graves, revived players, cuffed legs), and a large set of new scripting features for roleplay servers: upper-body and paired animations, animation speed and pause, free look, pointing, props and marks on a body, burning torches, rigid props that report their hits, dice against an NPC, and a launcher that starts the KCDS version a server runs.

0.3.4.2 clients and servers play together; a 0.3.4.1 client cannot join a 0.3.4.2 server (it is told which version the server runs and offered the update), and the other way round. The launcher updates itself on every start.

Fixes

  • Doors stay as the server says (#729). A door one player opened could stay closed for another while it swung.
  • Arrows stay in a target (#728). An arrow that hit a target, a wall or the ground stays stuck there for every player, and is pulled out once.
  • Smithing: the blade lies still on the anvil for the other players while it is hammered (#731).
  • Dice tables: seated players do not push each other (#730). A third player walking up no longer glitches the players' legs, and everyone can walk around the table.
  • One attack strikes once on the other screens (#724), and a rider's drawn weapon shows for other players (#715).
  • Graves are the same for every player (#626): the shovel is seen, and the digger can be locked on and hit afterwards.
  • A revived player no longer convulses on the ground after a gallows death (#631).
  • Cuffed players walk on their own legs (#625) instead of sliding on stiff ones.
  • Joining no longer stays on "Entering the world" (#698).
  • A woman's animations play the rows a player's body has (#702), and her hands no longer claw on the male clips (#704).
  • Nameplates stand steady over the body's centre, above the head (#732).
  • The whetstone is heard by the other players at a grindstone (#664).
  • Keyboard focus comes back after a start that was minimized or Alt+Tabbed (#720).
  • A script's weapon on the ground lies on its side (#700).
  • First person: the head stays hidden while a script animation moves it (#640).

For server scripts

  • Animations
    • playAnimation options upperBody (the torso plays it while the legs walk, #639), gravity: false (the body stays where the script puts it, a hanged player in the noose, #669), lockRotation (free look: only the head and camera turn, #680), speed and time (#647).
    • setAnimationSpeed, pauseAnimation, resumeAnimation, animationSpeed and setAnimationProps change a running animation without playing it again (#647). Looped animations go from pass to pass without the idle between them (#687).
    • playPairedAnimation(other, fragment) plays the game's two-character animations, a master and its Slave (#675).
    • Props take lit: true: a burning torch with its flame and light (#671).
  • Bodies
    • attachProp / detachProp: a mesh on a joint of the player's body (#665).
    • addMark / removeMark / marks: a brand or scar on the skin (#668).
    • wearItem / removeWorn: clothing worn outside the inventory (#681).
    • heldWeapon, and props 'held' (#674).
    • frozen holds a player in place (#679).
    • noclipAllowed: the server decides who may fly with NoClip (#735).
  • Props and effects
    • Prop.visible: invisible collision (#670); Prop.collisionOf(model) says which meshes have only simplified collision (#670).
    • Rigid props are simulated by any player of their world, and propHit reports their hits (#676).
    • Vfx.spawn on a body or joint, Vfx.burstFrom and Light.spawn on a joint (#671); Vfx.scale grows a running effect smoothly (#672).
  • World and activities
    • World.addInteraction on a moving body, and every key of a target (#678).
    • Follow.start pace 'run' (#666).
    • Items.info: category, weapon class and attack modifiers (#673).
    • Dice.startAgainstNpc(player, { difficulty }): dice against the server's NPC (#685); the shipped dice resource's /dicenpc.
    • The B key points the arm where the camera looks, for everyone (#641; the interaction pointing).
  • NoClip can show the player's own body and orbit (#682).

Launcher and the rest

  • --version and ?version= on a kcds:// link start the KCDS version a server runs, installing it from the update feed when needed (#643). Every release from 0.3.4.1 on stays in the feed.
  • In-game bug report from the ESC menu (#708).
  • Discord presence shows a server's name, logo and one button (#706).
  • The server's admin is called KCDS-Admin.
  • Releases go out only through the release workflow, with immutable versions and a public SHA-256 check of every download (#733).