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
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
| Binary | What 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 with | For |
|---|---|
00-quickstart.md | Build, run, moderate, go public |
17-tutorials.md | Five walkthroughs, first build to first code change |
03-wire-format.md | Framing, ObjID, properties |
04-commands.md | All 31 commands, byte by byte |
15-hosting-content.md | Letting people host their own worlds and avatars |
16-developing.md | How the code is laid out and how to change it |