Mirror
  • Mirror Networking
  • API Reference
  • Development Blog
    • A Brief History of Mirror
  • User Manual
    • General
      • Getting Started
      • Script Templates
      • Change Log
        • 2024 Change Log
        • 2023 Change Log
        • 2022 Change Log
        • 2021 Change Log
        • 2020 Change Log
        • 2019 Change Log
      • Deprecations
      • Migration Guide
      • Integrations
      • Timestamp Batching
      • TCP and UDP
      • CCU
      • SyncDirection
      • Round Trip Time (RTT)
      • Connection Quality
      • Lag Compensation
      • Client Side Prediction
      • History Bounds
      • Tests
      • NetGraph
    • FAQ
      • Execution Order
    • Transports
      • KCP Transport
      • Telepathy Transport
      • WebSockets Transport
        • Reverse Proxy
          • Windows
            • IIS
          • Linux
            • NGINX
            • Caddy
            • Apache
            • HA Proxy
        • SSL
      • Multiplex Transport
      • Latency Simulation Transport
      • Ignorance
      • LiteNetLib Transport
      • FizzySteamworks Transport
      • FizzyFacepunch Transport
      • Encryption Transport
      • Edgegap Transports
        • Edgegap Relay
        • Edgegap Lobby
    • Components
      • Network Animator
      • Network Authenticators
        • Basic Authenticator
        • Device Authenticator
      • Network Behaviour
      • Network Discovery
      • Network Identity
      • Network Manager
      • Network Manager HUD
      • Network Ping Display
      • Network Profiler
      • Network Rigidbody
      • Network Lerp Rigidbody
      • Network Room Manager
      • Network Room Player
      • Network Start Position
      • Network Statistics
      • Remote Statistics
      • Network Transform
        • Snapshot Interpolation
      • Deprecated
        • Network Proximity Checker
        • Network Scene Checker
        • Network Match Checker
        • Network Owner Checker
    • Interest Management
      • Spatial Hashing
      • Distance
      • Scene
      • Scene + Distance
      • Match
      • Team
      • Custom
      • Legacy
    • Guides
      • Authority
      • IDs
      • Attributes
      • Time Synchronization
      • Data types
      • Serialization
      • Synchronization
        • SyncVars
        • SyncVar Hooks
        • SyncEvent (Obsolete)
        • SyncLists
        • SyncDictionary
        • SyncHashSet
        • SyncSortedSet
      • Communications
        • Remote Actions
        • NetworkManager Callbacks
        • NetworkBehaviour Callbacks
        • Network Messages
      • GameObjects
        • Player Game Objects
        • Custom Character Spawning
        • Custom Spawn Functions
        • Scene GameObjects
        • Pickups, Drops, and Child Objects
    • Examples
      • Additive Levels
      • Additive Scenes
      • Basic
      • Billiards
      • Multiple Additive Scenes
      • Pong
      • Room
      • Tanks
      • EdgegapLobby
  • Server Hosting
    • The Pragmatic Hosting Guide
    • Cloud Hosting Guides
      • AWS
      • Google Cloud
      • Oracle Free Tier
    • Hosting with a Remote Desktop
    • Edgegap Hosting Plugin Guide
  • Security
    • Security Overview
    • Cheat Protection Stages
    • Cheats & Anticheats
  • Community Guides
    • Community Translations
    • Video Tutorials
    • Resources
    • Mirror Quick Start Project
    • Unity for MMORPGs
    • Unity Canvas HUD
    • Odin Inspector Support
    • Ready Up And Die!
    • iOS AppStore
    • Mirror Docker Guide
    • Gitbook Guide
    • Mirror Branding
    • Contributors Agreement
    • Documentation License
Powered by GitBook
On this page
  • v53.0.0 -- 2021-Oct-20
  • v46.0.4 - 2021-Sep-03
  • v44.0.2 -- 2021-Aug-08
  • v42.2.12 -- 2021-Jul-12
  • v40.0.9 -- 2021-Jun-08
  • v35.1.0 -- 2021-Mar-29
  • v32.1.4 -- 2021-Mar-08
  • v30.5.3 -- 2021-Feb-15
  • v30.5.0 -- 2021-Feb-05
  1. User Manual
  2. General
  3. Change Log

2021 Change Log

Previous2022 Change LogNext2020 Change Log

Last updated 4 months ago

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.

-- 2021-Oct-20

  • Added: ChangeOwnerMessage. NetworkIdentity.AssignClientAuthority and RemoveClientAuthority now send this message instead of a SpawnMessage, so transform data is no longer reset to server values, so no more snap-back of moving objects.

  • Added: SyncDictionary can now be declared and initialized from an existing List.

  • Added: Nullable color added to Data Types Mirror handles.

  • Added: ILPostProcessor is now used for Unity versions 2020.3 and later.

  • Fixed: Stopping Discovery no longer causes a crash.

  • Fixed: Additive Scenes example had misplaced scene objects.

  • Fixed: NetworkManager.ServerChangeScene now aborts if scene change already in progress.

  • Fixed: hasAuthority is now properly cleared on client when unspawning scene objects.

  • Fixed: Match Interest Management now correctly handles networked objects without NetworkMatch components, and no longer throws Key not found exception in certain cases.

  • Fixed: NetworkManager.StopClient no longer fires twice in certain cases.

  • Fixed: NetworkMatch was missing attributes.

  • Changed: NetworkLoop static class is now public.

  • Changed: NetworkConnection.observing is now public.

    Changed: NetworkTransformV2 default values updated. interpolateScale also defaults to false now.

  • Changed: NetworkTransformV2 isClientAuthority now protected instead of private.

  • Changed: Examples using NetworkTransformV2 now using default values.

  • Changed: Updated NetworkManager Script Template.

  • Changed: Tanks example has health bars now.

  • Changed: componentIndex is now a byte in CmdMessage and RpcMessage structs.

  • Changed: SyncObject is now a class instead of an interface.

  • Obsolete: SyncObject.Flush - Use ClearChanges instead.

  • Obsolete: NetworkBehaviour.getSyncVarHookGuard - Use GetSyncVarHookGuard instead.

  • Obsolete: NetworkBehaviour.setSyncVarHookGuard - Use SetSyncVarHookGuard instead.

  • Obsolete: NetworkBehaviour.SetDirtyBit - Use SetSyncVarDirtyBit instead.

  • Obsolete: NetworkServer.SendToReady - Use SendToReadyObservers instead.

  • Removed: Various obsolete methods that were at least 3 months old.

  • Removed: Fallback transport -- no longer included or supported.

  • Added: Tanks example now has GUIConsole for easier debugging.

  • Fixed: UnpackAndInvoke now throws error and disconnects in case of missing handlers.

  • Fixed: NetworkServer/NetworkClient now detects ever-growing batches.

  • Fixed: Weaver now uses ILPostProcessing in Unity 2020+.

  • Fixed: Movement delay in NetworkTransformV2.

  • Fixed: NetworkTransformBase.OnDrawGizmos now only runs in play mode.

  • Fixed: Added missing using to Network Manager template.

  • Fixed: Some OnGUI calls are now wrapped in #if UNITY_EDITOR || DEVELOPMENT_BUILD.

  • Changed: NetworkEarlyUpdate/NetworkLateUpdate in NetworkLoop now exposed via Action events.

  • Changed: Multiple Matches example now uses Match Interest Management.

  • Changed: Multiple Additive Scenes example now uses Scene Interest Management.

  • Obsolete: NetworkIdentity.spawned has been split into NetworkServer.spawned and NetworkClient.spawned.

  • Removed: Network Observer template.

  • Added: Scene Interest Management. Put this on Network Manager and remove all Network Scene Checker components.

  • Added: Match Interest Management. Put this on Network Manager and replace Network Match Checker with new Network Match component.

  • Added: Interest Management now has OnSpawned / OnDestroyed events.

  • Added: Network Transform V2 with Snapshot Interpolation.

  • Added: Network Transport exception events that transports can raise to Network Manager's OnServerError and OnClientError overrides. Transports still need to implement their part.

  • Added: ZigZag VarInt added back to Compression module.

  • Fixed: Network Discovery HUD now calls StopDiscovery when stopping server/host/client.

  • Fixed: NetworkTime.lastPingTime is now reset properly.

  • Fixed: KCP updated to version 1.12.

  • Fixed: NetworkBehaviour dirty check uses double time.

  • Fixed: NetworkTime.UpdateClient uses double precision time for accuracy over days/weeks.

  • Fixed: NetworkAnimator uses double precision time for accuracy over days/weeks

  • Fixed: Quaternion Compression would produce wrong result for certain values.

  • Fixed: Added missing [Command] attribute to NetworkAnimator.CmdSetAnimatorSpeed.

  • Fixed: DestroyObject is now called when cleaning up scene identities too. Sends unspawn messages and calls OnStopClient/OnStopServerproperly.

  • Fixed: Clear hasAuthority when destroying and call OnStopAuthority.

  • Changed: Distance Interest Management now has custom range component, replacing Network Proximity Checker.

  • Changed: Per-scene interest management replaces Network Scene Checker.

  • Changed: Network Match component separated from Network Match Checker.

  • Changed: Match Interest Management replaces Network Match Checker.

  • Changed: NetworkManager.isNetworkActive is now a readonly bool.

  • Changed: NetworkManager.ConfigureServerFrameRate renamed to ConfigureHeadlessFrameRate.

  • Added: Timestamp-based batching. Batching is always on now and is bidirectional.

  • Added: NetworkServer / NetworkClient OnConnected / OnDisconnected events now public so custom Network Managers can hook into them.

  • Fixed: NetworkServer / NetworkClient Shutdown now correctly clears OnConnected / OnDisconnected event handlers.

  • Fixed: Scene loading with batching works now.

  • Fixed: KCP 1.11 significantly reduced garbage allocations.

  • Fixed: Fallback Transport didn't propagate Early/Late Update.

  • Fixed: OnClientDisconnect wasn't being called for host client.

  • Fixed: Interest Management V2 now allows SetHostVisibility overwriting.

  • Fixed: Serialization precision over days using frame count instead of single precision time.

  • Fixed: Added null check and error logging when networkBehaviours array is null.

  • Fixed: Force calling NetworkIdentity.Awake when parent is inactive.

  • Fixed: OnClientChangeScene was not firing for host client.

  • Fixed: Avoid NRE in UnpackAndInvoke.

  • Fixed: Null handling in WriteUri and ReadUri.

  • Fixed: FinishLoadScene should not be called when customHandling is true (Additive Scenes).

  • Fixed: Prevent assetId from being set to an empty string.

  • Fixed: clientAuthority is now public in NetworkRigidbody / NetworkRigidbody2D.

  • Changed: Transports are no longer paused (disabled) during scene loading. Message processor handles this correctly now, so transports can be simplified.

  • Added: ServerAuthFailed bool to Basic Authenticator.

  • Added: Discovery HUD now has a Stop Button.

  • Fixed: KCP updated to version 1.10.

  • Fixed: Telepathy updated to version 1.8.

  • Fixed: NetworkIdentity default script execution order set to -1.

  • Fixed: Discovery now properly shuts down in OnDisable / OnDestroy.

  • Fixed: Discovery now stops discovering when client is connected to game server.

  • Fixed: NetworkTransform sync scale and interpolation.

  • Fixed: Player object now prevented from being added to Network Manager's spawnable prefabs list

  • Fixed: Simple Web Sockets transport SSL Handshake.

  • Fixed: NetworkServer.OnDisconnect now calls DestroyPlayerForConnection if NetworkManager doesn't handle it.

  • Fixed: NetworkClient.Disconnect now checks for null connection and that it's not called twice.

  • Fixed: NetworkTime now resets when server starts.

  • Fixed: Basic example PlayerUI text corrected.

  • Fixed: Timeouts in Telepathy fixed.

  • Fixed: Observers are now correctly cleared after other clients disconnect.

  • Changed: NetworkConnection parameter removed from Network Authenticator's Client messages.

  • Changed: MessagePacking GetId<T> return value changed to ushort.

  • Changed: Transport.ServerDisconnect return is now void instead of bool.

  • Removed: Network Manager's Idle Timeout.

  • Removed: Cloud API and examples.

  • Obsolete: Fallback Transport will be removed in a later release.

  • Added: Network Discovery now has a bool to disable automatic active discovery.

  • Added: PersistNetworkManagerToOfflineScene to Network Manager...see tooltip.

  • Added: Latency Simulation Transport that can be added to Network Manager and have normal transport chained to it to simulate network latency.

  • Added: Sync Mode tooltip.

  • Added: Headless clients now set targetFramerate like headless servers

  • Added: NetworkTransform now has the following features:

    • Compress Rotation option

    • Sync Scale option

    • Interpolate Scale option

  • Fixed: No Writer found / No Reader found errors have been resolved.

    • NOTE: You may need to delete your Library/ScriptAssemblies folder and IL2CPP cache

  • Fixed: NetworkIdentity.isLocalPlayer is only set, but never reset. Fixes a bug where isLocalPlayer would be false in OnDestroy, so some components couldn't rely on it in OnDestroy.

  • Fixed: NetworkIdentity.Reset now resets isLocalPlayer after the isLocalPlayer /ClearLocalPlayer check.

  • Fixed: NetworkIdentity.OnDestroy now only clears NetworkClient.localPlayer if we are still the local player.

  • Fixed: Client Shutdown is no longer run twice via user code calling StopClient.

  • Fixed: SyncVar field label not shown in Unity 2020 versions (Unity bug).

  • Changed: Network Manager OnServerAddPlayer now adds the connection id to the object name (on the server only, not synced to clients).

  • Changed: Several fields in NetworkTime were renamed. The previous field names are still there and obsolete and will be removed in a later version.

  • Changed: Most of ClientScene is now obsolete, use same or similar properties in NetworkClient instead. ClientScene will be fully deprecated and removed in a later version.

  • Changed: NetworkClient.RegisterHandler overload that included a NetworkConnection is now obsolete and will be removed in a later version. Handlers can use NetworkClient.connection directly.

  • Changed: Channel constants names were shortened. The original constants are still there and obsolete, and will be removed in a later version.

  • Breaking: Minimum supported Unity version is now 2019.4.x LTS.

  • Breaking: ClientScene.onLocalPlayerChanged removed.

  • Breaking: Compiler symbols culled to Mirror 17 and later versions.

  • Added: NetworkIdentity now has isServer / isClientOnly.

  • Added: Global Interest Management. This may eventually lead to replacement of Scene Checker, Match Checker, and Owner Checker components.

  • Added: GUI Console ported from uMMORPG (F12 to show/hide).

  • Added: Network Manager now takes itself out of DDOL in StopServer / StopClient when offline scene is defined to avoid singleton collision.

  • Added: Message batching. Enable in Network Manager.

  • Added: Custom Player Loop:

    • NetworkEarlyUpdate (before any Update/FixedUpdate)

    • NetworkLateUpdate (after any Update/FixedUpdate/LateUpdate) loops

  • Added: KCP Tick split into TickIncoming / TickOutgoing to utilize the new NetworkEarly/LateUpdate functions...minimizes latency.

  • Added: Push > Pull Broadcasting Part 1.

  • Fixed: Telepathy 1.7 receive timeout disabled by default, increased MirrorTransport timeout to 30sec from 5sec to cover scene changes.

  • Fixed: NetworkServer.SpawnObserversForConnection refactored to support all visibility cases (ForceShown / ForceHidden / Default) and all systems (legacy / new / default).

  • Fixed: NetworkManager.StopServer/StopClient: avoid NullReferenceException when called in OnApplicationQuit or from tests.

  • Fixed: NetworkServer.Update: inactive connection check moved into the main connections foreach loop. Eliminates a foreach-connections loop.

  • Fixed: NetworkServer.Update: separate connections update loop moved into the main loop. Now there is only one connections loop.

  • Changed: NetworkManagerHUD.showGUI is now obsolete and will be removed in a later version.

  • Changed: SendToClientOfPlayer is now obsolete and will be removed in a later version.

  • Breaking: LogFactory and logging asset feature removed.

  • Breaking: Command ignoreAuthority parameter renamed to requiresAuthority, default true.

  • Breaking: ClientRpc excludeOwner parameter renamed to includeOwner, default true.

  • Breaking: ClientScene.spawnableObjects is no longer public.

  • Fixed: Fixed a bug in batching for messages larger than MTU.

  • Fixed: Telepathy 1.6 fixes data races and improves stability.

  • Fixed: KCP 1.8 fixes empty message sending / receiving undefined behaviour and fixes IPv6 on Nintendo Switch.

  • Changed: Network Manager default max connections is now 100.

  • Breaking: NetworkServer / NetworkClient don't use Connect/Disconnect messages any more. Connect/Disconnect events are raised by the transport instead.

  • Breaking: OnServerError / OnClientError removed since no transport ever implemented them.

  • Breaking Removed NetworkConnection.InvokeHandler as no longer needed.

  • Added: Batching support for server messages - See Network Manager to enable.

  • Added: Unreliable channel added to KCP Transport.

  • Fixed: Performance improvements to KCP Transport.

  • Fixed: Examples with UI now work with Unity 2018.4 again

  • Fixed: NetworkServer.OnConnected allows for connectionId < 0 now.

  • Fixed: Corrected NetworkRoomPlayer ReadyStateChanged oldReadyState parameter name.

  • Changed: Ping/Pong messages now use unreliable channel if available from transports.

  • Breaking Read / Write Blittable has been removed.

- 2021-Sep-03

-- 2021-Aug-08

-- 2021-Jul-12

-- 2021-Jun-08

-- 2021-Mar-29

-- 2021-Mar-08

-- 2021-Feb-15

-- 2021-Feb-05

Added: updated to version 1.7.

Added: .

Added: are back in the package -- See the new Mirror section in the Assets > Create menu.

v53.0.0
v46.0.4
v44.0.2
v42.2.12
v40.0.9
v35.1.0
v32.1.4
v30.5.3
v30.5.0
KCP Transport
Network Owner Checker
Script Templates