engine v5.1.5
Engine v5.1.5
June 23, 2026
A patch in the Connection line.
what's new
- Bloom is now much more performant.
- Finished combat effects are cleaned up correctly in multiplayer games instead of accumulating and slowing the room down.
- Custom event listeners and sound-finished hooks now work on player-owned and shared-room objects.
- Visiting players can interact with and drive hosted vehicles with the correct mounted state and follow camera, without the room rejecting the handoff as
not_simulator. - Games on Retina displays are faster.
- Shadows are cheaper for inactive lights.
- Custom paired controls now follow the order you write them, so reversing a pair reliably reverses the control.
›technical notes
- Replaced Three.js BloomNode with a fixed-topology Dual Kawase bloom pyramid, reducing bloom render passes from 12 to 9 while preserving live strength, radius, and threshold controls.
- Moved runtime FX reaping onto each entity's active simulator so client-auth owners and place hosts publish completed-effect deletes through the normal state-delta lane.
- Moved
onSoundEndtracking and dispatch onto the active simulator instead of the server replica. - Added server-sequenced, place-scoped custom-event fanout so client-auth simulators can invoke their local
api.onsubscriptions. - Made vehicle/control handoffs server-canonical, with two-phase A→B switching that uploads the old target's
onControlEndcleanup before the server atomically grants the new target and runsonControlBeginon its simulator. - Fixed severe WebGPU frame-presentation stalls by avoiding 4x scene MSAA on Retina DPR-2 displays, where native pixel density already supplies edge smoothing.
- Skipped PCF filtering and transmitted-color texture sampling for resident shadow lights whose runtime intensity is zero, while preserving stable lighting pipelines.
- BREAKING: Changed keyboard axis polarity from a hidden key-name lookup to positional negative/positive pairs.
input-config.tsnow assigns alternating -1/+1 scales to slash-separated keys, so arbitrary pairs such asf/rbehave predictably and reversing the string reverses the axis.