KCDS 0.3.2 (work in progress)
Milestone 0.3.2: running a server. Every KCDS server now has a web admin, packages for Windows and Linux, a password, a status API and join links. This release also adds a large set of SDK additions and completes the public documentation.
This is a work-in-progress release: a few parts of the milestone are not in it and follow in 0.3.3 (listed at the end), and some parts are still being checked; those issues stay open until then.
Servers need the 0.3.2 server as well. The launcher updates itself to 0.3.2 on the next start.
Hosting a server
- Server packages for Windows and Linux, and a Docker image (#115): a
server.json, start scripts that restart the server on a planned restart, and the image's settings from environment variables or a mountedserver.json. - Settings from the command line, the environment or
server.json(#109), in that order. Each setting has a documented default. Unknown keys and wrong types are reported. - A web admin on every server (#116): status, players (message, teleport, kick, ban), the
server's own bans, the live console, resources,
server.json, backups, crash reports, one-click updates, planned and daily restarts, and moderator accounts, in the KCDS design and on a phone too. Settings has "Where the server listens": the game's, the admin's and the status API's ports and interfaces. A wrong sign-in tells how many tries are left. All of it is also a JSON API you can script. - A password (#110):
KCDS_SERVER_PASSWORD. The game sends only a one-time proof, never the password, and the server browser asks for it. - A status API (#111):
info.jsonandplayers.jsonfor websites and scoreboards. - Private servers and join links (#112):
kcds://join/<address>andkcds://server/<id>open KCDS and join the server. - Faster joins (#113): the game keeps the resource files it already downloaded (checked by SHA-256) and asks the server only for what changed.
- The world is checked (#117): a server with an unknown level stops with a clear message. A player without the DLC a server's level needs is told so before anything loads.
- A legal copy on every server, localhost included (#445). The player's Steam account is
verified for the SDK (
player.steamId). - Only KCDS's own mod runs (#461): other game mods, from the Mods folder or the Steam Workshop, stay off while playing KCDS. No game file is changed.
Playing
- A KCDS loading screen (#485): the first load to the main menu shows KCDS's own animated screen (the KCDS mark with its turning ring, the name and a gold streak) instead of a black window, sized for every screen from 720p to ultrawide.
Fixes
- Combat: a kill on the attacker's screen is a kill for everyone (#448). Fist fights can be parried (#449). The other player's mouth no longer starts talking after a few punches (#483).
- Hunger and tiredness are off by default (#486): players no longer get hungry or tired, and
Henry no longer says he is hungry, unless the server turns the needs on
(
Needs.setEnabled(true)). - A crash after leaving to the main menu and joining again is fixed (#450).
- Nameplates no longer slide along the screen edge when the player's head is off screen, stay still over a player who stands still, and are smaller far away (#447).
- The main menu no longer shows the game's "Deep Silver Account servers are not available" line (#451).
- Dice: after a match the players stand up from their own seats (#452), their legs no longer glitch (#453), and players in a match cannot be attacked (#454).
- Items in the world: an item one player picked up is gone for everyone, and a server can switch off the level's shop and armoury items (#455).
- Props held in animations (the shovel, the lockpick and others) are seen by every player (#477, #462).
- Alchemy as others see it: the recipe book (#456), the ingredients and tools without lag (#457), the held prop in the hand (#458), the bellows (#459), and the mortar's ground contents and the pouring (#460).
- Smithing: the forge stick stays in the hand when Q is released (#463). Smithing and alchemy sounds are heard only near the station, not across the whole map (#446).
- Horses: the bridle and reins show on a ridden horse, and riding is smoother (#475).
- NPCs: the use key on a server NPC raises
npcInteract(#478). - Resources: a resource's default client folder no longer sends hidden files (
.env) ornode_modulesto players.
SDK
- Players:
player.ip(#464),player.ping,player.emit,player.horseandplayer.mounted. On the client, the nameplate the server set:isNameplateVisible(),getNameplateText(),getNameplateColor()and more. - Server scripts:
global,processandsetImmediatein the resource sandbox (#465). - Client camera (#466): the camera pose, a screen ray, raycasts and entities in a radius.
Camera.startShot,endShotandinShoton the client (#471). - NPCs (#467):
Npc.roles(), a soul by role, NPC nameplate text,npc.pin()andnpcAnimationEnd. - Areas: the level's own areas in
Area.all('level')andArea.getAt(#468). - Horses (#469): gear (
setTack,fitGear,takeOffGear,gearList,gearSets,gearFixed),Horse.breedsandplayer.mount(horse). - Props on the client (#470):
PropGhostandPropPlacer. - Web views: the
webViewFailedevent (#472). - Gates:
Gate.toggleandopenness(#473). - World:
World.level. - Render:
Render.view, pictures from any camera (the character export of #276 follows in 0.3.3). - TypeScript declarations with every release (#474):
server-api.d.ts,client-api.d.tsandshared.d.ts.
Documentation
The public docs were checked and completed (#481):
- Every SDK member has a description and an example, and every example is type-checked against the TypeScript declarations.
- New guides: your first resource, debugging, project structure, TypeScript, the playground, containers, how players connect (with every refusal text), join queue and whitelist, animations, nameplates, sounds and game files, Discord, and following.
- Every event is on the events page.
- The status API and the web admin API show their real answers.
Not in this release (0.3.3)
- Death, knockdowns near objects and hit reactions (#480), the hidden character export to PNG (#482, #276), the NPC death ragdoll check from two views (#488), and vaulting over obstacles (#476: the game finds the ledge but its ledge grab does not start; it is compared with the game without KCDS first).
Still being checked
- Smithing and alchemy as seen by others (#193, #194), the original-copy check for the other stores (#166), the client installer on a clean PC (#114), the password flow (#110) and items dropped at death showing twice (#479).
- The central ban list and the identity registry (#271) are in the Master server; they apply once the Master server of this release is deployed.