6.2 KiB
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog.
[Unreleased]
Changed
- Breaking: worlds consist of levels: the server's map plus every map reached
through
teleporttriggers. All levels are simulated even when nobody is on them, and clients only receive their character's level. The save schema (version 3) stores each entity's level and the levels' terrain. - Breaking:
export [DIR]writes a ready-to-use Tiled project directory (the main map named after the server's map, e.g.station.tmx, every level's map,station.tiled-project, the Station extensions and relative tileset image copies) instead of a single map file;importaccepts that directory or the main map file and replaces all levels. - Tiled exports and newly created conversion layers place Objects above Ground Items, Triggers, Wiring/Plumbing and Floors, with Floors and Wiring/Plumbing hidden by default in the editor without affecting gameplay.
Added
-
teleporttriggers in Tiled maps (targetobject name, optionalmapfile) move characters between places and levels. -
Stairs in the default map's main hall lead to a new cellar level and back up.
-
Map > Station: Convert All Project Maps in Tiled converts painted gameplay tiles in every map of the opened project at once.
-
A Station Object Brush in Tiled with per-tile brush property settings and independently editable wall/floor objects, drag previews and stroke undo. Open the bundled
assets/station.tiled-projectto load Station extensions without installing them globally (Tiled requests permission on first use). -
cargo xtask watch --serveserves the packaging output with directory listings and downloads athttp://127.0.0.1:9932/, including while rebuilds are paused. -
cargo xtask watchrebuilds and packs after a resettable 10-second quiet period, with automatic rebuilds paused whiledist/NOREBUILDexists. -
Separate gameplay floor and structure layers, with buildable/removable floors and windows. Marked painted Tiled tiles become stateful gameplay entities; removing floors exposes the map's configurable default terrain.
-
A bundled Tiled extension to convert painted gameplay tiles into editable objects, preserving properties and flips with conflict checks and undo support.
-
Admin
exportandimportcommands for editable Tiled snapshots of terrain, buildings and ground items, including health, script variables, machine contents and processing state. Imports replace the map while preserving characters. -
Native chat text editing with word navigation, keyboard/mouse selection, system clipboard copy/cut/paste, bounded sent-message history and role-aware command completion.
-
Persistent-world station game with singleplayer, hosting (
--host) and joining (--connect), plus a dedicatedgame-server. -
Data-driven items, recipes, buildings and skills in
assets/data/*.rsn. -
Rune scripting for item use, building interaction and crafting hooks.
-
Tiled map support (solid tiles/layers;
spawn,buildinganditemobjects). -
Saving of the world and characters (autosave, and on exit, Ctrl-C or SIGTERM).
-
Crafting, construction/deconstruction, skills, hunger, health and respawning.
-
Windows client builds for GitHub and Gitea CI; release builds run without a console window.
-
cargo xtask packbuilds the client and server and packs them with their assets into a distributable archive; CI publishes these archives. -
Machines (
machinesin data files): buildings with input/output slots that process their own timed recipes, with optional custom window layouts and background images. The furnace is now a machine (ore + log fuel), and a new assembler makes tools. -
GitHub
Packageworkflow builds archives for Windows (zip), Linux and macOS (tar.gz). -
Worlds are stored with sqlx in SQLite (default) or PostgreSQL, keyed by a world UUID so many worlds can share one database. Singleplayer saves are SQLite files in the platform data directory. Autosaves run in the background. The server has new
--database URLand--world NAME|UUIDoptions. -
The dedicated server is configured by
server.tomlplus command-line overrides, and it accepts terminal commands for save, shutdown and live config changes. -
Start menu with new game (optionally hosted), load/delete saved games and join server screens. Running the client without options shows it.
-
Menus and HUD are defined by layout files in
assets/ui/(rsn) with a shared theme,{binding}placeholders, conditional visibility and tooltips. -
Machine windows: insert and take items from machine slots, using the machine's slot positions and background image, with a progress bar.
-
Chat (Enter/T) with
/commands, a pause menu (Esc) and clickable inventory, crafting and build menus. -
Server passwords, admins, a whitelist, bans, kicks and admin commands in the server terminal and in-game chat. Changes are written to the config file. The player hosting a world is always admin.
-
The client profile (
client.toml) stores a player id; characters belong to it instead of to a name.
Changed
- Tiled exports always use the
.tmxextension and separate floors, structures, ground items and spawn points into named object layers, with a reserved wiring/plumbing layer. The Tiled converter uses the same layer organization. - Tiled property overrides apply to new-world seeds as well as imported maps. Terrain is persisted with world state and replicated to connected clients. Save databases migrate automatically to schema version 2.
- Characters move freely instead of tile by tile: diagonal movement, sliding along walls and around corners. Their exact position is saved.
- Breaking: network protocol version 6. Layered building state and authoritative terrain are replicated, logins carry a player id and password, and movement is sent as a direction vector, so older clients and servers can't connect. Characters saved by name in existing worlds are not carried over to player ids.
Removed
- The rsn save file format and the
--save FILEserver option. Existing rsn saves are not migrated.