spawn
playmake
Ctrl+K
sign in
make a game
PlayMake
← about

Engine v5.2.8

Power lines plant their poles again

July 28, 2026

A patch to Lume.

  • Floating-island and sky-world builds: set atmosphere: { ground: false } and the world stops pretending there's a ground below the horizon. Look down past an island's edge and you see real sky haze deepening toward the depths — not the flat sea-colored band. One line, per place; everything else about the sky (day/night, clouds, stars, fog) keeps working exactly as before.
  • Joining a world no longer risks a false "physics is slowing down" alert: the engine now waits out the normal loading blip (the first seconds after joining or entering a new area) and only reports physics slowdown to Savi when it actually persists for several seconds. Real slowdowns still get reported with the same numbers and fixes as before.
  • Power lines got their poles back — a bare power line plants grounded poles with crossarms along the run again instead of leaving the wires floating in the sky. Want a cable strung between buildings with no poles? Say so: poles: false hangs it as one draped line.
  • Games with HTML UI no longer risk a dead menu (or a soft-locked player) on slower devices. The UI's boot loader is now ~13x smaller, a busy device gets time to catch up instead of being cut off at 4 seconds, and if the UI ever does fail to appear it now quietly retries as you play instead of staying gone until a page reload.
  • An accidental infinite loop in a script (like while (true) with no way out) no longer freezes the room forever. The engine stops the runaway loop after a very large budget (real game loops never come close), keeps the game running, and hands Savi a clear error naming the script and the loop so she can fix it — a teachable moment instead of a dead room.
  • Terrain edits can no longer eat your ponds and paths by accident. Savi now adds, tweaks, and removes rivers, ponds, paths, and flatten pads one at a time, by name — so carving a new path can never silently wipe the pond you built yesterday. If anything tries the old wipe-everything write, the engine refuses and says exactly which marks it was about to delete.
  • Multiplayer effects are honest about their reach now: targeting other players with audience: { kind: "nearby" | "place" | "all" } (or another player's id) on screenShake, vignette, sounds, and other juice never actually reached them — it silently played for the calling player only. The call still works exactly as before, but it now logs a clear note explaining that effects are self-only in multiplayer for now and how to do it right: fire the effect from each player's own trigger (onInput/onInteract/onTriggerEnter), or drop the audience option on world-anchored effects (bursts, decals, positioned sounds) — those already reach every nearby player.
  • Fixed a leak where objects spawned with a lifetime (fireballs, pickups, timed props) could linger forever in a room whose only player closed or refreshed the tab and never came back — the room now cleans them up right on schedule even with nobody there.
  • setObjectProperty("properties.light.intensity", …) now just works — keys written with the spec's properties. prefix resolve exactly like the bare key instead of being ignored with an "unknown property" warning.
  • Fog values the renderer can't honor as written now tell you at patch time: linear fog with far <= near (which renders a hard fog wall instead of a gradient) and negative exp2 density (which renders like its absolute value) warn with the key, your value, and the allowed range — instead of silently rendering something you didn't ask for.
  • Fixed a bug where scripts on a player rig couldn't reach the parts they'd spawned onto it — writes like api.setObjectProperty(api.id + "-gun", …) were silently thrown away with "entity not found" warnings even though the part was right there. Those writes land now: player-part color changes, attachments, and animations that never took effect come alive, and the warning flood that came with them stops.
  • Looking up an object by a short id that doesn't exist is now effectively free instead of costing a scan of every object in the world — games that check stored ids every tick no longer pay a hidden per-miss tax that grew with world size.
  • Fixed a multiplayer bug that hit solo sessions hardest: switching tabs (for example to chat with Savi), refreshing the page, or a brief connection stall could permanently desync your room — you kept playing normally on your screen while the room stopped counting your progress (pickups, health, wave triggers silently dead), and only a full room restart fixed it. Your progress now keeps counting across those interruptions.
  • Debug dumps now show whether your game's UI is actually repainting: if a menu looks stuck on screen while the game itself is fine, the dump names exactly which step stopped — including HUDs the engine refused to mount because of a broken button handler, which previously froze silently.
  • Fixed a multiplayer bug where switching away from the tab and coming back could leave you in a frozen copy of the world — everything you built or spawned after returning silently vanished for everyone else, and neither reloading nor restarting the room recovered it. The engine now detects that stuck state within seconds and re-syncs you automatically; your session picks up live from the real world state, no tab close needed.
  • Explosions, magic, and weather can play real animation frames now — upload one sprite sheet and it just works
  • Fog and smoke hug the ground and walls instead of slicing through them, and heat shimmer over fire actually bends the world behind it
  • Shell casings, hail, and debris bounce — each piece with its own weight
  • Effects can orbit, spiral, and tether between moving things with exact math, and they keep up on their own
  • Lights ride your effects now (fireflies light the ground they drift over)
  • Marks can grow and fade on their own — a blood pool that spreads, a puddle that dries
  • Objects can burn away with a glowing dissolve instead of blinking out
  • A whole weapon's feel — muzzle flash, tracer, casings, impact — fits in one effect file, fired once per shot

more from spawn

  • what spawn is
  • frequently asked questions
  • bring a game you already made
  • the spawn bet
  • One Place
every engine update →