Last update: 2026-11-14
36a1b253|40
Client update is applied on next restart.
Server update is required due to packet changes.
Developers need to dotnet restore --force-evaluate depending on their pinned nuget packages to update their bundles
This update introduces the concept of update channels. You can configure them in the client-ui or your server compose.yml / docker settings / direct server settings.
The nuget packages now have a new versioning scheme. Todays update is 1.38.0, the current alpha channel version is 1.38.0-alpha.
If you pin your nuget packages to 1.* you will download the stable channel packages, if you pin them to 1.*-* you will restore the newest alpha packages.
We are aiming to release a stable update each week for now, alpha updates will be published on each push starting now.
Client:
Added version switcher UI to client-ui
Added "streamer mode" to UI. Currently hides username in UI, will be extended over time
Improved handling of script execution in App.Start phase. Bundle now unloads gracefully if a game function is called in Start and recommends using an async Future
Improved function hooking. Multiple bundles can now hook the same function
Improved handling of invalid WeakHandle in scripts
Fixed local puppet kneeling if TPP representation is enabled on it
Added key bind persistence per server. Key binds will now persist over bundle restarts and rejoins with the same logic as CEF cache. If keybinds conflict or cannot be bound, the key is bound to IK_None and can be fixed by the user
Added parallel processing to the update downloader
Shared:
Improved "tab completion" in server and client console. Also completes substring matches now
Enabled wasmtime cache and added cache policy. Greatly improves warm start-up times of bundles
Fixed events being dropped after a bundle unloaded during handling. Events now propagate further even if a bundle with an event handler terminates during handling
Scripting:
Fixed broken Euler/Quaternion conversion math
Added re.cl.IdentityComponent.GetUserUUID to get the unhashed UUID displayed in the mikoshi panels /me route. Users can view their UUID and copy it on allow list applications for example
Added re.AnimationSystem to allow playing .workspot animation trees on entities. Supports dynamic rig re-targeting. Supports dynamic rig re-targeting, which allows you to play workspots that were not designed for player rig with a "best effort" attempt
Added re.ecs.AppearanceComponent.Set/GetAppearances, and re.ecs.AppearanceComponent.Set/GetMorphs extensions
(Note: This is not the final handling for appearances / customization, that will be coming soon to the alpha channel)
Added support for creating entities with appearance via re.EntitySystem.CreateEntity
Modified re.ClientConnecting to add the new userUUID field. Other members were renamed, this is a breaking change for bundle builds!
Published nuget packages v1.38.0 with support for the new extensions
Misc:
Updated guest-csharp-examples/gamemodes to support the re.ClientConnecting event changes and new stable channel
dfe0b133|29
Client update is applied on next restart.
Server update is required due to packet changes.
Developers need to dotnet restore --force-evaluate depending on their pinned nuget packages to update their bundles
Client:
Fixed an intermittent client crash that occurred during server join
Added "Close button" to F8 devtool windows
Added new Client UI for local server discovery
Added support for joining "server list registered" servers via the join local server button instead of having to go through the server list(Joining via connect <ip> is also supported)
Allow mounting .tweak only asset bundles without a .archive file
Added Surface Overlay extensions to allow rendering CEF content onto world meshes. See Surface Overlay - docs.replay.re for more information
Added a Surface picker devtool for the new Surface Overlay extensions
Added "per server" CEF caching to allow persistence of client settings. Caches are still isolated between different servers, but you can now retain UI settings and other useful UX improvements
Server:
Fixed restart <bundle> command missing bundle updates
Added delay to sv_ugc_automatic_restarts to batch multiple file changes into one bundle restart
Added re.EntitySystem.CreateProp extension to spawn "static entities" / props into the game world
Added new sv_hide ConVar to allow servers to hide from the server list but still stay registered. Useful for testing the player identity system without having your server on the server list
Shared:
Complete overhaul of the VoIP system. Added FX, preset groups, range control, virtual microphones with world audio capture, virtual speakers and lot more. Read the docs page here.
Fixed an UGC race condition that was able to corrupt bundle packing
Added ConVar scripting and a ComCommand "Execute" extension
Added a UDP beacon system for local server discovery. You can now start servers on non standard ports within your local network and join them via the UI
Scripting:
Published nuget packages v1.4.0 with support for the new extensions
e058fc72|28
Client update is applied on next restart.
Developers need to dotnet restore --force-evaluate depending on their pinned nuget packages to make use of new features
Server:
Added new re.ClientObserverEntityChanged event. Intended for UGC scripts to update mappings between re.ClientId and re.EntityId of a clients observer entity
Scripting:
Published nuget packages v1.3.1 with support for the new event
Updated guest-csharp-examples/gamemodes. Character customization in "Roaming" mode now support body gender changing, implemented handling for changing observers and fixed a log spam issue
06ee71e6|27
Client update is applied on next restart.
Server update is required due to packet changes.
Developers need to dotnet restore --force-evaluate depending on their pinned nuget packages to update their bundles
Client:
Fixed vehicle aiming from first person not syncing camera angles
Added vehicle damage (body mesh, glass, tires, lights) sync
Added vehicle RPM, gear / shifting, brake light and tire FX sync. You can now properly do burnouts and audio sounds a lot more aggressive on other clients
Optimized vehicle wheel spin sync into quantized state sync instead of anim driven. Reduces network traffic in vehicle dense areas
Added .app resource patching to UGC streaming
Fixed and thus re-enabled entity morphing of PlayerPuppets (face, nails, chest, etc.)
Added PlayerPuppet gender selection with runtime swapping support
Added native Puppet gender selection UI extension which can be opened easily via re.Ui.ShowBodyGenderSelector(bool continue_to_customization) and takes care of everything for you
Added support for overriding gender presets on individual clients after streaming them as UGC via re.EntitySystem.SetBodyGenderPreset
Added raw API for gender switching re.EntitySystem.RequestLocalPlayerBodyGender (server: ObserverComponent.SetPrimaryObserverBodyGender) for custom gender / customization selector implementations
Fixed default PlayerPuppet missing legs / ankles before customizing appearance once
Fixed vehicle combat sync with special handling of vehicle rocket launcher positional sounds
Added native handling for PlayerDevelopmentSystem not handing out default items, no more hooking required. Updated docs with a legacy deprecation notice
Added vehicle.Engine, vehicle.Gearbox and vehicle.DriveModel extensions to modify individual vehicle behavior.
Server:
Added config.toml filtering before sending it to clients to strip all fields that are not required on client (like your [Networking] allow list or the new [Database] properties) and could disclose information
Added sv_idle_mode ConVar (default false) to allow configuring the server to go into CPU load / power saving mode if no players are connected. Be aware that scripts will also tick slower
Added new re.sql.** extensions with postgres and SQLite backend support. Provides full support for ADO.NET styled ORM layers liker Dapper.AOT (see Script API - Databases)
Shared:
Fixed UGC added entities potentially being networked/created before the client finished downloading and registering them, leading to asserts
Added exported function support to UGC scripting. Bundles can now export functions and other bundles can call them sync or async. Limited cycling between bundles is supported (see Script API - Exports)
Updated cacerts.pem to mitigate CVE-2026-114406. We didn't rush this out because the impact was very small. The bundled CEF has its own revocation list, this only affects curl
Updates wasmtime to mitigate GHSA-32h6-97mm-8q3c. It was not exploitable in our configuration, but we updated anyways
Scripting:
Published nuget packages v1.3.0 with support for all the new APIs
0c1435a2|26
Client update is applied on next restart.
Server update is required due to packet changes.
Developers need to dotnet restore --force-evaluate depending on their pinned nuget packages to update their bundles
Client:
Updated to game build 2.5
Added support for dual wielding weapon sync
Disabled pause menu entries like GOG login, Mods and Saving that caused crashes or have no purpose
Fix traffic sound leaks accumulating over time and overloading the sound engine, leading to artifacts
Reduced RAM usage by shrinking the interpolation history on ecs::TransformComponent
Fixed race condition in multi-client handling. Up to 3 clients can now be properly started again
Fix UI race condition on fast clients
Improve disconnect during "Connecting to server" phase. Connection is reset gracefully now and can be restarted
Shared:
Added dropped Item and Loot container sync with server configurable behavior (see Console Variables)
Scripting:
Published nuget packages v.1.2.0 with support for game build 2.5
Misc:
Updated scripting docs to include version 2.5 RTTI data
Updated docs to include new improved async and event handler patterns, updated ConVar list and also fixed a dead link
Added rolling CI builds to guest-csharp-examples/gamemodes
9fe9167c|25
Client update is applied on next restart.
Server update is required due to packet changes.
A bug has been fixed in the container image. Pull a new version if you have issues
Client:
Fixed weapons appearing over the players head on holster
Fixed a crash on bundle reload related to keybind registration
Fixed clients not connecting to VOIP if the the server was joined via an ipv6 address literal
Fixed a rare crash when cycling VOIP input devices while actively capturing
Server:
Made [Scripting] group in config.toml optional to support asset only bundles
Fixed a potential out of bounds read on the server sync grid
Added bypass flag to bridge/mcp to allow servers to start without forcing sv_lan true (Allows using the mcp protocol to build server automation tooling. The flag is --mcp-dangerous-allow-server-listing)
Shared:
Added sync for traffic cycles / intersection traffic lights. Greatly improved traffic flow
Added initial UGC content streaming. Compatible with ArchiveXL and TweakXL single player mods. (This is still very early and WIP. Its tested with a number of map changes, interiors and vehicles, but modifications to NPCs and appearance are still in the works)
Reduced traffic state sync packet size
Improved server messages when trying to connect with a mismatching network protocol version
Bumped network protocol version. Servers will need to update
Misc:
Updated the container image to fix a badly formatted --voip-addr being passed to the server
f77f3d3c|23
Client update is applied on next restart.
Depending on your server configuration you have to update using the update command.
Client:
Fixed a race condition in the bundle mounter with latent CEF requests
Fixed a double insert into the scripting load queue of client blobs
Improved UGC frame isolation
Fixed a hashmap rehash bug
Server:
Improved bundles listing command
Fixed early abort if --bindaddr was specified on windows
Made the [ReUi] group in config.toml completely optional
Shared:
Added auto-complete support to ConCmd parameters. Initially for start, stop and restart
Added bridge module for all features related to communication with other processes
Added a mcp client to bridge (see blackice-mcp)
1ad4600a|22
Client update is applied on next restart.
Client:
Improved client connection UX. Client will now gracefully fail, inform the user and allow new connection attempts
Reduced the initial connection timeout to 15 seconds (previously 60) to prevent the client from being stuck too long
Fixed an overzealous check in the use after free detector in scripting when dealing with structs with multiple layers of inheritance
b243211c|20
Client update is applied on next restart.
Client:
Fixed a crash during startup on proton
Fixed a crash when taking a photo in photo mode (Images now correctly appear in your Pictures folder)
d04cc442|19
Client update is applied on next restart.
Depending on your server configuration you have to update using the update command.
Developers need to dotnet restore --force-evaluate depending on their pinned nuget packages to update their bundles
Client:
Fixed a crash during shutdown
Server:
Fix a server console input bug that could leave a windows server CLI unresponsive
Add async HTTP Request API with allow listing in bundle config
Add server APIs for GameStateEnvironment (weather and time)
Shared:
Allow multiple re.Events.OnNet handlers for the same event. This was already possible for re.Events.On and is now unified
Fix a bug with event delivery of local events in certain scenarios
b5d8f7b7|18
Client update is applied on next restart.
Depending on your server configuration you have to update using the update command.
Client:
Silenced a confusing debug message
Server:
Fixed a server_netwatch crash
Improved error messages when user validation failed on join
Infra:
Allow binding server endpoints (via sv_endpoint) to local addresses like 127.0.0.1, for convenient local joining of dev servers