Characters and the builder

Building a character step by step, what the builder insists on, the sheet during play, the character library, portraits, exports, and playing more than one character.

Desktop appAndroid appBrowser

Characters are yours, not the campaign's. They live in your library (the Characters tile on the home screen) and sit at whichever tables you bring them to. The builder asks for every pick the rules require and refuses to finish with a hole in the sheet, which is what lets the app run combat without a person checking the maths.

The six steps

  1. Identity. Name, gender, portrait (upload one, or let the paint one from the description; a painted plate for the race and class stands in until then), background, and the background's bonus languages, tools and skill picks.
  2. Ancestry. A card grid of lineages, grouped by the book each comes from. The setting's recommended ones lead with a star; the adds the expanded set with their ability bumps and languages. A Variant Human picks its feat here.
  3. Calling. Class, subclass once the level reaches it, class skills, fighting style, expertise, and option picks. Each panel reads "N still to choose" until it is complete. A greyed skill says which trait or background already grants it, and a shut subclass menu says at which level it opens.
  4. Ability scores. Three methods: throw six sets of 4d6 into a tray and place them on the abilities by tap or drag, take the standard array, or point buy steppers that enforce the budget. A kept roll stays on record with its date; whether all six may be thrown again under a low total is a server setting.
  5. Spells and gear. Spells first for casters: recommended picks and the subclass's free spells, cantrips before levelled spells, search below. A race's cantrips show as "From your race" and do not count against the class. Then the gear: the class's starting equipment with its either-or choices as pills, the background's kit, and the starter pack, priced the same way everywhere. Classes that do not cast see Gear alone.
  6. Finishing touches. A read-back of the sheet, and save.

When Continue is held, the reason sits beside the button with Show me, which scrolls to the missing pick and lights it. A pick that a later change makes impossible (a background swapped, a subclass changed) is dropped and announced. The server checks the same rules again when a character is created, edited, imported or levelled, so a sheet it accepts is a legal one.

The Abilities step: a 4d6 dice grid with the dropped die shown, standard array slots and point buy steppers, and the sheet preview updating beside them
The Abilities step. Roll, take the array, or buy points; the sheet preview on the right updates as you go.

The sheet

One sheet serves the library and the table. Painted ability tiles, a hit point bar, icon chips for features, spells, feats and gear, with every carried item opening its full card. A Languages and training block lists what the race, background, class and feats grant; feats such as Linguist or Skill Expert grant what their text says. During play the sheet is live: hit points, spell slots, conditions, death saves, inspiration and class resources change as the engines resolve them. You can spend a hit die on a short rest, equip and unequip, and mark attunement. A player spends counters but cannot refill them; the DM seats and the correct them.

The spell book on the sheet keeps cantrips, known and prepared lists to each class's counts, and a prepared caster changes the list on a long rest. Levelling up needs the experience, goes one level at a time, and walks the choices that level brings. How hit points grow (the average, a roll the server makes, or the maximum) and whether a character starts with gear or rolled wealth are campaign settings.

from a , a or your own library shows in the same pickers with a flag, and a homebrew weapon or armour is read by the attack and armour class engines like anything from the .

A full character sheet: painted ability tiles across the top, a hit point bar, and columns of features, spells and equipment with painted icons
The sheet in the library. The same sheet opens from the Party tab at the table.

What comes from where

  • The supplies the spells, feats, items, subclasses, lineages and monsters beyond the : about 1,800 spells and 2,000 items. Every server release ships it, and the apps carry it. If most spells or subclasses are missing, the server it lives on has no pack (see Content pack and world packs).
  • The setting adds its own classes and backgrounds: 36 of each across the seven genres, alongside the 13 SRD classes.
  • A renames races, classes, spells and monsters to fit a universe. The sheet keeps the canonical names underneath, so a character crosses worlds intact.

Portraits and pictures

A portrait can be uploaded at any time from the sheet. With an , the builder paints one from the description; without one, a painted plate for the lineage and class stands in. The token on the wears the portrait, so it is worth setting.

More than one character

A campaign setting decides how many characters a player fields. One character each is the usual table. it off and choose All active to field several characters, each with its own token, and resources, or One active to keep the others on the bench and change between . on a character's card in the Party tab chooses which one you act as; in a fight, the character whose turn it is acts, and , the and follow it. A can also file , ready-made characters a table can pick from, with a warning if their level does not match the campaign; offers four.

Export, import, clone

A character exports as one .odm-character.json file with the portrait inside, and imports on any server. Characters clone from the library. Deleting your account erases your library characters with it.

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