Quick start: join a friend's table

You were sent a room code, a link or a QR code. Here is what to do with it on a phone, a computer, or in a browser, and what to expect when the host is offline.

Desktop appAndroid appBrowser

An invitation is one of three things: a like ABCD2345-EFGH6789, a link beginning https://opendungeonmaster.com/j or odm://, or a QR code of that link. They all lead to the same door.

In the app

  1. Install the app for your platform (Install the app). You do not need to create a world of your own to join one.
  2. On the title screen, choose Join with a code and type the code into the boxes, then Join. Spaces, dashes and lower case are fine. On Android, Scan a QR code opens the camera instead. A pasted link or a server address works in the same field.
  3. The app looks the code up, finds the host, and shows the table. On a world hosted from a friend's app you are asked for a name only: the code you were given is the invitation and there is no password to invent. On a server somebody administers you sign in or create an account there, with Discord if the server offers it.
  4. Build your character in the lobby and press Ready.

Clicking an odm:// link, or on Android an opendungeonmaster.com/j link, skips the typing and opens the app on the join screen.

At a table in the same room

A host who chose shows a plain address such as http://192.168.1.20:3210 and its QR code instead of a . Type that address into the app's Add a server, or into a browser, or scan the QR. It works with no internet, only while you are on the host's network.

In a browser

Open the link. The page names the world it leads to and asks you to confirm before it sends you on, then the host's own pages open in the browser. Voice, dice, maps and the character builder all work in a current Chromium, Firefox or Safari. Bluetooth dice need a Chromium browser.

Once you have joined

  • The world is saved on your home screen with the host's name and . Next time, tap it.
  • A code follows its world. If the host shares again from a different address, the app finds the world by the code you joined with and by the world's own identity, and opens your saved seat rather than adding a second copy.
  • Offline means offline, not gone. A world hosted on a friend's device is playable only while their app is open and sharing. The home screen says so, and there is a switch to hide offline hosts when the list gets long. Nothing about your character is lost.
The sign-in page of a self-hosted server on a phone: Log in and Create account tabs, username and password fields, and Sign in with Discord
A server somebody administers asks you to sign in. A world hosted from an app asks for a name and nothing else.

If it does not work

You seeWhat it means
"No table is online with that code"The host is not sharing right now. A code only leads somewhere while its host has the world open and shared. Ask them to open it and try again.
"That does not look like a server address"The field expects a , a link, or a bare address like play.example.com. Check for a missing character.
"This server is "A self-hosted server that needs an (ODM-XXXXXXXXXX) from its administrator, unless you arrived with a live room code, which vouches for you.
"This server is not accepting new accounts"Sign-ups are closed. Ask the administrator for an account.
"Your seat could not be reopened"The host removed your seat, or the app lost the key it kept for it. Join again with a name; the room code is still the door.

More in Joining on Android and the FAQ.

Checked against desktop and Android app 0.17.2 and server 0.26.2 on 2026-10-11. Something wrong or missing? Open an issue.

Download · v0.17.2
Server app · v0.26.2

Optional. Runs the table for a whole group on one machine that stays on. Everyone else just installs the app.

Free & open source · MIT licensed · served from GitHub releases