Creation v1.0.0-alpha.10 — safer saves, smoother frame rate, cross-fading weather, and server flood protection
v1.0.0-alpha.10 is a stability-and-performance release. The headline work is a batch of save-corruption, memory-leak, and crash fixes, a smoother frame rate from cutting per-frame work, weather that now cross-fades instead of snapping, and connection-flood protection for anyone running a dedicated server. There’s also another round of config cleanup for weather, structures, and trees.
Existing worlds and saves carry over as-is. There are breaking format changes for custom weather and structure configs (detailed below), but since the game is still pre-mods there’s no known impact. One worldgen change does affect new areas even with built-in content: structure links now roll independent spawn chances, so linked structures like villages and cacti generate differently in newly explored terrain.
Your saves are safer
Several ways a world could quietly corrupt itself are now fixed:
- Exploring and saving no longer wipes your edits. A world-corruption bug could partially save chunks that had more than one block layer, corrupting their files so they regenerated from scratch on the next load — wiping the builds and edits in them. Fixed.
- Bad chunk loads are now recoverable. A chunk file that fails to load is moved aside as a
.corruptfile instead of being deleted, so a bad load can be recovered rather than destroying the chunk. - Multi-mod ID corruption is fixed. With more than one mod installed, block and item IDs could get scrambled between sessions. IDs are now saved with the world and remapped by name on load, and mods load in a stable order, so everything stays consistent across restarts. (No effect with only the built-in content installed.)
Smoother frame rate, lighter server
A round of performance work you’ll feel on both ends:
- On your client, the world lighting buffer is no longer re-uploaded every frame when nothing changed, and animated blocks (torches, fluids, and the like) are gathered from a per-chunk cache instead of rescanning every on-screen block each frame. The result is a smoother frame rate, especially when standing still.
- On the server, entity health and status updates are now sent only when they actually change instead of every tick for every entity, and mob pathfinding no longer stalls other server work while it searches — so worlds with lots of entities cost less CPU and network traffic. Mobs that can’t reach their target also back off instead of running a full search every tick and spiking CPU.
Weather that cross-fades
Weather now cross-fades between types instead of snapping. transition-out-ms (which previously had no effect) controls how long the old weather fades out, and a new optional transition-in-ms controls the fade-in of the new weather. And snow is drawn again — the shipped 16-frame snow effect (and any wide multi-frame backdrop) was being rejected by an image-size safety limit and silently not rendering; frame-packed strips now get a larger allowance while the memory-bomb guard stays in place.
For server operators
Dedicated servers gained real protection against connection-flood denial of service. Idle or never-speaking peers are now disconnected after a timeout (30s before login, 120s after), concurrent connections are capped both globally and per source IP, and TCP keepalive detects dropped peers — so a bot or a single abusive host can no longer hold server resources open indefinitely. You can tune all of it via a new connection-limits: block in server_config.yaml (max-connections, max-connections-per-ip, handshake-timeout-seconds, idle-timeout-seconds).
Also fixed: an item-duplication exploit where logging in twice with the same player identity spawned a second copy of your character sharing one save file. A duplicate login is now rejected with an “already logged in from another session” message; normal reconnecting after a dropped connection is unaffected.
Modders: weather, structure, and tree config cleanup
The config cleanup continues through the weather and structure systems. Two are breaking:
- Weather config is now a single file. A weather type’s timing, server hooks, and visual layers all live in
weather-config.yaml, organized intotiming:,server:, andclient:blocks. The separateweathers.yamlis gone — its layers moved into each weather’sclient:block — and field names changed to match (min-duration-ms→timing.min-ms,server-update-function→server.update-function, layerlayer-name→name, and so on). Weather types can also now attach aserver.on-end-functionhook that runs when the weather ends. - Structure surface-integration flags are simplified. The five overlapping flags collapse into two clearer enums:
air-blocks: none | all | except-bottomandsurface-snap: none | on-top | embedded.fill-to-surfaceis unchanged; the old field names are no longer recognized.
And a worldgen behavior change that affects new areas even without mods:
- Structure links now roll independent chances. Each link’s
chanceis its own spawn probability, so several links in a group can spawn together and no single link “wins” the group at the others’ expense (previouslychanceacted as a cumulative weight and the last link always spawned as a fallback). Newly generated areas will look different, and shippedchancevalues may want retuning. A link’schanceis now optional and defaults to1.0, matching base structures.
Trees got some authoring conveniences too: tree-level defaults mean hitbox, tool, and drop-table settings can be set once on a tree and shared by all its variations (and type defaults to the tree’s name), so variations that differ only in appearance no longer repeat those fields. Variations can also carry a weight to spawn more or less often than their siblings (weight: 0 disables a variation’s natural spawning). Vehicle steering scripts can now read get_max_speed() / get_jump_strength() so a vehicle can be retuned from its config alone. And as with recent releases, more configs — weather, structure, vehicle, and tree — now report misspelled fields at load time instead of silently ignoring them, including warnings when a biome references a weather no config registered, or a registered weather no biome uses.
More fixes you’ll feel
- Vehicles and mounts can die now. One reduced to 0 HP is removed, drops its loot, and dismounts its riders, instead of lingering as an unkillable, un-lootable ghost.
- Melee lands where you’re facing. The server was tracking a stale facing direction for the held weapon, so a swing right after you turned around could silently miss. Fixed.
- World creation and joining fail loudly, not silently. Creating a world with a duplicate or invalid name now shows an error instead of appearing to do nothing (empty names, or names with slashes,
.., or quotes, are rejected up front). And the client no longer hangs forever on the loading screen when a connection fails — a wrong address, a downed server, a port already in use, or a bad config now times out and returns to the menu with an error, and the Join button is disabled while the address field is empty. - Memory leaks fixed. Several leaks that grew memory over long sessions are gone — weather regions and their selection weights, world-generation object tracking, dynamic lighting sectors, light particles with no lifetime, and buffers left behind by every disconnected player. Weather-selection weights also no longer drift toward “never changes” as chunks stream in and out.
- Menus line up after a resize. Menu elements and click targets are no longer misplaced after resizing the window during play and returning to a menu.
- Crash hardening for mod content. A pile of crashes from malformed mod content are now caught at load and skipped with an error instead of taking the game down — particle emitters with a zero
cooldown-ms, textures declaring frame dimensions larger than the actual image, structures with mismatched entity-spawn markers, and endlessly-chaining structure links (now bounded, with an optionalmax-link-depthfield for intentionally deep chains). Thespawn_vehiclemodding function no longer freezes scripting for seconds before failing — it spawns immediately.
What’s next
alpha.10 is about making the game hold together — saves that don’t corrupt, a frame rate that stays smooth, servers that shrug off floods, and a long list of crash and leak fixes — alongside continued config cleanup for weather, structures, and trees. Thanks as always to everyone playtesting with us; keep the reports coming.