Plain-language summary
Privacy
This is a short plain-language summary of what this website and the game store. It is not a legal document.
This website
- murdermixer.com does not ask you to sign in, and it has no account.
- It does not include analytics or tracking scripts.
- A service worker on this site stores the offline page, the stylesheet, two font files, and the small app icon. It does not store a game, a room, or a role.
The game
Start tonight opens the game at play.murdermixer.com. Play is free. There is no guest sign-in.
A host starts a room on a phone. Friends join from a link or by typing a spoken word. Each friend types a nickname. If the host has not typed a name, the start stores Host when that name is free. If another seat already has it, the night does not start until the host types a name. The room keeps that nickname until the room expires.
The phone makes a seat secret and stores it in the browser's local storage for that room, with the spoken room code. The same record can also hold the nickname. The host record also stores the join link, and that link includes the link key. Do not share that browser storage. The game server stores a SHA-256 hash of the secret. It does not store the secret itself.
The game server keeps the night until the room expires. That stored night includes the mystery and its solution: the killer role, who can hear, the killer note, and the dares.
- An unstarted lobby expires 2 hours after it is created.
- A started night expires 12 hours after it starts. If that moment arrives during a beat, a vote, the sealed envelope, or the opening, the night is extended once, by 2 hours.
- 10 minutes after the envelope is revealed, the night ends. The room is then kept for 60 minutes.
- When a room expires, the game deletes that room's stored night. If storage writes are already failing, that delete can be skipped.
- A spoken code stays reserved for 24 hours after the lobby ends, so the same word is not given to a new room right away.
- A start retried within 10 minutes opens the same room. The directory keeps a hash of the host's seat secret for that window, not the secret.
Rate limits and logs
- Creating a room, joining a seat, and looking up a code are rate limited.
- The play server reads the connecting IP from Cloudflare's CF-Connecting-IP header. It does not store that IP as text. It stores a daily HMAC-SHA-256 of the IP and the UTC date, made with a secret key. That value names a Durable Object that holds several counters: create, createHour, seats, and resolve. Each counter records how many requests fell in its window and when the window started.
- When a socket is accepted, the room log writes that room id. When storage is degraded, it writes the scope: room, directory, or rate. Those lines do not include nicknames, role text, or seat secrets.
- The game runs on Cloudflare. The Worker turns on Cloudflare's request logs, redacts query strings, and leaves tracing off. Cloudflare sees the connection. This summary does not describe Cloudflare's own records.
Selling
There is no checkout. The game catalog leaves price and purchase unset, and payments are off. Murder Mixer does not sell this information.