Engine v5.2.36
Clicking your game's buttons no longer steals the keyboard, models with shape keys can blink and smile, uploaded models are solid in multiplayer rooms, objects stop flickering back to old values when two players or Savi edit them at once, busy rooms no longer crash the browser tab, and a player's browser extensions are never mistaken for your game's messages.
August 29, 2026
A patch to Lume.
- Clicking a button in your game's UI no longer steals the keyboard: WASD keeps working through the click, a key you were holding is not dropped, and Space or Enter after clicking "buy" jumps or interacts instead of buying again. Tab opens chat even right after you clicked a game button.
- Click-to-copy fields (invite codes, share links) no longer eat the arrow keys for the rest of the session. Real text boxes still take the keyboard while you type in them, and a click on the world hands it back.
- Savi now gets a warning at write time when a game binds "hold Cmd" or "hold Ctrl" next to keys the browser owns (W, T, N, Q), and when a mouse-look game binds Escape — the browser takes the first Esc to release the pointer, so she is pointed at the engine's
pointerLockLostsignal instead. - Savi no longer reports a browser extension's chatter as a fault in your game. If a player has an extension that talks to every page, the game used to count those messages against itself and Savi could tell you your UI code was misbehaving. Those messages were never yours; they are now ignored.
- Faces move now: models with shape keys (Blender's blend shapes — blinks, smiles, mouth shapes) play them. An animation that drives them in the file just works, and you can set them from a script —
properties.morph = { Blink: 1 }closes the eyes,getMorphTargetNames()tells you what a model has. Uploaded a face and got a frozen stare before? Try it again. - Objects no longer flicker back to an old state when two things edit them at once. When another player or Savi changed an object in the middle of someone else's change, the first player's game could quietly re-save its last value on top of the newer one a moment later — furnaces and conveyors would strobe, the room's traffic would climb, and a tab could run out of memory. The old value is now dropped the moment the newer one arrives.
- Very busy multiplayer rooms no longer crash the game tab. When a room sends changes faster than a player's device can process them, the engine now keeps only the newest movement update for each mover instead of queueing every stale one — movement stays current, nothing that matters for the world's saved state is dropped, and the browser stops running out of memory and killing the game mid-session.
- Games that paint lots of objects or particles with script-drawn textures run at full speed again. Animating those objects used to make the engine re-read the whole texture script on every change, every tick — busy scenes stuttered, and the engine's performance governor could switch the game's own effects off right in the middle of the action. The re-reading is gone; the effects stay on.
- Uploaded and generated models are solid in multiplayer rooms now. A model with a mesh collider used to collide only in singleplayer — in a shared room, players and raycasts passed straight through it however solid it looked. Models now collide by their real shape everywhere.
- A multiplayer room can no longer be frozen by one player's out-of-date connection. NPCs and machines keep moving, buttons keep answering, and a game's start flow works for joining players.
- When you ask Savi whether something is solid, the answer now comes from the collision the engine actually built, not from the object's settings. A model whose collision never loaded used to read as solid while players fell straight through it; it now honestly answers that nothing is there yet, and the collider view draws markers only where collision really exists.