Skip to main content

users System


users System

Tracks connected users in your A-Frame multiplayer scene using Colyseus.

Overview

The users system automatically maintains a list of all connected players. It listens to Colyseus events and updates when users join, leave, or change their data.

Getting the User List

const usersSystem = document.querySelector("a-scene").systems.users;
const users = usersSystem.getUsersList();

// users = [{id: 'abc123', username: 'Alice', el: <a-entity>, playerData: {...}}, ...]

Listening for Changes

document.querySelector("a-scene").addEventListener("users-changed", (evt) => {
const users = evt.detail.users;
console.log(`${users.length} users online`);
});

User Object

{
id: 'abc123', // Colyseus session ID
username: 'Alice', // Display name
el: <a-entity>, // A-Frame entity (may be null)
playerData: {...} // Colyseus player data
}

API

getUsersList()

Returns array of all connected users.

const users = this.el.sceneEl.systems.users.getUsersList();

Event: users-changed

Fired when the user list updates.

scene.addEventListener("users-changed", (evt) => {
const users = evt.detail.users;
});

Check if User is Online

const users = scene.systems.users.getUsersList();
const isOnline = users.some((u) => u.username === "Alice");

Notes

  • User entities (el) may be null if not yet spawned
  • Usernames are resolved from playerData.userName, playerData.name, or playerData.displayName