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
  • v71.0.0 -- 2022-Dec-31
  • v70.0.0 -- 2022-Dec-09
  • v69.0.0 -- 2022-Nov-10
  • v68.0.0 -- 2022-Oct-21
  • v67.1.0 -- 2022-May-05
  • v66.0.9 -- 2022-Apr-17
  • v65.0.0 -- 2022-Mar-09
  • v57.0.0 -- 2022-Jan-12
  • v55.3.8 -- 2022-Jan-05
  1. User Manual
  2. General
  3. Change Log

2022 Change Log

Previous2023 Change LogNext2021 Change Log

Last updated 4 months ago

Mirror is published to the 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.

-- 2022-Dec-31

  • Added: NetworkClient.activeHost added as static.

  • Added: Sync* collections now support Client-to-Server Sync Direction.

  • Added: Network Manager HUD now has a StopClient button for Host mode.

    • This leaves the server running in Server Only mode and removes the host client.

  • Fixed: KCP updated to version 1.26.

  • Fixed: NetworkManager.OnStopClient now checks if client was started.

  • Fixed: NetworkManager.OnClientSceneChanged now checks for authenticated client before calling NetworkClient.Ready.

  • Fixed: NetworkManager.mode is now set to offline before calling OnStopClient to prevent a recursion.

  • Fixed: SimpleWebSocket logging improved.

  • Fixed: NetworkManager template now resets singleton in Awake override.

  • Fixed: NetworkDiscovery template now correctly has the messages defined as structs.

  • Fixed: NetworkTransform / NetworkTransformReliable now check for null connectionToClient in UpdateServer.

    • This cures the NRE's when player object is abandoned by scene changes.

  • Fixed: NetworkTransformChild AddComponentMenu attribute reset since it's obsolete.

  • Fixed: NetworkRigidbody2D now has HelpURL attribute.

  • Fixed: NetworkServer logs now have game object references for easier debugging.

  • Fixed: FPS script had wrong namespace.

  • Fixed: Network Authenticators now use NetworkClient.Send so we don't bypass a null check.

  • Fixed: NetworkClient.owned is now correctly cleaned up in OnDestroy.

  • Fixed: NetworkIdentity.spawned is now correctly cleaned up in OnDestroy.

  • Fixed: SpawnObject was missing a check for identities already spawned.

    • This cleans up the warnings in Additive Scenes implementations.

  • Changed: NetworkServer.localConnection is now LocalConnectionToClient type.

  • Changed: NetworkManager's OnStartServer and OnStartHost are now called later in the startup sequence.

  • Changed: NetworkRoomManager no longer does max connection checks...NetworkServer already does that sooner.

  • Obsolete: NetworkServer.localClientActive renamed to activeHost.

  • BREAKING: NetworkTransform and NetworkTransformReliable now inherit from a new NetworkTransformBase.

  • Added: Support for Unity 2019 LTS was restored

    • No promises as how long this will last. Unity no longer supports it, and code debt adds up.

  • Fixed: KCP updated to version 1.23.

  • Fixed: Examples have been updated to work with this release.

  • Fixed: Interest Management now uses TryGetValue in several places.

  • Fixed: Telepathy no longer calls OnDisconnected twice incorrectly.

  • Fixed: Transport handlers are cleared when NetworkClient restarts.

  • Fixed: Several errors with Multiplex Transport were fixed.

  • Fixed: Weaver now supports inheritance for NetworkConnectionParameter.

  • Fixed: Client-To-Server SyncVars weren't being sent to clients.

  • Fixed: Logging in transports was improved.

  • Changed: NetworkManager.OnClientDisconnect is now an empty virtual method.

    • Script Template also updated.

  • Breaking: NetworkTransform Reliable and Unreliable

    • Unreliable version replaces the old NetworkTransform.

    • SyncInterval is now managed by NetworkServer sendRate (set in Network Manager).

    • NetworkTransformChild removed...use Network Transform and set target to a child.

    • clientAuthority obsoleted in favor of syncDirection impemented in previous release.

Support for Unity 2019 LTS was restored in this release, but we cannot promise how long we'll be able to maintain compatibility as code debt adds up.

This version was published to the Asset Store as 2022-10.

  • Added: CCU Test example.

  • Added: NetworkStatistics component.

  • Fixed: NetworkRigidbody now uses double time to keep precision over long runtime.

  • Fixed: NetworkLerpRigidbody now uses double time to keep precision over long runtime.

  • Fixed: NetworkWriter.WriteString() now ensures capacity before writing.

  • Changed: Tools folder created and some rearrangement was done.

This version was published to the Asset Store as 2022-09.

  • Added: Snapshot Interpolation example.

  • Added: NetworkPingDisplay now has configurable size.

  • Added: NetworkManager.GetStartPosition is now virtual so it can be overridden.

  • Added: Network Manager now has an Auto Connect option for headless clients / CCU testing.

  • Added: NetworkConnection now maintains owned HashSet on both server and client.

  • Added: NetworkBehaviour now has SyncDirection to make client authority components easier.

    • Note: This feature will continue to evolve and may change in future releases.

  • Fixed: Benchmark, Chat and Tanks examples were improved.

  • Fixed: Network Manager script template was updated.

  • Fixed: NetworkBehaviour logging was improved.

  • Fixed: SimpleWebTransport header lookup is now case-insensitive.

  • Fixed: Spatial Hash Interest Mgmt. now calculates visibility range correctly.

  • Fixed: Read/Write GUID no longer allocates garbage.

  • Fixed: Telepathy ClientDisconnect now calls Disconnect event correctly.

  • Fixed NetworkServer.Spawn now checks and warns for duplicates.

  • Fixed: NetworkIdentity now only checks Application.isPlaying in Editor context.

  • Fixed: Network Statistics properties made public so other components can access them.

  • Fixed: InterestManagement.Awake is now protected virtual so it can be overridden.

  • Fixed: NetworkIdentity serialization of componentIndex reduced to ~1 bit instead of 1 byte.

  • Fixed: NetworkBehaviour serialization of headers reduced to 1 byte instead of 4 bytes.

  • Fixed: NetworkClient now resets time interpolation whenever host connects or reconnects.

  • Changed: NetworkBehaviour.ComponentIndex reduced from int to byte.

  • Changed: Snapshot Interpolation refactored to version 2.

  • Changed: Latency Simulator latencySpike renamed to jitter.

  • Changed: Snapshot Interpolation split into time + value interpolation.

  • Breaking: Transports folder was moved up and various transports moved into that folder.

  • Breaking: Runtime folder renamed to Core.

  • Breaking: NetworkIdentity / NetworkBehaviour OnSerialize no longer returns a bool.

  • Breaking: NetworkBehaviour.SerializeSyncVars no longer returns a bool.

  • Breaking: assetId in SpawnMessage changed from Guid to uint.

  • Breaking: OnError(Exception) is now OnError(TransportError, string) where TransportError is an enum and string is free text provided by transports.

  • Breaking: NTSnapshot renamed to TransformSnapshot for clarity.

  • Breaking: NetworkTime was rewritten to use NetworkClient's snapshot interpolation timeline.

  • Obsolete: NetworkManager.serverTickRate renamed to sendRate.

  • Obsolete: NetworkManager.serverTickinterval was moved to NetworkServer.

  • Obsolete: NetworkTransport.activeTransport renamed to active.

  • Obsolete: NetworkBehavior.hasAuthority renamed to isOwned for clarity.

  • Obsolete: NetworkConnection.clientOwnedObjects renamed to owned for clarity.

  • Fixed: KCP updated to version 1.19.

  • Fixed: Team Interest Mgmt OnDestroyed logic was improved.

  • Fixed: Comments in various Network Authenticators were updated.

  • Fixed: Benchmark example was improved so movement revolves around origin.

  • Fixed: Cmd/Rpc bandwidth reduced from 4 bytes to 2.

  • Fixed: Texture2D now includes dimensions and reads Color32 correctly and supports nulls.

  • Fixed: NetworkServer.SendToObservers now correctly uses NetworkConnectionToClient.

  • Fixed: NetworkClient now checks and warns for duplicate scene ID.

  • Changed: NetworkClient / NetworkServer OnError renamed to OnTransportError for clarity.

  • Breaking: Obsoletes were removed.

NOTE: This was to be the last Mirror release to support Unity 2019 LTS, as it has reached end of life by Unity. Support was restored in Mirror 70.0.0 above.

  • Added: Queue.TryDequeue extension added for Unity 2019 & 2020 compatibility.

  • Fixed: NetworkClient.ChangeOwner now uses isLocalPlayer flag to check if OnStopLocalPlayer should be called.

  • Fixed: ReadNetworkBehavior now correctly reads data on client even if the associate NetworkIdentity is missing from the client.

  • Fixed: NetworkClient.SpawnPrefab now correctly looks for custom spawn handlers before using registered prefabs list instead of after.

  • Fixed: NetworkWriterExtensions now uses WriteArray instead of Write.

  • Fixed: Attempting to serialize prefabs and not-spawned game objects throws a more obvious exception.

  • Fixed: DestroyAllClientObjects now also resets after unspawn handler called.

  • Fixed: Calling StopClient in Host mode no longer resets nextNetId.

  • Fixed: Calling StopClient in Host mode no longer destroys objects on clients.

  • Fixed: It should now be possible to call StopClient in Host mode to leave the server in a running "Server Only" state, keeping all clients connected and running normally.

  • Fixed: AggressiveInlining attribute added in many places to improve performance.

  • Changed: NetworkWriter / NetworkReader API simplified.

  • Changed: PooledNetworkReader / PooledNetworkWriter renamed to NetworkReaderPooled / NetworkWriterPooled.

  • Changed: Transport base class moved to Runtime folder, Transport folder renamed to Transports

  • Added: Command / ClientRpc / TargetRpc can now be overloaded.

  • Added: Network Behaviour now has OnStopLocalPlayer virtual method, invoked right before OnStopClient. Script Template has also been updated.

  • Added: Network Manager Template overrides singleton to eliminate the need to cast Network Manager's singleton to derived class type.

  • Added: Support for generic NetworkBehaviour<T> subclasses.

  • Fixed: Network Reader/Writer uses blittable reads/writes where possible.

  • Fixed: Android compatibility for Read/Write blittable.

  • Fixed: Android Multicast Discovery.

  • Fixed: NetworkTransformChild now correctly syncs initial state when spawned.

  • Fixed: Latency Simulation now uses Time.unscaledTime.

  • Fixed: SimpleWebsocketTransport has been updated to fix a number of bugs, including compatibility with Unity 2021.x, and handling of messages larger than 64K.

  • Changed: A bunch of virtual methods now take NetworkConnectionToClient instead of NetworkConnection.

  • Changed: RemoteCallHelper renamed to RemoteProcedureCalls.

  • Changed: CmdDelegate renamed to RemoteCallDelegate.

  • Changed: MirrorInvokeType renamed to RemoteCallType.

  • Changed: NetworkManager.clientLoadedScene is now protected.

  • Obsolete: NetworkTransform now has overloads for CmdTeleport / RpcTeleport with Quaternion rotation, deprecating separate CmdTeleportAndRotate / RpcTeleportAndRotate methods, made possible by implementing Command / ClientRpc overloads mentioned above.

  • Obsolete: Experimental Network Transform components. Use the regular ones instead.

  • Fixed: KCP updated to version 1.17.

  • Fixed: Use Read/Write blittable for performance improvement.

  • Removed: Obsolete Network Visibility.

  • Added: Rotation parameter added to NetworkTransform CmdTeleport / RpcTeleport.

  • Added: Support for a bunch more nullable types.

  • Fixed: Fast Enter Play mode without Reload Domain now supported by resetting all statics.

  • Fixed: Network Transform now uses less bandwidth by only syncing changes based on sensitivity.

  • Fixed: KCP updated to version 1.15.

  • Fixed: ReplacePlayerForConnection now correctly updates isLocalPlayer flag.

  • Fixed: OnStopClient no longer called twice in certain cases.

  • Fixed: NetworkServer now checks for active before invoking Interest Management updates.

  • Fixed: Objects spawned with a client owner no longer lose ownership when respawned via interest management.

  • Fixed: Delayed Disconnect in Basic Authenticator now uses HashSet of connections pending disconnect.

  • Fixed: NetworkTransform now checks for ready client before sending updates to server.

  • Fixed: OnStartLocalPlayer now correctly called again after RemovePlayerForConnection followed by AddPlayerForConnection with the same player object.

  • Changed: NetworkMatch moved to InterestManagement/Match folder.

  • Changed: Internal code for SyncVar. Resetting non-default inspector values may be required.

  • Changed: Tanks example updated.

  • Changed: Chat example updated...overhauled really.

  • Changed: Network Reader / Writer now use blittable serialization where possible (4-6x performance improvement).

  • Breaking: Removed obsolete ConfigureServerFrameRate Use ConfigureHeadlessFrameRate instead.

  • Breaking: Removed obsolete PersistNetworkManagerToOfflineScene.

  • Breaking: NetworkAuthenticator OnClientAuthenticated event no longer needs a NetworkConnection parameter.

  • Obsolete: OnClient* virtual methods in Network Manager no longer take a NetworkConnection parameter.

  • Obsolete: Network Room Manager client overrides no longer have NetworkConnection parameter. Use NetworkClient.connection in your overrides instead.

-- 2022-Dec-09

-- 2022-Nov-10

-- 2022-Oct-21

-- 2022-May-05

-- 2022-Apr-17

Added: component, showing messages & packets sent & received per second.

-- 2022-Mar-09

-- 2022-Jan-12

-- 2022-Jan-05

Added: and Network Team components.

Added: .

Added: Custom Interest Management .

Added: Custom Network Transform .

Added: example.

Added: Texture2D and Sprite are now supported .

Asset Store
v71.0.0
v70.0.0
v69.0.0
v68.0.0
v67.1.0
v66.0.9
Network Statistics
v65.0.0
v57.0.0
v55.3.8
Team Interest Management
Device Authenticator
Script Template
Script Template
Additive Levels
Data Types