Skip to content

five-on-it / packages/protocol/src/messages / encodeWelcome

Function: encodeWelcome() ​

encodeWelcome(message, levelJson?): string

Defined in: packages/protocol/src/messages.ts:1164

Serializes a welcome message as a text frame. Given the level's JSON already made (levelJson: what message.level.data stringifies to), a welcome that carries the level splices it in rather than serializing the level again: a city's level is megabytes, and the server welcomes a player on its loop between two steps. A welcome that names the level by its hash ignores it.

Parameters ​

message ​

clientId ​

number = ...

debug? ​

boolean = ...

Whether the server honours this client's debug commands (the legend's chasers, Go to, the clock and the weather; off, it drops them and tells the client nothing). Always sent; absent from an older server, which may take them or not: unknown, never off.

garages? ​

{ respray?: number; store?: number; } = ...

garages.respray? ​

number = ...

garages.store? ​

number = ...

ghostTicks? ​

number = ...

items? ​

object[] = ...

level ​

{ data?: { cameras?: object[]; containers?: object[]; districts?: object[]; doors?: object[]; dummies: object[]; escalators?: object[]; garages?: object[]; groundHalfSize: number; ladders?: object[]; lifts?: object[]; meshes: Record<string, { groups: object[]; indices: number[]; vertices: number[]; }>; nailStrips: object[]; npcs?: object[]; placements: object[]; roads: object[]; schemaVersion?: number; shops?: object[]; sky?: { climate: string; clock?: { pace: number; start: string; }; }; spawners?: object[]; spawns: object[]; water?: object[]; }; name: string; ref?: { bytes: number; hash: string; }; } = ...

level.data? ​

{ cameras?: object[]; containers?: object[]; districts?: object[]; doors?: object[]; dummies: object[]; escalators?: object[]; garages?: object[]; groundHalfSize: number; ladders?: object[]; lifts?: object[]; meshes: Record<string, { groups: object[]; indices: number[]; vertices: number[]; }>; nailStrips: object[]; npcs?: object[]; placements: object[]; roads: object[]; schemaVersion?: number; shops?: object[]; sky?: { climate: string; clock?: { pace: number; start: string; }; }; spawners?: object[]; spawns: object[]; water?: object[]; } = ...

level.data.cameras? ​

object[] = ...

level.data.containers? ​

object[] = ...

level.data.districts? ​

object[] = ...

level.data.doors? ​

object[] = ...

level.data.dummies ​

object[] = ...

level.data.escalators? ​

object[] = ...

level.data.garages? ​

object[] = ...

level.data.groundHalfSize ​

number = positive

level.data.ladders? ​

object[] = ...

level.data.lifts? ​

object[] = ...

level.data.meshes ​

Record<string, { groups: object[]; indices: number[]; vertices: number[]; }> = ...

level.data.nailStrips ​

object[] = ...

level.data.npcs? ​

object[] = ...

level.data.placements ​

object[] = ...

level.data.roads ​

object[] = ...

level.data.schemaVersion? ​

number = ...

level.data.shops? ​

object[] = ...

level.data.sky? ​

{ climate: string; clock?: { pace: number; start: string; }; } = ...

level.data.sky.climate ​

string = ...

level.data.sky.clock? ​

{ pace: number; start: string; } = ...

level.data.sky.clock.pace ​

number = ...

level.data.sky.clock.start ​

string = ...

level.data.spawners? ​

object[] = ...

level.data.spawns ​

object[] = ...

level.data.water? ​

object[] = ...

level.name ​

string = ...

level.ref? ​

{ bytes: number; hash: string; } = ...

level.ref.bytes ​

number = ...

level.ref.hash ​

string = ...

places? ​

string[] = ...

playerDamage? ​

"on" | "off" | "rivals" = ...

playerEid ​

number = ...

protocolVersion ​

number = ...

rtc? ​

boolean = ...

Whether the server offers a WebRTC data channel for the unreliable frames (rtc.ts): the client may then offer one; absent when it does not.

safeZones? ​

object[] = ...

tick ​

number = ...

type ​

"welcome" = ...

version? ​

string = ...

The server's release (RELEASE_VERSION), shown when its protocol is not the client's; absent from servers before 0.42.

zones? ​

object[] = ...

levelJson? ​

string

Returns ​

string