LogoLogo
HomeOnline DashboardAPIDiscordForums
SDK 1.7
SDK 1.7
  • Welcome
  • Overview
    • Features
  • Getting started
    • Get the Unity SDK
    • Setup a project
      • 1. Scene setup
      • 2. Prefab setup
      • 3. Test your game locally
        • Local testing using builds
        • Local testing via Unity's Multiplayer Play Mode
        • Local testing via ParrelSync
      • 4. Test in the cloud
        • Deploy a Replication Server
        • Share builds
    • How to... ?
    • Single-player to multiplayer
    • Video tutorials
    • Samples and tutorials
      • Package samples
      • Sample Connection UIs
      • First Steps tutorial
        • 1. Basic syncing
          • 1.1 Animation parameters
          • 1.2 Sending commands
        • 2. Physics / Authority transfer
        • 3. Areas of interest
        • 4. Parenting entities
        • 5. Complex hierarchies
        • 6. Persistence
      • Campfire project
        • Game mechanics
        • Leveraging object pooling
        • Remote interactions: Chairs
        • Remote interactions: Trees
        • A unique object with complex state
        • Custom instantiation and destruction
        • Running a server-side NPC
        • Playing audio and particles
        • A simple text chat
      • Beginner's guide to networking
    • Troubleshooting
  • Manual
    • Unity Components
      • CoherenceSync
      • CoherenceBridge
      • CoherenceLiveQuery
      • CoherenceTagQuery
      • CoherenceGlobalQuery
      • CoherenceInput
      • CoherenceNode
      • PrefabSyncGroup
      • Order of execution
    • Networking state changes
      • Instantiate and Destroy Objects
      • Supported types
      • Messaging with Commands
      • Syncing child GameObjects
      • Animation
      • CoherenceSync references
      • [Sync] and [Command] Attributes
      • [OnValueSynced] Attribute
      • Creating your own syncable member
      • Custom Component Actions
      • Rigid Bodies
      • Interpolation
    • Authority
      • Authority transfer
      • Server-authoritative setup
    • Lifetime
      • Persistence
      • Uniqueness
      • Example: A global counter
    • Parenting network entities
      • Direct children CoherenceSyncs
      • Deeply-nested CoherenceSyncs
      • Nesting Prefabs at Edit time
    • Asset management
      • Instantiating from CoherenceSyncConfig
      • Instantiate via
      • Load via
    • Scene management
    • Multiple Connections within a Game Instance
    • Baking (code generation)
      • Conditional compilation
    • Replication Server
      • Rooms and Worlds
      • Replication Server API
    • Simulators (Servers)
      • Scripting: Client vs Simulator
      • Run local Simulators
      • World Simulators
      • Room Simulators
      • Advanced Simulator Authority
        • Simulator Query Transfer
      • Simulator slugs
      • Build and Deploy
      • Command-line arguments
    • Client Connections
    • Optimization
      • Areas of Interest
      • Level of Detail (LOD)
      • Profiling
      • Simulation Frequency
    • Project Settings
    • Advanced topics
      • Big worlds
        • World Origin Shifting
        • Load balancing
      • Competitive games
        • Simulation Frame
        • Determinism, Prediction and Rollback
      • Team workflows
        • Version Control integration
        • Continuous Integration
      • Schema explained
        • Specification
        • Field settings
        • Archetypes
      • Code stripping
      • Replication Server CLI
      • Single-player gameplay
    • Scripting API
  • Hosting
    • Choosing where to host
    • coherence Cloud
      • Online Dashboard
      • Manage Worlds
      • Configure Rooms
      • Player Accounts
      • Game Services
        • Lobbies
        • Cloud Storage
        • Key-Value Store (Legacy)
      • APIs
        • Worlds
        • Rooms
        • Lobbies
        • Cloud Storage
        • Key-Value Store (Legacy)
    • Peer-to-peer
      • Implementing Client hosting
        • Steam Relay
        • Epic Online Services (EOS) Relay
        • Azure PlayFab Relay
  • Support
    • Release notes
    • Glossary
    • Unreal Engine support
    • WebGL support
    • ECS / DOTS support
    • Known issues
    • Upgrade guide
      • Upgrade 1.6 -> 1.7
      • Upgrade 1.5 -> 1.6
      • Upgrade 1.4 -> 1.5
      • Upgrade 1.3 -> 1.4
      • Upgrade 1.2 -> 1.3
      • Upgrade 1.1 -> 1.2
      • Upgrade 1.0 -> 1.1
      • Upgrade 0.10 -> 1.0
      • Upgrade 0.9 -> 0.10
    • Credit cost & pricing
    • Report a bug
Powered by GitBook
On this page
  • Connect
  • Spawn the player
  • Spawn or destroy a network entity
  • Synchronise a value over the network
  • Find other connected Clients
  • Send a message to another Client
  • Move all connected Clients to a new scene together
  • Run logic on the server
  • Do client-side prediction
  • Create a chat

Was this helpful?

Export as PDF
  1. Getting started

How to... ?

A collection of frequently asked questions, and where to find the answers

Was this helpful?

Connect

All Clients have to connect to a Replication Server, which can or .

Spawn the player

There is no specific place to designate a special . Any script can create it, by just instantiating a Prefab.

Spawn or destroy a network entity

Spawning is done by simply instantiating a Prefab that has a CoherenceSync, using the Instantiate() API. Same for removing entities, using the Destroy() API. Read more about .

Synchronise a value over the network

Syncing individual values of the can simply be done using the . If a type is not supported, you can send the value using a as an index, or by reducing it to a byte array, and reconstructing it on arrival.

Find other connected Clients

provide a view on who is connected at any given time.

Send a message to another Client

Move all connected Clients to a new scene together

Run logic on the server

Do client-side prediction

Create a chat

Messages (or RPCs) in coherence are called . We also have a video on .

To make all connected Clients move to a new scene, you can create a method that loads the scene and mark it as a . Then, from one of the Clients you would send that Network Command on all others (and to themselves) by selecting as destination MessageTarget.All.

Servers in coherence are called . You can also watch an .

To allow client-side prediction, start by on the properties you want to do prediction for. Implement your prediction code, and listen for incoming updates by . When the update arrives, you can reconcile the predicted state and the new, incoming sample in a way that fits your game best.

To create a functionality, you can leverage Network Commands to send strings (or byte arrays) to all connected Clients.

A pre-game chat can also be created by leveraging .

run locally
in our cloud
player Prefab
instantiating and destroying
supported types
CoherenceSync component
Network Command
ClientConnections
Network Command
disabling automatic updates
hooking into update callbacks
simple in-game chat
Network Commands
Authority and Commands
Overview of Simulators
Simulators
Lobbies