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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SetNet.Mobs.StateSync" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SetNet.Mobs.StateSync" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="SetNet.Mobs.StateSync" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SetNet.Mobs.StateSync --version 1.2.0
                    
#r "nuget: SetNet.Mobs.StateSync, 1.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SetNet.Mobs.StateSync@1.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SetNet.Mobs.StateSync&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=SetNet.Mobs.StateSync&version=1.2.0
                    
Install as a Cake Tool

<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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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 103 8/5/2026