authoritative-server

Coordinate a headless authoritative server for Decentraland scenes with server-side validation.

3|Updated Apr 13, 2026
One-click install
npx skills add https://github.com/decentraland/sdk-skills --skill authoritative-server
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: authoritative-server
Source: https://github.com/decentraland/sdk-skills/tree/main/authoritative-server
Command: npx skills add https://github.com/decentraland/sdk-skills --skill authoritative-server

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Build a headless server to govern multiplayer in Decentraland scenes, enabling server-side validation, anti-cheat, and centralized storage.

Core Features & Use Cases

  • IsServer() branching to run server logic and client code in a single codebase.
  • registerMessages() for structured client-server communication and event-driven gameplay.
  • Storage (world and per-player) and EnvVar usage for persistent configuration and secrets.
  • Clear project structure guidelines to separate server, client, and shared definitions, with environment-aware deployment.

Quick Start

Enable authoritative multiplayer in scene.json and organize your code into server, client, and shared directories following the provided pattern.

Frequently Asked Questions about authoritative-server

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up an authoritative multiplayer server for Decentraland scenes?

To set up an authoritative multiplayer server, enable the feature in your scene.json and structure your codebase into separate server, client, and shared directories. This layout governs centralized game state and ensures secure messaging.

What is server-side validation and how does it prevent cheating in multiplayer worlds?

Server-side validation uses a headless authoritative server to govern multiplayer interactions, ensuring centralized game state and secure messaging. This approach validates client actions before applying them, providing anti-cheat mechanisms for Decentraland Worlds deployments.

Can I run server logic and client code in a single codebase for Decentraland?

Yes, you can run server logic and client code in a single codebase by using the isServer() branching mechanism. This allows your authoritative server to execute specific server-side operations while sharing definitions with the client.

How do I register messages for client-server communication in a Decentraland scene?

You register messages for structured client-server communication by using the registerMessages() function. This enables event-driven gameplay by defining clear messaging protocols between the client and the authoritative server.

Does the authoritative server support persistent storage and environment variables?

Yes, the authoritative server supports persistent storage for world and per-player data alongside EnvVar usage. This combination manages persistent configuration and secures secrets required for centralized multiplayer game state.

When do I need an authoritative server versus peer-to-peer multiplayer for Decentraland Worlds?

You need an authoritative server when your multiplayer Worlds deployment requires centralized game state, anti-cheat mechanisms, and server-side validation. This approach is necessary for secure messaging and persistent storage that peer-to-peer architectures cannot guarantee.