KCDS 0.3.3
Milestone 0.3.3: web views, events, animations and world features for servers with large resource sets, an audit of resource stops and restarts, and a long two-player soak.
Servers and players both need 0.3.3: a client and a server of different versions refuse each other when joining. The launcher updates itself on the next start; servers update from their update channel or the new packages.
Web views
- Files over 48 kB served from a resource (
kcds://resources/...) load: the game receives them in parts (#490). kcds://URLs with?queryor#hashare accepted (#492).Web.focusright afterWeb.opengives the page the keyboard once the browser exists (#491).<select>dropdowns and other popups of a page are drawn (#493).- A page always reports a failed load: a file the resource runtime does not answer within 30
seconds ends the load with
webViewFailedinstead of leaving the page waiting with no event (#494).
Events and resources
- A payload that is not JSON arrives as that string instead of being dropped (#497).
playerResourcesReady(player)on the server once a player's client resources run (#496).Runtime.serverDir: the server's own folder, for data that must survive a redeploy of the resource (#508).World.leveland the level's areas are ready inresourceStart(#507).- A stopped or restarted resource removes everything it spawned, as documented: props, effects, ground items, chests and virtual stock, carts, areas, blips, markers, patrol routes and siege objects (they used to stay, and a restart could not create a named patrol route again; #123).
player.learnRecipeof a recipe that no perk teaches (a row added by a recipe table patch) returnsfalseinstead of throwing.- The events guide lists every event a handler can refuse, and that only a synchronous
falserefuses (#120).
Animations, NPCs and props
- NPCs play the game's animation fragments with tags, as players do:
npc.playAnimation('Greetings', { tags: 'bowBig' }), looped withloop: true, reported bynpcAnimationEnd;LocalNpc.playAnimationtoo (#498). - Animation props accept names from
Animations.props(), and model paths work with or withoutobjects/and.cgf(#500). - Props move (
position,rotation,setPose) and can be shown to some players only (showOnlyTo) (#505). - Client scripts have
Vfx: effects in the player's own game only (spawn,burst,burstFrom) (#510).
Camera and world
Camera.startShot({ ease: false })moves at one speed, so chained shots run on without stopping (#502).NoCliplook: 'rightButton'turns the free camera only while the right mouse button is held, so a focused page keeps the pointer (#503).- The level's houses (AreaUnion) are areas too: one area entered from any of its rooms, with its member areas (#506).
Game client
- Alt+F4 and the window's close button quit the game as the menu's Quit does (#509).
- An unsupported game version is reported as such when joining, instead of as an internal error (#124).
SDK types
- Typed
Events.on/once/offper event, typed event parameters, handles that extendEntity, and more exact fields (#511). shared.d.tsdeclaresKeyHandler,WebEventHandler,ActionHintHandlerand the NativeUI handler types, used byKey.bind,Web.on/off,ActionHint.createand the NativeUIon()methods (#119, #511).
Not in this release
- Level chests as stashes (#504), animation-driven props (#499) and the hand props of the animation catalog (#501) move to 0.3.4.
- Lights, smart objects, scripted doors, prop physics, custom buff and recipe definitions and more are planned in 0.3.4 (#512 to #522).