HELIX 3 Docs
Web SDK

Multiplayer & Networking

HELIX's own real-time networking for web worlds — events, instances, and the hybrid server-authoritative model. Web-runtime only.

Web-only

This networking stack is part of the Web runtime. Native (Unreal) worlds use the engine's own dedicated-server networking — see Native networking. The Platform API (auth, LIX, storage, inventory) is shared; this page is not.

HELIX ships its own real-time layer — built on Colyseus — so you never touch a raw socket or a room API directly. You work with Instances, Events, and the HelixInstance server class. The transport is an implementation detail: the public vocabulary stays World / Build / Instance / Player / Event, and you import @helix/sdk / @helix/server-sdk rather than colyseus directly.

Instances

A player joins an Instance — a running session of your Build. Default capacity is 32 players (higher with review).

Prop

Type

Events

Networking is message-based. Events flow client→server, server→client, and server→all.

Prop

Type

Client

// listen
Helix.network.on('wave', ({ from }) => showWave(from));

// send
Helix.network.send('wave', {});

// request/response
const { rank } = await Helix.network.request('get-rank', { boardId: 'arena' });

Server

import { HelixInstance } from '@helix/server-sdk';

export default class Arena extends HelixInstance {
  async onEvent(player, event, payload) {
    if (event === 'wave') {
      this.broadcast('wave', { from: player.id }); // relay to everyone
    }
  }
}

The networking model

HELIX web multiplayer is a hybrid social model:

  • Movement is client-authoritative and server-relayed (default transform & broadcast ~10 Hz, 100–200 ms interpolation) — smooth, cheap, good enough for social worlds.
  • Value (wallet, inventory, rewards, moderation, membership) is server-owned. The server never trusts client events for these.

Never trust client events for value

Movement and cosmetic events can come from the client. Anything that grants currency, items, or rewards must be decided by your HelixInstance server code. This mirrors the item execution tiers.

A future authoritative mode (higher tick, fully server-owned state) is planned for competitive/ranked worlds.

The realtime envelope

Every message on the wire is a typed envelope — useful when debugging:

{
  id: string;
  type: 'event' | 'request' | 'response' | 'error' | 'system';
  event: string;
  payload: unknown;
  requestId?: string;
  senderId?: string;
  timestamp: number;
}

Reference

On this page