PurrNet
  • 🐈Introduction
    • ‼️Unique to PurrNet
    • 💲Pricing
    • 💻Compatibility
    • 📚Addon library
    • 🗺️Roadmap
    • 🏎️Performance
      • RPC Benchmarks
      • Network Transform benchmarks
    • 🥰Support PurrNet
  • 🏁Getting Started
    • Installation
    • Minimal Setup
    • Converting to PurrNet
      • Converting from Mirror
      • Converting from FishNet
  • 📚Simple Guides
    • Easy Multiplayer Physics (input Sync)
  • 🖥️Systems and modules
    • Network Manager
      • Network Rules
      • Network Prefabs
      • Network Visibility
        • Distance condition
      • Authentication
    • Transports
      • Composite Transport
      • UDP Transport
      • Web Transport
      • Local Transport
      • Steam Transport
      • Purr Transport
      • Simulating latency
    • Network Identity
      • Ownership
      • Spawning & Despawning
      • NetworkBehaviour
      • Don't destroy on load
    • Network Modules
      • Common Pitfalls
      • Sync Types
        • SyncVar
        • SyncList
        • SyncArray
        • SyncQueue
        • SyncDictionary
        • SyncEvent
        • SyncHashset
        • SyncTimer
        • SyncInput
    • Remote Procedure Calls
      • Generic RPC
      • Static RPC
      • Awaitable RPC
      • Direct Local Execution of RPCs
    • Broadcasts
    • Scene Management
    • Client Side Prediction
      • Overview
      • Predicted Identities
      • Predicted Hierarchy
      • Best Practices
      • Input Handling
      • State Handling
    • Instance Handler
    • Collider Rollback
    • BitPacker
      • Networking custom classes, structs & types
  • Plug n' play components
    • Network Transform
    • Network Animator
    • Network Ownership Toggle
    • Network Reflection
    • Network State Machine
  • 🎮Full game guides
    • 🔫First Person Shooter
    • 🪓Survival Game
  • ✊Community Guides
    • Chat system with broadcasts
  • 🧩Addons
    • Lobby System
  • 🤓Terminology
    • Early Access
    • Channels
    • Client Auth/Everyone (Unsafe)
    • Host
    • Server Auth (Safe)
    • PlayerID
  • 💡Integrations
    • Dissonance
    • Cozy Weather
Powered by GitBook
On this page
  1. Systems and modules
  2. Network Modules
  3. Sync Types

SyncHashset

PreviousSyncEventNextSyncTimer

Last updated 5 months ago

Synchronized HashSet, or most commonly referred as "SyncHashSet" are easily definable in your code, and will handle automatically align a list between all .

Working with SyncHashSet is as easy as using a regular HashSet, only having to be mindful of who has authority.

SyncHashSet are built with the Network Module setup, meaning that you have to initialize it. Below is a usage example:

//Creates a new instance of the Hashset - `true` means it is owner auth. 
[SerializeField] private SyncHashSet<string> myHashSet = new(true);

protected override void OnSpawned()
{
    //Subscribing to changes made to the hash set
    myHashSet.onChanged += OnHashSetChanged;
}

private void OnHashSetChanged(SyncHashSetChange<string> change)
{
    //This is called for everyone when the hash set changes.
    //It will log out the Value and operation
    Debug.Log($"HashSet updated: {change}");
}

The HashSet is serialized in the Unity editor as a list, for easy debugging. You can't modify values here.

🖥️
players