Host a world on your phone

The phone as the table: the bundled server, sharing online with a room code, the hosting notification, what happens in the background and when the world goes idle, the same Wi-Fi case, the sound library, and keeping a copy of the world.

Android app

An Android phone can host a whole campaign for friends anywhere. The app runs a real server inside it (Node, the , the rules engines, the database) and publishes it through a private with a . Nothing on your router changes and no account exists anywhere but on the phone.

Share online

  1. Enter your world and open a campaign's lobby. Opening the lobby asks the app to share; you can also press in Settings under This device.
  2. The invite reads "Opening a public address...", then Shared online. The shows as the pair HOSTCODE-TABLECODE; the link and the QR follow the public address.
  3. Send the code, the link, or use the phone's Share sheet. Friends type the code into their app, scan the QR, or open the link in a browser.
  4. Stop hosting from the notification, or Stop sharing in the lobby or Settings, when the session ends.

The hosting notification

While the world is shared, Android shows a quiet, ongoing notification: Your world is shared, "Friends can join while this stays on", with a Stop hosting action. It is what lets the server keep running when you switch apps or the screen turns off. Swiping the app away from recents stops the share and the server. Playing alone shows no notification.

Background and idle

  • Shared: the server keeps running in the background behind the notification for as long as the share lasts.
  • Not shared: a world you have left idle goes to sleep after about half a minute, and wakes when you enter it again. Leaving the app while a solo game is open keeps it alive for that grace period.
  • Battery saver and aggressive app-killing on some phones (Xiaomi, Huawei, some Samsung modes) can stop a background server despite the notification. Exempt Open Dungeon Master from battery optimisation in the phone's settings if friends report the host dropping.

Friends on the same Wi-Fi

The phone's server listens on the local network as well, so a friend in the room can add it by scanning the server's own QR button (bottom right of every page inside the world) without a . is still the reliable way: without a share, the server stops when the app is in the background.

Voice

A uses : browser to browser through the 's , with nothing to open. The Dungeon Master's phone relays no audio.

How much phone it takes

The server is light: a campaign with four players and a runs on any supported phone. With an OpenAI key the happens at OpenAI, so the phone does no model work. and effects are drawn on each player's own device. Phones with less than 4 GB of memory start with on. Uploads stop only when 256 MB of storage is left.

The is not in the install. An admin at a table sees Download the sound library in the : a 76 MB download the phone writes one track at a time, kept across app updates.

Guests and the admin panel

Guests join with a name and a code; there are no passwords on a , and the app claims the world's admin account for you with a nobody has to type. The world's (account menu, Admin) holds the AI, picture and speech settings, the , users, usage, reports and ; the app manages the address, and voice for you.

Backing up

A 's has no section, and the world lives in the app's private storage. What you can carry off the phone are exports: characters as .odm-character.json, as , and a campaign's story as a reading copy. Uninstalling the app deletes the world with it; a table that must not be lost belongs on a desktop or a server.

A lobby on a phone with the room code panel: QR code, the code in tiles, and Code, Link and Share buttons
The lobby on the hosting phone. Code, Link and the phone's Share sheet.

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