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