Skip to main content

Player Entity

Description

Player is the server-side runtime representation of a connected client.

It extends BaseEntity and implements Spatial and NativeHandle, exposing session identity, communication helpers, movement/dimension controls, transient metadata/state flags, and combat utilities.

Key Properties

  • clientID - platform client/source ID.
  • accountID - linked persistent account ID (if authenticated).
  • name - display name from player info adapter.
  • dimension - alias of routing bucket.

Methods

Communication

  • emit(eventName: string, ...args: any[]) - send a net event directly to this player.
  • send(message: string, type?: 'chat' | 'error' | 'success' | 'warning') - convenience private chat output.

Position and Lifecycle

  • getPosition() / setPosition(vector)
  • getHeading() / setHeading(heading)
  • teleport(vector)
  • spawn(vector, model?)
  • setRoutingBucket(bucket) / getRoutingBucket()
  • kick(reason?)

State & Metadata

  • setMeta(key, value) / getMeta<T>(key)
  • addState(state) / removeState(state)
  • toggleState(state, force?)
  • hasState(state)
  • getStates()

Identity and Linking

  • getPlayerIdentifiers()
  • getIdentifier(identifierType)
  • getLicense() (deprecated alias)
  • linkAccount(accountID) / unlinkAccount()

Health & Combat

  • getHealth() / setHealth(value)
  • getArmor() / setArmor(value)
  • kill()
  • isAlive()

Serialization

  • serialize() - returns transport-safe player snapshot data.

Example Usage


@Command('heal')
handleHeal(player: Player) {
player.setHealth(200)
player.setArmor(100)
player.setMeta('last_heal', Date.now())
player.send('You were healed', 'success')
}

Security Integration

Player is the first argument in server decorators such as @Command() and @OnNet(), making it the primary runtime object for authorization, validation, and gameplay actions.