Creation v1.0.0-alpha.8 — a big modding-config cleanup, host auto-operator, shift-click, and a pile of slab fixes


v1.0.0-alpha.8 is a large release with two halves: a broad cleanup of the modding config system — including several breaking format changes and much stricter validation — and a set of player-facing features and fixes, from auto-operator when you host to shift-click stack moving and a whole pile of slab fixes.

Existing worlds and saves carry over as-is. A few config files changed format in breaking ways (called out below), but since the game is still pre-mods there’s no known impact — this is the moment to get the formats right before mods exist. The headline for anyone authoring content: many config files are now strictly validated, so a misspelled field is reported as an error instead of being silently dropped.

Modders: your configs now tell you when something’s wrong

The biggest theme this release is that config files stop failing silently. Previously a typo like time-to-brek-ms was quietly ignored, leaving the block on defaults with no warning — you’d just wonder why your change did nothing. Now, unknown or misspelled fields are reported as errors across block, item, interactable, chat-command, control, and loot-table configs. A few of these were genuinely dangerous before: a typo in an interactable’s tool-break-types left the object unbreakable by any tool with no indication why, and a misspelled permission in a chat command could silently make an operator-only command runnable by everyone (see Security below).

Other authoring changes worth knowing:

  • One file per biome. A biome’s ambient particles and shader override used to live in a separate biome-config.yaml; they now live in the same biomes/.../<biome>.yaml file that defines the biome’s terrain. Adding a biome means creating one file, not editing two. Old biome-config.yaml files are no longer read.
  • light-dampening is now light-transmission. The old name said the opposite of what the value does — 1.0 lets light through, 0.0 blocks it. Mods still using light-dampening keep working.
  • Loot-table schema cleanup. chance is now weight (a relative weight — how often an item is picked compared to the others — not a probability), min-loot/max-loot are now min-rolls/max-rolls, and item: now takes a plain item name (item: WOODEN STICK) instead of a nested block. The old key names all still work, but an empty item list is now a load error.
  • Authoring shorthands for blocks. drops-self: true for a block that drops one copy of itself, and phase-all: true / phase: [up, down] for directional phasing (instead of four separate flags). The longer forms still work. Block variations can also now be defined before or after their base block in the same file — a variant listed first used to silently fail to register.
  • Missing textures now warn. A block with no matching entry in its mod’s blocks.yaml used to just render blank; it now warns at load time so you know why.

Breaking format changes

Two configs changed shape in ways that will need an edit once mods exist:

  • Control bindings (control-config.yaml) now use an explicit category: / bindings: / action: layout — see the Control Bindings doc for the new format. Bindings are validated on load, so an unknown trigger or modifier, or a missing field, is rejected with a clear error instead of quietly registering a binding that could never fire. Mouse-button bindings can now require modifier keys too (e.g. key: Left, trigger: RELEASE, modifiers: [Shift]).
  • Interactable crafting stations now use a single crafting-station: { power, type } block instead of separate crafting-power / crafting-type fields, so a station can’t be half-configured. Interactables also gained the drops-self: true shorthand.

Host your world, get operator automatically

If you host a multiplayer server, you’re now automatically an operator for that session — so /tp, /kick, /ban, /pvp, and the rest work with no config editing. In singleplayer you’re always an operator. Operator status isn’t stored in the save or profile, so hosting a downloaded save grants operator to nobody but the host.

Shift-click to move stacks

Shift-clicking a stack in an open inventory now moves it straight across instead of making you drag it: into the chest you have open (or back out of it), or between your hotbar and the rest of your inventory when nothing else is open. It never dumps into the slot you’re currently holding.

Projectiles that clean up after themselves

Arrows, bolts, and similar projectiles that flew off into open sky or past the loaded world used to freeze in place and never disappear, slowly piling up over a session. Projectiles now despawn once they exceed a lifetime or travel distance — on by default, and tunable per projectile with the new max-lifetime-ms and max-range fields in projectile-config.

Slabs, fixed properly

Partial blocks got a cluster of fixes this release:

  • Slab config is actually respected now. The side (Top/Bottom/Left/Right) and count fields in block-shape used to be ignored — every slab was forced to a bottom-aligned single division regardless of config. They work now.
  • You no longer get stuck landing on a slab. Landing on a partial block used to sink you into it, leaving you unable to move with open air beside you. You now settle cleanly on top.
  • The placement preview is correct. The slab highlight used to preview on the opposite side of the cell from where the slab would actually go; it now shows the right side and reflects how much of the cell a multi-division slab fills.

Input fixes

  • Holding Shift no longer stops you moving. Any movement binding without its own modifier — walking, jumping, falling — used to cut out while a modifier key was held, so shift-clicking an item while walking froze you in place. Fixed, along with a related bug where releasing a movement key while Shift was held could leave you walking until you tapped it again.
  • Controls menu cleanup. The Controls settings no longer list an “Exit” binding that did nothing (Escape still closes menus as always).

More fixes you’ll feel

  • Block behavior corrections. Stone walls can now be mined with a pickaxe and drop themselves (matching dirt and oak walls); iron ore now dims light like the stone and coal ore around it; breaking snowy grass drops dirt like regular grass; and breaking a Christmas tree drops the tree back instead of destroying it for nothing.
  • Tool stack sizes agree. A tool with no explicit max-stack-size stacked to 1 on the server but 1000 on the client; both now use 1, the documented behavior.
  • Rendering fix. Some sprites (particles, items, icons) could render as a copy of the wrong image when their texture atlas grew to fit a larger sprite. Fixed.
  • No more crashes from bad content or a bad connection. Several server crashes are fixed: mining a block with an invalid drop-amount range, filling a container from an empty or unlucky loot table, and loading a corrupt saved chunk (now detected and regenerated instead of taking the server down). A light with a zero drop-off-distance no longer paints corrupt pixels, and a particle with a zero cooldown-ms no longer crashes the client. Starting or hosting a world with no usable network connection now returns you to the main menu with an error instead of crashing to desktop.

Security

  • Cross-player inventory access closed. A player could open, take from, or place into another player’s inventory. Inventory access is now restricted to interactable objects like chests — never other players.
  • Chat-command permissions can’t silently open up. A misspelled or missing permission in a mod’s commands.yaml used to silently make an operator-only command runnable by everyone. Such a command is now rejected at load time with an error instead of defaulting to everyone.
  • Corrupt chunks can’t crash the server. A tampered or corrupt saved chunk that decodes to the wrong size is now detected and regenerated from scratch instead of taking the server down.

What’s next

alpha.8 gets the modding config system into shape — one file per biome, consistent schemas, and configs that actually tell you when something’s wrong — while landing real player wins: host auto-operator, shift-click, self-despawning projectiles, and slabs that finally behave. Thanks as always to everyone playtesting with us; a lot of this release’s slab and input fixes came straight out of playtest reports. Keep them coming.