WorldServer

A server for the Worlds.com WorldsPlayer, written from scratch in C++20. No external dependencies.

The Worlds.com servers went offline in August 2024 and never came back. This is a complete, self-hosted replacement so the worlds keep running.

./build.sh        # configure, compile, run the test suite
./run.sh          # world server + upgrade server + admin console
./bin/worldsctl   # moderate, announce, inspect

Guide: running a server →

What it is for

This one is the reference implementation. It speaks the original protocol and adds nothing on top of it, which means anything written against Worlds as it was behaves here exactly as it did then. That constraint is the point of the program: new ideas go in AikoWorlds, and this stays still.

It handles presence, chat, movement, rooms, avatars, buddy lists, persistence and moderation, and it carries its own HTTP server for worlds, avatars and textures so you do not need a second one.

The three binaries

BinaryWhat it is
worldsd The server itself. Reads server.conf and worldsd.ini, listens on 6650, and serves content over HTTP on its own port.
worldsctl The control tool. who, kick, ban, mute, grant privileges, make accounts, broadcast announcements. Talks to a running worldsd.
fakeclient A minimal client that reproduces the handshake and prints what comes back. This is the one that saves you time — it tells you whether a problem is in the server or in the client without starting Wine at all.

How it is laid out

WorldServer/
├── build.sh              compile + test
├── run.sh                start everything (reads server.conf)
├── server.conf           ports, MOTD, account policy
├── worldsd.ini           admins, IP pinning, rate limits
├── server/               C++ source
├── bin/                  worldsd, worldsctl, fakeclient
├── client/               preconfigured WorldsPlayer (not in git)
├── content/              everything served over HTTP
├── data/                 accounts, friends, rooms, bans (not in git)
├── docs/                 protocol reference and guides
├── scripts/              mirroring, publishing, service install
└── systemd/              user service unit

The documentation

docs/ is the protocol reference the server was written from: seventeen documents covering the wire format byte by byte, all thirty-one commands, the login handshake with real dumps, every constant ready to paste into a header, how avatars are announced and filtered, and how to host your own content.

The readable summary of all that is on this site: The protocol.

Start withFor
00-quickstart.mdBuild, run, moderate, go public
17-tutorials.mdFive walkthroughs, first build to first code change
03-wire-format.mdFraming, ObjID, properties
04-commands.mdAll 31 commands, byte by byte
15-hosting-content.mdLetting people host their own worlds and avatars
16-developing.mdHow the code is laid out and how to change it