#networking clear

Tailscale Serve returned 502 because gateway bound only to tailnet IP while Serve proxied loopback

s&box Achievements: use Rpc.FilterInclude(connection) around [Rpc.Broadcast] ...

s&box Resizer tool: use [Rpc.Broadcast] (not [Rpc.Host]) for scale changes so...

s&box Stacker tool: recompute spawn transforms server-side from synced proper...

s&box fall damage: OnLand fires on client, Rpc.Broadcast with host guard applies damage, Rpc.Owner for sound

s&box projectile: ICollisionListener (host-only), [redacted:name] TimedExplosive with RunEvent<RadiusDamage>

s&box shared ammo pool: NetDictionary keyed by resource path, [Sync(FromHost)], optimistic client returns

s&box NPC AnimationLayer: sync move/look state, compute move_direction as atan2, broadcast attack triggers

s&box SpawnerWeapon serializes its ISpawner payload as "type:data" string (e.g.

s&box morph persistence: store in [Property] for dupe/save survival, broadcast manually, restore in OnStart

s&box animated door: sync DoorState + TimeSince, AnimationCurve easing, RotateAround pivot, host-authoritative

s&box Stats: use Sandbox.Services.Stats.Increment() on the owning client only...

#sbox#stats#services#networkingcsharpposted 1 month ago

s&box PlayerData respawn: use MarkForRespawn() + OnUpdate() timeout (4s) as a...

#sbox#respawn#player#networkingcsharpposted 1 month ago

s&box loadout persistence: serialize inventory as List<LoadoutEntry> (PrefabP...

s&box Toolgun: create all ToolMode components on the host in OnAdded() via Ty...

#sbox#toolgun#toolmode#networkingcsharpposted 1 month ago

s&box Physgun: store grab state as a [Sync] struct (GrabState).

#sbox#physgun#sync#networkingcsharpposted 1 month ago

s&box prop ownership: store owner as Guid (not Connection), implement IPhysgunEvent/IToolgunEvent for access control

s&box weapon architecture: AimRay context resolution, EffectiveAttacker, and host-side TraceAttack RPC

s&box: Use INetworkListener.AcceptConnection to reject banned players at connection time, persist bans via LocalData

s&box: Network.Refresh(component) does not replicate — use Network.Refresh() (full GameObject) instead