Everything you need to go from zero to multiplayer — video tutorials, core class references, and practical patterns for building networked games with GONet.
Watch step-by-step walkthroughs on our YouTube channel. The start-to-finish tutorial takes you from an empty Unity project to a fully networked multiplayer game.
Start-to-finish tutorial covering installation, setup, state synchronization, events, and deployment. New videos added regularly.
Watch on YouTubeThe building blocks of every GONet multiplayer project. Understand these classes and you can network anything.
The core networking component. Add it to any GameObject to make that object automatically networked. GNP handles identity, ownership, and lifecycle across all connected clients.
Decorate public fields or properties with [GONetAutoMagicalSync] to replicate their values across the network automatically. Similar in concept to [SyncVar] but more powerful and flexible.
Supported types:
bool, byte, sbyte, short, ushort, int, uint, long, ulong, float, double, Vector2, Vector3, Vector4, Quaternion
A convenience base class that extends MonoBehaviour with GONet-aware lifecycle methods. Provides a clean entry point for networked object logic.
OnGONetParticipantStarted() to run logic when a networked object spawns and is readyAttach alongside a GONetParticipant to add custom logic that references the networked object. Provides convenient access to ownership and authority state.
IsMine property to run owner-only logic (e.g., input handling, camera control)The global static entry point for GONet. Provides server/client detection, network-synced time, and the event bus for publish/subscribe messaging.
GONetMain.IsServer / GONetMain.IsClient — check the current role at runtimeGONetMain.Time — network-synced time property, consistent across all connected peersGONetMain.EventBus — publish and subscribe to custom events across the networkSend custom events across the network using GONet's event bus system. Events are serialized with MemoryPack for high-performance binary serialization.
IGONetEvent[MemoryPackable] attributes for binary serializationGONetMain.EventBus.Publish() and subscribe with GONetMain.EventBus.Subscribe<T>()GONet uses MemoryPack for event serialization — a high-performance, zero-allocation binary serializer for C#. It provides faster serialization than MessagePack and JSON with minimal GC pressure.
MemoryPack DocumentationReady to build? Pick up where you left off.
Get GONet into your Unity project in minutes. Step-by-step installation guide.
Compare GONet free and GONet Legendary. See the full feature breakdown.
See GONet in a real multiplayer FPS. Study the source code and patterns.
GONet v1.5 (Free) disclosure
GONet v1.5 (free) includes a legacy license/EULA remittance mechanism that may transmit a local GONet-generated file to unitygo.net. This behavior is not present in GONet Legendary (v1.6+), the paid version available on the Unity Asset Store.