# 2023 Change Log

{% hint style="info" %}
Mirror is published to the [Asset Store](https://assetstore.unity.com/packages/tools/network/mirror-129321) at the start of every month, unless some critical issue causes a delay.
{% endhint %}

{% hint style="info" %}
Mirror uses semantic versioning, and the versions shown here are those that were published to the Asset Store, and occasionally major version bumps happen mid-month between store submissions and are therefore not individually shown here.
{% endhint %}

## [v86.13.4](https://github.com/MirrorNetworking/Mirror/releases/tag/v86.13.4) -- 2023-Dec-24

* Fixed: In certain conditions, KCP would flood timeout warnings.
* Fixed: Compress Rotation on `NetworkTransform` now correctly considers Local or World coordinates.
* Fixed: `NetworkPingDisplay` made a bit wider so RTT wouldn't be cut off.
* Fixed: Several updates to `PredictedRigidbody` and materials handling
* Fixed: `PredictedRigidbody` Visual rotation interpolation now works correctly.

## [v86.13.0](https://github.com/MirrorNetworking/Mirror/releases/tag/v86.13.0) -- 2023-Dec-12

* Added: `NetworkDiagnosticsDebugger` to log messages sent and received.
* Added: `NetworkPingDisplay` now shows Connection Quality.
* Added: `PredictedRigidbody` visual interpolation object.
* Added: LayerMask support in Network Reader / Writer
* Added: Network Manager now has toggle to disable Auto-Start Headless Server / Client in Editor.
* Added: Network Manager now has toggle to not disconnect client on message exceptions.
* Added: Network Manager now has a Populate Spawnable Prefabs button.
* Added: Utils now has `isWebGL` and `isDebug`.
* Added: SimpleWebTransport now returns remote address from reverse proxy when available.
* Added: Additional examples have been added.
* Fixed: Edgegap Hosting registry, image name, and tag strings are trimmed to avoid errors from trailing whitespace.
* Fixed: SyncVar hook invocations no longer instantiate a new Action delegate on every call.
* Fixed: Ping messages now include scene hash to prevent high RTT after long scene load.
* Fixed: `NetworkTransform` `OnTeleport` no longer calls `Reset`, which cause `NT Reliable` deltas to get out of sync.
* Fixed: `NetworkBehaviour` `authority` now correctly evaluates for host client.
* Fixed: `LatencySimulation` now correctly applies latency to both channels.
* Fixed: Message ID hashing improved to minimize collisions.
* Changed: EdgeGap Plugin updated to version 2.
* Changed: Network Manager Auto-Start Headless was refactored.
* Changed: Multiplex Transport is now a `PortTransport`.
* Changed: Some examples now use `NetworkTransformReliable`.
* Changed: `NetworkTransformReliable` now has toggle for rotation compression.
* Changed: `NetworkTransformReliable` now always uses bandwidth savings.
* Changed: Some duplicated scripts in Examples consolidated to \_Common folder.
* Changed: `ConnectionQuality` moved to `NetworkClient`.
* Changed: `GUIConsole` layout updated to not collide with `NetworkHUD`.
  * Default hotkey changed to tick (`` ` ``) for safer use in WebGL builds.
* Changed: KCP Transport `ToString` now include port.
* Changed: Telepathy Transport `ToString` has been simplified and shortened.
* Changed: KCP and Telepathy transports now use compiler symbols in `Available` check.
* Changed: KCP Transport updated to version 1.39.
* Changed: Various example have been updated.
* Changed: [Script Templates](/docs/manual/general/script-templates.md) have been updated.
* **Breaking Changes**
  * SimpleWebTransport Settings and Logging have been refactored.
    * There are now separate port fields for server and clients so you don't have to change them for building server and client.
  * SimpleWebTransport Use of cert.json and SSL certs has been labeled as obsolete in the component inspector.
    * This feature will be removed eventually.  Reverse Proxy should always be implemented as it performs far better and is easier to maintain.

## [v81.4.0](https://github.com/MirrorNetworking/Mirror/releases/tag/v81.4.0) -- 2023-Aug-03

* Examples: added BenchmarkIdle demo to test with 80% idle objects
* feature: NetworkTransform WorldScale option
* NetworkClient: improve 'did not find target for sync message' warning
* fix: SimpleWebTransport conditionals removed so users can see error m…
* kcp2k V1.37 \[2023-07-31]
* Unity 2021.3.29 LTS for latest fixes
* feature: HistoryBounds MVP (#3563)
* Tanks co-op example, take control of vehicles via Mirrors Authority a…
* fix: NetworkReader ReadBytes/Array/List allocation limit to pre…
* remove unused import
* NetworkWriter: clean up old UIntDouble comments
* NetworkReader/Writer Read/WriteList: comments
* fix: NetworkConnection "cannot send packet larger than ..." message n…
* fix: NetworkMessages.MaxContentSize now considers channelId instead o…
* feature: bring back NetworkServer.disconnectInactiveConnections (#3556)
* fix: remove redundant RPC buffering. saved bandwidth, but introduced …
* fix: NetworkIdentity.AssignAssetId() is now saved properly. fixes a b…
* fix: NetworkTime RTT now checks for malicious timestamps from the future
* Compression: remove unnecessary QuaternionElement function
* Compression: more obvious TenBitsMax representation
* feature: NetworkConnectionToClient.rtt via Ping & Pong Messages (#3545)
* Examples: default send rate increased from 30 Hz to 60 Hz for remaini…
* perf: default send rate increased from 30 Hz to 60 Hz for users to ge…
* Tanks demo: increase send rate from 30 Hz to 120 Hz to avoid rtt bein…
* NetworkBehaviour.OnValidate: GetComponentInParent(bool) 2020 support …
* NetworkIdentity: correct GetComponentInParent explanations (credit: F…
* NetworkIdentity: expose AssetGuidToUint in builds
* fix: NetworkBehaviour.OnValidate can't find parent NetworkIdentity be…
* fix: Tanks demo: replace Turret obsolete NetworkTransform with Networ…
* perf: remove some unnecessary inlining to optimize instruction cache
* NetworkIdentity: expose AssetId to Guid translation function
* fix: 2019 tests work again (#3547)
* fix: NetworkBehaviour OnValidate #ifdef adjusted for Unity 2020.3.19 …
* improve error message for #3525 for cases where the \[SyncVar] is name…
* fix NetworkIdentityTests by applying the workaround for #3525
* fix: #3525 by explaining the solution in the Error message.
* NetworkClient OnGUI: better rtt display
* breaking: NetworkTime.PingFrequency renamed to PingInterval. Makes it…
* fix PrepareToSpawnSceneObjects tests after recent fix
* NetworkTime: more readable ping interval check
* fix: #3538 calling unspawn on scene objects in DestroyOwnedObjects (#…
* fix: PrepareToSpawnSceneObjects checks netId instead of activeSelf \[f…
* feature: Lag Compensation V1 (#3534)
* Tests: fix failing NetworkManagerTests because DeeplyTested test didn…
* NetworkTime: rttVar renamed to rttVariance for consistency with old M…
* fix: SnapshotInterpolation.Insert() now has a bufferLimit to avoid ev…
* perf: NetworkTransformBase SortedLists now allocate with a default ca…
* Readme updated: clarify incentives, fix typos, improve formatting
* feature: ConnectionQuality Heuristic + Callback + GUI (#3526)
* NetworkTime: reintroduce Round Trip Time Variance to prepare for Conn…
* NetworkClient: initialBufferTime for debugging, comparisons, and to p…
* Tanks demo: always show time interpolation GUI for easier debugging
* fix: NetworkClient TimeInterpolation: add 'current' bufferTimeMultipl…
* Disable the failing tests for now, so at least the project compiles w…
* fix: Weaver SyncVarAttributeAccessReplacer now detects modifying \[Syn…
* Weaver: SyncVarAccessReplacer: pass Logging
* Weaver: SyncVarAccessReplacer: syntax & comments to make it more obvious
* fix: Weaver now weaves NetworkBehavious in nested type definitions
* feature: Weaver adds 'bool Weaved()' to each NetworkBehaviour, which …
* Tests: remove unused 'using'
* fix: tests work on Unity 2022.2+ \[imer]
* Weaver ILPostProcessorAssemblyResolver: use GetFileNameWithoutExtension
* perf: Weaver ILPostProcessorAssemblyResolver FindFile searches dllnam…
* Weaver: ILPostProcessorAssemblyResolver FindFile comments
* Weaver: ILPostProcessorAssemblyResolver caches FindFile for a 50x imp…
* perf: Weaver ILPostProcessorAssemblyResolver FindFile caches exeName,…
* Weaver ILPostProcessorAssemblyResolver: FindFile uses string name par…
* perf: Weaver ILPostProcessorAssemblyResolver uses ConcurrentDictionar…
* RigidbodyPhysics demo: disable 'onlySyncOnChange' until #3519 is fixed
* Examples/VR link
* Unbatcher: Unity 2019 fix
* fix: Batching VarInt size header added to fix custom serializated Net…
* feature: NetworkRigidbody Benchmark demo
* fix: NetworkRigidbody/2D now uses .target's Rigidbody and supports ch…
* NetworkRigidbody: MovePosition overwrite comments
* feature: NetworkMessageId <> Type lookup and log function for debuggi…
* Unbatcher: simplify GetNextMessage
* feature: VarInt size prediction
* NetworkMessages: keep GetId for convenience
* breaking: NetworkTransform renamed to NetworkTransformUnreliable for …
* remove duplicate NetworkRigidbody scripts
* NetworkTransform: moved all related scripts into one NetworkTransform…
* perf: NetworkRigidbody Reliable/Unreliable via NetworkTransform for s…
* fix: NetworkBehaviourInspector 'had no target' warning
* Readme: Information Security Guidelines
* NetworkTransform: show Gizmos as WriteCube instead of solid Cube for …
* Rigidbody Example: gray background so we can see overlays easier
* Rigidbody Example: show time interpolation GUI
* RigidbodyPhysics Example: fix missing component warnings
* fix: Weaver runtime fuse to ensure weaving succeeded before starting …
* Snapshot Interpolation Example: README
* CompilationFinishedHook: add explanation
* fix NetworkClientTests for Unity 2019
* NetworkMessages.WrapHandler: improve log message to make it easier to…
* fix: NetworkClient unbatcher is now reset in host mode connect as wel…
* Unbatcher: readonly fields
* fix: KcpServer.Stop now clears connections so they aren't carried ove…
* fix: fixing use of new c# in 2020
* feat: adding option to get Ip behind reverse proxy

## [v79.0.0](https://github.com/MirrorNetworking/Mirror/releases/tag/v79.0.0) -- 2023-June-07

* Added: Writer / Reader support for `DateTime` data type.
* Added: `NetworkRoomManager` - `ReadyStatusChange` is now a virtual method.
* Added: `NetworkTransform` interpolation can now be disabled for pos / rot / scale.
* Added: `ExponentialMovingAverage` now has a `Reset` method.
* Added: `NetworkClient`'s Snapshot Interpolation settings exposed in Network Manager.
* Fixed: `NetworkBehaviour` SyncVar uses `netId` lookup.
* Fixed: No longer use custom `NetworkBehaviour` writers for SyncVars.
* Fixed: Writer for non-spawned `NetworkBehaviour` only writes 0 for `netId`.
* Fixed: KCP updated to version 1.33.
* Fixed: Simple Web Transport improved logging.
* Fixed: `NetworkTime` - `PingWindowSize` shortened to 6 from 10 and use it in `ExponentialMovingAverage`.
* Fixed: NetworkLoop no longer adds functions twice when Domain Reload is disabled.
* Fixed: NetworkLoop no longer runs in edit mode.
* Fixed: Network Messages now uses a static NetworkMessageId class and static ushort Id.
* Fixed: Weaver now weaves in pre-computed function hash for RPCs.
* Fixed: Snapshot Interpolation received various updates.
* Fixed: NetworkTransform (Reliable) received various performance updates, fixed jitter.
* Changed: Interest Management now derives from an abstract base class.
* Changed: NetworkWriter - MaxStringLength changed to ushort.MaxValue.
* **Breaking Changes:**
  * Removed obsolete OnServerError / OnClientError.
  * Removed old Unity 2018 / 2019\_3 compiler defines.
  * Remove NetworkClient.serverIp.
  * AsmDef files updated and simplified.

## [v73.0.0](https://github.com/MirrorNetworking/Mirror/releases/tag/v73.0.0) -- 2023-Feb-09

* Added: `NetworkClient.OnGUI` now includes BTM for `bufferTimeMultiplier`.
* Fixed: Client objects are now cleared before spawn handlers.
* Fixed: `NetworkIdentity` doesn't reset `SyncObjects` anymore.
  * You can call the Reset method yourself on Sync\* collections.
* Fixed: InitSyncObject IsWritable/IsRecording permissions fixed for host mode and other player's objects on client.
* Fixed: Sync\* collections can now be modified before spawning again.
* Fixed: Client Sync\* collections can be modified when offline now.
* Fixed: Handlers are no longer double firing for Sync\* collections.
* Fixed: SyncList handler for OP\_SET index parameter fixed.
* Fixed: `SpawnObjects` now activates but does not spawn objects under inactive parents.
* Fixed: `NetworkTransformBase` now checks for missing Main Camera in OnGUI.
* Fixed: `NetworkTransformBase` now resets when changing authority in Client To Server mode.
* Fixed: `NetworkTransformBase` OnClientAuthorityChanged is Server Only.
* Fixed: `NetworkTransformReliable` now correctly uses `localScale` for syncing scale.
* Fixed: `NetworkTransformReliable` now checks for changes after previous changes applied.
* Fixed: Jitter from `NetworkTransformReliable` sending last known snapshot fixed.
* Fixed: `NetworkServer.DisconnectAll` doesn't set active to false anymore...it just disconnects all connections.
  * `Shutdown` still properly cleans up all objects and sets active to false.
* Fixed: Reset of statics in `NetworkClient` and `NetworkServer`.
* Fixed: `ChangeOwner` message handler now adds / removes from client connection's `owned` HashSet.
* Fixed: `NetworkClient` now sets `NetworkIdentity.connectionToServer` before `OnStartAuthority` / `OnStartClient` are called.
* Fixed: `isClient` and `isOwned` are now properly set in `OnStartAuthority`.
* Fixed: `isClient` and `isOwned` are now properly set when Interest Management is involved.
* Fixed: KCP updated to version 1.29.
* Fixed: OnClientDisconnect is now correctly invoked for DNS resolution failures.
* Fixed: Removed invalid reference from KCP Assembly Definition file.
* Fixed: Added SimpleWebTransport to Mirror.Transports Assembly Definition file.
* Fixed: Most examples were reviewed and updated, improved PlayerController.
* Fixed: Distance Interest Management now caches references to custom distance components.
* Changed: `OnClientConnect` now fires as soon as authenticated, before any scene change.
* Changed: Use GUID's enabled for all Assembly Definition files.
* Changed: Network Manager HUD layout is now a bit wider for less wrapping.
* Changed: OnGUI in Network Client is now public.
* Changed: Compiler symbols have been culled to those covering the last 12 months and will continue to be culled to a rolling 12-month time period.
* Changed: Latency Simulation Transport configuration has been revamped.
* Breaking Change: Older obsoleted properties and methods have been removed.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mirror-networking.gitbook.io/docs/manual/general/changelog/2023-change-log.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
