{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":266935611,"defaultBranch":"master","name":"com.unity.netcode","ownerLogin":"needle-mirror","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-05-26T03:28:09.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/65860517?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726531899.0","currentOid":""},"activityList":{"items":[{"before":"ea77e1e69f46b16f2aac44b73fa32fc9aa34f737","after":"55e467ff5204cb1f8bece5f790ae3c36d214fcdf","ref":"refs/heads/master","pushedAt":"2024-09-17T00:11:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.3.2\n## [1.3.2] - 2024-09-06\n\n### Changed\n * Updated entities packages dependencies\n\n### Added\n\n* Significantly reduced bandwidth consumption of command packets (i.e. input packets), by a) converting the first command payload in each packet to use delta-compression against zero, b) by making the number of commands sent (per-packet) tied to the `TargetCommandSlack`, c) by delta-compressing the NetworkTicks using the assumed previous tick (which is a correct assumption in the common case), and d) by using a single `changeBit` if the previous command is exactly the same.\n* `ClientTickRate.NumAdditionalCommandsToSend` is a new field allowing you to configure how many additional commands to send to the server in each command (i.e. input) packet.\n* Support for dumping input commands into the `NetDebugPacket` dump, helping users visualize and diagnose bandwidth consumption. Implement the optional, burst-compatible method `ToFixedString` on your input components to see field data in your packet dumps, too.\n* A `NetworkSnapshotAck.CommandArrivalStatistics` struct, documenting (on the server, for each client) how many commands arrive, and how many commands arrive too late. These statistics can be used to inform and tweak `TargetCommandSlack` and `NumAdditionalCommandsToSend`.\n* Significantly expanded our automated test coverage for Lag Compensation. We now detect off-by-one-tick errors between the client and server's lag compensation resolutions.\n* `LagCompensationConfig.DeepCopyDynamicColliders` (defaulting to true) and `LagCompensationConfig.DeepCopyStaticColliders` (defaulting to false) configuration values, enabling you to control whether or not colliders are deep copied during world cloning, preventing runtime exceptions when querying historic worlds during Lag Compensation. Also see the specialized `PhysicsWorldHistorySingleton.DeepCopyRigidBodyCollidersWhitelist` collection.\n\n### Changed\n\n* `PhysicsWorldHistory` now clones collision worlds *after* the `BuildPhysicsWorld` step for the given `ServerTick`. This fixes an issue where the `CollisionWorld` returned by `GetCollisionWorldFromTick` is off-by-one on the server. It is now easier to reason about, as the data stored for `ServerTick` T now actually corresponds to the `BuildPhysicsWorld` operation that occurred on tick T (rather than T-1, which was the previous behaviour). We strongly recommend having automated testing for lag compensation accuracy, as this may introduce a regression, and is therefore a minor breaking change.\n* `PhysicsWorldHistory` now deep copies dynamic colliders by default (see fix entry). Performance impact should be negligible.\n\n### Fixed\n\n* Corrected `seealso` usage in XML package documentation.\n* Documentation improvements and clarifications on the following pages: command stream, ghost snapshots, spawning ghosts, logging, network connection, networked cube, prediction, and RPCs.\n* Lag Compensation issue in the case where an Entity - hit by a query against a historic lag compensation `CollisionWorld` fetched via `GetCollisionWorldFromTick` - has since been deleted. The colliders of dynamic ghosts are now deep cloned by default, preventing the blob asset assertions which would have otherwise been encountered here. You can also opt-into copying static colliders via the `LagCompensationConfig` or `NetCodePhysicsConfig` authoring (although the recommendation is to instead query twice; once against static geometry exclusively, using the latest collision world, then again using the hit position of the static query, against lag compensated dynamic entities).\n* Issue where non-power-of-2 History Buffer sizes would return incorrect entries when `ServerTick` wraps around.\n* an issue with iOS and WebGL AOT, causing the player throwing exceptions while trying to initialize the Netcode generated ghost serializer function pointers. The issue is present when using Burst 1.8 and Unity 6.0+\n* an issue with GhostGroup serialization, incorrectly accessing the wrong ghost prefab type in the GhostCollectionPrefab array.\n* an issue with buffer serialization when using GhostGroup, causing memory stomping at runtime (and exception thrown in the editor), due to the fact the required size for storing the buffer in the snapshot was calculated incorrectly. The root cause was the incorrect index used to access the GhostCollectionPrefab collection.","shortMessageHtmlLink":"com.unity.netcode@1.3.2"}},{"before":null,"after":"018291dc2384978b85a103868cf8cc7a94ba0419","ref":"refs/heads/1.2.4","pushedAt":"2024-08-15T12:10:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.2.4\n## [1.2.4] - 2024-08-14\n\n### Changed\n* Updated entities packages dependencies","shortMessageHtmlLink":"com.unity.netcode@1.2.4"}},{"before":"508c5b168a93ff4b74a2a998b4cfe67293e9d98b","after":"ea77e1e69f46b16f2aac44b73fa32fc9aa34f737","ref":"refs/heads/master","pushedAt":"2024-07-18T12:11:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.3.0-pre.4\n## [1.3.0-pre.4] - 2024-07-17\n\n### Added\n\n* Optional UUID5GhostType property to the GhostCreation.Config struct, which allows you to provide your own unique UUID5 identifier when creating a ghost prefab at runtime, instead of relying on the auto-generated one (which uses the SHA1 of the ghost name).\n* NetworkStreamDriver.ResetDriverStore to properly reset the NetworkDriverStore\n\n### Changed\n\n* All Simulate component enable states are reset to using a job instead of doing that synchronously on the main thread. Reason for the change is the fact this was inducing a big stall at the end of the Prediction loop. However, the benefits is only visible when there are a large number of jobified workload.\n* Corrected incorrect/missing CHANGELOG entries across many previous versions.\n* Updated Burst dependency to version 1.8.16\n* Unified Multiplayer Project settings.\n* Moved menu items to a collective place to improve workflows. This removes the Multiplayer menu and integrates into common places Window, Assets/Create, right-click menus, etc.\n* The dependency on Unity Transport has been updated to version 2.2.1\n* Re-exposed `TryFindAutoConnectEndPoint` and `HasDefaultAddressAndPortSet`, with small documentation updates.\n* ConcurrentDriverStore and NetworkDriverStore.Concurrent are now public and you can use the NetworkDriverStore.Concurrent in your jobs to send/receive data.","shortMessageHtmlLink":"com.unity.netcode@1.3.0-pre.4"}},{"before":"afbc0c7612a90a569975722dbcfc7ece8d8e0245","after":"508c5b168a93ff4b74a2a998b4cfe67293e9d98b","ref":"refs/heads/master","pushedAt":"2024-06-17T10:14:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.3.0-exp.1\n## [1.3.0-exp.1] - 2024-06-11\n\n### Added\n\n* The Multiplayer PlayMode Tools Window now calls synchronous `Connect` and `Disconnect` methods, and now shows the `Handshake` connection step. Handshake occurs when the client connection has been accepted by the server, but said client is awaiting a `NetworkId` assignment RPC from said server.\n* Possibility to optimise the ghost serialization and pre-serialization by registering a custom chunk serialization function pointer that will let users reason on a per-archetype and write the serialization code without requiring virtual methods (function pointer call indirection) and optimised for the use case.\n* Further clarifications, minor improvements, and fixes to the PlayMode Tools Window.\n* `DefaultRelevancyQuery` to specify general rules for relevancy without specifying it ghost by ghost.\n* Tooltips and additional info for the NetCodeConfig, supporting `ClientServerTickRate`, `ClientTickRate`, and `GhostSendSystemData`.\n* Method `EnablePacketLogging.LogToPacket`, allowing user-code to add custom events to the netcode per-connection packet dump.\n* An optional connection approval procedure so you can validate that a connection is allowed to connect before a network ID is assigned to it. Connection Approval requests can be sent by client to server via an IApprovalRpcCommand RPC. The server can validate the arbitrary payload included in the RPC. No other data is processed by the server until the connection is approved.\n* More documentation on prediction, edge cases to be careful about, interpolation, compression, physics ghost setup checklist and the general update loop.\n* Increased validation applied to RPC serialization (including better error logging). We now ensure their deserialized size is the expected number of bytes.\n* Test coverage for `windowSize: 64` for `ReliableSequencedPipelineStage`.\n* PredictedSpawnedGhostRollbackToSpawnTick property to the GhostAuthoringComponent to allow predicted ghost spawned by client to rollback and re-simulate their state starting from their spawn tick, until the authoritative spawn has been received from the server. The rollback only occurs if the client receives new snapshots from server that contains at least one predicted ghost.\n* Changed usage of NetworkParameterConstants.MTU to use user configurable NetworkParameterConstants.MaxMessageSize. This allows snapshot and command buffers to reference the correct value and scale buffers accordingly.\n* Exposed `NetworkStreamDriver.DriverStore` and `LastEndPoint`.\n* Copy-free accessors for `NetworkStreamDriver` instances (via `GetDriverInstanceRW` and `GetDriverInstanceRO`) and underlying drivers (via `GetDriverRW` and `GetDriverRO`), which are also now used internally. The struct copy originals have been weakly deprecated.\n* Support for serializing non-byte-aligned RPCs. I.e. You can now delta-compress RPC fields using the `IRpcCommandSerializer` by delta-compressing against hardcoded baseline values.\n\n### Changed\n\n* Added the full type name of the RPC component to the RPC entity name (behind \"NetcodeRPC_\" prefix).\n* The netcode RPC header size has now changed (from 9B to 5B per packet, plus either 10B or 4B per RPC, depending on `DynamicAssemblyList`).\n* The max size of a serialized RPC is now 8192 bytes (ushort.MaxValue bits), as we now send the bits written, to be able to validate that the exact number of bits were read in the `RpcSystem`.\n* Reduced bandwidth consumption of netcode's `RpcSetNetworkId` RPC payload.\n* Updated `com.unity.transport` dependency to version 2.2.0.\n* Fixed another issue with predicted ghosts spawned again inside the prediction loop, not rolling back to the backup or re-predicting from the spawn tick, after being initialized by the PredictedSpawnGhostSystem (because of command buffer delay), effectively mispredicting again the first full tick and subsequent partial, and making the backup also contain mispredicted information.\n* Renamed `RpcSetNetworkId` to `ServerApprovedConnection`.\n* The servers `Handshake` process is no longer instantaneous, resulting in a few extra ticks being required (typically) before a connection can be fully established (approximately 7 ticks, up from 4). See bug fix entry.\n* `NetCodeConnectionEvent`s are now raised on the server for the protocol version handshake process (the `ConnectionState.State.Handshake` enum value). See bug fix entry.\n* Reduced bandwidth consumption of netcode's `NetworkProtocolVersion` RPC.\n\n### Removed\n\n* NoScale function delegate.\n\n### Fixed\n\n* Compile error when having both com.unity.netcode and com.unity.dedicated-server package together.\n* Issue where disconnecting your own client (via a direct `Disconnect` call) would fail to recycle the `NetworkId` component, and fail to dispose of the Entity.\n* We now also correctly report and clean-up stale connections. I.e. Connections that are entered into invalid states by user-code.\n* Issue where the `CommandSendSystem` was attempting to send RPCs with stale connections.\n* some slow path in the normal ghost serialization that was causing many re-serialization of the same chunk, in case the chunk data was not fitting inside the temporary stream buffer. That was almost the norm in many cases, when the serialised entities are large enough (either because of the number of components or because of the size of them).\n* NetworkStreamConnection now holds an accurate connection state right after the call to driver's Connect, instead of having to wait a frame to get it updated.\n* Minor documentation issues.\n* InvalidOperationException: cases where EntityManager is part of an exclusive transaction we skip gathering analytics for its world.\n* Breaking change where NoScale function was removed.\n* Issue where the `NetCodeDebugConfig` would not reset to the `LogLevel` default (of `Notify`) if toggled ON, changed, then toggled OFF, during playmode.\n* Minor documentation errors and improving overall grammar.\n* Issue where `NetCodeConfig.Global` did not load correctly on first boot, if not selected in the Project assets window. If you have a global `NetCodeConfig` set in your PreloadedAssets Project Setting, we'll also auto-upgrade your project, moving the save to Project Settings (via `NetCodeClientAndServerSettings`).\n* Negative network delta time will skip updating the system group.\n* `NETCODE_NDEBUG` define compiler error, and related missing documentation.\n* Issue where two IInputComponentData with the same name but in different namespaces would result in conflicted generated code. Namespace is now taken into account for source gen.\n* Network emulation tooltip clarification.\n* Off-by-one error causing RPCs sent on the same tick as the `ProtocolVersion` RPC to be corrupted.\n* Language improvements to PredictedSimulationSystemGroup and ClientServerBootstrap.\n* Performance problems with GhostCollectionSystem, with large number of prefabs.\n* PredictedGhostSpawnSystem incorrectly set the offset for serialized buffer data inside the snapshot buffer, making that incompatible with the GhostUpdateSystem logic and causing wrong data potentially copied back to the entity buffer.\n* An issue with preserialized ghost, that were stomping component data with incorrect values.\n* an issue in GhostUpdateSystem that was incorrectly handling the GhostComponentAttribute.SendToOwner flag, causing during continuation and partial ticks replicated data being overwritten incorrectly for predicted ghosts.\n* An issue due to structural changes, that was causing a large number of prediction step performed by the client due to the fact a given ghost could not continue the current prediction from the last full ticks (either partial ticks or another full tick) because the entity data could not be found anymore in the prediction history buffer.\n* Issue where RPCs appeared on deleted connection entities, leading to user code runtime exceptions, where, occasionally, the `NetworkId` component could not be found on the `ReceiveRpcCommandRequest.SourceConnection` (as the connection was already disconnected).\n* the client was acknowledging to the server only the last received snapshot instead of the last 32 (this was used to defeat packet loss). This was affecting both the ability to correct use all the available baseline for delta compression, and multiple re-sending static optimized ghost.\n* Rendering issue in `GhostAuthoringInspectionComponent`, causing UI to right-clip.\n* Defensive fix for other rendering issue in `GhostAuthoringInspectionComponent`, causing the Refresh and auto-refresh buttons to not appear correctly.\n* Fixed check to early release allocations in the case where a ghost chunk has been reused. We now correctly free these chunks, reducing allocated memory overhead on the server.\n* Rotation glitch issue with prediction switching interpolation\n* Issue where RTT calculation would be incorrectly high when first connecting, especially with high packet loss.\n* Issue where running a netcode test would invalidate the `NetworkTimeSystem.TimestampMS` for subsequent play-mode runs, when Domain Reloads are disabled, leading to `0±0` ping readout (and related issues).\n* an issue with predicted spawned ghost and enableable components state not being saved correctly in the snapshot buffer when the PredictedSpawnGhostRequest is processed and the entity initialized.\n* an issue with pre-spawned ghost and enableable components state not being saved correctly in the predicted spawn baseline buffer.\n* exception thrown by the `GhostPresentationGameObjectSystem` when an entity is destroyed. The system was accessing the tracked `GameObject` list using an invalid index in cases where the removed `GameObject` was the last element.\n* Exceptionally rare infinite loop crash in `SetupDataAndAvailableBaselines`.\n* an issue in the PredictedGhostHistorySystem, that was storing the backup of newly spawned ghost using the wrong ghost type and serializer. It was causing weird problem later in the GhostUpdateSystem, in case predicted spawned ghost are eligible to start re-simulating from the spawn tick. In particular, crashes, big memory allocation or other component data could be clobbered with invalid data.\n* an issue with predicted spawned not restored from backup correctly whence spawned immediately at the tick they are supposed to (no command buffer) inside a system executing in the prediction loop (using the IsFirstTimePredictedTick condiition). The snapshot data at spawn, that is initialized the next frame, it is not going to be a full tick, but a partial tick, causing more misprediction. The backup in general should be preferred in this case, because at least it is aligned with the last full tick.\n* broken multiphysics sample particles colliding with the player character only on the client (they are supposed to be only visual) because of a missing WorldIndex authoring component.\n* `IRpcCommandSerializer` can now be used with structs implementing `IRpcCommand` and `IApprovalRpcCommand` (rather than just `IComponentData`). I.e. The limitation is restricted, and code-gen will handle this case correctly (by skipping the generation of the RPC systems and serializer).\n* We now (correctly) wait for the server to receive a valid protocol version from the client before moving said client from the `Handshake` state to the `Connected` state. Therefore; `Handshake` events are now correctly raised on the server.\n* The protocol version handshake process can now correctly timeout (see: `HandshakeApprovalTimeoutMS`) in the exceptional case where the server does not receive a `RequestProtocolVersionHandshake` RPC from the client. If the approval flow is enabled, this single timeout counter is used for both states.\n* Removed the hardcoded 'Protocol Version' RPC logic, simplifying RPC sending and receiving. Netcode's handshake RPCs now use the existing `IApprovalRpcCommand` flows.","shortMessageHtmlLink":"com.unity.netcode@1.3.0-exp.1"}},{"before":"27b500c085edbce2e5f21547833cd5bb5138f2b4","after":"afbc0c7612a90a569975722dbcfc7ece8d8e0245","ref":"refs/heads/master","pushedAt":"2024-06-05T20:57:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.2.3\n## [1.2.3] - 2024-05-30\n\n### Changed\n* Updated entities packages dependencies","shortMessageHtmlLink":"com.unity.netcode@1.2.3"}},{"before":"d3ac47052d05be459ef9273e10ea0e353c3be98a","after":"27b500c085edbce2e5f21547833cd5bb5138f2b4","ref":"refs/heads/master","pushedAt":"2024-05-02T10:10:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.2.1\n## [1.2.1] - 2024-04-26\n\n### Changed\n\n* Updated Burst dependency to version 1.8.13\n* Updated entities packages dependencies","shortMessageHtmlLink":"com.unity.netcode@1.2.1"}},{"before":"362f449e6b6e5d8c547f40d54b6fca395c9cb461","after":"d3ac47052d05be459ef9273e10ea0e353c3be98a","ref":"refs/heads/master","pushedAt":"2024-03-26T14:12:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.2.0\n## [1.2.0] - 2024-03-22\n\n### Changed\n*Release Preparation","shortMessageHtmlLink":"com.unity.netcode@1.2.0"}},{"before":"b55e3ed6c65df7aaa8dfbbc09d00a0bef911e497","after":"362f449e6b6e5d8c547f40d54b6fca395c9cb461","ref":"refs/heads/master","pushedAt":"2024-02-28T11:13:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.2.0-pre.12\n## [1.2.0-pre.12] - 2024-02-13\n\n### Added\n\n* Optimisations for the gather-ghost-chunk by batching function pointer calls and using a better hash map.\n* BatchScaleImportanceDelegate, a new version of the importance scaling function that work in batches. It is not required to set both the ScaleImportance and the BatchScaleImportance function pointers. If the BatchScaleImportance is set, it is the preferred.\n* TempStreamInitialSize, a new parameter in the GhostSendSystemData for tuning the initial size of the temporary buffer used by server to serialise ghosts. By default now the size is 8KB.\n* AlwaysRelevantQuery to specify general rules for relevancy without specifying it ghost by ghost.\n\n### Changed\n\n* StreamCompressionDataModel is passed as in parameter to avoid many copy every time a WriteXXX or ReadXXX was called.\n* Updated Burst dependency to version 1.8.12\n\n### Fixed\n\n* UI issue disallowing the user from enabling the Network Emulator utility when upgrading with a now-deprecated EditorPref value.\n* an issue with pre-serialised ghosts, corrupting memory, crashing or copying wrong data into the snapshot buffer in certain conditions.\n* avoided GC allocation and the costly Marshal.GetDelegateFromFunctionPointer every time an FunctionPointer.Invoke is called. This is done by using directly unmanaged function pointers. All this, compatible with Burst enabled/disabled at any time.\n* lot of memory copies for loop invariants. This also reduced some SafetyChecks and costly operations.\n* avoid costly re-serialization of the whole chunk when the temp buffer can't fit all the data. This is one of the biggest costs during the serialisation loop. By default now the buffer is 8KB that reduce this possibility almost to 0.\n* Assigned InterpolationTick to always be equal ServerTick on the Server simulation (as stated in the summary for this parameter). Additionally the typos pointed out in the parameter summary were corrected.\n* Issue where prespawn failed to initialize when relevancy list was updated before replicating internal prespawn ghosts.","shortMessageHtmlLink":"com.unity.netcode@1.2.0-pre.12"}},{"before":"b63a410c3b2d78284928171b2374abf92d89d03b","after":"b55e3ed6c65df7aaa8dfbbc09d00a0bef911e497","ref":"refs/heads/master","pushedAt":"2023-12-15T15:13:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.2.0-pre.6\n## [1.2.0-pre.6] - 2023-12-13\n\n### Changed\n\n* Promotion preparation","shortMessageHtmlLink":"com.unity.netcode@1.2.0-pre.6"}},{"before":"35c9c7de370057645225d6fbb2c0693b187b53a5","after":"b63a410c3b2d78284928171b2374abf92d89d03b","ref":"refs/heads/master","pushedAt":"2023-12-04T15:14:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.2.0-pre.4\n## [1.2.0-pre.4] - 2023-11-28\n\n### Added\n\n* You can now disable the automatic Entities `ICustomBootstrap` bootstrapping (which calls NetCode's own `ClientServerBootstrap`) by either; a) disabling it in the ProjectSettings (default value is enabled), or b) adding the new `OverrideAutomaticNetcodeBootstrap` MonoBehaviour to your first build scene (i.e. your Active scene). Thus, there is no longer any need to write a custom bootstrap just to support a Frontend scene vs a Gameplay scene.\n* A `NetCodeConfig` ScriptableObject, containing most NetCode configuration variables, allowing customization without needing to modify code. Most variables are live-tweakable.\n* A 'Snapshot Sequence Id' (SSId), which is used to accurately measure packet loss. It adds 1 byte of header to each snapshot, but enables us to measure Netcode-caused causes of PL (i.e. out of order snapshots being discarded, and discarding a snapshot if another arrives on the same frame). Access statistics via a new struct on the client's `NetworkSnapshotAck`.\n* `RpcCollection.GetRpcHeaderLength` and `NetworkStreamDriver.GetMaximumHeaderSize` to allow users to determine max safe payload sizes.\n\n### Fixed\n\n* Esoteric exception in `MultiplayerPlaymodeWindow` in server-only cases.\n* Interpolated ghosts now support `IInputComponentData` and `AutoCommandTarget`.\n* Improved `UpdateGhostOwnerIsLocal` to make it reactive to `GhostOwner` changes, thus it no longer needs to poll.\n* NetDbg `ArgumentException` when a predicted ghost contains a replicated enableable flag component.\n* Display-only issue where the variants for additional entities (created via baking) were calculated as if they were 'root' entities. They are - in fact - child entities, thus the variants automatically selected for them should default to child defaults.\n* QoL issue; we now allow users to opt-out of auto-baking `GhostAuthoringInspectionComponent`s when selecting their GameObject, reducing stalls when clicking around the Hierarchy or Project.\n* QoL issue where `GhostAuthoringInspectionComponent` was not always modifiable in areas of the Editor where it is valid to modify them.\n* Issue where `GhostAuthoringComponent` was disallowed in nested prefab setups (where the root prefab is NOT a ghost).\n* Log verbiage when creating a driver in DefaultDriverConstructor read like a 'call to action'. It's not.","shortMessageHtmlLink":"com.unity.netcode@1.2.0-pre.4"}},{"before":"403389c5aa2d18d0875f0c91b27de0c8368c77b3","after":"35c9c7de370057645225d6fbb2c0693b187b53a5","ref":"refs/heads/master","pushedAt":"2023-11-14T19:26:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.2.0-exp.3\n## [1.2.0-exp.3] - 2023-11-09\n\n### Added\n\n* `GhostInputSystemGroup` and `GhostSimulationSystemGroup` are now included in the LocalSimulation world, which means your Input polling systems will now automatically get added to the LocalWorld. This helps facilitate support for singleplayer testing workflows. LocalWorld performance is unaffected (as it's a negligible overhead to tick these empty `SystemGroup`s).\n* support for GameObject rendering for debug bounding boxes. Entities Graphics was already supported, this adds support for GameObjects rendering. See Playmode Tools in docs for more details.\n* `ConvertToGhostPrefab` will now set the `EntityName` to the configured GhostName (if null). Useful for dynamically created Entity prefabs.\n* components, buffers and commands that implement generic interfaces that inherit from the IComponentData and IBufferElementData (i.e IComponentData) are now detected correctly and serialization code generated.\n\n### Changed\n\n* mostly for maintenance, code-generation for the component and buffer serialiser, using helper methods living all inside the package. No user visible changes\n* Updated Transport dependency to version 2.1.0.\n* The minimum supported editor version is now 2022.3.11f1\n* all Simulate component enable states are reset to using a job instead of doing that synchronously on the main thread. Reason for the change is the fact this was inducing a big stall at the end of the Prediction loop. However, the benefits is only visible when there are a large number of jobified workload.\n* components, command, buffers and rpc are now replicated also if they are private or internal\n\n### Removed\n\n* dependency from com.unity.logging. Before, in order to use Netcode for Entities, the logging package was required. Now it is optional.\n\n### Fixed\n\n* We now correctly throw a `PlatformNotSupportedException` in the three locations we previously threw `NotImplementedException`s in `ClientServerBootStrap` (methods; `CreateServerWorld`, `CreateClientWorld`, and `CreateThinClientWorld`).\n* when the server change owner for a ghost configured as owner-predicted, the ghost automatically switch the operation mode from interpolated to predicted (or vice versa) based on the owner.\n* an issue with \"partial component\" send optimisation (component present only on interpolated or predicted ghost, or based on the owner) that was causing data being deserialised incorrectly.\n* an issue with enable-bits serialisation not respecting the SendToOwner property set in the GhostComponentAttribute, cluttering the state always with the latest server data, regardless of the setting.\n* an issue with code-gen when using combination of flags for the GhostComponent.PrefabType property.\n* `Error: Invalid context argument index` errors when using the Timeout feature of the PlayMode Tools.\n* Updated log message for overriding variants rule\n* `IndexOutOfRangeException` in the `GhostCollectionSystem` when ghost hash mismatches are present (a common error during dev).\n* An issue accessing the m_PredictionSwitchingSmoothingLookup buffer when multiple ghosts change their owner and they need to switch prediction mode.\n* GhostPrefabCreation.ConvertToGhostPrefab api that incorrectly replicated and assign to child entity components the root entity variant.","shortMessageHtmlLink":"com.unity.netcode@1.2.0-exp.3"}},{"before":"a2764a00bf58f5900a864d7d3790590833fd63e5","after":"403389c5aa2d18d0875f0c91b27de0c8368c77b3","ref":"refs/heads/master","pushedAt":"2023-11-08T20:13:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.1.0-pre.3\n## [1.1.0-pre.3] - 2023-10-17\n\n### Changed\n\n* the DefaultTranslationSmoothingAction.DefaultStaticUserParams is now public and can be used by user code (to either change the defaults or use them in their own custom smoothing methods).\n\n### Fixed\n\n* issue when using prediction error smoothing, causing wrong component data retrieved from the backup buffer and consequently not making the smoothing function work as expected.\n* an issue in the reported elapsed time when executing the PredictedFixedStepSystemGroup in presence of partial ticks and PredictedFixedStepSimulationTickRatio grater than 1, causing problem with physics and character controller interpolation.\n* An issue with the change mask not read correctly when serializing/deserializing components with more than 32 fields.\n* `InvalidOperationException: Comparison function is incorrect` inside `GhostComponentSerializerCollectionSystemGroup` due to `ComponentTypeSerializationStrategy.DefaultType` being a `byte` flag enum (so it erroneously matched `128 - 0` the same as `0 - 128` due to wrapping).","shortMessageHtmlLink":"com.unity.netcode@1.1.0-pre.3"}},{"before":"d48c2f34cc2450273d615652ec4e804d9f98fb16","after":"a2764a00bf58f5900a864d7d3790590833fd63e5","ref":"refs/heads/master","pushedAt":"2023-09-20T15:14:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.1.0-exp.1\n## [1.1.0-exp.1] - 2023-09-18\n\n### Added\n\n* source generator can now be configure to enable/disable logs, report timings. It also possible to set the minimal log level (by default is now Error).\n* new public template specs and generator documentation\n* Added convenience methods for getting the clientworld / serverworld (or thin client list) added to ClientServerBootstrap\n* Additional analytics events. Multiplayer tools fields, prediction switching counters, tick rate configuration.\n* New method on the `PredictedFixedStepSimulationSystemGroup` class to initialise the rate as a multiple of a base tick rate.\n* `Packet Fuzz %` is now configurable via the Network Simulator. It's a security tool that should not be enabled during normal testing. It's purpose is to test against malicious MitM attacks, which aim to take down your server via triggering exceptions during packet deserialization. Thus, all deserialization code should be written with safeguards and tolerances, ensuring your logic will fail gracefully.\n* CopyInputToCommandBufferSystemGroup group, that contains all the system that copy IInputCommandData to the underlying ICommand buffer. This let you now target this group with the guarantee that all inputs are not copied after it run.\n* CopyCommandBufferToInputSystemGroup group, that contains all the system that copy ICommandData to their IInputCommandData representation. It runs first in the prediction loop and you can easily target it to do logic before or after the input are updated.\n* GhostSpawnClassificationSystemGroup, that is aimed to contains all your classification systems in one place.\n* Error messages to some missing `NetworkDriver.Begin/EndSend` locations.\n* defining `ENABLE_UNITY_RPC_REGISTRATION_LOGGING` will now log information about registered RPCs during netcode startup\n* We now automatically detect `Application.runInBackground` being set to false during multiplayer gameplay (a common error), and give advice via a suppressible error log as to why it should be enabled.\n* We introduced the new InputBufferData buffer, that is used as underlying container for all IInputComponentData.\n* conditional compilation for some public interfaces in DefaultDriverBuilder to exclude the use of RegisterServer methods for WebGL build (they can't listen). It is possible to do everything manually, but the helper methods are not present anymore.\n* new method for creating a NetworkDriver using WebSocketNetworkInterface.\n* Added two new values to the `NetworkStreamDisconnectReason` enum: `AuthenticationFailure` and `ProtocolError`. The former is returned when the transport is configured to use DTLS or TLS and it fails to establish a secure session. The latter is returned for low-level unexpected transport errors (e.g. malformed packets in a TCP stream).\n\n### Changed\n\n* relaxed public field condition for variants. When declaring a ghost component variations, the variant fields are not required to be public. This make the type pretty much unusable for any other purpose but declaring the type serialisation.\n* Increased the ThinClient cap on `MultiplayerPlayModePreferences.MaxNumThinClients` from 32 to 1k, to facilitate some amount of in-editor testing of high-player-counts.\n* NetcodeTestWorld updates the worlds in the same way the package does: first server, then all clients worlds.\n* When Dedicated Server package is installed, the PlayMode Type value is overridden by the active Multiplayer Role.\n\n### Deprecated\n\n* The public `PredictedFixedStepSimulationGroup.TimeStep`. You should always use the `PredictedFixedStepSimulationGroup.ConfigureTimeStep` to setup the rate of the `PredictedFixedStepSimulationSystemGroup.`.\n* the IInputBufferData interface (internal for code-gen use but public) has been deprecated and will be removed in the 1.2 release.\n\n### Fixed\n\n* incorrect code generated serialization and calculated ChangeMask bits for component and buffers when the GhostFieldAttribute.Composite flag is set to true (in some cases).\n* wrong check for typename in GhostComponentVariation\n* missing region in unquantized float template, causing errors when used for interpolated field.\n* improper check when the ClientServerSetting asset is saved, causing worker process not seeing the changes in the settings.\n* The server world was not setting the correct rate to the group, if that was not done as part of the bootstrap.\n* Exception thrown when the NetDbg tools is connecting to either the editor or player.\n* Renamed (and marginally improved) the \"Multiplayer PlayMode Tools\" Window to the \"PlayMode Tools\" Window, to disambiguate it from \"[MPPM] Multiplayer Play Mode\" (an Engine feature).\n* Attempting to access internals of Netcode for Entities (e.g. via Assembly Definition References) would cause compiler errors due to `MonoPInvokeCallbackAttribute` being ambiguous between AOT and Unity.Entities.\n* Packet dump logging exception when using relevancy, despawns, and packet dumps enabled. Also fixed performance overhead (as it was erroneously logging stack traces).\n* An issue with variant hash calculation in release build, causing ghost prefab hash being different in between development/editor and release build.\n* GhostUpdateSystem.RestoreFromBackup does not always invalidate/bump the chunk version for a component, but only if the chunk as changed since the last time the restore occurred.\n* Issue in TryGetHashElseZero, that was using the ComponentType.GetDebugName to calculate the variant hash, leading incorrect results in a release player build\n* A `NetworkDriver.BeginSend` error causing an infinite loop in the `RpcSystem`.\n* Deprecated Analytics API when using 2023.2 or newer.\n* compilation issue when using 2023.2, caused by an ambiguous symbol (define in both Editor and in Entities.Editor assembly)\n* Errant netcode systems no longer show up in the DefaultWorld: `PhysicsWorldHistory`, `SwitchPredictionSmoothingPhysicsOrderingSystem`, `SwitchPredictionSmoothingSystem`, `GhostPresentationGameObjectTransformSystem`, `GhostPresentationGameObjectSystem`, and `SetLocalPlayerGraphicsColorsSystem`.\n* Previous was hard to retrieve the generated buffer for a given IInputComponentData. Now is easy as doing something like InputBufferData.\n* Compilation error when building for WebGL\n* SnapshotDataLookupCache not created in the correct order, causing custom classification system using the SnapshotBufferHelper to throw exceptions, because the cache was not initialised.\n* A replicated `[GhostEnabledBit]` flag component would throw an `ArgumentException` when added to a Prespawned Ghost due to `ArchetypeChunk.GetDynamicComponentDataArrayReinterpret`.","shortMessageHtmlLink":"com.unity.netcode@1.1.0-exp.1"}},{"before":"933c8cf70fb45681a4d779d98fb01b69bf852d2f","after":"d48c2f34cc2450273d615652ec4e804d9f98fb16","ref":"refs/heads/master","pushedAt":"2023-09-13T12:15:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.0.17\n## [1.0.17] - 2023-09-11\n\n### Added\n\n* defining ENABLE_UNITY_RPC_REGISTRATION_LOGGING will now log information about registered RPCs during netcode startup\n\n### Changed\n\n* NetcodePacket debug log filenames changed to include date/time and version information\n\n### Fixed\n\n* addressed a case where it was possible for an exception to be thrown on the server if an RPC was queued for a then dropped connection.\n* \"AssetDatabase.RegisterCustomDependency are restricted during importing\" exception thrown by the NetCodeClientSettings, NetCodeClientServerSettings, NetCodeServerSettings in their OnDisable method, when using 2023.2 or newer.","shortMessageHtmlLink":"com.unity.netcode@1.0.17"}},{"before":"b414c7e6749004839e414cf58647e9707148c4c7","after":"933c8cf70fb45681a4d779d98fb01b69bf852d2f","ref":"refs/heads/master","pushedAt":"2023-08-10T09:11:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.0.15\n## [1.0.15] - 2023-07-27\n\n### Changed\n\n* Updated com.unity.entities dependency to 1.0.14\n* Use of non required TempJob allocation and use Allocator.Temp instead.\n\n### Fixed\n\n* Runtime EntityQuery leaks and reduce runtime memory pressure due to continuously allocating queries without disposing.\n* Reduced memory usage in Editor tests, by avoiding allocating queries continuously in hot paths.","shortMessageHtmlLink":"com.unity.netcode@1.0.15"}},{"before":"1467245a44555e75f66825f53b85e34f06880492","after":"b414c7e6749004839e414cf58647e9707148c4c7","ref":"refs/heads/master","pushedAt":"2023-06-21T09:12:57.422Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.0.12\n## [1.0.12] - 2023-06-19\n\n### Changed\n* Updated com.unity.entities dependency to 1.0.11\n\n### Fixed\n* `MultiplayerPlayModeWindow > Dump Packet Logs` now works more reliably, now works with NUnit tests, and dump files are named with more context.\n* Fixed bug in `GhostSendSystem` that caused it to not replicate ghosts when enabling packet dumps. `GhostValuesAreSerialized_WithPacketDumpsEnabled` test added.","shortMessageHtmlLink":"com.unity.netcode@1.0.12"}},{"before":"e6db3010aaeaab0f159b153a43bfad924456b6ae","after":"1467245a44555e75f66825f53b85e34f06880492","ref":"refs/heads/master","pushedAt":"2023-06-05T16:10:24.696Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.0.11\n## [1.0.11] - 2023-06-02\n\n### Fixed\n\n* Updated logging dependency","shortMessageHtmlLink":"com.unity.netcode@1.0.11"}},{"before":"916c73edecc0da12d36915bc1418dc6b3d28d5b2","after":"e6db3010aaeaab0f159b153a43bfad924456b6ae","ref":"refs/heads/master","pushedAt":"2023-05-25T15:11:27.870Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.0.10\n## [1.0.10] - 2023-05-23\n\n### Added\n\n* What's New and Upgrade Guide section in the docs.\n* New NetworkRequestListenResult cleanup component, that can be used to track the result of a listen request.\n\n### Changed\n\n* documentation index page with up-to-date info and links.\n* Removed forcing local client/server to alway use the loopback address to connect.\n* It is now possible to listen to the NetworkEndPoint.Any also for IPC connection.\n* The NetworkStreamDriver.GetRemoteAddress always return a consistent address for the connection when the NetworkDriver is configured to use the Unity Relay. Before, an invalid address was returned after the connection has been established, that was incorrect.\n* Exposed all the internal state of the NetworkTimeSystem as public API\n\n### Fixed\n\n* exceptions when NetworkRequestListen and/or. NetworkRequestConnect are handled and proper handling of multiple (erroneous) requests presents.\n* A problem with InterpolatedTick, going back and not recovering correctly in presence of large application, either the server or the client, stalls (i.e after loading).","shortMessageHtmlLink":"com.unity.netcode@1.0.10"}},{"before":"35d83c08b997d25027bee3d7522255574c3e139b","after":"916c73edecc0da12d36915bc1418dc6b3d28d5b2","ref":"refs/heads/master","pushedAt":"2023-05-11T17:11:53.821Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.0.8\n## [1.0.8] - 2023-04-17\n\n### Changed\n\n* Reduced the amount of memory allocated by allocating based on the maximum number of worker threads the running platform requires rather than defaulting to using a theoretical upper-bound of 128 worker threads.\n* Removed the additional entity created for each predicted ghost prefab, that was necessary to support predicted spawning. This has the addition benefit to cut almost in half (in case all ghost prefabs support all modes) the number of required archetypes.\n\n### Fixed\n\n* An issue with pre-spawned ghost not working correctly because sub-scene hash is calculated differently for client and server\n* an issue when sub-scene are opened for live-conversion and baking, causing spawned ghosts to contains invalid blob asset references (i.e colliders), introducing potential crashes and other problems (i.e missing collision and mis-prediction)\n* An issue with baking, not using the correct NetCodeClientTarget (either client or client/server) when baking a sub-scene for a client standalone build.\n* An issue with the Entities/Build project settings UI that was not updating the ClientTarget to use is the ProjectSettings window was not closed, or another settings \"tab\" was selected.\n* An issue with HasServerWorld reporting the presence of a server world even though no server was created.if it's not needed.\n* A sporadic InvalidOperationException: GetSingleton() thrown when retrieving the Unity.NetCode.LowLevel.SnapshotDataLookupCache.\n* GhostCollectionSystem InvalidOperationException thrown when Ghost prefab validation fails, trying accessing invalidated DynamicBuffer.\n* An issue in the GhostChunkSerializer, that was overwriting the snapshot data with some enable bits masks.\n* An issue in the GhostUpdateSystem, that was reading and applying the wrong enable bits.\n* An issue when restoring enable bits state from the predicted ghost history buffer.\n* Fixed a \"System Creation Order\" bug causing components with `[GhostField]` fields (or the `[GhostEnableBit]` attribute) to silently default to the `DontSerializeVariant`, especially in cases where Ghost Prefabs are created at runtime (via `GhostPrefabCreation.ConvertToGhostPrefab`).\n * \"Ghost Registration\" and \"Default Variant Registration\" Systems now use `[CreateBefore(typeof(DefaultVariantSystemGroup))]`, so that user-code can add `[CreateAfter(typeof(DefaultVariantSystemGroup))]` when accessing `GhostComponentSerializerCollectionData` data.\n * We now also guard all of these calls, giving explicit (fatal) errors if used improperly.\n* An issue in `GhostDistancePartitioningSystem`, which caused Netcode to add a shared component ECB entry for every single ghost containing a `LocalTransform`, every single frame, when `GhostDistanceImportance` was enabled in a users project.\n\n### Deprecated\n\n* Now that the `GhostAuthoringInspectionComponent` shows all replicated components, you shouldn't have to opt-into prefab overrides. Thus, deprecated the `SupportsPrefabOverrides` attribute.\n\n## [1.0.0-pre.66] - 2023-03-21\n\n### Added\n\n* Validate and sanitise connect and listen addresses when using IPCNetworkInterface. That was causing some nasty crash in the Transport without users understanding the actual problem.\n\n### Changed\n\n* The following components have been renamed:\nNetworkSnapshotAckComponent: NetworkSnapshotAck,\nIncomingSnapshotDataStreamBufferComponent: IncomingSnapshotDataStreamBuffer,\nIncomingRpcDataStreamBufferComponent: IncomingRpcDataStreamBuffer,\nOutgoingRpcDataStreamBufferComponent: OutgoingRpcDataStreamBuffer,\nIncomingCommandDataStreamBufferComponent: IncomingCommandDataStreamBuffer,\nOutgoingCommandDataStreamBufferComponent: OutgoingCommandDataStreamBuffer,\nNetworkIdComponent: NetworkId,\nCommandTargetComponent: CommandTarget,\nGhostComponent: GhostInstance,\nGhostChildEntityComponent: GhostChildEntity,\nGhostOwnerComponent: GhostOwner,\nPredictedGhostComponent: PredictedGhost,\nGhostTypeComponent: GhostType,\nSharedGhostTypeComponent: GhostTypePartition,\nGhostCleanupComponent: GhostCleanup,\nGhostPrefabMetaDataComponent: GhostPrefabMetaData,\nPredictedGhostSpawnRequestComponent: PredictedGhostSpawnRequest,\nPendingSpawnPlaceholderComponent: PendingSpawnPlaceholder,\nReceiveRpcCommandRequestComponent: ReceiveRpcCommandRequest,\nSendRpcCommandRequestComponent: SendRpcCommandRequest,\nMetricsMonitorComponent: MetricsMonitor,\n\n### Removed\n\n* internal ListenAsync/ConnectAsync methods (no visible API changes for users)\n\n### Fixed\n\n* a very unfrequent exception thrown in presence of a ghost with a replicated component that does not present any prediction errors names (i.e an Entity reference).\n* source generator crash when logging missing assembly dependency.\n* source generator requiring Unity.Transport package dependency for generating serialization code.\n* Snapshot history buffer not restore correctly, causing entities component to be stomped with random data.\n* Fixed an issue when ClientServerBootstrap.AutoConnectPort is 0 indicating autoconnecting should be disabled and you will connect manually via the driver connect API, but the playmode tools ip/port fields would still triggering (so you get two connections set up and errors). We also now prevent attempts to make a connection while one is already established.\n* an issue with source generator, validating incorrectly custom templates that uses overrides.\n* removed warning for old temp allocation when converting sub-scene with pre-spawned ghosts.\n* Forced all `ICommandData`'s `InternalBufferCapacity` to be zero, because we were constantly wasting hundreds of bytes per entity to store data that we know for certain will not fit into the internal capacity (as the dynamic buffer required length is hardcoded to 64, for netcode input buffers).\n* Fixed potential crash in players when send queue is full\n* Fixed exceptions when trying to use invalid interpolation ticks (could happen during snapshot updates or in predicted spawning system on disconnection)","shortMessageHtmlLink":"com.unity.netcode@1.0.8"}},{"before":"6e322faab538873174fff044d4297e8507b8c064","after":"35d83c08b997d25027bee3d7522255574c3e139b","ref":"refs/heads/master","pushedAt":"2023-03-22T18:14:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Needle-Mirror-Bot","name":null,"path":"/Needle-Mirror-Bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82663316?s=80&v=4"},"commit":{"message":"com.unity.netcode@1.0.0-pre.65\n## [1.0.0-pre.65] - 2023-03-21\n\n### Added\n\n* validate and sanitise connect and listen addresses when using IPCNetworkInterface. That was causing some nasty crash in the Transport without users understanding the actual problem.\n\n### Changed\n\n* the following components has been renamed: | Original Name | New Name | | ---------------| ---------------| |NetworkSnapshotAckComponent| NetworkSnapshotAck | |IncomingSnapshotDataStreamBufferComponent| IncomingSnapshotDataStreamBuffer | |IncomingRpcDataStreamBufferComponent| IncomingRpcDataStreamBuffer | |OutgoingRpcDataStreamBufferComponent| OutgoingRpcDataStreamBuffer | |IncomingCommandDataStreamBufferComponent| IncomingCommandDataStreamBuffer | |OutgoingCommandDataStreamBufferComponent|OutgoingCommandDataStreamBuffer| |NetworkIdComponent|NetworkId| |CommandTargetComponent|CommandTarget| |GhostComponent|GhostInstance| |GhostChildEntityComponent|GhostChildEntity| |GhostOwnerComponent|GhostOwner| |PredictedGhostComponent|PredictedGhost| |GhostTypeComponent|GhostType| |SharedGhostTypeComponent|GhostTypePartition| |GhostCleanupComponent|GhostCleanup| |GhostPrefabMetaDataComponent|GhostPrefabMetaData| |PredictedGhostSpawnRequestComponent|PredictedGhostSpawnRequest| |PendingSpawnPlaceholderComponent|PendingSpawnPlaceholder| |ReceiveRpcCommandRequestComponent|ReceiveRpcCommandRequest| |SendRpcCommandRequestComponent|SendRpcCommandRequest| |MetricsMonitorComponent|MetricsMonitor|\n\n### Removed\n\n* internal ListenAsync/ConnectAsync methods (no visible API changes for the users)\n\n### Fixed\n\n* a very unfrequent exception thrown in presence of a ghost with a replicated component that does not present any prediction errors names (i.e an Entity reference).\n* source generator crash when logging missing assembly dependency.\n* source generator requiring Unity.Transport package dependency for generating serialization code.\n* Snapshot history buffer not restore correctly, causing entities component to be stomped with random data.\n* Fixed an issue when ClientServerBootstrap.AutoConnectPort is 0 indicating autoconnecting should be disabled and you will connect manually via the driver connect API, but the playmode tools ip/port fields would still triggering (so you get two connections set up and errors). We also now prevent attempts to make a connection while one is already established.\n* an issue with source generator, validating incorrectly custom templates that uses overrides.\n* removed warning for old temp allocation when converting sub-scene with pre-spawned ghosts.\n* Forced all `ICommandData`'s `InternalBufferCapacity` to be zero, because we were constantly wasting hundreds of bytes per entity to store data that we know for certain will not fit into the internal capacity (as the dynamic buffer required length is hardcoded to 64, for netcode input buffers).\n* Fixed potential crash in players when send queue is full\n* Fixed exceptions when trying to use invalid interpolation ticks (could happen during snapshot updates or in predicted spawning system on disconnection)","shortMessageHtmlLink":"com.unity.netcode@1.0.0-pre.65"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEt_t31QA","startCursor":null,"endCursor":null}},"title":"Activity · needle-mirror/com.unity.netcode"}