2023 Change Log

Mirror is published to the Asset Store at the start of every month, unless some critical issue causes a delay.

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.

For further details on versions and their specific change logs, see github release page: https://github.com/MirrorNetworking/Mirror/releases

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 -- 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 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 -- 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 -- 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 -- 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.

Last updated