Co-op

Up to four babies, peer-to-peer, no dedicated server. Multiplayer keeps working on GitHub Pages because it's all PeerJS under the hood.

Hosting and joining

Keep the host's tab open. The host is the server. If it closes, everyone else is disconnected and returned to the menu.

One player per device, same version

Each browser counts as one player. If the same device joins a room twice (a double-clicked Join button, or a second tab), the older connection is closed with a message and only the newest one keeps a body — no duplicate players finding double loot or taking damage twice. A host cannot join their own room from another tab.

Everyone must be on the same version of the game (shown at the bottom of the main menu). A different version builds a slightly different school, so doors and furniture would not line up; joining a mismatched host shows a message telling both players to refresh (Ctrl+F5).

What the host owns

The host runs the actual simulation: the phase clock (day/night timer), the generator, Bob, Grump, the toddlers, all loot rolls, and every job on Mrs. Honeywell's list. It mirrors that state to every other player continuously. A joining client owns only its own body's movement — literally everything else it does (fuelling, repairing, cleaning a mess, bandaging a hurt toddler, dropping an item, hiding, answering Grump) is sent to the host as a request, applied there, and the result comes back in the next update. Nothing a joiner does exists only on their own screen.

The school itself is never transmitted as geometry: the host sends one number (the seed) and the phase/quest/mess/door state, and every client's machine regenerates the identical building locally from that seed. A player joining mid-run is additionally sent the current door, light, mess and quest state on top of the seed, since those can't be recomputed from the seed alone once the run is in progress.

Pausing doesn't pause the school

In solo play, opening the pause menu freezes the whole game. In co-op, it does not: the phase clock, Bob, Grump, and everyone else keep running for the rest of the group even if the host has a menu open. Only your own inputs stop while a menu is open.

Going down, dying, and reviving

Escaping together

Once the front doors unlock (see Nights & Difficulty), any single player reaching them and leaving ends the run as a win for the whole group — everyone still alive shares the escape, whether or not they personally walked out.

What stays local

The Pokémon-card boy (the Card Kid) and his encounter with the Taker are deliberately not networked — everybody who triggers it gets their own private version, on their own screen, invisible to teammates. See Card Boy & the Taker.

The same is true of Jerry, Meredith, and the Big Boys Club cutscene — each player gets their own Jerry, their own Meredith, and their own one-time Big Boys Club scene (with a stand-in Grump for the scene, while the real one is hidden). The Big Boys Club's resentment drop and the toddler/quest side effects of these encounters are the only parts that reach the host: your teammates never see the scene itself. See Jerry, Meredith, and The Big Boys Club.

Minigames don't pause the school for anyone else

While you're stuck in one of Jerry's games or Meredith's lunch line, nothing hunts you specifically — but in co-op, unlike solo play, the rest of the school keeps running for your teammates the whole time. Coordinate accordingly: getting cornered by Jerry mid-chase can cost your team real time. See Minigames.

Searching together

Two players can search the same container back to back; the host tracks one shared search count per prop, so repeated searches run out for the whole team, not per-player — see Searching.

Chat

Press T to open a chat line (co-op only), type your message, and press Enter to send it to the group.

Grump the Baby Destroyer Wiki · last updated 2026-09-13 · matches game commit af3955c Play the game · Game source