SetNet.Mobs.StateSync
1.2.0
dotnet add package SetNet.Mobs.StateSync --version 1.2.0
NuGet\Install-Package SetNet.Mobs.StateSync -Version 1.2.0
<PackageReference Include="SetNet.Mobs.StateSync" Version="1.2.0" />
<PackageVersion Include="SetNet.Mobs.StateSync" Version="1.2.0" />
<PackageReference Include="SetNet.Mobs.StateSync" />
paket add SetNet.Mobs.StateSync --version 1.2.0
#r "nuget: SetNet.Mobs.StateSync, 1.2.0"
#:package SetNet.Mobs.StateSync@1.2.0
#addin nuget:?package=SetNet.Mobs.StateSync&version=1.2.0
#tool nuget:?package=SetNet.Mobs.StateSync&version=1.2.0
<p align="center"> <img src="https://raw.githubusercontent.com/Povstalez/SetNet/master/assets/icon.png" alt="SetNet" width="96"> </p>
SetNet.Mobs.StateSync
StateSync replication adapter for SetNet.Mobs.
SetNet.Mobs keeps replication behind a seam (IMobReplication) so it has no dependency on any replication package. This adapter plugs that seam into SetNet.StateSync: each mob becomes a NetworkEntity of a registered archetype (interpolated position, velocity, health, target hash, cast id + remaining), so nearby players observe mobs through the same delta-compressed snapshot stream as every other entity — no separate mob replication wire.
Install
dotnet add package SetNet.StateSync
dotnet add package SetNet.Mobs
dotnet add package SetNet.Mobs.StateSync
Usage
Server — wire it in one line when building MobOptions:
using SetNet.Mobs;
using SetNet.Mobs.StateSync;
StateSyncRuntime.Enable();
MobsRuntime.Enable();
var world = server.UseStateSync(); // your StateSync replication world
server.UseMobs(new MobOptions
{
Replication = world.StateSyncReplication(), // mobs replicate over StateSync
PlayerPosition = key => positions.Get(key),
AllPlayers = () => positions.Keys,
});
Client — register the identical mob archetype schema so field indices line up:
ReplicaRegistry.Register(StateSyncMobReplication.BuildSchema()); // same archetype id (default 4100)
Nearby players must be observers of the StateSync world (they normally already are). Pass a custom archetype id to both world.StateSyncReplication(id) and StateSyncMobReplication.BuildSchema(id) if 4100 collides with one of your own archetypes.
What replicates
| Field | Type | Notes |
|---|---|---|
| Position | Vector3 |
interpolated, quantized to 1 cm |
| Velocity | Vector3 |
for dead-reckoning |
| Health / MaxHealth | Float |
health interpolated |
| Target hash | Int |
stable hash of the current target key (0 = none) |
| Cast ability hash | Int |
stable hash of the casting ability id (0 = none) |
| Cast remaining | Int |
milliseconds left on the telegraphed cast |
Discrete cues the raw snapshot doesn't convey (spawn/attack/aggro/death VFX) still ride the Channels.Mobs events on the MobClient — this adapter only handles the continuous state.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- SetNet.Mobs (>= 1.2.0)
- SetNet.StateSync (>= 1.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.0 | 102 | 8/5/2026 |