
Engine Update Release Notes: November 10th, 2026
This major update opens multiplayer and monetization to every creator. You can now build real-time multiplayer games on authoritative servers, with quick-match matchmaking and rejoin. You can also start building monetization into your games now. The in-game store and item tools are built into the engine, so you can add a shop to your project and set up items today. Buying and spending Silicon, and listing items on the platform, follow closer to launch.
This is also a major release with significant breaking changes. The public API is now a curated set of exports, and the long-deprecated Component and Actor names are gone. Most projects will need import and saved-data updates. WebGPU projects now draw with the meshlet pipeline by default, and auto quality now adapts to each device. A large world-building toolkit arrives: water, textured terrain, grass, trees, props, time of day and one-step world styles. The editor gains split viewports, a Command Palette, a redesigned Asset Browser and a more controllable AI Assistant.
Features:
Multiplayer
- Multiplayer. Real-time multiplayer is now available to all creators.
- Servers. Every match runs on its own authoritative server. The server decides every outcome, and clients send only input. A server shuts down when its match ends, and standby servers keep start-up quick.
- Matchmaking. Players queue for a quick match and are placed on a server together. Includes support for 1v1, 2v2, 4v4, and 8 player free for all macthes. Timeouts allow matches to start before full player count is reached.
- Replication. Movement, object and physics state, and session state sync without extra setup.
- Rejoin. A player who drops out is placed back in their match until GameMode.inactivePlayerTimeoutSeconds expires.
- Avatars. Each player’s avatar look replicates to every peer.
- Platforms. Multiplayer works the same on web and mobile.
- Templates. [confirm which multiplayer templates ship in 19]
- Join Flow. (Breaking Change) JoinParams no longer declares identityToken or sessionId, and sessionName is now sessionId. Replicated PlayerInfo.playerId replaces identityToken. maxPlayers is removed from GameSessionInfo and IGameSession. Dedicated servers admit players through a platform host (launcher-server --host-module) that verifies the join token. A refused join closes the socket with code 4001, and the client does not reconnect. See the engine-upgrades 18 to 19 guide.
- Sessions. The handshake rejects peers with a different protocol version or replication schema. Other session changes:
- setAcceptingNewPlayers supports backfill.
- Rejoin state expires after GameMode.inactivePlayerTimeoutSeconds.
- findMatch and followParty accept joinParams, which are passed to the game server handshake.
- New Duo2v2 queue type.
- Empty dedicated servers exit after 10 minutes with no join, or 60 seconds after the last player leaves.
- Network Simulation. Network simulation gains RTT presets, drifting jitter and packet-loss simulation.
Monetization
- Monetization. The in-game store and item tools are now part of the engine, so you can build monetization into your game ahead of launch. The platform side is not live yet. That includes buying and spending Silicon, The Sandbox’s platform currency, and listing your items on your game’s platform page. It deploys closer to launch.
Available now:
- In-game store. Ask your agent to add the store, and it installs a default store built with the engine’s UI kit, with Shop and Inventory tabs. Press B to open it. The store’s source is copied into your project, so you can restyle it to fit your game.
- Items. Each item has a name, description, price, image and SKU. It belongs to one of eight categories: Currency, Consumable, Permanent Unlock, Upgrade, Cosmetic, Timed Boost, Access or Convenience. Its behaviour is either Permanent or Temporary. You decide what each item does in play, and your agent can wire that into your game logic.
- Monetization skills. New projects include monetization-store, monetization-store-components and monetization-store-items. These skills teach your agent to add the store, set up items and connect them to gameplay.
- Store Manager. Creating the game ID, creating and editing drafts
Closer to launch:
- Buying Silicon through Get Silicon checkout, and spending it on items.
- Your items listed on your game’s platform page.
- Real purchases in published games.
Rendering
- Drawing Pipeline. WebGPU games and the editor viewport now draw with the meshlet pipeline by default, fed from a scene registry. The WebGL backend still uses the standard pipeline. Pass drawingPipeline: ‘standard’ | ‘meshlet’ to GenesysWebGPURenderer.create to choose. Model nodes build their meshlets while loading, and static parts are skipped when nothing changed.
- Project Settings. New Drawing Pipeline (standard, meshlet, registry) and Lighting (standard, dynamic, clustered) settings, saved as drawingPipeline and lightingType in .genesys-project. Both are hidden on WebGL projects, and changing either one reloads the editor. GenesysWebGPURenderer.create also takes lightingType.
- Quality. auto quality now reads the WebGPU adapter and picks a tier:
- High. Discrete GPUs and Apple silicon.
- Medium. Integrated GPUs, browsers without WebGPU, classic WebGL and flagship phones.
- Low. Other phones and weak desktops.
- On low and medium, existing scenes adjust automatically:
- Terrain meshes draw at ×0.5 / ×0.7 of the authored grid. Collision is unchanged.
- GTAO uses fewer samples at a lower resolution.
- Cascaded shadows drop to one 1024 cascade on low and two on medium.
- Games now render at the display’s pixel ratio instead of always 1. The ratio is capped at 2 on high, 1.5 on medium and 1 on low, so high-DPI screens are sharp, at up to 4× the pixels on high. r.ScreenPercentage or renderer.setPixelRatio() still pins a ratio. In Play, a frame-time watchdog lowers auto by one tier after two slow windows in a row, never below medium on desktop. Opt out with qualityWatchdog: false. To pin a tier, use setQualityTierOverride(‘high’) or a node’s quality. getResolvedQualityTier() reports the active tier and why it was chosen.
- Shadows. Cascaded shadows (useCsmShadows) stay off by default and follow the quality tier. Property metadata gains performanceCost, shown as a warning icon in the editor while an expensive option is on.
- Ambient Occlusion. GTAO is rebuilt with a depth and normal pre-pass and a depth-aware denoise (denoise, denoiseRadius). It also gains quality tiers that follow auto quality and an aoOnly debug view. Defaults are sized for character scale, and GrassNode opts out of screen-space AO.
- Materials and Effects. New anime toon material with inverted-hull outlines (automatic or no-outline variants) and quality tiers. Also new: opt-in async WebGPU pipelines (asyncPipelines, pipelinesInFlight) with a reveal-after-compile helper, scene post providers, height fog, light shafts and LUT effects.
- Lens. New lens post effect with vignette, film grain, chromatic aberration and barrel distortion. It is off by default and set by look presets such as cinematic-warm and noir. New LensFlareNode follows the sun and hides behind geometry. Anti-aliasing gains a mode: FXAA (default), SMAA, or TRAA on WebGPU.
- Mirrors. New MirrorNode adds planar mirrors for walls, floors and puddles, with tint, roughness blur and quality tiers. Phones get a glossy surface instead. Grass and small scatter are excluded from reflections. Use setExcludedFromReflections(object, true) to exclude your own dense detail.
- Lines and Batching. New LineNode draws thick, dashed or multi-coloured lines on both renderers. New BatchedMeshNode draws many different meshes in one batch.
- Shader Compiles. New queueCompile(renderer, start) runs compileAsync calls on a renderer one at a time. three r187 fails when two run at once, so route your own calls through it: await queueCompile(renderer, () => renderer.compileAsync(scene, camera)). Engine precompiles already do this.
- Transforms. World matrices are recomputed only when position, rotation or scale changes. During play, static SceneNodes skip their subtree until markTransformDirty is called or a parent moves. setWorldTransform and editor edits call it for you.
- Debug Views. New viewport debug views: Geometry, Meshlet Clusters, Meshlet Batches and Drawing Pipeline, which colours each object by the path that draws it. The drawingpaths console command prints per-pass draw path counts and the reason for each. ?genesysDebug=1 enables the debug HUD and profiler on any browser host. A built-in trace viewer replaces Perfetto. A gameplay-sim debug overlay and a post-process graph view are also added.
World Building
- World Styles. applyWorldStyle gives a whole outdoor scene one art direction in one step. Styles: realistic temperate, realistic tropical, anime, low-poly, volcanic, alpine snow, desert, alien and autumn. Each style sets terrain, grass, trees, water, look and fog together. You can register your own styles or extend a built-in one. Environment presets and new scenes accept a style.
- Environment Presets. applyEnvironmentPreset builds a complete outdoor scene from ordinary, editable nodes, with ACES tone mapping. Presets: tropical ocean, temperate valley, night street and overcast plain.
- World Building APIs. (Breaking Change) applyWorld, applyEnvironmentPreset and applyNewSceneTemplateToWorld now return Promises, so use await. They build in small steps so the page stays responsive, and they accept an AbortSignal. A newer apply on the same world cancels an older one, which resolves { ok: false, cancelled: true }. World shape and collision are identical on every device. If the scene has no PlayerStart, the functions place one on dry, gentle ground near the camera’s look point. Re-applying replaces that start and never touches one you placed. They no longer add an orbit camera. Showcase scenes pass withCamera: true, which replaces skipCamera.
- Water. New WaterNode offers two looks:
- Realistic. Reflective open water with sun glints.
- Stylised. Depth colour, optional waves and shoreline foam, for lakes, rivers and toon styles.

