Transport-agnostic, server-authoritative multiplayer layer for Game Creator 2.
Online documentation: https://arawn-software-publishing.gitbook.io/networking-layer-for-gc2
Download: https://github.com/crizzler/NetworkingLayerForGC2/releases/
Release Status: Alpha
This package is currently in Alpha. APIs, behavior, and documentation may change between releases.
- A runtime networking layer for GC2 that is not bound to one networking SDK.
- A strict authority/security model designed for coop and competitive multiplayer.
- A module system that lets you wire one transport stack and keep GC2 gameplay integration consistent.
The core layer remains transport-agnostic. PurrNet is included as the currently supported concrete transport, and future transport folders can plug into the same manager/controller send/receive APIs.
- Core
- Inventory
- Stats
- Shooter
- Melee
- Quests
- Dialogue
- Traversal
- Abilities (DaimahouGames third-party module integration)
NetworkTransportBridge/INetworkTransportBridgeNetworkCharacter- Module managers/controllers (
Core,Inventory,Stats,Shooter,Melee,Quests,Dialogue,Traversal,Abilities) NetworkSecurityManager+SecurityIntegration
- Implement your bridge by inheriting
NetworkTransportBridge. - Wire outbound delegates from managers/controllers to your transport sender.
- Route inbound transport packets to the matching manager/controller
Receive*APIs. - Register ownership mappings early (
characterNetworkId -> ownerClientId) so strict validation succeeds from first request. - Normalize sender IDs through
NetworkTransportBridge.TryConvertSenderClientId(...)(clientId = 0is valid).
Use Game Creator > Networking Layer > PurrNet Scene Setup Wizard for PurrNet projects. The generic scene setup wizard is hidden automatically when a transport-specific wizard is installed. Follow this guide when no PurrNet Transport is present: https://arawn-software-publishing.gitbook.io/networking-layer-for-gc2/getting-started/quickstart
When a Player Prefab is assigned and preparation is enabled, the wizard can add NetworkIdentity, NetworkCharacter, PurrNetNetworkCharacterAuto, selected module controllers, optional NetworkVariableController for local GC2 variables, and pre-registered animation clips used by Network State, Dash, or Gesture instructions.
Use Game Creator > Networking Layer > Patches for optional source patching.
- Default recommendation: start unpatched (interception/fallback mode).
- Move to patch mode when your game has traction and abuse/cheat pressure increases.
- Core combat/inventory modules are usually first for competitive hardening.
- Quests / Dialogue / Traversal patchers remain optional for most coop flows.
See:
Start here for transport wiring:
- Quickstart
- Public API
- Patching Strategy
- PurrNet Transport
- Network Animation States
- Network Dialogue
- Network Quests
Recommended default flow: fork -> branch -> pull request.
- Fork the repository.
- Create a branch from
main(example:fix/melee-hit-validation). - Keep changes scoped and atomic (one concern per PR when possible).
- Verify Unity compiles cleanly for affected modules (no new errors).
- Open a PR with:
- What changed
- Why it changed
- How to test it
Notes:
- If you have direct write access, branch + PR in the main repo is still preferred over direct pushes to
main. - For release packaging/sync, include
Assets/Arawn/NetworkingLayerForGC2/and its generated documentation/assets as required by the package release.
This networking layer is MIT licensed.
See: