Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 13:56
· 65 commits to release since this release

1.0.0 (2025-09-01)

Bug Fixes

  • @RoxDevvv revamped the NetworkOwnershipToggle inspector (8fc338e)
  • _trs being null on OnEarlySpawn for the NetworkTransform (7da4ded)
  • GetSpawnedParent can throw an error (513ce28)
  • isIk wasn't checking enough cases thx @OverGast (4dd1c01)
  • 2022 compiler error (888b003)
  • actions wasnt working with the release branch (ab1b203)
  • actual il fixes (6a8176e)
  • actually call Optimize on network animator batch (a53f8e3)
  • add HierarchyV2.onPreSpawn static event (0c02749)
  • add ServerOnlyAttribute (747451a)
  • add ShouldCleanupScenesOnDisconnect rule (dd40514)
  • add ShouldCleanupSpawnedObjectsOnDisconnect to network rules (7d05d50)
  • add a AlwaysIncludeDontDestroyOnLoadScene in the network rules (9404b77)
  • add asServer for collider registration (rollback) (92390cf)
  • add DisposableDictionary along side it's pool (baa2c99)
  • add LocalMode attribute! (23703e0)
  • add missing GetFloat(int nameHash) (db2d7ce)
  • add network manager to rpc info (960f2f8)
  • add onPreProcessRpc and onPostProcessRpc to the RPCModule (c588685)
  • add PurrSceneInfo to all damn root objects (35765ab)
  • add StartHost variant with summary (01619d1)
  • add UTF8 encoding helper (68409ce)
  • add writers for GameObject and Transform (a569809)
  • added a changelog (13af73d)
  • Added ability to add and remove state nodes dynamically (35dcc5f)
  • Added connection UI example (36be104)
  • Added create overloads for disposable types (6650be1)
  • Added custom unity web request extensions for build support in earlier versions (ac64eb4)
  • Added Disposable HashSet creation (9f1b2e3)
  • Added disposable list static creation (101cf00)
  • Added getter for previous state node (598d575)
  • Added list getter on SyncList (75f487f)
  • Added previous valid to state machine (3b2f261)
  • Added proper asset post processing to network assets (c10f7fe)
  • added purrnet settings to strip server code (experimental) (b338ff1)
  • Added summaries to SyncInput (bc21113)
  • Added sync list initialization w. data (28a588a)
  • Added SyncInput network module (b15f979)
  • Additional safety added to packer of gameobject and transform (20f3623)
  • Addon library fixed for manifest handling (7b13f01)
  • Addon library image request handling improved (49eccf7)
  • allow DontPack to be at the type level (354f271)
  • allow for manual despawning too (0a01be8)
  • allow for null values when reading classes with inheritance (86db192)
  • allow for value modifiers for the delta module (c0ddf66)
  • allow passing rpcs as parameters, aka Action<> etc (fb87fef)
  • allow player spawner to ignore rules (77a0f41)
  • allow reliable tick events (18858ae)
  • allow to dynamically register colliders for rollback history (2d2762b)
  • allow to filter purrnet's scene object discovery (522ef9d)
  • allow to get latest NT state without relying on execution order and weirdness with parenting (ba502e8)
  • allow to not sync specific hashes (6b65429)
  • Allow to save bandwidth to file and then load it in the editor (2117e33)
  • allow to skip scene auto spawning (204987c)
  • allow to teleport network transform (aka clear interpolation) (8dd6f33)
  • allow UDP transport to poll events on update (8c43b15)
  • Allowing NT to easily force sync (8eb4178)
  • also cleanup on destroy (2d47451)
  • also render purrnet toolbar on clones (c3dbb1c)
  • always gen the rpc signature (1afa09c)
  • always lerp, don't cache the value (8f2b116)
  • always prepare the hash for System.Object (5315b82)
  • angle precision (6e58aa3)
  • assembly.GetTypes exception ruining my dreams (2613654)
  • async rpcs from server to server failed to complete (0f320d3)
  • async Task compiler error for IL2CPP (cc40fc0)
  • attempt at fixing steam issue (6c96b84)
  • attempt to circumvent caching (de0c54b)
  • authenticator documentation (3e2c389)
  • auto detect any network transforms and apply any interpolation offsets (a1a2065)
  • auto spawning and secene prefabs (d93fbf8)
  • automatic sync parameters cache was invalid (7330aed)
  • avoid adding null keys to dictionaries and hashsets (2d934d5)
  • avoid reading data if bones aren't ready (fca1a62)
  • Awaitable error on older versions (7cd6ad9)
  • bad import of typeof(float) (25327b3)
  • bad math (592fb0e)
  • base writing replace old pointer (23573a4)
  • batch acks for delta module (cc4c89d)
  • batch despawn packets with spawn packets (b396f3f)
  • batch initial spawn packet to ease the reliable channel (5fdfdf6)
  • better Transform and GameObject packers (6f820e6)
  • Better button placement (26d2e12)
  • better caching for NetworkIdentity reflection stuff (dfbaa43)
  • better cancellation for purrtransport (e7bbc5f)
  • better error for when sync modules miss permissions (e28df7b)
  • better error messages when spawning fails (0b6b99f)
  • better fallback serializers for delta compression (2276832)
  • better fix for subscribing and asServer issue (28f7607)
  • better interface checking (45cce33)
  • better internal packer resizing calc (ea6f39d)
  • better static generic type discovery (da5f6e9)
  • better visibility API (3af2c32)
  • bit packer tests (689c812)
  • bit packet, include base classes (47a3cd6)
  • BitPacker being in Write mode when received for Reading (7ebb8aa)
  • Bitpacker updated for improved class handling (9c42b92)
  • boost IL processing performance (7d32309)
  • BREAKING CHANGE fixed type in AuthenticationBehaviour<T>, renamed GetClientPlayload to GetClientPayload (b03e333)
  • bring default ownership back (ee39be5)
  • buffer settings for bones (f4af0eb)
  • buffered RPCs failing (619d0d8)
  • buffered RPCs sent too soon (4e8c36d)
  • buffering for forwarded RPCs (f539e0e)
  • build version info missing (7befbe1)
  • bump version (2de95c9)
  • bump version (d005f0e)
  • bump version (4d8a805)
  • ByteData serializing with size for RPC response (af4da7f)
  • cache CallInitMethods results (70e4d44)
  • cache original scene build index (93c71de)
  • call UnAuthenticateClient when player leaves (2fe172f)
  • change default to not be 'dont destroy on load' (adf889d)
  • change name of package for openupm (b759197)
  • changed scene indexing approach (6d8bf03)
  • Character controller patch added to Network Transform (67546f4)
  • check if networkAssets isnt null (1038e1a)
  • cleanup can run into destroyed identities (539dd76)
  • cleanup issues (36abd59)
  • cleanup modules (729fc3a)
  • cleanup spawnpoints (333e26e)
  • Clearing instance handler properly (c490a04)
  • client default to owner fixes for host mode (3e98bcf)
  • client to client RPCs (eb42459)
  • collider rollback for 2D physics (b7f79a4)
  • Collider3DExtensions for other casting methods (dfeac1f)
  • commit package.json (863d7fc)
  • Compare synclist delta when receiving full state (24aca2f)
  • compiler warnings in tick manager (7fa1d3b)
  • composite transport (4c84b41)
  • composite transport multiplying events on reconnect (285eac3)
  • composite transport server shutdown out of range exception (17ec4db)
  • compression was broken due to silly mistake (781ba5a)
  • context menu doesnt support parameters (b91d5ec)
  • copy managed types when calling RPCs locally (28b7091)
  • copy player list for visibility manager (aa01187)
  • Correct push (a2bbc9b)
  • create scene component and save editor hashes for builds (bad1cb0)
  • custom dela packer for NetworkID? is obsolete now (353082c)
  • decrease general bandwidth usage (261a145)
  • decrease the delta packer overhead (0a1b3d7)
  • delay observer events until all visibility is done (b783d1b)
  • delay prefab generation one frame after OnValidate to avoid warnings (f595816)
  • delayed observer events would cause issues when it was despawned (7078c4e)
  • delta compression issues (f2d9814)
  • delta list packing (7392b4b)
  • delta packer for generic System.Object (479b535)
  • delta serializer for basic unity vectors (3acc4e3)
  • despawn events not triggering properly in Host mode (aac86b7)
  • despawn events triggering other despawn events (c3b75d7)
  • Destroy with timer not working as intended (4c2f4ff)
  • Destroying any component on a spawned object despawns it (16a7fb3)
  • Dictionary pool domain reload safety added (11c1c68)
  • diposable dic packer stuff again (707fcb8)
  • Disconnect fixed update from OnTick (1b06c89)
  • disposable dic delta writer (73b7561)
  • disposable list leak detection and GC reduction (02be3c5)
  • disposable list packer issue (23598b9)
  • disposable list writer doesn't account for null list properly (bcf1b01)
  • DisposableList stuff (ab4eb21)
  • dispose bones when destroying object (f92b774)
  • disposing stuff (6b74e68)
  • do ownership stuff on early observer added (e5724c6)
  • don't block TriggerOnOwnerChanged (13ccc68)
  • don't change reflection values when receiving but controller (aka host) (dcd25ed)
  • don't duplicate network transform entries (923bad8)
  • Don't modify fixed delta time for real I hope (1cb4875)
  • don't put skipSceneAutoSpawning in the pool (e84f639)
  • don't read optimistic out-of-bounds transform data from clients (1029322)
  • don't register multiple times for host (686a883)
  • don't sync parameters controller by curves (9f71243)
  • dont call asServer false if not client and vise-versa (e610b3c)
  • dont check build index manually (d4329db)
  • dont create a server object until we need it since it causes issues (801db42)
  • dont destroy stuff we shouldnt (ac5521e)
  • dont hash the id you dumb nut (f79bc12)
  • dont reconcile hashes that should not be synced (2fc4c31)
  • dont send despawn message on client disconnecting (904f503)
  • dont send empty packets (91a1832)
  • dont use System.Threading.Tasks.Task.Yield due to webgl (8c358bb)
  • DontPackAttribute only works for field (5846ecd)
  • double ticks! (9f74d3e)
  • Drawing purr buttons in network identity scripts (20e9267)
  • duplicate sending of scene events causing some issues (ac05903)
  • dynCall is not defined (536e8c7)
  • each identity had its own pending owner which cause issues (3e336fd)
  • easier to read and click stack traces (4c928bb)
  • editor and build mismatch (2992139)
  • editor events (a0d6a83)
  • ensure that it at least replaces with empty method for ServerOnly (9750c5d)
  • enum delta packers weren't implemented (13ed11f)
  • error when owner disconnects and despawn on disconnect is enabled (c67c7e0)
  • evaluate observers before and after full spawn (9df01ec)
  • event subscription issue in network manager (84bfa6e)
  • Expanded the rtt summary (7668055)
  • explicitly get root identity in this critical call (c4215c9)
  • expose a list of PendingSceneOperation on the scenes module (9642643)
  • expose common used events on the network manager for DX simplicity (ad7fd85)
  • expose EvaluateVisibility for easy access (0731fd7)
  • Extended SyncVar callback to also include old value (ffee19e)
  • Extra initializers for old C# versions (27e2bb4)
  • fallback reader for delta didnt use new object serializer (9541da6)
  • filter NT per scene (4cb0983)
  • filter override for network stuff only (c10fa0c)
  • filter shouldn't be as broad as a GO (9c1597f)
  • find right mult function (c7bb95b)
  • for steam if localhost or local ip just connect to self (43e9019)
  • force build (08e26e4)
  • force release for testing (46e92ab)
  • forceing release (43af913)
  • forgot it here (eae97e1)
  • generic and type inheritance / polymorphism (5c5edfd)
  • generic RPCs exception logging (a6cc5a8)
  • generic type serialization (f72b1f1)
  • generic type serialization (61c59db)
  • generics were screwed by some past commits in this version (d6d5458)
  • GetLocalPlayer compiler error (ad13278)
  • Getting latest transform state before syncing (6619bbc)
  • handle the case where Transform is null when packing it (51cc083)
  • has connected owner wasnt tacking scene info account (fc67e55)
  • hide in hierarchy only (da99e58)
  • hierarchy actions needs a rework (6ce073c)
  • I blame valentin (daffef5)
  • id contains a scope too, make sure to check for that as well (c358864)
  • if base index not received on client then wait for it before spawning (d9915fa)
  • if parent type doesn't have a writer, use the specified type one (e8df49a)
  • if pending ownership is present when giving actual, delete the pending request (a100b96)
  • if server, always use the ownerServer value (9626f51)
  • if string is null, write null (047c0c9)
  • if we hit cleanup from OnDisable force close the connection (318c5ed)
  • il error (5e27ed6)
  • il errors (b52c522)
  • il errors (ba68c30)
  • IL field reference (6d7654e)
  • IL generation for Delta serializers (75f85f6)
  • IL generic resolving (9f04291)
  • IL post processing bugs by @milesizzo (6b99be5)
  • ILPostProcessing error (39db35b)
  • Improved purr buttons to work with inheritance (d7363bb)
  • improved statistics manager (8fed412)
  • include a simple version of the started event (91d7229)
  • include Cache-Control header too (86badfa)
  • include full type for generic too (4990d69)
  • include identity inspector for the state machine (49c2963)
  • include purrnet version and color buttons insteasd of showing LEDs (9612890)
  • include scale with the spawn packet (56479c6)
  • initializers for older C# versions (9df4c8b)
  • Instance handler clearing done properly (c065727)
  • Instantiate with pos and scene was behaving weird with character controllers (fc13e2f)
  • instantiate with pos, rot and scene (1cc9003)
  • interfaces and IL post processing (299325a)
  • interpolation attempt to not jitter on buffer resize (f4ef145)
  • interpolation code refactor (032bd60)
  • introduce SetDirty for syncvars (dcd8f86)
  • introduce disposable dictionary delta packers (086c701)
  • introduce HalfQuaternion (a174729)
  • introduce LateLateUpdate for nt (86c3d87)
  • introduce on earlyObserver added callback (b8d53b0)
  • introduce the Create(capacity) variant for DisposableList (4d1fab3)
  • introduce timing mode for NT (3cbd38f)
  • introduced DontPack attribute (2fea79e)
  • is host returning true when it shouldnt (12fb371)
  • isOwner returns false in OnDespawn() (0827023)
  • issue with the hierarchy builder (b6620a9)
  • just dont process NuGetForUnity (0140920)
  • LastNID patch, this needs to be reworked (16dc6d3)
  • leak checker; removing some GC for rpcs (3578dcf)
  • let it do the tickening or something (3a15fb0)
  • link the changlog (9ef043a)
  • load original scene when cleaning up (d7603ff)
  • local space network transform issues (559a115)
  • local transport (697c3a4)
  • local transport (c746154)
  • log error when trying to change parent to a different scene (8fd7b40)
  • make DontPack attribute skip creating generators entirely if at the class level (e18bf9c)
  • make a contributors display to put our community forward (0b121ee)
  • make core unity dependencies optional (12b06e1)
  • make network prefabs more robust (7654456)
  • make network transform buffer dynamic (f27426c)
  • make network transform less fragile by including a networkid (more data but we need to refactor this at some point anyways) (b79d02d)
  • make observer attributes inherit from PreserveAttribute (2e9fcf9)
  • make parent changes checks more robust (2f212aa)
  • make rpc calls work properly under coroutines (09272d1)
  • make sure client has the isSpawned boolean set to true (568e256)
  • make sure gui is enabled for purrbuttons (4462d78)
  • make sure not to unload if only one scene left (dc67398)
  • make sure scene matches since this can change (39e71d6)
  • make sure to apply the changed value (83822be)
  • make sure transport runs before default mono behaviours (3e7f11e)
  • make sure we don't create something that is already registered (78a6907)
  • make sure we dont add duplicates (ae5d159)
  • make syncvar change existing value instead of creating a new one (e9a7336)
  • make UDP timeout configurable (489db80)
  • make unified pool and fix host disconnect cleanup issues (c99d4b0)
  • make UnloadScene return an async operation (c4f1723)
  • manual spawn API patches (c034518)
  • mark manual spawns such that we handle them differently (like not populating observers automatically) (2dc77b8)
  • Merge pull request #153 from bookdude13/HasModule-Client-Fix (b531534)
  • metadata file for CHANGELOG.md (dd139fc)
  • method reference was wrong when creating getters/setters (cebdaa9)
  • method reference was wrong when creating getters/setters (1388543)
  • migrate old NetworkOwnershipToggle data (35eeb4f)
  • milesizzo aka @mgi on discord rework on prefab provider interface (8ba42f7)
  • miss-wording in the PurrTransportInspector (9774c15)
  • missing using (0f51df2)
  • mistake (685b9e9)
  • modules registering and unregistering (f10d22e)
  • more inclusive pre-processor defines (dc1a4dd)
  • more modifier delta packing fixes (c604c50)
  • more nuget tests (a6d144d)
  • more precision for angles (e481bc9)
  • more purr transport tweaks (a6da989)
  • more raycast types for rollback module (975ab10)
  • more robust register calling and skipping of assemblies that don't refrence the purrnet assembly (5daec62)
  • more test (2b237cd)
  • move retry logic to purrtransport api level (5d209a8)
  • network animator logic for owner auth (e69c326)
  • Network Asset also pull base class assets (89b0d56)
  • Network asset exclude editor namespace (11b45f6)
  • Network assets post asset processing proper push (b383377)
  • Network assets pull multiple sub assets (de49d8b)
  • Network Assets working with Sub-assets (769ff32)
  • network prefabs invalid caching (b90c66e)
  • network reflection and network assets (1adea71)
  • network transform delta compression (c080a09)
  • network transform gathers current state at the same time it also updates view for others (1508ad6)
  • network transform jitteriness (e102a28)
  • network transform not updating latest position if not controller properly (c64fe4f)
  • network transform order is deterministic now (0fca613)
  • network transform ownership change weirdness (5af65e4)
  • network transform underlying buffer miss-match (e16c830)
  • network transform, instantly register local spawns (744023d)
  • NetworkAnimator exclude sender on observer rpc (f775555)
  • NetworkAnimator not behaving properly when also server (1069944)
  • NetworkAssetsEditor and null assets (c30cc95)
  • NetworkBones adjustments (5a61a86)
  • networkbones courtesy of Resolute Games (896a018)
  • networkRules being accessed when despawned gives error (d98aea9)
  • NetworkTransform rigidbody 2d patch (a1280fe)
  • no flags for build (96c8a40)
  • Null check in SyncDictionary editor code (ef31ec6)
  • null exception for non ValueType syncvars (fbec9e5)
  • observer rpc runs twice when runLocally true on host (637dd98)
  • odin inspector support (6e072bd)
  • old value was wrong for dic delta packer (539c760)
  • on spawned as client in host not being called (3b62546)
  • only add scene if valid (fc84643)
  • only connect client once server has fully started (7d2ec28)
  • only keep latest SetX for animation (badec0d)
  • only return true for "isOwner" if client is active (39666eb)
  • only set pending owner during auto spawn if one isn't already set (41948c4)
  • only trigger if holding a prefab (05e37d1)
  • only trigger owner changed once fully spawned (35645a9)
  • onObserverAdded not being triggered for client spawned prefabs (1a1b41f)
  • OnOwnerReconnected and OnOwnerDisconnected not always firing (d1bab76)
  • onSentData added to SyncInput (a3271ae)
  • oopsie daisie (83b7668)
  • optimized PurrScene attribute (eee752c)
  • owner connected event not being fired (b6ba2be)
  • ownership change callback order (fa9ea10)
  • ownership events (9a245f9)
  • ownership execution order (ac63487)
  • pack unity LayerMask (a23e8dd)
  • packer caching problems (878e7b9)
  • Packer handling of unspawned gameobjects and transforms (cc68315)
  • packer rework (9630787)
  • pass connection to authenticator (76b40ff)
  • patch lingering process and bad hash reconstruction bug (52764b9)
  • patch lingering process and bad hash reconstruction bug (bd56f3d)
  • patch local execution flag issue (96ca28a)
  • Performance optimized network manager inspector (1d52b21)
  • Pickle resizing was causing issues, making sure it won't have to resize (754dc65)
  • ping calculations (cd7cfd7)
  • players list throws error when not ready (9450ca4)
  • pool stuff should be relative to parent (1697c4a)
  • pools being in the wrong scenes (062f546)
  • populate local player id as soon as server has it (7fddf9d)
  • possible fix for network reflection buld (3bbf58e)
  • preserve localPlayerForced (a8a9257)
  • preserve localPlayerForced (6487666)
  • preserve order for reliable ticks (1b81323)
  • profiler rpc data preview (b4b908a)
  • profiling window for network usage (2ee6514)
  • proper currentlyLoadedCount calculation (c8c784f)
  • proper comparer (a30043c)
  • proper purrnet package name (1c56ade)
  • proper unsubscribe (0a081f5)
  • properly handle multi drag editor events (b365616)
  • properly lerp NetworkTransform localScale with parent changes (9f67be5)
  • properly populate RPCInfo for runlocally (bd99145)
  • properly set cleanup stage when in host for the other module (6903e7c)
  • properly set scene as dirty (15476e8)
  • purr transport errors (19450bd)
  • PurrNetSceneProcessor error when Resources folder is missing (e72a465)
  • purrTransport also uses web sockets, fixing same issue here (b9c7f51)
  • PurrTransport cache made changing master server a pain (f642aff)
  • PurrTransport notification saying that it is meant for dev purposes only (a26a541)
  • push IsRegistered (b72a193)
  • Quick stupid fix (8804efe)
  • re-eval visibility right away when parent changes (73afec7)
  • reconcile animator state on owner switching (56c1b91)
  • records (983728a)
  • refactor player spawner to simplify it (a0f1269)
  • refactoring AreEqual helpers for the packer (20b2c70)
  • reference type for pooling and keeping references (9b174f0)
  • register functions were being stripped (63e0b5f)
  • release (4da2001)
  • remove cheetah data from being on by default (1e3e7a5)
  • remove Octokit.Net dependency (5331439)
  • remove readonly from ApplyTo method (b3a0d13)
  • remove steamworks dependency on util code (20af4f5)
  • Remove sync tick fail log (555be9b)
  • remove UniTask as a dependency (725cabf)
  • Removed locking of fixed delta time (ba09d1d)
  • removed unnecessary unsubscribe from broadcasting setup (ca17934)
  • removing ownership bug (995e891)
  • rename rollback methods and further test them (5f10efd)
  • replaced UDP transport (101f649)
  • requireOwnership rule wasn't being checked when receiving RPCs (1f56433)
  • retry for purr transport if first fails (8330de0)
  • return value of ValueModifier wasnt necessary (ed0d668)
  • revert (f6ffe42)
  • revert UDP transport (04b6625)
  • reverted bad changes (94914f4)
  • rework how RPC are called (0f3c4f1)
  • rigidbody moving weirdly if pooled (5cc8524)
  • robust identity events (exceptions won't break flow) (0a820d1)
  • rollback some transport tests (ef7b239)
  • RPC buffering bug with scene objects (eec3e67)
  • rpc not found issue (afdf69c)
  • RPC signature was referencing wrong localPlayer in NetworkModules (a9f3dd8)
  • RPC signature was referencing wrong localPlayer in NetworkModules (fb40ee1)
  • rpc stuff? (3568eef)
  • Safeguard state changes (881d215)
  • Safeguarding sync types (8a34c82)
  • scene cleanup logic (558505a)
  • scene errors (dd54ba6)
  • scene initialization timing (cbd4b02)
  • scene load events (63dbc5c)
  • scene loading issues (fed6dcb)
  • scene loading observer issues on host (8487e94)
  • scene module cleanup (8c6177d)
  • Scene objects spawn issue for HOST (6cf0b02)
  • scene stuff (469a70d)
  • sceneLoaded for host error isn't an issue, events are triggered when ready (73bf266)
  • send latest state if not owner auth on NT (1a6aef5)
  • send pending owner until hierarchy v2 is out (04f37f0)
  • send RPCs on despawn events and syncvar forces last value update (da3f59d)
  • senderId in RPCInfo was wrong (a03686a)
  • separate transport update into ReceiveMessages and SendMessages (c5909b8)
  • serialize stacks and queues (5a19c2c)
  • serializer issues (574d201)
  • server only spawn events being wobbly (2b1cbe6)
  • server overriding client position in network transform (9ce93a4)
  • server rpc's on server should not use the network (06b6d9d)
  • server RPCs being called twice on host (b261cc5)
  • Server Stats added to statistics manager (37a49ec)
  • server+client auto start breaks if only client succeeds; clearer stack trace when RPC body throws (d7c2ed5)
  • set target frame rate to tick rate for server builds (b1fc358)
  • setting parent to root (d37d741)
  • short circuit was causing invalid IL (93fad3a)
  • simplify generic logic (2a48bf3)
  • simplify NetworkReflection.cs code to use object type instead of streams (a4a8828)
  • simplify packing to avoid stressing serializer for auth system (3417cfa)
  • skip certain types without warnings (6664408)
  • skip deep processing of certain assemblies (6fe1411)
  • skip whole numbers (dbd72ff)
  • small packets gave division by zero for fossil deltas compression (0ddd32b)
  • smoother network transform parent changes (b2c9709)
  • some changing parent issues with the network transform (bee40e1)
  • some mismatch on owner changed for NT (aba3ef5)
  • some missed cases for dispose here (1e751ee)
  • some ownership miss-alignment (63164cd)
  • some serialization intricacies (d8973f9)
  • some syncvar stuff (3c3e90e)
  • sort by name and resolve same name with hash (6c0c167)
  • sort via GUID instead of creation date (bec3643)
  • spawn event not being called (1852845)
  • spawn in correct scene (521bf1b)
  • spawn pos being overriden by unity (f41f191)
  • spawner issue (fe48ba7)
  • spawning and despawning on the same frame causes purrnet to freakout (2b780dc)
  • spawning duplicates on client (22c7867)
  • spawning with InstantiateParameters (ab922f6)
  • start server/client, stop server/client always calls the network manager and does it through it instead of individually, otherwise things are unpredictable (157d47c)
  • State machine double enter and exit fix (1b5fbc8)
  • State machine dynamic index handling (a61fc01)
  • state machine editor issues in prefab runtime (d0ad04a)
  • State machine exit on despawn (9884c58)
  • State machine on change callback order fix (86081f2)
  • State machine owner auth custom inspector fix (e8ce4a4)
  • State machine owner auth initialization (878c87d)
  • State machine queuing for improved consistency (4fc3fab)
  • State machine reconciliation + asServer fixes (04eb69e)
  • static rpcs in monobehaviours (e22044a)
  • Statistics for steam transport (c1c16ff)
  • Statistics manager fix (4334c69)
  • Statistics Manager fix (98b89ae)
  • Statistics manager improvements (f494ce9)
  • Statistics manager jitter (0c5d611)
  • Statistics manager versioning position fix (1539c54)
  • steam complains on WebGL (688b095)
  • steam complains on WebGL (b9cd7fc)
  • steam server not properly cleaning internal state (af3a793)
  • still prefer to call empty constructor instead of always initializing it to 0 (5c667ac)
  • Stop network transform from forcing RB sleep when not spawned (94d8527)
  • stopping steam server didn't properly close existing client connections (ea36cb5)
  • swap buffers to avoid editing collection while iterating (4d8f45a)
  • Sync Array earlier initialization (2739995)
  • Sync Array Fixes (63761e9)
  • Sync Array send on tick (5909b18)
  • Sync Array Serialized resizing (5b3f1b0)
  • Sync dictionary depending on tick (a350928)
  • Sync dictionary sending for clients (88ce60a)
  • Sync List null handling issue (5704d83)
  • sync list on late observer added (b34fcd0)
  • Sync types for strict rules (7722477)
  • SyncArray receivers were queuing operations (0d199da)
  • SyncList send on tick (27972c7)
  • SyncList shoudl not queue pending on received (eec88ba)
  • SyncTimer issues (4d8e7f4)
  • SyncVar drawer for nested generic serialization added (bff4e85)
  • syncvar equality check regression (d280ed5)
  • syncvar issue when ownerAuth (cc96997)
  • syncvar let client decide instead of server for ownerauth stuff (5b4cb65)
  • syncvar stopping to work after x time (2bb95c8)
  • TargetRPC was broken for client to client comms (fe177af)
  • testing CI (d3583a4)
  • testing NetworkBones component (7bcd4d5)
  • this interferes with server shutdown (b250122)
  • tolerance only decides if it's dirt from rest (c2551c5)
  • trigger OnEarlySpawn when catching up (9443c97)
  • triggering on scene loaded too preemptively (2171deb)
  • TriggerSpawnEvent might have been called multiple times (95659c3)
  • try catch silently the CallAllRegisters reflection step (091b425)
  • try to be more careful with errors here (3beb8d5)
  • trying to fix nuget package issues (bbf83d6)
  • trying to open non prefab gameobject (cedb91b)
  • tuples were breaking code stripping (2ec1406)
  • type error deeper error message (06904ef)
  • UDP transport reconnection (c15c6a5)
  • ulong delta packer (01445ae)
  • undo early client id setting as it was incorrect (285268b)
  • undo last attempt at fixing bug since it created more edge cases (ef9699f)
  • undo mess (9f0f26c)
  • undo serialization order of base type (d8c8560)
  • unity 6 color thingy (4344e4e)
  • unity version issues (f8c90e2)
  • UnityProxy fails if manager doesn't have prefab provider (fd2e674)
  • unityProxyType being null caused IL issues (15a85cd)
  • unload after the load request (d339419)
  • unload event (8cf362a)
  • use AssemblyQualifiedName instead of FullName (a0afe55)
  • use fallback writer/reader for types that aren't registered (9d3cc9f)
  • use unscaledDeltaTime for NetworkTransform.cs (77c23c9)
  • Valentin you monkey (386d08d)
  • Vector2/3Int serializer (7c3b834)
  • version mismatch issue editor/build (2ebe5a8)
  • web transport weirdness (caused network transform bizzardness) (04ae8e3)
  • webgl builds (4dccfa5)
  • weird ownership order (634ed88)
  • when adding connection make sure it's a new ID (a61f451)
  • when host instantiates with 'Default Owner: Spawner If Client' make sure client gets ownership (c790a33)
  • when interpolation buffer is full, remove up until min buffer size (adcc020)
  • when sending a target rpc to local player just call it locally (2982811)
  • whitelist dirty wasn't being executed (7bb9351)
  • write read concrete NetworkIdentity type (37cdd12)
  • write/read with modifier bad history (b8a7e3c)
  • writer for Ray2D (24587cd)
  • wtf, how did i not see this before (541652c)

Continuous Integration

  • release: 1.13.0-beta.31 [skip ci] (b1a396c)
  • release: 2.0.0 [skip ci] (8610eb5)

Features

  • add compressionLevel to RPC attributes (f67b01b)
  • add CompressedVector2 for 2D vector compression (57a0213)
  • Add implicit conversion operators for CompressedVector3 <-> Vector2 (b44f7b5)
  • add Packer.HasPacker and DeltaPacker.HasPacker (a643b7b)
  • add SaveHasherInFile component to compare hashes between editor and builds (beae3d6)
  • add toolbar display settings (f289470)
  • added a flush method for hierarchy actions (f30872d)
  • added PurrMonoBehaviour (98b068a)
  • Adjustable sync tick update rate (51d5388)
  • allow custom server for the purrtransport (e835e63)
  • allow to change scene visibility dynamically (7c264bc)
  • allow to enable/disable purr buttons (7d37c56)
  • allow to force ipv4 for web transport (83756ea)
  • allow to not delta compress certain fields (f320274)
  • allow to set BitPacker position (3c9fc0a)
  • authenticator! (2d2c1f1)
  • auto math IMath<T> interface (mostly meant for prediction) (c7a9d9f)
  • auto stop when losing connection (2e7d8ab)
  • bots (36b706f)
  • Broadcast subscribe queueing added (585bc4d)
  • client/server purrnet version missmatch checker (3387274)
  • collider rollback with some tests (1961455)
  • Copy my SteamID to clipboard (8d504e4)
  • delta packing is aware of changes (9ca58fa)
  • delta serializers for basic C# numeric types (floats, ints) (93e8ebd)
  • drag drop event in editor (1d3166e)
  • Enable Pool Debug menu item (c53c455)
  • endian checks (5ebbe9f)
  • GameObjectPrototype from NetworkIdentity (9028b41)
  • include preserve attributes on types that are networked (824065e)
  • introduce BitPackerWithLength (672c623)
  • introduce RawNetManager (59aa743)
  • introduce api to HierarchyV2 module that allows to manually manage spawning and observability events for lower level control (9825580)
  • MUCH better editor GUI in my opinion :) (73205e1)
  • Network assets added (16ebe3c)
  • network manager & tweaks to the inspector GUI (17121b2)
  • Network Manager status added (9268789)
  • Network prefabs - pooling settings (e1c41b6)
  • Network server toggle added (05af05b)
  • on network started and shutdown events on the networkManager (72b65f2)
  • onStateChanged now contains data for previous and new state (0bc8fe0)
  • overriding delete behaviour in scene view and hierarchy (7ff61c0)
  • ownership! (45f70cd)
  • parameter serialization (e44c87e)
  • pickle delta data :p (17db643)
  • Purr button attribute added (322278d)
  • purrnet relay for dev purposes (c66699b)
  • PurrTransport new inspector with region selector (15aadab)
  • remove irrelevant setactives and setenableds (1b1f72a)
  • rpc buffering (wip) (87aac57)
  • scene object!! (c6dc754)
  • sending NetworkModule references over the network (a183682)
  • serializers for disposable list and hashset (f8734da)
  • simple 'TakeOwnership' context menu for NetworkIdentity (5fe79a1)
  • spawn validator for client spawning (569ef7a)
  • start flags instead of 50 booleans (4161f91)
  • State machine conditionals QoL added (5fe42f7)
  • State machine owner auth added (66913db)
  • Sync Array added (e2409b9)
  • Sync Queue added (84fae0b)
  • Sync Timer pause & resume added (c12d975)
  • Synced tick added (129ef53)
  • unity editor toolbar with purrnet state (dbdb6cb)
  • UnityProxy for instantiate and destroy (7fa4358)

BREAKING CHANGES

  • release: fixed type in AuthenticationBehaviour<T>, renamed GetClientPlayload to GetClientPayload (b03e333)
  • cleanup can run into destroyed identities (539dd76)
  • Collider3DExtensions for other casting methods (dfeac1f)
  • Compare synclist delta when receiving full state (24aca2f)
  • Correct push (a2bbc9b)
  • custom dela packer for NetworkID? is obsolete now (353082c)
  • disposable list leak detection and GC reduction (02be3c5)
  • disposing stuff (6b74e68)
  • dont use System.Threading.Tasks.Task.Yield due to webgl (8c358bb)
  • Extended SyncVar callback to also include old value (ffee19e)
  • for steam if localhost or local ip just connect to self (43e9019)
  • if parent type doesn't have a writer, use the specified type one (e8df49a)
  • Improved purr buttons to work with inheritance (d7363bb)
  • include Cache-Control header too (86badfa)
  • include purrnet version and color buttons insteasd of showing LEDs (9612890)
  • introduce SetDirty for syncvars (dcd8f86)
  • introduce LateLateUpdate for nt (86c3d87)
  • leak checker; removing some GC for rpcs (3578dcf)
  • make sure client has the isSpawned boolean set to true (568e256)
  • make sure to apply the changed value (83822be)
  • make sure we don't create something that is already registered (78a6907)
  • make syncvar change existing value instead of creating a new one (e9a7336)
  • more purr transport tweaks (a6da989)
  • more raycast types for rollback module (975ab10)
  • move retry logic to purrtransport api level (5d209a8)
  • Network assets post asset processing proper push (b383377)
  • NetworkAssetsEditor and null assets (c30cc95)
  • Packer handling of unspawned gameobjects and transforms (cc68315)
  • packer rework (9630787)
  • populate local player id as soon as server has it (7fddf9d)
  • push IsRegistered (b72a193)
  • Quick stupid fix (8804efe)
  • remove readonly from ApplyTo method (b3a0d13)
  • rename rollback methods and further test them (5f10efd)
  • retry for purr transport if first fails (8330de0)
  • Scene objects spawn issue for HOST (6cf0b02)
  • simplify generic logic (2a48bf3)
  • skip deep processing of certain assemblies (6fe1411)
  • some missed cases for dispose here (1e751ee)
  • some serialization intricacies (d8973f9)
  • stopping steam server didn't properly close existing client connections (ea36cb5)
  • syncvar let client decide instead of server for ownerauth stuff (5b4cb65)
  • trigger OnEarlySpawn when catching up (9443c97)
  • try to be more careful with errors here (3beb8d5)
  • tuples were breaking code stripping (2ec1406)
  • undo early client id setting as it was incorrect (285268b)
  • undo serialization order of base type (d8c8560)
  • use unscaledDeltaTime for NetworkTransform.cs (77c23c9)
  • webgl builds (4dccfa5)
  • when adding connection make sure it's a new ID (a61f451)

Continuous Integration

  • release: 1.13.0-beta.31 [skip ci] (b1a396c)

Features

  • add toolbar display settings (f289470)
  • client/server purrnet version missmatch checker (3387274)
  • Copy my SteamID to clipboard (8d504e4)
  • Enable Pool Debug menu item (c53c455)
  • introduce RawNetManager (59aa743)
  • introduce api to HierarchyV2 module that allows to manually manage spawning and observability events for lower level control (9825580)
  • spawn validator for client spawning (569ef7a)

BREAKING CHANGES

  • release: fixed type in AuthenticationBehaviour<T>, renamed GetClientPlayload to GetClientPayload (b03e333)
  • release: fixed type in AuthenticationBehaviour<T>, renamed GetClientPlayload to GetClientPayload (b03e333)