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 benullif not yet spawned - Usernames are resolved from
playerData.userName,playerData.name, orplayerData.displayName