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 handlingFixed:
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
andisDebug
.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 callsReset
, which causeNT 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 toNetworkClient
.Changed:
GUIConsole
layout updated to not collide withNetworkHUD
.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 aReset
method.Added:
NetworkClient
's Snapshot Interpolation settings exposed in Network Manager.Fixed:
NetworkBehaviour
SyncVar usesnetId
lookup.Fixed: No longer use custom
NetworkBehaviour
writers for SyncVars.Fixed: Writer for non-spawned
NetworkBehaviour
only writes 0 fornetId
.Fixed: KCP updated to version 1.33.
Fixed: Simple Web Transport improved logging.
Fixed:
NetworkTime
-PingWindowSize
shortened to 6 from 10 and use it inExponentialMovingAverage
.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 forbufferTimeMultiplier
.Fixed: Client objects are now cleared before spawn handlers.
Fixed:
NetworkIdentity
doesn't resetSyncObjects
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 useslocalScale
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
andNetworkServer
.Fixed:
ChangeOwner
message handler now adds / removes from client connection'sowned
HashSet.Fixed:
NetworkClient
now setsNetworkIdentity.connectionToServer
beforeOnStartAuthority
/OnStartClient
are called.Fixed:
isClient
andisOwned
are now properly set inOnStartAuthority
.Fixed:
isClient
andisOwned
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