Spawn
playmakespawnjam
⌘K
visitorclaim namesign in
sign up
spawn / aboutwhat we're building

pinned

start herewhat spawn isfaqfrequently asked questionsthe betthe spawn bet

updates

engine v5.2LumeJul 10, 2026engine v5.1ConnectionJun 18, 2026engine v5.0For RealJun 4, 2026engine v4.6AtelierJun 1, 2026engine v4.5Surface TensionMay 22, 2026engine v4.4SolidMay 15, 2026engine v4.3GroovyMay 13, 2026engine v4.2ContinuumMay 9, 2026engine v4.1FoundationsMay 4, 2026engine v0.1GenesisApr 29, 2026

pinned

what spawn isstart herefrequently asked questionsfaqthe spawn betthe bet

updates

Lumeengine v5.22w agoConnectionengine v5.11mo agoFor Realengine v5.01mo agoAtelierengine v4.62mo agoSurface Tensionengine v4.52mo agoSolidengine v4.42mo agoGroovyengine v4.32mo agoContinuumengine v4.22mo agoFoundationsengine v4.12mo agoGenesisengine v0.13mo ago
← All posts
← All posts

engine v5.0.2

Engine v5.0.2

June 6, 2026

A patch in the For Real line.

what's new

  • The editor cursor finally feels like your real mouse — pixel-for-pixel, no more laggy ghost trailing your hand in god mode
  • Joining a world that's mid-wake retries automatically instead of sometimes sitting on a silent loading screen
›technical notes
  • Overlay fake cursor rebuilt for native feel: the game iframe relays pointer position from pointerrawupdate (input-device rate, dispatched on arrival instead of rAF-aligned — kills the structural ~2-frame postMessage delay), and the parent writes translate3d directly in the event handler on a compositor layer; hover mirroring, edge push, and the cursor store publish read the accumulated position once per frame, never blocking the write
  • join.failed closes the socket with an explicit retryable app code (4430) — the previous bare close reached browsers as code 1000, which the client reconnect guard reads as a clean close and never retries (a silently dead loader when a room was mid-hydration)
  • The spec-hydration retry heals a partial apply: a world holding a spec whose ready flip was interrupted now flips ready on the next retry tick instead of holding every joiner in Loading forever; a retry that declines to arm logs its cause
  • Regression pin: 161 same-GLB objects with per-object scale/yaw instance into exactly 6 batches (the "5.0 not instancing" report's refutation, kept as a guard)