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
  • v30.2.2 -- 2020-Dec-17
  • v26.2.2 -- 2020-Nov-20
  • v23.0.3 -- 2020-Oct-24
  • v17.3.0 -- 2020-Sep-04
  • v16.9.0 -- 2020-Aug-01
  • v16.1.1 -- 2020-Jun-13
  • v13.0.1 -- 2020-May-06
  • v11.4.2 - 2020-Apr-03
  • v10.4.7 - 2020-Mar-03
  • v9.0.2 - 2020-Feb-04
  • v6.7.7 - 2020-Jan-01
  1. User Manual
  2. General
  3. Change Log

2020 Change Log

Previous2021 Change LogNext2019 Change Log

Last updated 3 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.

-- 2020-Dec-17

  • Added: Network Reader/Writer now does ReadBlittable / WriteBlittable for better performance.

  • Added: KCP Transport updated to version 1.4.

  • Added: Network Authenticator now has OnStopServer and OnStopClient overrides.

  • Added: Network Transform now applies compression to rotations.

  • Added: SyncVars now support using types that inherit from NetworkBehaviour.

  • Added: SimpleWebTransport now has option for TLS outside the transport.

  • Added: MultipleMatches example featuring Network Match Checker with Lobby and Match functionality.

  • Fixed: Better presentation of Network Ping Display..

  • Fixed: Middleware Transport now listens for inner events correctly..

  • Fixed: Calling StartServer / StartClient more than once is now prevented..

  • Fixed: NRE when no host player in PlayerScore in MultipleAdditiveScenes example.

  • Fixed: player collisions in MultipleAdditiveScenes example.

  • Fixed: Weaver now properly generates readers and writers for structs in other assemblies, e.g. Mathematics.

  • Fixed: NetworkServer.maxConnections is now public.

  • Fixed: Skip reset of object that's being destroyed.

  • Fixed: ReadyStatusChanged in NetworkRoomManager is now public.

  • Fixed: NetworkTransform now correctly uses ArraySegment in Commands.

  • Fixed: Added OnStopServer to NetworkSceneChecker and NetworkMatchChecker.

  • Fixed: Weaver method lookup conflict with Unity 2020.2.

  • Fixed: Memory allocation vulnerability in NetworkReader.

  • Changed: Play mode now blocked for invalid scene id's, with error messages.

  • Changed: Experimental Network Transform now uses Channels.DefaultUnreliable and applies compression to rotations.

  • Changed: Server Only scene objects in examples replaced with normal objects instantiated on server or just eliminated.

  • Breaking: Force NetworkMessage to use structs in all cases - classes no longer supported.

  • Breaking: Removed ReadPacked / WritePacked functions - Use Read and Write variants instead.

  • Breaking: LLAPI has been removed.

  • Added: Quaternion and float compression.

  • Added: Option to configure handshakeMaxSize in SimpleWebTransport.

  • Added: ServerTeleport to Experimental NetworkTransform.

  • Added: Accept and Reject methods to Authenticator base class for ease of use.

  • Fixed: Weaver failure on Authenticators and assemblies with only messages and no behaviors.

  • Fixed: Examples no longer rely on sequential connectionId.

  • Fixed: Eliminated errors when first importing due to preprocessor defines in transports.

  • Fixed: Scene ID logging is now consistently in hex format.

  • Fixed: sceneId when using BuildPipeline.BuildPlayer with incorrect case in path.

  • Fixed: Trigger not applied correctly for host in NetworkAnimator.

  • Fixed: Ensure ReadHelper.Read reads exactly number of bytes in SimpleWebTransport.

  • Changed: Minimum Unity version is now 2018.4.28 LTS.

  • Breaking: NetworkIdentity.clientAuthorityCallback is an event now.

  • Breaking: Removed older obsolete methods and tests.

  • Breaking: Transports no longer support sending to a List of connectionIds.

  • Added: Support null when serializing classes.

  • Added: Support recursive data types.

  • Added: Support jagged arrays.

  • Added: New generic Read and Write methods for types used by mirror and user callbacks.

  • Added: NetworkAnimator now syncs animator.speed.

  • Added: NetworkTransform Server Teleport function.

  • Fixed: ClientScene.localplayer is now set to null when it is destroyed.

  • Fixed: Fixing IndexChanged hook not being called for NetworkRoomPlayer.

  • Fixed: Fixing NullReferenceException when loading scene.

  • Fixed: Fixing NetworkConnectionToClient for IL2CPP.

  • Fixed: NullReferenceException in tanks example when running in headless server only.

  • Changed: OnSerialize now includes the component index as byte before serializing each component. Better CPU performance at the cost of bandwidth.

  • Changed: Can now have 256 NetworkBehaviours per NetworkIdentity.

  • Added: NetworkAnimator now syncs Layer Weight.

  • Added: Lists can now be sent in Command/Rpc/Message/etc.

  • Added: [Server]/[Client] can now be used outside of NetworkBehaviour.

  • Fixed: NetworkAnimator now fires triggers immediately on owner.

  • Fixed: isServer will now keep its value after calling NetworkServer.Destroy.

  • Fixed: [Client] error message now correctly logs the name of the method.

  • Fixed: Messages can now be nested within other Message types.

  • Fixed: [Server]/[Client] now correctly give error when used on abstract method.

  • Fixed: Abstract classes can now implement IMessageBase.

  • Fixed: Weaver now correctly gives error when generating a reader methods for abstract classes.

  • Changed: NetworkServer no longer runs update if there are no connections.

  • Changed: NetworkBehaviour.IsDirty is now a public.

  • Changed: SyncEvent are now obsolete and will be removed in the next version.

  • Removed: isHeadless is now obsolete, Use preprocessor directive #if UNITY_SERVER instead.

  • Fixed: base method called inside Command/RPC now work if the first base class does not have an override.

  • Fixed: NetworkRoomPlayer now cleans up roomSlots on disable.

  • Fixed: Fallback and Multiplex now disable their transports when they are disabled.

  • Fixed: Websockets transport SocketState now returns false if socket is undefined.

  • Fixed: SyncEvents can now have the same name if they are in different classes.

  • Fixed: You can now have multiple SyncEvents per class.

  • Fixed: Message base classes are now processed even if they are declared later in the file.

  • Fixed: Registering a prefab with and same GUID no longer gives an error.

  • Fixed: Weaver now generates Serialize methods for classes that implement IMessageBase.

  • Changed: NetworkProximityChecker now has slightly better performance.

  • Changed: ClientRpc no longer need Rpc prefix.

  • Changed: Commands no longer need Cmd prefix.

  • Changed: TargetRpc no longer need Target prefix.

  • Changed: NetworkManager.networkSceneName is now protected set as it should not be set directly.

  • Added: [Command] now has an ignoreAuthority option for invoking Commands on objects the client doesn't have authority over, and Command methods can have an optional NetworkConnectionToClient sender parameter.

  • Added: [ClientRpc] now has an excludeOwner option to prevent messages from going to the client that owns the object.

  • Added: Commands and Rpc's can now be declared as virtual and overridden in derived classes.

  • Added: NetworkLogSettings component and Log Settings Window.

  • Added: SyncLists now support AddRange, InsertRange, and RemoveAll.

  • Added: Network Room Manager now has a virtual OnRoomServerPlayersNotReady that fires on server from CheckReadyToBegin.

  • Added: Network Room Player template now includes base Network Behaviour overrides.

  • Added: Network Room Player now has a virtual hook for the index SyncVar, and the override is in the template.

  • Added: Experimental Network Transform with more control settings and features.

  • Fixed: Network Room Manager.minPlayers is now protected so it's available for derived classes.

  • Fixed: Network Room Manager no longer does redundant player prefab registration in OnStartClient.

  • Fixed: Network Room Player OnClientEnterRoom now correctly only fires on clients.

  • Fixed: RegisterClientMessages was being incorrectly invoked for every scene change.

  • Fixed: Network Behaviour SyncMode and SyncInterval was not showing in the inspector in some cases (regression).

  • Fixed: Network Manager now cleans up network objects better when server stops.

  • Fixed: Network Manager no longer tries to change to offline scene redundantly in StopClient.

  • Fixed: Network Connection's lastMessageTime wasn't being properly initialized, causing incorrect idle timeout disconnects.

  • Fixed: Websockets transport now correctly pauses and queues messages during scene changes and should otherwise be more stable with SSL

  • Changed: Improvements were made to the Tanks example.

  • Changed: Network Room Player now uses virtual SyncVar hook for ReadyStateChanged.

  • Changed: Network Proximity Checker now uses direct distance check against player objects instead of Physics.SphereCastNonAlloc for better performance.

  • Breaking: Websockets Transport now requires full path to PFX Certificate file.

  • Removed: Discord Transport

  • Added: Network Behaviour now has OnStopServer and OnStopClient virtual methods.

  • Added: Weaver now supports custom Reader & Writer for types in other assemblies.

  • Added: Network Manager now has an optional setting to check for and disconnect remote connections that have gone silent for a specified interval.

  • Added: Network Server and Network Client now have ReplaceHandler methods to avoid warnings when attempting to double register message handlers.

  • Added: NetworkServer.SendToAll now has an optional bool to only send to ready clients, and a SendToReady method that doesn't require a Network Identity.

  • Fixed: Network Animator no longer double-fires SetTrigger / ResetTrigger on the host client.

  • Fixed: Network Animator is no longer limited to one component per object.

  • Fixed: Destroy is no longer invoked twice on the server for the player object.

  • Fixed: RegisterClientMessages is no longer invoked twice on the client.

  • Fixed: Network Behaviour SyncMode and SyncInterval was not showing in the inspector in some cases.

  • Fixed: Telepathy Transport - LateUpdate now processes a limited amount of messages per tick to avoid deadlocks.

  • Changed: Network Behaviour: OnNetworkDestroy was renamed to OnStopClient.

  • Breaking: RemovePlayerMessage has been removed as a potential security risk. Use NetworkServer.RemovePlayerForConnection instead.

  • Breaking: Network Behaviour: OnRebuildObservers, OnCheckObserver, and OnSetHostVisibility were moved to a separate class called NetworkVisibility.

  • Added: SyncVar hooks can be virtual now, and overridden in a derived class.

  • Added: Virtual OnRoomStopServer added to Network Room Manager and Script Template.

  • Added: 10K Networked Objects Benchmark Example.

  • Fixed: Setting breakpoints in an IDE for Command's and Rpc's work correctly now.

  • Fixed: NetworkServer.SendToObservers now reports correct channel to Mirror Profiler.

  • Fixed: Network Room Manager's roomPlayerPrefab is now protected so it can be accessed in derived classes.

  • Fixed: Network Room Player inspector and documentation updated to be less confusing.

  • Fixed: Network Identity no longer double calls NetworkServer.Destroy.

  • Fixed: Network Animator now correctly excludes parameters controlled by curves.

  • Fixed: Network Behaviour now uses a property drawer for the SyncVar label so it displays better.

  • Fixed: NetworkServer.SendToReady overloads are no longer ambiguous.

  • Fixed: Network Room Manager no longer incorrectly destroys the game player object. It's left in the game scene to be cleaned up by Unity when the scene changes.

  • Fixed: StopHost correctly raises OnServerDisconnect in Network Manager, and correctly unwinds before shutting down the server.

  • Fixed: isServer is no longer incorrectly false on server in Network Identity's OnDestroy.

  • Changed: Network Manager offlineScene and onlineScene store full paths now, so use SceneManager.GetActiveScene().path instead.

  • Changed: Network Manager HUD now calls StopHost / StopServer / StopClient more appropriately.

  • Changed: Network Manager HUD labels no longer say LAN. Associated docs also cleaned up to eliminate the misconception of Mirror being LAN only solution.

  • Changed: Network Transform compression removed and message handling is much simpler now.

  • Changed: Network Scene Checker initializes in Awake again because OnEnable proved to be unreliable in some cases.

  • Changed: Network Manager will no longer lose references to scenes if they aren't in the Build Settings scene list, however moving or renaming scenes may cause references to be lost.

  • Added: Weaver will now block play mode and builds if there are weaver errors and show them in the console again.

  • Added: PooledNetworkReader and PooledNetworkWriter, both Disposable.

  • Added: NetworkReader.ReadMessage.

  • Added: Network Discovery now handles headless server mode.

  • Added: SyncVar, Cmd's and Rpc's now support Scriptable Objects via CreateInstance on the receiving side.

  • Added: Discord Transport Removed in v16.1.1

  • Fixed: isClient now returns true on clients in OnDestroy for networked objects.

  • Fixed: Host Player race condition for Ready message.

  • Fixed: Network Animator and Network Transform now correctly check for client authority in their respective Command methods.

  • Fixed: Network Room Manager Script Template had a virtual method instead of an override.

  • Fixed: Network Server's calls to NetworkConnectionToClient.Send now includes the channelId parameter that was missing.

  • Fixed: Network Server's calls to SendToAll, SendToReady, and SendToObservers send to the exact connection if it is detected as local connection, instead of falling back to the .localConnection.

  • Fixed: Network Server.SpawnObjects returns false if server isn't running.

  • Fixed: Network Transform rotation detection improved.

  • Fixed: Weaver generated code now builds properly for IL2CPP (again).

  • Changed: StartHost in Network Manager is no longer a virtual method (and shouldn't have been). Override OnStartHost instead.

  • Changed: Network Room Manager's OnRoomServerSceneLoadedForPlayer now includes NetworkConnection parameter.

  • Changed: Network Scene Checker now works from OnEnable instead of Awake, and uses Scene instead of scene name.

  • Changed: Renamed NeworkWriter.Write to WriteMessage for consistency.

  • Added: Network Animator now has a ResetTrigger function and server / client authority warnings.

  • Added: Network Transform now has 3 new floats for Sensitivity to quiet down message traffic from micro changes.

  • Added: Mirror Icon for all components.

  • Added: Inspector Headers to Network Behaviour, Network Transform, and Network Animator.

  • Added: URI added to supported data types.

  • Added: NetworkReaderPool has been implemented in place of new NetworkReader everywhere, significantly reducing garbage allocation.

  • Fixed: Network Transform and Network Animator now uses NetworkWriterPool.

  • Fixed: Network Transform and Network Animator now respect hasAuthority for client owned objects.

  • Fixed: Network Transform will now correctly teleport if time / distance are too large.

  • Fixed: Network Animator now correctly syncs when clientAuthority is false.

  • Fixed: Client owned objects are now destroyed when client disconnects (regression).

  • Fixed: Client authority is now preserved for networked objects carried through scene change in DontDestroyOnLoad (DDOL).

  • Fixed: Starting server immediately after canceling client connection attempt no longer throws a NRE.

  • Fixed: IL2CPP builds no longer trigger an assert when stopping server.

  • Fixed: SyncVars are now set for Host player before hook is invoked.

  • Fixed: SyncDictionary now correctly updates the value before invoking callbacks.

  • Fixed: StopHost no longer tries to change to the Offline scene twice.

  • Fixed: Network Room Manager roomSlots are now correctly managed on both server and clients.

  • Fixed: Network Room Manager now correctly supports multiple GamePlay scenes and adds a virtual OnRoomServerAddPlayer.

  • Fixed: Additive scene operations no longer incorrectly lead to extraneous AddPlayer messages from clients.

  • Fixed: NetworkWriterPool is now used everywhere instead of new NetworkWriter (we missed a couple when the pool was implemented).

  • Fixed: Patch for Unity 2019.3.x RequestScriptReload was moved to EditorUtility from UnityEditorInternal.InternalEditorUtility.

  • Fixed: Arrays of custom types are now correctly supported.

  • Changed: Shutdown logic has been streamlined.

  • Changed: NetworkIdentity.GetSceneIdenity method renamed to GetSceneIdentity (name typo).

  • Changed: OnApplicationQuit virtual method added to Transport class and Transport.activeTransport.Shutdown() is no longer called from Network Manager.

  • Breaking: SyncVar Hooks now require two parameters, one each for the old and new value, and the property value is now set before the hook is called.

  • Added: Full Text Search added to docs.

  • Added: Basic Chat example.

  • Added: Some YouTube videos have been created and linked from various doc pages where appropriate.

  • Added: Transports can now support using a URI for connection including port.

  • Added: version.txt file is now included with the release version in it.

  • Added: Structs that inherit from IMessageBase now generate serializers.

  • Fixed: Components now appear in docs under API Reference.

  • Fixed: Delayed disconnect in Basic Authenticator.

  • Fixed: Multiplexer now handles OnClientConnect and GetMaxMessageSize correctly.

  • Fixed: Network Room Manager OnRoomServerCreateGamePlayer now includes the Room Player Object as parameter.

  • Changed: Room example now has Network Room Manager in the Offline scene and correctly switches to the Room scene when server / client is started.

  • Changed: Network Manager startPositionIndex and loadingSceneAsync are now public.

  • Changed: SceneMessage now has an optional customHandling flag so devs can handle their own custom scene loading, e.g. using Addressables.

  • Breaking: Network Transform now defaults to server authority and has a Client Authority checkbox.

-- 2020-Nov-20

Added: .

Added: .

Changed: Script Templates are now available as a separate package .

Changed: Telepathy Transport is now obsolete - Use instead.

-- 2020-Oct-24

Added: New websockets transport: .

Changed: Use SyncLists/SyncSet/SyncDictionary directly, e.g. SyncList, see .

Breaking: Renamed IMessageBase to NetworkMessage, see .

Removed: SyncEvents, see .

Removed: Removing manual invoke for Cmd and RPC, see .

Removed: Removed Serialize/Deserialize in messages, see .

Removed: Removing auto initialize for SyncLists/SyncSet/SyncDictionary, see .

Removed: Replacing with .

-- 2020-Sep-04

Added: Experimental component that syncs position and velocity and applies them using Lerp.

-- 2020-Aug-01

Added: log handler that sets console color.

Added: New Mirror List Server, see .

Added: Experimental component that syncs velocity and other rigidbody settings.

-- 2020-Jun-13

Added: component

-- 2020-May-06

Added: .

Added: component. Use this component to create many concurrent isolated matches within a single game server.

Added: now have Find and FindAll functions.

- 2020-Apr-03

Removed: Many obsolete methods and properties. Use first if upgrading from UNet or older Mirror. See for complete list.

- 2020-Mar-03

- 2020-Feb-04

Added: Network Observer added to -- See the new Mirror section in the Assets > Create menu.

Added: has been reimplemented including an example and script template -- thanks to all those who contributed!

Added: .

- 2020-Jan-01

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

v30.2.2
v26.2.2
KCP Transport
Libuv2k Transport
here
KCP Transport
v23.0.3
SimpleWebTransport
Pull Request 2307
Pull Request 2317
Pull Request 2178
Pull Request 2223
Pull Request 2317
Pull Request 2330
Ninja.WebSockets
SimpleWebTransport
v17.3.0
NetworkLerpRigidbody
v16.9.0
NetworkHeadlessLogger
Cloud folder
NetworkRigidbody
v16.1.1
Network Ping Display
v13.0.1
Multiple Concurrent Additive Scenes Example
Network Match Checker
SyncLists
v11.4.2
version 10
Deprecations
v10.4.7
v9.0.2
Script Templates
Network Discovery
Network Scene Checker Component
v6.7.7
Script Templates