HELIX 3 Docs
Introduction

Quickstart

From zero to a published, playable multiplayer world in a few minutes using the HELIX CLI.

This builds and publishes a real multiplayer world on the Web runtime — the fastest path to a playable link. Native (Unreal) setup lives in the Native SDK section.

Prerequisites

1. Create a world

Scaffold from a template.

npx @helix/cli create my-world --template multiplayer-starter
cd my-world
npm install

Run it locally. This starts the world with a local instance and hot reload.

helix dev

Open the printed URL. You're now in your world as an authenticated player.

2. Write a little logic

Client code talks to the Platform API and to your server via Events. Here we greet the player and read their balance:

src/client.ts
import { Helix } from '@helix/sdk';

await Helix.init({
  worldId: window.HELIX_WORLD_ID,
  launchTicket: window.HELIX_LAUNCH_TICKET,
});

const me = await Helix.profile.getMyProfile();
const wallet = await Helix.wallet.getBalance();

console.log(`Welcome, ${me.displayName} — you have ${wallet.lix} LIX`);

Server code extends HelixInstance and owns authoritative state:

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

export default class MyInstance extends HelixInstance {
  async onPlayerJoin(player) {
    this.broadcast('player-joined', { id: player.id, name: player.displayName });
  }

  async onEvent(player, event, payload) {
    if (event === 'wave') this.broadcast('wave', { from: player.id });
  }
}

3. Publish & play

Validate your world against the platform manifest and rules:

helix validate

Deploy. This creates an immutable Build and makes it playable from a link.

helix deploy

Share the link. Anyone can open it and play instantly — as a guest if they're not signed in.

Where to go next

On this page