The Virtual Tabletop
Maps, fog of war, line of sight and initiative — in a browser, with or without dice.
Last looked at 2026-10-08
Yes, there is one
This is the part of RNGESUS people are most surprised to find, largely because the public side of the site spent a long time describing a dice tracker. There is a full virtual tabletop in here. It is built, it is free, and it is one of the three things this platform actually is.
If you came for the dice and have a table you already play at, you can ignore all of this and lose nothing. It is here when you want it.
You do not need dice for any of it
Worth repeating from How It All Works, because it is the thing nobody believes about software sold next to hardware: you can make an account, open a session, upload a map and run an entire campaign without owning a single tag.
Virtual rolls are stored as real rolls. They are simply not credited to any physical die —
dice_id stays empty — which is deliberate rather than a limitation. A die's lifetime
statistics only mean anything if the only way into them is tapping the actual object. Keep
that clean and the numbers stay worth reading; muddy it and they become a leaderboard
nobody trusts.
What's in it
All of this works today:
| Thing | What it does |
|---|---|
| Maps | Upload an image and align the grid to it — cell size, offset, and map dimensions, with live sliders. No one's map is quite square; that's what the calibration is for. |
| Fog of war | Real line of sight. Draw walls and players see what their token can see from where it stands. Walk around a corner and the corridor opens up. |
| Tokens | Drag them, give them images, HP bars and condition markers. Hide a layer so the GM can stage an ambush without announcing it. |
| Initiative | Turn order, visible to the table, so nobody asks whose turn it is for the fourth time. |
| Measuring | A ruler, plus cones, circles and lines — for when someone casts fireball and the argument starts. |
| Handouts | Show the table a letter, a map fragment, or the thing they found in the desk. Keep them filed under a world and everyone playing in it can read them. |
| Lighting | Torches and lamps you place on the map, including directional ones — a lantern throws a cone, not a circle. |
| Sound | Ambient noise pinned to a spot on the map, so the waterfall gets louder as you walk towards it. |
| Hex grids | As well as squares. Still being finished: the ruler, the area shapes and the calibrate tool are square-only for now, and the panel says so where the buttons are. |
| Marks on the map | Freehand, arrows, boxes, circles and text. Anyone can point at something; rubbing out is your own, or the GM's anything. |
| A floor with a shape | Trace the playable area and a cave stops being a rectangle. Rings inside rings cut holes; two that don't touch are two chambers. |
| Whispers | A message to one person rather than the room. |
| Multi-select | Marquee or modifier-click, then drag, delete or re-layer the lot. Moving six goblins is one drag. |
| Scene set-ups | Save a laid-out map — grid, walls, dressing and traps — and lay it out again next time instead of rebuilding it. |
| A setup wizard | An empty session walks you through six steps — name → map → grid → walls → NPCs and monsters → open to players — then gets out of the way. |
| Import and export | Takes a Dungeondraft or Arkenforge export with its walls and lights already in it — and exports Universal VTT too. Most tabletops import that format and almost none export it, so a scene you build here isn't hostage to us. |
Getting a game going
A game is played at a table in the tavern. Every one of them, and you get a room code on the way in. Send the code to your players, they type it in, they're at the table. That's the whole ceremony — no installs, no accounts on a fourth website, no "which module version are you on".
There are two ways to get to the table, and they end in the same place:
- The plain way. VTT in the header,
Start here, Start a game. Say what you're starting and you're seated at a free table without having to find one. The invitation — room code, campaign invite code, a link for each — is handed to you before the map is. - The tavern's way. Walk in, take a chair at an empty table, and press the folded map
on it that says
Lay a game out. A guild hall's long table does the same job for a guild.
A game is still born at a table; the VTT menu just seats you at one. A game with no table to sit at is a room with nobody in it, and the server won't make one. So a game started from the list is not hiding in a list — it's on the floor with its lamp lit, where your players would find it if they walked in.
Joining is one box, Join with a code, and it takes either code you might have been
given: a room code for tonight's table, or a campaign's invite code for a seat that lasts.
It's at Join a game on the VTT menu and in the campaign book in the workshop. If you run
a campaign, starting its game seats everybody on the roster in one go, carrying their
characters and colours across. See Run a Session.
It works on a phone, and that isn't a checkbox. A lot of real use is someone at an actual table with an actual group waiting, so touch input and a 390px screen are treated as the normal case rather than the degraded one.
For the step-by-step versions, see Start a Game, Run a Session and Set Up a Map on the How-To shelf.
If you do own dice
Then the two halves meet. Tap a die and the roll lands in the session — a real, hardware-attested number, credited to that die and added to its permanent record. Character sheets do the same thing: during creation and level-ups they ask you to tap for ability scores and HP, so your worst stats are at least genuinely your own doing. See Characters and Tags.
None of it is required. It's the upgrade path, not the entry fee.
Not there yet
Things people reasonably expect that aren't built. Better to read it here than find out mid-session:
- Building a map on a phone. There is a native session screen in the iOS app — rolls, who's at the table, the map, initiative and chat — and it's genuinely useful mid-game. But laying a scene out (walls, fog, lighting, calibration) is browser work, and the mobile browser is the honest answer for that.
- Hexes everywhere. The grid, snapping, fog, vision and lighting all understand hexes. The ruler, the area-of-effect shapes and the calibrate tool don't yet.
- Changing grid type clears the fog. Not a bug, and not something we can avoid: fog is stored as bare cell coordinates, and a square index read as a hex is scattered nonsense rather than slightly-wrong fog. Better to wipe it than to draw a lie.
Already happy with Roll20 or Foundry?
Then keep using them, genuinely. The dice are meant to work at whatever table you already play at. Getting rolls out of this app and into someone else's tabletop is a separate question with its own page in the library — that one is about other people's software, this one is about ours.