Privacy

In short

The rest of this page is the full detail. Everything in it was read off the code that's running, not off a plan for it, and checked on 19 October 2026 — the lists of events, stored keys and caps by a test that reads them out of the code on every run, so they can't quietly go stale, and the rest by hand and in a real browser. The browser found one thing reading the code couldn't: the company that serves this site puts an analytics script on every page here, and nothing in this project asks it to (see "Who else sees a request"). And the sign-in form sets cookies, which nothing else on this site does. Nothing on this site sets a cookie since 17 October 2026 — that form is gone, and "If you sign in" has the measurement and what a browser carrying the old ones should expect. "If you are in California" says what all of it comes to under that state's law.

Where the game is about to change, the last section says so rather than describing something that isn't built.

What the game keeps in your browser

The game stores its own state under your browser's localStorage for dicelockgame.com. If that is not writable (Safari's private browsing revokes it), the game falls back to sessionStorage for the tab and says so in the console; if neither works, the game is still playable and simply forgets everything when you leave.

In the iPhone app and the Android app the first two rows below are kept in the platform's own preference store instead — UserDefaults and SharedPreferences, inside the app and readable by nothing else — because a web view's storage is the part the system is free to clear, and losing those two would cost you your scores and make you a new visitor. Everything else in the table is the web view's localStorage, as it is in a browser.

Stored under What it holds
dicelock.analytics.visitor.v1 A random id, generated in your browser the first time you load the game. It is a counting token: it says that two visits came from the same browser, and nothing else. It is also the name you sit down under when you play somebody else — a shared table's rows are filed under it, which is what the head-to-head count at the end of a match is drawn from. The seat a room code gives you is held under this id, which is what lets you lose your connection and come back to the same game rather than to somebody else's. Since 17 October 2026 it is not what holds your seat — the key in the row below is — and it is never sent to the person you are playing.
dicelock.settings.v1 Theme and world, sound and volume, reduced motion, the Endless speed and Vs Computer settings, whether the tutorial prompt has been shown, which achievements you have earned, your Endless high scores, which puzzles you have solved, how far up the Tower you have climbed, which Dailies you have solved and how long they took, and — if you are signed in — a copy of the list of things your account has been given, so the game knows what you hold while you are offline. That list is empty for everybody today: this version sells nothing.
dicelock.session.v2 The game in progress, so closing the tab and coming back does not throw away the board. Ignored after 12 hours.
dicelock.lobby.seatKeys.v1 Written only when you play somebody else. One key per shared table you have taken a seat at, newest first and at most twenty, each of them minted by this game's server the moment you took that seat and handed to no other browser. It is what holds the seat: it is how a reload, a locked phone or a dropped connection comes back to your own game rather than to somebody else's. The server keeps only a one-way hash of it, so a copy of its database is not a way into your seat, and a browser that clears its storage has lost that seat exactly as it has lost the id above.
dicelock.history.runs.v1, dicelock.history.summary.v1 The runs the History screen can replay, recorded as the moves you made. These are kept on your device and are never sent anywhere. Signing out removes them.
dicelock.leaderboard.device.v1 An older id, written only if you posted a Daily time before 16 September 2026. Your posted times and your streak are filed under it, so this browser goes on using it and nothing already on the board moves. A browser that has no id here posts under the visitor id above instead.
dicelock.account.v1 Written only if you sign in. It holds a token this game's own server issued for your account, the id of that account and the username you chose for it, if you chose one. Not your email, not your name, and nothing Clerk holds about you. The username is here so the Account screen can show it without asking the server first; the server holds the copy that counts. Signing out deletes the whole thing — and, since 13 October 2026, the settings, the history and the queued climb above with it: the device goes back to a first launch, and the account's copy on the server is what signing in again restores.
dicelock.account.signin-pending.v1 Written in this tab only, at the moment the sign-in form is shown, and removed the next time the game loads or the sign-in completes. It holds a timestamp and nothing else. It exists so that a sign-in with Apple or Google, which leaves the page and comes back, finishes without a second press. It is kept in the tab's own storage, so closing the tab discards it.
dicelock.tower.queue.v1 Written only if you are signed in and a Tower result could not be sent — you were offline, or the server was not answering. It holds that one climb, which is the same record already in dicelock.settings.v1, and it is sent and removed the next time the game reaches the server. Signing out removes it.
dicelock.analytics.queue.v1 Play events from the list below that could not be sent — you were offline, or the server was not answering. They wait here and are sent the next time you open the game. At most 500 events or 14 days, whichever comes first, oldest discarded. Nothing is added to them while they wait.

Clearing site data for dicelockgame.com in your browser removes every one of these, and signing out removes everything but the visitor id and the queued play events, which are this device's rather than your account's. Nothing is restored from the server unless you are signed in: for a guest, a cleared browser is a new player. If you are signed in, the slice of the list above named under "If you sign in" — and only that slice — is read back out of your account.

What the game sends to its server

Sixteen events, each one a short object of numbers and fixed words — except for one field on the last of them, which is the only place in the game a sentence can reach the server, and it is described below rather than buried.

A shared match against a friend sends these two events as well, in a mode of its own — pvp, never filed under Vs Computer. It sends the same counters any other game does, and it carries the match id the server minted for that match: a random id belonging to the match and not to either player, already stored on the server's record of it. What that id lets us ask is "what happened in this game", with both boards in one answer — which is the whole reason the mode is counted apart from the games against the computer. It says nothing about who you played: the other player's name is not something the game has, their visitor id is not on your events, and a shared match is never given the name of a computer opponent it did not have.

A shared match is still not stored on your device. The record of one lives on the server, which is where the History screen reads it from; the recordings your browser keeps and can replay are your own games only.

The settings sent with a page load are the seventeen that say how the game should behave: the theme, whether sound is muted, the volume to the nearest ten percent, whether the phone's haptics are on, whether a double tap rerolls a die, whether a drag swaps or slides a die, reduced motion, each of the five marks the board can put on a die (the corner numeral, the risk strip, the cursor's risk frame, the risk named in words, and the mark left where a move was refused), whether the first-visit prompt has been shown, whether the opponent's window is shown on a phone, the Endless speed, the Vs Computer opponent and the match clock. Each is one of a handful of fixed words, and what they are for is questions like "does anybody turn the opponent's window off" and "does anybody switch the die numerals on".

What you have done is not a setting, and no event carries any of it. Your high scores, which puzzles and Dailies you have solved, how far through the tutorial you are and which achievements you have earned, are in the same stored blob as the settings above and are left out of that snapshot on purpose. It is sent as your profile, when and only when you are signed in — that is the whole of what an account is for, it is the list under "The account routes" below, and a browser that has never signed in never sends it anywhere.

Every one of them also carries the schema version, the visitor id above, a session id minted fresh for the page load and never stored, a random id for the event itself, a random id for the run it belongs to, the timestamp, and a small number saying whether the page looks automated — the browser reporting navigator.webdriver, reporting no pointing device at all, or clearing a board faster than the animation allows. That last set is there so that a script hammering the game can be left out of the counts rather than counted as players.

The Daily leaderboard shows one name: your username. Putting a time on it needs an account with a username — a guest who solves the Daily is offered SIGN IN instead, and nothing is posted. A post carries the date, the device id, your time and your account id; the name on the row is the username on that account, read by the server, and nothing you type goes up with the post. Your streak follows you to a new device, and your email address never goes up, because this server never had it.

A posted time and this browser's play events share one id. Until 16 September 2026 they deliberately did not, so that a name on the leaderboard could not be joined to the events that browser sent. That changed on purpose: the two ids became one so that a question like "do the people who post Daily times play differently" can be answered at all. What it means in practice is that if you post a time, your username sits beside a random id which is also on the play events listed above. If you would rather it did not, do not post a time — the game is fully playable without ever touching the leaderboard, and a browser that has never posted has no name attached to anything.

The server refuses anything outside that list. A field it does not recognise is an error and not a column stored "just in case", and a rejected event is reported back to the page rather than quietly repaired.

That includes the counters. They are sent as one nested object, and it would have been easy to let it carry whatever the game felt like putting in it — which is exactly the free-text field the rest of this page promises does not exist. So every name inside it is listed in the code that checks it, every value has to be a whole number inside a stated range, and a name the list does not have is refused like any other. There is no key you or the game could invent, which is what makes the promise above checkable rather than a matter of trust.

The account routes, which nothing but signing in touches

Seven more requests exist, and none of them is an event. Six of them carry the game's own session token, so a browser that has never signed in never makes them at all; the seventh is a question with nothing about you in it, asked when you press SIGN IN. Who Clerk is and what it sees is the next section but one; this is what reaches this server.

In the profile What it is
theme, world, look, avatar, muted, volume, haptics, doubleTapReroll, moveStyle, reducedMotion, opponentWindow, grip how you like the game to look, sound, feel and be steered. look is which of the drawings a matched die leaves the board with you have picked. avatar is the die you picked on the Account screen — a face and a colour, nothing else — and it is the one of these other players see, drawn beside your username on the leaderboards; it is not a picture of you and nothing about it comes from Clerk. muted and volume are the whole game's sound, so silencing it on one device silences it on the next. soundsMuted is the game's own sounds under them. The music's two keys sit beside it. The music was removed on 2026-10-19 and both of its keys went with it, and soundsMuted went the same day: a blob written before that still carries all three. The music's two are read by nothing; soundsMuted is read once, to carry a silence you chose onto muted, and is then deleted from the blob. All of them are deleted with the rest of this row by Clear this device
dieNumerals, riskStrips, cursorRiskFrame, diceInfo, diceInfoChosen, refusalMarks which of the five marks the board puts on a die you have asked for, and which you have turned off. diceInfoChosen is the one that is not a mark: it records that the words row is a switch you moved yourself rather than one the game left where it was
difficulty, pace, timeSeconds, difficultyMode the Vs Computer opponent, the clock, and the Endless speed
lastPlayed which of the five modes you were last in, and when you went into it. It is what the main menu's first tab opens on, so the menu follows you between devices instead of always starting at Survival. It is the mode and not the board: no score, no seed, nothing about how the game went
highScoresC your Endless boards, best five per width
highScores the Endless boards you set before the scoring changed. The game stopped ranking them in September 2026 — a score under the old scoring and a score under the new one are not the same kind of number — and they are still kept and still synced, because you earned them and your match history only goes back 25 runs
versusRecord how many matches you have won and lost against each Vs Computer opponent. Where two of your devices disagree, the higher count on each side is kept — a match you played on your phone is not taken away by a laptop that did not see it
pvpWins how many online matches against other people you have won — one number, with nothing about who you beat. Two devices keep the higher count, never the sum
puzzles, puzzleResets which puzzles you have solved or watched the solution to, and how many times you have reset them from Settings — the count is what stops a device that has not heard about the reset putting the marks back
daily which Dailies you have solved, and nothing else about them
tutorial, firstRun, battleRun, concepts how far through the tutorial you are, whether you have been through the walkthrough the game opens with the first time you press PLAY — or the Battle walkthrough the first PLAY COMPUTER opens — or left either, and which explanation cards you have already been shown. Where two of your devices disagree on any of these, having done it wins: a lesson you finished on your phone is not taken back by a laptop that did not see you finish it
achievements which achievements you have earned, and the date each one was earned on. Where two of your devices disagree, the earlier date is kept — you earned it the first time
tower whether you have ever played a step of the Tower, which is what decides whether the Records screen draws a climb

Five things are left out because they are about one browser or one moment, and the server drops them even if a browser sends them. helpSeen, gamepadSeen and keyboardSeen are facts about one browser rather than about you — a laptop that has never had a gamepad plugged into it must not grow a page of gamepad buttons because your desktop has, and a phone must not grow a page of keys because your laptop pressed one. A Daily clock that is still running and the result of a Daily post belong to the browser that was playing. Your match history and your replays are not in it at all and never leave your device.

A fifth is dropped for the opposite reason. The copy your browser keeps of what your account has been given — the one in dicelock.settings.v1 above — is sent along with the rest of that blob and thrown away unread, because that list is this server's own answer and a browser is never allowed to tell it what you hold. Nothing else in the storage table above is uploaded.

When you play somebody else

Creating a room, or entering the code a friend read out to you, is the only part of this game that is not just you and a server. There is another player, and the server sits between you as a referee — so a little more is written down than a game against the computer writes, and this is the whole of it.

The link is a row, and it holds both ids. Creating one records the link's own random slug, the visitor id of the browser that made it and the match clock it was made with; opening it writes your visitor id into the empty seat. That row is the record of who played, and it is what the head-to-head below is counted from.

What makes the seat yours is a key, not your id, since 17 October 2026. Taking a seat — creating the room, typing the code, or opening the link — gets your browser a random key from this server, kept under dicelock.lobby.seatKeys.v1 above. That row is what makes the seat yours. The key is how the game gives you your seat back if your connection drops and you return inside ten seconds, or if the page reloads, instead of handing it to whoever arrives next. Your visitor id will not do it any more: it names you, it does not admit you, and a browser that has lost the key for a table is told that seat is not its own.

Each game played at that link is a row of its own — the two ids, when it started, when it ended, who won, and whether the other player left rather than lost. The head-to-head record you see at the end of a match is counted from those rows and from nothing else.

Your board crosses the server and is not written down. While the match runs, each page sends the other a picture of its own board fifteen times a second, and a number when an attack lands. The server passes them to the other player and keeps none of it: nothing about how you played a shared match reaches the database except the result above.

The other player's browser is handed nothing that names you, since 17 October 2026. Both screens show the running score between the two of you, and that count arrives keyed by the ids in it, so each page can tell which side is its own. Both screens still show that score, and each page is now told its own side of it by the server; what a page learns about the other player is which end of the table they are sitting at. Until that date the count arrived keyed by the two visitor ids — and that is also the id this browser posts a Daily time under, which made it more than a scoreboard needs. Giving the seat a chosen name instead is decided and not yet built; the last section of this page is where that is written down.

If you sign in

Signing in is optional, and nothing on the way to a board asks for it — it's one ACCOUNT card in Settings. What you get is your own record on every device you play on — your scores, puzzles, Tower climb and settings follow you — and a username that's yours when you play friends. What it carries is the profile listed above, and nothing else. This section is what changes about this page when you use one.

Clerk holds the sign-in, and it is Clerk that sees your email address. Clerk is Clerk, Inc., an American company whose business is signing people in to other people's sites. The screen you sign in on is this game's own, on every platform since 17 October 2026 — nothing of Clerk's is drawn and none of Clerk's code runs in your browser — but what you type there goes to Clerk: your email address, and your IP address as seen from this server, are processed on Clerk's own servers, under Clerk's own privacy policy, which is the link above and not this page. Continue with Google or Continue with Apple sends you to that company's own page and back; what Clerk and that company see of each other is theirs. Nothing in this game can promise anything about what happens there. (Until 17 October 2026 your browser loaded Clerk's script and the form was theirs; your name, if you gave one, went with it. The game asks for no name now.)

What this game's server gets back is a random id and no more. Clerk signs a short-lived token; this server checks the signature and reads one thing out of it, an id like user_3JVT… that means nothing outside Clerk. Your email address and your name are never sent to this server and are nowhere in its database. Where the Account screen greets you by name, that name was read out of Clerk's script in your own browser and drawn on the screen — it does not travel. The username on your account is not an exception to that, and the difference is worth being exact about: it is a handle you typed into this game, for other players, and no part of it is read from Clerk or from anything Clerk knows about you.

Your visitor id is attached to that user id, which joins the play events this browser had already sent to your account: two of your browsers count as one player rather than two. It records nothing new about you, and it is one-way — a visitor id that belongs to one account is never moved to another, so a shared browser gives the second person a fresh id rather than the first person's history.

Sync sends the profile, exactly the keys listed under "The account routes" above, when the game page loads and after you change something — and the climb beside it, in a request of its own, if you have played the Tower. Your match history and your replays stay on the device.

Clerk's usage reporting never gets the chance since 17 October 2026: no script of Clerk's runs here, so the form that used to post to clerk-telemetry.com from your browser (switched off by this game while it was drawn, measured 18 September 2026) is not drawn at all. Signing in still means this server talking to Clerk, which is unavoidable — that is who holds the sign-in — but nothing is told that you opened the screen.

Nothing on this site sets a cookie since 17 October 2026. The sign-in form sets cookies, and it is the only thing on this site that does. Measured on dicelockgame.com itself on 18 September 2026, in a browser that started empty, that form left five on pressing SIGN IN — three of Clerk's, __client on clerk.dicelockgame.com and __client_uat on the game's own address, written a second time with the instance's id on the end, and two of Cloudflare's own on Clerk's address — plus Clerk's settings under __clerk_environment, and signing in added __session, that name again with the instance's id, and clerk_active_context, which signing out took away. That form is gone. The sign-in screen is the game's own, the exchange is this server's, and a browser that still carries those cookies from before keeps them until they expire or are cleared; this site writes nothing new to them. The one visit to Clerk's own address a browser makes now is on the way through Continue with Google or Continue with Apple — the provider's page hands you back through clerk.dicelockgame.com for a moment, and whatever that host sets on itself in passing is Clerk's and on Clerk's address, not this game's.

In the app — iPhone or Android — none of the above is set, and no page of this website is shown. The Account screen there offers three ways in — Continue with Apple, Continue with Google, and an email address typed into the game's own screen, which is then sent a code — and none of them loads the sign-in service's script or opens a page of this site. A browser offers the same three on the same screen since 17 October 2026; the two provider doors there are a visit to the provider's own page and back, and the email door is exactly the one described here. An email address no account holds makes one, by the same code. Apple's is the system's own sheet: what it hands the app is the identity token Apple signed and, on the first sign-in only, the name and email you chose to share — the app sends the token and the name to this server once, which creates your Clerk user from them and mints the game's own session; the server keeps neither the name nor the email, and the app never sees them again. Google's is Google's own sign-in page, opened in a private system-browser sheet that shares no cookies with Safari and keeps none when it closes, so iOS asks no permission and nothing lands in your browser; what crosses back into the app is a one-time code that this server trades for the game's session.

On Android the two providers are the other way round, because the phone is. Google's is the system's own account sheet — the one Android draws listing the Google accounts already on the phone, with no browser and no page of anybody's in it; what it hands the app is a token Google signed for this game's sign-in service, which that service verifies. Apple has no such sheet on an Android phone, so Apple's is Apple's own sign-in page opened in a browser tab over the game, exactly as Google's is on the iPhone, and it comes back the same way: a one-time code, traded here for the game's session. If your phone holds no Google account at all, Continue with Google opens Google's page in that same tab rather than an empty sheet. Dismissing the sheet or closing the tab cancels the sign-in and nothing else happens. The email door is identical on both. The email form sends your address to this server, which sends it straight on and keeps nothing. It is read out of one request, passed to the sign-in service in one call and dropped: nothing writes it to a file, a log line or the database, and a refusal has it removed from its message before it is sent back. The sign-in service then emails you a six-digit code, which you type into the same screen; there is no password (since 17 October 2026 — before that the form asked for one and the code came anyway, as a second step). Your address is not sent back to the app, even though the service offers it: what comes back is a token for the sign-in in progress and a yes-or-no about the code. The app cannot CREATE an account this way — only sign in to one made on this website.

However you sign in, the app greets you as SIGNED IN rather than by name, because it holds no name to greet you with. Dismissing a sheet, closing the tab, or leaving the form cancels the sign-in and nothing else happens. Signing out in the app removes the game's session on this device and on the server; there is nothing at Apple, at Google or at the sign-in service for it to clear, because the server ended that session the moment it minted the game's.

Signing out deletes both ends of it — the token this browser holds and the row on the server — and puts this device back to a first launch: your settings, marks, scores, boards, climb, match history, replays and any saved game go with the token, after anything not yet sent has been sent, and the account's copy on the server is what signing in again restores. The visitor id and the queued play events stay, because they are the device's. A session that simply expires, or is ended from another device, is not a sign-out and removes only the token and the entitlements.

Deleting your account from inside the game deletes both records. There is a DELETE ACCOUNT button on the Account screen, under SIGN OUT: pressing it and confirming removes your Clerk user — the email address and the sign-in itself — and every row this server holds under the id Clerk issued you, which is the username, the profile, the Tower climb, the session rows and anything the account has been given. Your posted Daily times are the one thing it does not delete: they stay on the leaderboard as the device's, under the username they were posted with, because they are rows other players read and a board that silently reordered itself when somebody closed their account would be a board nobody's rank was a fact about. What ends is the link, exactly as it does for the play events below; your streak goes on counting on the device that earned it. It happens in that order, so if the second half fails the button still works and pressing it again finishes the job. The username goes free: once the account is deleted, the handle it held can be claimed by anybody.

This device goes back to a first launch, exactly as signing out leaves it: your settings, marks, scores, boards, climb, match history and replays are removed from it — and the server's copy is gone with the account, so nothing restores them — and you can carry on playing as a new guest. The play events this browser has already sent stay too, because they are filed under the random visitor id in "What the game keeps in your browser" above rather than under your account — what deleting the account ends is the link between the two, so the browser counts as a stranger's again.

Deleting your account at Clerk directly doesn't delete anything here — it's the button above that deletes both. They're two records: Clerk holds your email address, and this server holds rows filed under a user id Clerk once issued. Removing the first doesn't reach the second, and nothing here is notified.

What is never collected

Where it is stored, and for how long

The site runs on a server rented from Railway, and the events are written to one Postgres database in the same Railway project, reachable only from that server.

A copy of the whole database is taken every night and kept for 30 days, on a computer run by the person who runs this site rather than on Railway. It holds exactly what the database holds, nothing more, and a copy older than 30 days is deleted. Your scores, your puzzle marks and your recorded runs are in your own browser, not in either.

Who else sees a request

Four parties. The first two are there whether the game likes it or not; the third is handed a crash when the game has one; the fourth is the only one anything about you is deliberately handed to, and only if you ask for it:

No font service sees a request. The two typefaces on the front page and in the game are files this site serves itself, so your browser fetches them from dicelockgame.com along with the rest of the page and asks Google — or anybody else — for nothing. This page asks for no font at all and uses your system's.

The script Cloudflare adds, which nothing in this project asked for

Every HTML page this site serves comes back with one extra <script> at the end of it, loaded from static.cloudflareinsights.com. It is Cloudflare Web Analytics — visitor counting, of the same general kind the game already does for itself. Nothing in this project puts it there. It is switched on for the account the domain sits in, and Cloudflare inserts the tag into the page on its way out to you, after this project's code has finished with it.

This is what it sent, read out of a real browser on 18 September 2026. One POST per page load, to this site's own address rather than to Cloudflare's, carrying: the address of the page you loaded; a random id for that one page load, minted fresh each time; the name and major version of your browser's engine and the version of your operating system; how much memory the page's scripts were using; how long each stage of the load took, in milliseconds; and a fixed token naming this site. No part of it is anything you typed.

What it does not do is the half worth stating. It sets no cookie, writes nothing into your browser's storage, and carries no id that outlives the page load — checked the same day in a browser that started empty and finished with an empty cookie jar. So it cannot say that two visits came from the same browser, which is the one thing the game's own visitor id above can say.

It's easy to miss. Cloudflare only inserts the tag when the request asks for HTML: curl with no Accept header — the check anybody would reach for — gets the page exactly as this project wrote it, with no script in it and nothing to notice. It takes Accept: text/html to see the tag at all, or a browser.

Blocking static.cloudflareinsights.com stops it, and costs this game nothing: no page here needs it to work, and nothing on the site behaves differently when it never loads.

If you are in California

California's privacy law — the CCPA, as amended by the CPRA — gives residents of that state rights over what is collected about them. This section is what those rights come to here, written in the law's own words about the lists above. It describes what this game does; it is not legal advice, and nobody who wrote it is a lawyer.

The personal information here is random numbers. The visitor id and the older leaderboard device id in the table above are "unique identifiers", which makes them personal information, and everything filed under them — the play events, a posted Daily time, a shared match's rows — is personal information along with them, even though nothing in it is a name. A third one joins them if you sign in: the user id Clerk issues, and the profile filed under it. That is still a random number, and this server has no email address, no phone number, no location and no payment anywhere in it, because nothing it runs asks for one. The only name in it is one you typed on purpose: the username on an account, which nothing asks to be your real one. Your email address is Clerk's, collected by Clerk on Clerk's own servers when you sign in — under Clerk's privacy policy, linked above, and not under this page.

No sensitive personal information is collected at all, so the right to limit how it is used has nothing here to act on.

Nothing is sold, and nothing is shared for advertising. Both of those words are narrower in this law than in ordinary use and the answer is no under either reading: nothing from this game is handed to anybody in exchange for anything, and nothing is passed to anybody for advertising to you elsewhere. That is why there is no "Do Not Sell or Share My Personal Information" link on this site. The absence is the answer rather than an omission — a link that opted you out of nothing would say less than this paragraph does.

There is no cookie banner because nothing here sets a cookie, and the measurement is in "What is never collected" above rather than in a promise: an empty cookie jar after a full load of the game, on 18 September 2026. A banner asking you to accept cookies that do not exist would collect your agreement and change nothing about what happens, which is worth less to you than the list on this page. One thing does set cookies, and it is the sign-in form: five when it is drawn and three more once you are signed in, all written by Clerk's script, none of them written by this game, and none of them reachable without pressing SIGN IN. That form is gone since 17 October 2026, and with it the one thing on this site that ever set one — the sign-in screen is the game's own and the exchange is this server's, which is measured and listed under "If you sign in". A browser that met those cookies before that date still carries them until they expire or are cleared, and nothing here writes to them again. The game's own session token for an account is a value in local storage and not a cookie, and it is the one line in the table above.

The one thing here a consent banner would properly have been for is the Cloudflare script above, and this page cannot switch it off. It is added after every page leaves this project's code, so no button drawn by this site could stop it arriving. What can be done honestly is to say what it collects and what it does not, which is the section above, and to say that your browser can block it outright.

Your rights, and what each one actually gets you:

An authorised agent may make any of those requests for you. It arrives in the same place, which is the next section.

Asking for it to be deleted

One thing you can do yourself, immediately and without asking anybody: clear site data for dicelockgame.com. Both ids and every setting, score and recording go with it, and nothing new can be attached to them.

What stays on the server after that is the play events filed under your visitor id, the shared-match rows that id sat down in, and a Daily time filed under your device id. Those can only be removed by hand, by somebody reading the ids off a request, which is why this page shows you yours:

Your ids are in this browser’s own storage, and this page reads them out with JavaScript, which is not running. To read them yourself, look for dicelock.analytics.visitor.v1 and dicelock.leaderboard.device.v1 in the site data your browser holds for this site.

An account is a fourth thing, and it is the one you can delete yourself. Open Settings, then ACCOUNT, and press DELETE ACCOUNT under SIGN OUT. It removes your Clerk user — the email address, and the sign-in with it — and every row this server holds under the id Clerk issued you. You are not asked to type anything, no email is sent, and nothing is queued for somebody to action: the account is gone when the screen says "Account deleted." The other three things above still need a request.

Deleting it at Clerk instead does not touch the rows here. Two records, in two companies, with nothing between them that would carry a deletion across — which is why the button is inside the game rather than a link out to Clerk.

Everything else on this list is still a request, and it goes here:

Send both ids — or whichever of them your browser has — to privacy@jiolab.dev, and the rows filed under them are deleted. There is nothing else to prove and nothing else to fill in: the ids are the whole request.

What is about to change

One thing is decided and not built. It's named here rather than in the lists above, which describe the game that's running today.

A shared match gets a name you choose. When this lands, a name you type is stored on the server against the same random visitor id above — one name for this browser, not one per match — and it is the name the other player sees and the same one the Daily leaderboard already shows, kept in one place rather than in two. Typing one stays optional: decline and the match still starts. It also takes something away, which is the point of doing it: the name replaces the visitor id the other player's browser is handed today. That half of it is already done: since 17 October 2026 the other player's browser is handed no id of yours, so a name you choose would put a label on a seat rather than take a leak away. No rating of yours becomes public — the score between two people in a room stays between them, and the Daily board stays the only public ranking in this game.

When it lands, this page changes with it — the point of the lists above is that they are short enough to keep true.