Multiworld randomizer
A randomizer shuffles one game. Archipelago shuffles several games at once and hides each player's progression inside the others — so finishing depends on people, not just on your own map.
Every player writes a YAML file: which game they play, which options they want. The generator reads all of them, builds each game's world — its locations (every place an item can sit) and its items — then pools every item from every world and deals them back out across every location in the multiworld.
That single deal is the whole idea. Your Hookshot may be sitting in someone else's dungeon, and their sword may be behind your final boss.
The seed is hosted as a room. Each player connects a client for their own game; the client watches the game for progress and talks to the server over a websocket. Nobody's game talks to anybody else's — everything crosses at the server.
When you clear a location, your client reports that check. The server looks up who owns the item that was placed there and pushes it to that player's client, which grants it inside their game. The server keeps the room's whole state, so anyone can disconnect and pick up later.
Placement is not random — it is random within the logic. Each world declares how its regions connect and what each connection needs. The generator only ever places an item where the player could already have reached, given the items reachable before it. Items that open new ground are marked as progression; the rest is filler, and can go anywhere.
The server speaks a game-agnostic protocol; all game-specific work lives in two places. An apworld describes the game at generation time — its items, locations, regions and rules. A client bridges the running game at play time: it must detect that a location was cleared and deliver items into a game that was never designed to receive them.
For Tears of the Kingdom that means a code mod inside the game, which the client drives over a socket: the mod reads the game's own save flags to spot checks, and writes flags or injects pouch items to hand over what the server sent.
A detail worth knowing: the client is trusted. It reports its own checks and applies its own items, so a broken bridge does not look like an error — it looks like a game where nothing ever arrives.