How to Wipe Your Virtual Dice Roll History and Protect Tabletop RPG Campaign Privacy
The Deleted Chat That Wasn't: The Mistake That Leaks Campaign Secrets
Most GMs assume that clearing the chat window deletes their dice roll history. It doesn't. It only clears the top layer of it.
Picture a situation that plays out constantly in long online campaigns. A GM — call her Dana — has run the same homebrew game for two years across a virtual tabletop and a Discord dice bot. When a new player joined mid-arc, Dana scrolled back through the game chat, deleted the obviously spoilery messages, and typed /clear. Reasonable. Careful, even. Eleven days later, the new player opened the dice roller's history panel — the one that quietly logs every roll with a timestamp — and reconstructed two years of secrets: the ambassador's hidden Deception checks, the trap DCs, the death save that got quietly rerolled. The betrayal arc Dana had spent eight sessions building collapsed over a single Discord message: "wait, the ambassador has been lying since session 12?"
The mistake wasn't carelessness. It was a wrong mental model. Dice data doesn't live in one place; it lives in layers, and the visible chat is only the outermost one.
This article walks through one complete, end-to-end workflow for wiping your virtual dice roll history — written specifically for the long-campaign online GM: the person running a multi-year game across a virtual tabletop, a Discord dice bot, and maybe a browser-based roller, whose accumulated roll log has quietly become a spoiler liability. Follow it start to finish and you'll have a verified, player-proof dice history before your next session. Budget about an hour up front and fifteen minutes a month after that.
What Two Years of Roll History Actually Reveals
Before deciding whether this matters for your table, do the math on your own campaign. Dana's game ran roughly 140 sessions over two years. Between GM rolls, player checks, and the bot's automated rolls, a typical four-hour session generated around 40 entries. That's about 5,600 rolls sitting in history — and on platforms that log hidden GM rolls, roughly one in five of those, more than 1,000 individual entries, were rolls the players were never supposed to see.
Each entry leaks more than a number. A roll formula like 2d6+8 labeled "assassin sneak attack" tells a mathematically inclined player the assassin's damage output and probable level. Timestamps reveal your pacing. Sequences reveal fudging patterns — the rerolled death save is visible as two adjacent entries. Labels reveal the future: a hidden "perception vs. scouts" roll posted before you've introduced the invading army tells the whole story if anyone reads it in order.
The Three Layers Where Dice Data Lives
Every platform your table uses stores rolls in up to three places:
- Layer 1 — the visible chat. What /clear and message deletion touch. Gone from view, gone from scrollback.
- Layer 2 — platform-side records. Downloadable chat archives attached to the game, dice room histories tied to your account, campaign logs, and data stored by the bot itself.
- Layer 3 — local browser storage. Anonymous online dice roller sites that write your roll history to your browser's local data, invisible until someone shares a screen.
Wiping layer one and walking away is the single most common tabletop RPG campaign privacy mistake there is. The workflow below clears all three layers, in order, and then proves it.
Step 1: Audit Every Place Your Dice Leave a Record
Don't delete anything yet. First, build the inventory, because you cannot wipe what you haven't counted.
List every platform your table has touched in the last six months. For most long-campaign groups that means: the virtual tabletop game itself, the Discord server and whichever dice bot lives in it, any logged-in browser roller with persistent rooms, a D&D Beyond campaign log if you use one, and any phone dice app with a history tab.
For each item on the list, answer three questions:
- Does it keep history after the visible chat is cleared?
- Who can actually see that history — everyone in the game, or only you?
- What is the official deletion path?
Then do the one thing most GMs skip: sign in the way a player would, or hand your most tech-curious player a five-minute mission to find anything they can. What they can find is your real exposure — not what you assume they can find. If your VTT's game settings include a downloadable chat archive, download it yourself. If you can pull two years of rolls as a two-minute export, assume a motivated player can too.
Step 2: Export What You Want to Keep
Deletion is permanent, and campaign logs have real value beyond spoilers. They settle rules disputes ("did the bard actually crit in session 31?"), feed your recaps, and preserve continuity when a player returns after months away. Wiping everything to protect one secret and losing three years of records is trading one problem for a worse one.
So export first. Download the chat archive from your VTT's game settings. Copy the Discord channel — a manual copy-paste into a document works fine for most purposes. Save the dice room's history page. Then store all of it somewhere no player can reach: an encrypted folder, a private GM-only wiki, a password-protected drive.
The rule is simple: the export lives where only the GM lives. Once that's done, you can delete aggressively without regret.
Step 3: Wipe Each Platform the Right Way
Each platform type needs a different deletion move. Here's the layer-by-layer approach.
Virtual tabletop chat archives
/clear clears the live chat — layer one only. The archived log attached to the game is separate, and in Roll20-style VTTs it typically remains downloadable until the game itself is deleted. For a finished campaign, that's your answer: delete the game (this is why step 2 exists — it's irreversible). For an ongoing campaign, your options are starting a fresh game and re-importing your assets and characters, or contacting the platform's support team to request archive removal. Also check your character sheets: many sheet frameworks keep their own per-character roll log, which survives a chat clear.
Discord dice bots and channels
There are two records here, and GMs routinely forget the second. The messages themselves can be purged — bulk deletion requires manage-message permissions, which server owners and most bots have — or you can delete the channel outright, which removes the rolls from search as well. But bots like Avrae also store account-linked data on their own side, and deleting the channel doesn't touch it. Check the bot's privacy documentation; the major bots describe a data-deletion request process. Submit it, and confirm it went through.
Browser dice rollers and rooms
Logged-in rollers with persistent rooms keep history server-side, tied to the room. Delete the room, or clear its history from the room settings. If the platform offers neither, the workaround is rotation: create a fresh room per story arc and let old ones expire. For anonymous rollers where you never made an account, your rolls live in your browser's local storage — click the padlock icon next to the URL, open the site settings, and clear the site's data. Nothing was uploaded, so once the local log is gone, it's gone.
Step 4: Verify the Wipe Before Session Night
This is the step that separates a wiped history from a hidden one, and almost nobody does it.
Pick three distinctive rolls you know existed — a specific formula, a specific label, a number paired with a date. Then check for them the way a player would. Open the game in a player account or an incognito window and search the chat. Open the dice history panel as a player. Run a Discord search for the label.
If all three searches come back empty, the wipe held. If even one surfaces, you've found a layer you missed — go back to step 3, clear it, and run the three searches again. Verification takes five minutes. Dana's campaign didn't leak because she failed to delete; it leaked because she never checked whether the deletion worked.
Step 5: Change How You Roll Going Forward
A wiped history refills fast. These five habits keep it from becoming a liability again:
- Run hidden GM rolls somewhere players can't see. A GM-only Discord channel or a private dice room, not the shared chat.
- Label generically. "GM hidden — 17" reveals nothing. "Ambassador Deception vs. Insight" reveals everything.
- Use blind-roll features where available, so the log records pass/fail rather than numbers.
- Rotate dice rooms each arc so history never accumulates beyond a few weeks of material.
- Purge the visible chat at end of session. Thirty seconds, every time, before you close the window.
None of this changes how your table plays. It changes what the log can say about how you played.
The Fifteen-Minute Monthly Routine
Once the initial cleanup is done, maintenance is cheap. Run this at the end of each story arc, or on the first session of every month:
- Export new logs to your GM-only archive — five minutes.
- Purge channels and dice rooms — five minutes.
- Run one verification search as a player — three minutes.
- Rotate the dice room if it's due — two minutes.
Fifteen minutes total. Set that against the alternative: Dana's eight-session betrayal arc represented roughly 24 hours of preparation time, and it took one curious player one evening to unravel. Fifteen minutes a month against 24 hours of ruined prep is not a close trade.
What a Protected Campaign Looks Like
Run the workflow to the end and here's what you get. A new player joins your three-year campaign, goes digging, and finds nothing but the story you've told out loud. You can share your screen mid-session without thinking about what the dice sidebar shows. The only complete record of your campaign's secrets sits in your encrypted export, readable by exactly one person.
That's the entire discipline, and it fits in one sentence: clear the chat, wipe the history, verify as a player — in that order, every time. Your players get to keep their surprises. You get to keep your arc.