Karrar
a2fd447d1a
Fixed potential misprediction-like behavior on high-ping connections when joining and immediately performing actions (e.g., moving the player). And overall, improved general CSP behavior for high-ping clients when they first join.
2025-08-04 10:55:24 +03:00
Karrar
a8fed34b90
Added try-catch around several callback invocations (e.g., NetworkAwake) to prevent exceptions in one from causing undefined behaviour.
2025-08-02 08:20:54 +03:00
Karrar
0c18adc7c9
Added Sandbox.LocalInstantiate to replace Sandbox.Instantiate, which was frequently misused in place of Sandbox.NetworkInstantiate for spawning networked prefabs.
2025-08-02 06:12:58 +03:00
Karrar
7cde5340e7
Fixed an issue with Narrow Phase Filtering that causes Input Source objects to not sync to the Input Source client.
2025-07-31 18:32:53 +03:00
Karrar
e90c1d6533
Improved bandwidth usage when using Narrow Phase Filtering.
2025-07-30 11:36:32 +03:00
Karrar
a5c7bef946
Changed the size of LiteNetLibTransport._connectionBytes to be 1000.
2025-07-30 05:59:14 +03:00
Karrar
f449244367
Fixed an issue where invoking an RPC on the server from within another RPC (originally invoked by a client) could prevent the new RPC from being delivered to the source client, even if it was correctly scoped to them.
2025-07-28 16:10:55 +03:00
Karrar
97ee05413c
Added codegen errors for the use of generic type parameters as network properties or RPC parameters.
2025-07-26 11:40:14 +03:00
Karrar
0d6fcba6d7
Fixed an issue where the previous snapshot of a network collection could be incorrect. Also fixed a bug in NetworkDictionary and NetworkHashSet where key existence checks and value retrievals could fail, despite the key being present.
2025-07-25 19:07:23 +03:00
Karrar
a77b5a2b9c
Added SyncTransformOnSpawn to NetickConfig. This setting, enabled by default, controls whether the initial position and rotation of spawned objects are synchronized at spawn time. Disabling it can help reduce bandwidth usage or serve as an information-hiding measure.
2025-07-24 01:34:45 +03:00
Karrar
758b073942
Fixed Netick throwing an exception on the client when an object's parent was changed without using NetworkObject.SetParent.
2025-07-22 19:41:57 +03:00
Karrar
a637c9fc92
Fixed an issue with the previous commit.
2025-07-22 06:06:11 +03:00
Karrar
4d97886a3c
Changed NetworkObject.Id to return -1 when the object is spawned but the client is not interested in it and hasn't yet received any state for it.
2025-07-22 01:09:40 +03:00
Karrar
3ece834de2
Changed NetworkAwake (in the client) to invoke after the object state has been applied.
2025-07-21 00:08:08 +03:00
Karrar
54e7f6d8ed
Updated XML documentation.
2025-07-20 19:23:21 +03:00
Karrar
5f77e7b394
Added IsMarkedForDestruction to NetworkObject. This flag returns true if Sandbox.Destroy has been invoked on an object in the server, and the object is scheduled to be removed from the simulation (destroyed) at the end of the current tick.
2025-07-19 00:07:24 +03:00
Karrar
823fbb5e53
Fixed an issue with static RPCs with RpcPeers.Owner target, which are invoked by the owner/server.
2025-07-17 17:41:45 +03:00
Karrar
6f63dc3b1a
Fixed an issue with static RPCs with RpcPeers.Owner source.
2025-07-17 17:29:38 +03:00
Karrar
d405291150
Added IsInterested to NetworkObject and NetworkBehaviour. On the client, it returns true if this client is interested in this object. On the server, it always returns true.
2025-07-16 23:51:02 +03:00
Karrar
63fabfadda
Fixed an issue where targeted RPCs with target: RpcPeers.Everyone were not invoked on the target player if the caller was the target player.
2025-07-16 01:14:06 +03:00
Karrar
035bc58c2b
Fixed issue with accessing Length getter of Network Array Structs.
2025-07-16 00:14:49 +03:00
Karrar
d67e299b44
Fixed a code gen issue with static RPCs with no serializable parameters.
2025-07-16 00:08:55 +03:00
Karrar
f6ea3fd0f6
Added Sandbox.GetBehavioursOfType to performantly get all scripts (in the simulation) of a specific type.
2025-07-08 15:43:01 +03:00
Karrar
864f003677
Fixed code gen issue for RPC methods where the only parameter is RpcContext.
2025-07-07 14:44:25 +03:00
Karrar
53ddf149e1
Added support for targeted RPCs and optional RpcContext parameter
...
- Enables sending RPCs to specific players
- Introduces `RpcContext` struct for contextual metadata (e.g., sender info)
2025-07-05 16:39:49 +03:00
Karrar
e19a418de5
Changed Sandbox.GetPlayerFromId to Sandbox.GetPlayerById.
2025-06-30 04:37:17 +03:00
Karrar
07feb115b3
Added a warning for [Networked] structs when float-quantizable members (e.g., float, Vector2, Vector3) are declared as fields instead of properties.
2025-06-28 04:23:33 +03:00
Karrar
a128b527ed
Fixed an issue where some clients did not receive data from the server when multithreading was enabled and the number of connected clients was odd.
2025-06-27 07:21:06 +03:00
Karrar
1b0d33d8f0
Read the description for detailed changes.
...
- Added `Sandbox.Players`: a synchronized list of `NetworkPlayerId` structs representing connected players.
- Added `Sandbox.Events.OnPlayerJoined` and `Sandbox.Events.OnPlayerLeft` callbacks, synchronized across all clients.
- Changed internal interpolation of quaternions to use `Slerp` instead of `Lerp`.
- Fixed a potential crash caused by undefined behavior when reaching `NetickConfig.MaxPlayers` and destroying network objects.
- Fixed an issue where sandbox-loaded scenes were not being unloaded during shutdown.
- Fixed a bug preventing Prediction Error Correction from functioning correctly.
2025-06-27 05:47:00 +03:00
Karrar
8e2db0f357
Fixed an issue where multiple keys with identical hash codes caused undefined behavior in NetworkDictionary and NetworkHashset.
2025-06-14 18:10:49 +03:00
Karrar
fb0bb8ba67
Improved Prediction Error Correction Smoothing by changing the correction method.
2025-06-14 18:10:08 +03:00
Karrar
0ec3babf0d
Added the sandbox name next to the scene name in the hierarchy UI in the editor.
2025-06-06 15:55:42 +03:00
Karrar
49a8a05b2a
Added Accurate Local Interpolation to Netick Config. By default, Netick uses the predicted (and thus potentially inaccurate) From snapshot for local interpolation even after rollback & resims, which results in basic smoothing over prediction errors. However, enable this if you want to always use the reconciled From snapshot.
2025-05-28 19:38:00 +03:00
Karrar
e13c8efacf
Added Head and Tail properties and GetNode method to NetworkLinkedListSnapshot to make performing a traditional linked list iteration easier.
2025-05-24 14:21:35 +03:00
Karrar
4a8d3b76c9
Improved Remote Interpolation buffering in the client. Now, it should adjust faster when network conditions improve. In addition, added Extra Interpolation Delay to Netick Config, which determines the amount of extra remote interpolation delay/buffering added in the client, regardless of connection quality. This is a value between 0 and 1, where 1 is equivalent to one send tick worth of delay/buffering.
2025-05-18 12:33:51 +03:00
Karrar
d442880219
Added GetPreviousNetworkUnorderedList to OnChangedData.
2025-05-10 08:58:27 +03:00
Karrar
6b095f9a3b
Fixed an issue with NetickEngine.CopyWorldStateTo.
2025-05-05 17:42:26 +03:00
Karrar
70f8395422
Fixed an issue with clearing the networked state memory of newly spawned network objects, which was causing the values of the networked state of previously destroyed objects to show in the newly spawned objects.
2025-05-04 23:13:15 +03:00
Karrar
c1e4405850
Fixed an issue when unloading a scene that caused a null reference exception to be thrown in Netick.InterestManagement.ProcessGroup.
2025-04-30 00:22:45 +03:00
Karrar
08c839edf1
Read the description for detailed changes.
...
- Improved memory usage in the client.
- Added methods to simplify saving/loading a snapshot of the world's networked state.
- Fixed an issue with Interpolation Delay calculation.
2025-04-29 21:47:49 +03:00
Karrar
116eea8247
Changed NetworkDictionary indexer setter behaviour to add a new element with the specified key when the key was not found in the dictionary instead of throwing an exception.
2025-04-08 00:32:48 +03:00
Karrar
ff8ea12efc
Fixed a slight issue with calculating outgoing bandwidth.
2025-04-03 21:56:28 +03:00
Karrar
5d7a60cb70
Fixed an issue with the new prefab system causing a Server sent bad data error in the client.
2025-03-26 04:39:51 +03:00
Karrar
bd6d5a22c9
Fixed not being able to set NetworkObject.InterestGroup to null.
2025-03-24 10:57:24 +03:00
Karrar
49a877f25d
Fixed an issue with Sandbox.SimulatedLossOut causing it not to affect Sandbox.OutPacketLoss.
2025-03-24 07:44:48 +03:00
Karrar
8a28181a82
Rewritten the network prefab runtime and editor systems from scratch. Now it should be less error-prone, more capable (ability to choose prefabs location, ability to select prefabs manually, and ability to provide a prefab list at runtime before starting Netick), and more performant (at editor time). In addition, Netick will no longer make any changes on prefabs at editor time, so you shouldn't see any changes on git anymore on prefabs. In addition, misconfigured prefab ids will no longer be a problem, because they are set at runtime instead of editor time.
2025-03-20 01:38:57 +03:00
Karrar
b95e68a568
Fixed an issue causing the client not to send redundant inputs.
2025-03-19 22:26:23 +03:00
Karrar
ae40087bef
Added support for custom scene handling, in addition to an addressable scene handler.
2025-03-11 07:05:45 +03:00
Karrar
79fcfc17ff
Changed OnPlayerDisconnected/OnClientDisconnected to invoke after the player/client was removed from Sandbox.ConnectedPlayers/Sandbox.ConnectedClients.
2025-02-28 23:32:09 +03:00
Karrar
33f4c44d51
Removed a testing log.
2025-02-28 04:22:47 +03:00