Forms

Turn any character-sheet image into a playable, fillable form: text fields, checkboxes, dice buttons and live stats, laid directly over the artwork.

public/images/Hero.png

 

Forms is an Owlbear Rodeo extension inspired by Adobe Acrobat form fields. In Build mode, the GM draws data-entry fields straight onto a character sheet, handout, or prop that's been added as a Character-layer image, and chooses what type of fields they will be (eg. text, number, checkbox, button, etc); then in Play mode, players fill in their sheet's values, tick the relevant checkboxes, click buttons to roll dice, and read reference notes. Every value lives in the Scene's own metadata, so a sheet you build once is there every time the Room loads: filled in and exactly as you left it.

  • The Field Types
  • The Field List
  • Sheet Management
  • Troubleshooting
  • Support
  • Privacy & Data
  • Font Credits
  • Icon Credits

  • Why Forms?

    Most VTT character sheets live in a separate panel, a PDF, or another browser tab, disconnected from the map everyone is looking at. Forms puts the sheet on the table:

    The GM uploads a character-sheet image, a spell card, an inventory page, or a faction dossier, then draws fields directly onto it: a name box here, an HP counter there, a row of saving-throw checkboxes, a button that rolls initiative. Players click a field and type, tick a box, press a button and watch the dice land. A derived field can total up ability modifiers automatically. A StatView field can mirror a token's HP from another extension. A tooltip field can surface lore and rules wherever they're referenced. Nothing leaves the Room.

    Furthermore, many indy TTRPGs do not yet have full digital character sheet support - Forms resolves that by allowing any image to be upgraded with the game-specific stat, resource, and action fields that you define, making it easy to run specialist and niche games in Owlbear Rodeo with confidence.

    The result is an interactive handout that behaves like a real form, owned by the right player, persisting across sessions, with no separate app to keep in sync.


    Getting Started

    1. Install the Extension

    Copy the Forms manifest URL:

    https://forms.several-record.com/manifest.json
    

    Then head to your Owlbear Rodeo Room's Extras menu → Extensions+ (Add Custom Extension), paste the URL, and confirm.

    2. Configure Your Room

    In the Extensions popover, make sure Forms is toggled on for this Room. You should see the Forms icon appear in the top-left extension Action tray.

    In OBR's player list, open the Player Permissions popover and ensure that the Owner Only permission is set for Character-layer items - this ensures that a Forms character sheet assigned to a player is protected from any changes by other players. (Players will also need the Update permission for Character layer items, which is usually enabled by default anyway.) If the permissions are not set properly, an orange warning notification will appear for the GM (but you can still continue without the full layout protection).

    public/images/OwnerOnly.png

     

    3. Build Your First Field

    1. Add a character-sheet (or any) image to the Scene on the Character layer
    2. Enable Build mode in the right-hand toolbar, and if you want to see your fields listed as you make them then also open the Forms popover (with its icon in the top left corner)
    3. Click-drag to draw a rectangle or circle shape over the part of the image where the field should sit:
    public/images/DrawField.png

     

    1. A Configure Field popover opens, pick a field Type from the eleven buttons (checking the hover tooltips for details on each), give the field a Label and any other initial values that you want, and then Save:
    public/images/ConfigureFirst.png
    1. Toggle Build mode off by selecting any other toolset (like the core Move tool) to return to Play mode, then click on the field to fill it in - you'll see that clicking on the field in Play mode doesn't leave it selected but instead produces an Edit Field popover where you can see the field's stored value and change it
    public/images/EditFirst.png

     

    1. Assign ownership of the sheet image to any player (using OBR's core 'Character: Owner Only' feature in its Player Permissions), and they gain edit permission on all those fields:
    public/images/OwnerAssign.png

     

    That's the whole loop: draw, configure, play.


    Build Mode vs Play Mode

    Forms has two modes, controlled by the dedicated Build toolset in the right-hand toolbar.

    Build mode (GM only) is enabled when the toolset is active, and it's where fields are created and configured:

    Play mode is what the players always see, and is also what the GM experiences whenever the Build toolset is not active (ie. any of the other toolsets is active in the right-hand bar), and it's where fields are used in-game:

    💡 GM-authored Labels stay hidden in Play mode by default, so players see a clean sheet rather than your field name values. However, if you are building your own sheet from scratch or adding to an existing sheet's fields, you can reveal any field's label to your players with its visibility toggle in its style editor: the Appearance panel of the Forms popover.


    Ownership: Who Can Edit What?

    By default, Forms decides who may edit a field's value from who owns the image it sits on. (This can be varied by declaring the field to be Public or GM-only, covered at the foot of this section.)

    This means that you can build your party's sheets, assign each character image to its player, and each player can edit only their own fields - with no extra permission setup.

    Per-Field Variations

    In the Configure Field popover there are two variations that you can make to this default player-ownership:

    ⚠️ A background task protects all fields from being accidentally moved, scaled, or rotated off their proper positions, causing unauthorised changes to 'rubber-band' back into their proper positions, with two exceptions:

    • the GM is always able to edit fields' geometry while using Build mode
    • any player can edit their own fields' geometry when the GM has chosen to toggle the default green Layout: Locked mode in the Action popover's top-right corner in favour of the red Layout: Editable mode

    In some situations, this 'auto-revert' of unauthorised geometry changes may stall; this is due to the current enforcer being busy or absent, and the protection will resume after a new enforcer is automatically picked from the other members of the Room.


    Configure, Style, and Edit

    A GM has four user interface (UI) access points for the fields that they make:

    1. The Action popover's list, which allows selection of existing fields, and provides dedicated buttons for the remaining three points of access:
    2. Edit Field Value - change the field's stored value (same as the player-owner can do), through the floating Edit Field popover
    3. Edit Field Style - change the field's visual display through the Action popover's fixed Appearance panel
    4. Configure Field - change the field's type, options, and behaviour through the floating Configure Field popover

    The Configure step is often a once-only process, usually made when the field's shape is originally drawn on the character sheet; the Style step is often an iterative process, changed a few times until the GM is happy with a field's appearance; the Value step is very frequently accessed, in order to keep the character sheet's contents up to date.

    While in Build mode, drawing a new field or left-clicking on any existing field will bring up the Configure Field popover. Right-clicking on an existing field will bring up the overflow menu, within which are the dedicated options for the selected field: Edit Field Value, Edit Field Style, Configure Field, and Show in List:

    public/images/Overflow.png

    Attaching Unassigned Fields

    Any field that did not have a valid Character-layer image below it when it was created is an unassigned field in the Scene. These fields still operate, but only the GM can use them - they can't be owned by a player until they are attached to a suitable sheet image and that image is assigned to a player.

    To attach any of these unassigned fields to a sheet, ensure that the intended sheet image is in the Character layer and is also directly underneath the field(s), then switch to Sort: By Owner in the Forms Action popover, and you will see a group called Unassigned at the top of the list. To the right of that group header is a button marked Attach to sheet that will attempt to attach each of the unassigned fields to the Character-layer image beneath them, and will then provide a pop-up 'toast' notification for the results, confirming how many fields were successfully attached and how many still had no valid target image beneath them. You will also see the sucessfully attached fields leave the Unassigned group in the Action popover and be added to their owner, and any that failed to attach will be left there.

    The Field Types

    Forms offers eleven field types to cover all of the common use cases that you might find on a wide range of character sheets:

    Icon Type What it does
    Text A single line of free text: names, short entries, simple plain or bold text.
    Multiline A rich-text area supporting multiple lines and basic formatting (bold, italic, underline, plus plain and numbered bullet lists). Optional auto-fit scales the text to fit the field.
    Number A numeric entry with optional min and max clamps to keep your values in-range. Can show optional increment / decrement buttons for click-to-adjust (see Number Steppers), accept simple mathematical changes (see Arithmetic Input), and mark positive values with a leading + (see Showing a Positive Sign).
    Clock A radial display of progress that ticks up one segment with each click, and resets to empty when a full clock is clicked, with several common presets and a custom mode (see Clock Field) and optional increment / decrement buttons for click-to-adjust (see Number Steppers).
    Calc A read-only value computed from a formula that references other fields by name (see Calc Fields). Can be used as a true read-only field for stats controlled by the GM, eg. 'Level'. Can mark positive results with a leading + (see Showing a Positive Sign), which suits a derived modifier.
    Checkbox An optionally-grouped toggle that shows a symbol when ticked (configurable: ✓ ✗ ● ■ ◆ ★ ♥). When grouped they can optionally act as a cumulative fill-bar (see Checkbox Groups).
    Radio An always-grouped toggle that shows a symbol when ticked (configurable: ✓ ✗ ● ■ ◆ ★ ♥) radios that share a group name on the same sheet are mutually exclusive, so ticking one clears the others (see Radio Groups).
    Dropdown A pick-list of options you define, in the order that you choose.
    Button A clickable button that rolls dice through a connected roller. Both Dice+ and Bones! extensions are currently supported, with all their rich 'dice notation' commands, as well as the Connected Dice extension that specifically handles the Draw Steel TTRPG's Power Rolls (see Dice Buttons).
    StatView A read-only mirror of an external value that's stored elsewhere: on an Asset (PC token), or data from the Scene, the Room, or a Player (see StatView Fields). Useful for displaying on-token stat values on your character sheet, from extensions like Owl Trackers, GM's Grimoire, and Clash!
    Tooltip A read-only reference note that the GM writes and anyone can open by clicking (see Tooltip Fields). Very useful for rules reference, lore, or reminders wherever they are needed.

    Number Steppers

    Number and Clock fields can display a pair of increment / decrement buttons for adjusting their value +/-1 with a single click (this is in addition to opening a Number field and typing the new value there). Enable the steppers with the Configure Field popover's Increment / decrement buttons option, where you also choose:

    Like the field's own value and label, the number stepper buttons stay attached to the field as it moves, scales, and rotates, and they obey the same ownership and layout-protection rules.

    Each click steps the value by one, respecting the field's min/max clamps.

    Arithmetic Input

    For larger jumps in a number field's value, click the field itself and type into its editor, where you can enter arithmetic as well as a plain value. The cursor sits at the end of the current value, so you can:

    The result is clamped to any min/max, and if a clamp clips the result, the editor shows the leftover as a carry value to apply to another field; for example a 'temp stamina' field value of 15 can take -23 damage, and if it is clamped at min: 0 then it shows = 0 carry −8, reminding you to subtract 8 from your regular stamina field.


    Showing a Positive Sign

    Number and Calc fields can display positive values with a leading +, so that a modifier reads as +3 rather than 3. Within the field's Configure Field popover, enable the Show a leading '+' character on positive values option.


    Clock Fields

    A Clock field is a number field shown as a radial progress clock, in the style of the segmented clocks used by Blades in the Dark and other Forged-in-the-Dark games. It is ideal for countdowns, threats, project progress, or any resource that fills up segment by segment.

    Because a clock is a number field underneath, its value can be referenced by $Label within Calc fields and dice Buttons just like any other number. Likewise, clicking the pencil icon next to a Clock field in your Action popover brings up the Edit Field popover where the clock can be reset to zero or jumped directly to any segment value.

    Clock styling maps onto the standard Appearance controls so it sits within the same styling system as every other field:


    Calc Fields & Field References

    A Calc field shows the result of a formula that uses other fields' values from the same sheet, referenced by their label, written as $Label:

    $STR + $DEX / 2
    

    For labels containing spaces, wrap them in curly braces:

    ${Spell Attack} + ${Proficiency Bonus}
    

    Order of Operations

    In a complex mathematical formula, the order of processing is standard:

    1. Parentheses ( )
    2. Exponent ^: right-associative (eg. 2^3^2 = 2^(3^2) = 512)
    3. Unary minus -x
    4. Multiply / Divide / Modulo * / %: left-to-right
    5. Add / Subtract + -: left-to-right

    Functions

    Many mathematical functions are also supported, but are not listed in the UI or suggested by autocomplete: min, max, abs, floor, ceil, round, sqrt, etc.

    For example, floor ( $HP / 2 ) gives you the HP value divided by 2 and rounded down to the nearest integer.

    Referencing a grouped field

    Checkbox and radio fields that are in a group will have their group name in common, a bit like a family name, so two groups on one sheet can each have a "Level 1" field without clashing. To reference a specific group's member, qualify it with the group name and a slash:

    ${AnimalKen/Level 3} + ${Etiquette/Level 1}
    

    A bare $Label (no group) resolves to an ungrouped field first, then to a uniquely-named grouped field. If the same label appears in more than one group and nowhere ungrouped, the reference is ambiguous: the field shows #Ambiguous until you qualify it.

    The Configure Field popover offers autocomplete of available field labels as you type, including grouped members in their ${Group/Label} form, so you can pick the right group from the list. Forms evaluates calc fields in dependency order, so a calc field can reference another calc field. Circular references (A depends on B depends on A) are detected and flagged as a #Cycle error in the field's value display rather than looping forever; correcting the circular reference will resolve the error.

    $Label references also work inside dice Button notation (see Dice Buttons).

    ⚠️ It's not possible to reference a field that is on a different sheet, although the StatView field is able to read values from other Scene items' metadata (like an on-token HP bar) and then that StatView field's $Label can be used as an input to a Calc field.


    Marks: Symbol or Shape

    Every Checkbox and Radio field is marked in one of two ways, chosen in its Configure Field popover:

    The Shape button sits to the left of the symbols and carries a thumbnail of the field you actually drew, so a wide ellipse shows as a pill and a squat rectangle as a bar. The two are a single choice: picking Shape clears the symbol, and picking a symbol clears Shape. If the field belongs to a group, your choice is applied to every member of that group, so a group is never half symbols and half shapes.

    Shape marks suit geometric sheets: a row of pips, a stress track, a set of boxes to tick. They pair naturally with Fill Bars, where a cumulative group becomes a bar that visibly fills up. They also render identically on every device, because they use no font at all.

    For a Shape-marked field, the Appearance pane's colours read as:

    Control Meaning
    Fill the unchecked colour (its opacity still applies, so the box can stay subtle over sheet artwork)
    Value the checked colour, flooded at full opacity
    Stroke the border, in both states

    The Value row's font controls (size, weight, outline, alignment) are greyed out for these fields, as there is no text to style.

    Checkbox Groups

    A Checkbox field can be given a Group name in its Configure Field popover. Checkboxes sharing a group name on the same sheet are managed together: in the Action popover's field list, they collapse under one group header that shows how many of the group are ticked.

    Fill Bars

    Once a group name is set, a Cumulative (fill-bar) option becomes available, which changes how the boxes respond to clicks:

    The boxes remain separate fields, so each pip can sit at its own spot on the printed sheet while behaving as one connected meter. Reading order (ie. which box counts as "first") is taken from the boxes' positions on the sheet: left to right, then top to bottom.

    Radio Groups

    A Radio field can be given a Group name in its Configure Field popover. Radio buttons sharing a group name on the same sheet are exclusive to one another: only one of them can be selected at a time, and selecting a different button in the same group will cancel the previous selection. They are also managed together: in the Action popover's field list, they collapse under one group header that shows which one of the group is enabled (if any).

    Create Whole Group

    Once a group name is set for a radio/checkbox field, a Create whole group option becomes available, which allows you to clone the initial field many times, to speed up character sheet mapping:

    💡 If you want grouped checkboxes or radio buttons that have identical styling, you can create the first one and set its style in the Appearance section of the Action popover, and can then return to its Configure Field popover to use the Create whole group function, which saves you from having to re-style each field in that group after they have been created.

    ⚠️ the Arrange extension can be used to achieve fast and accurate positioning of a group's fields over their character sheet's artwork; place the first and last field in their proper positions (and the remaining filds in approximate place between them), open the Arrange extension's popover, Hold Shift to select the first field through to the last field in the Forms popover's list, and then use Arrange's align and distribute functions to position the remaining fields quickly


    Dice Buttons

    A Button field rolls dice through a connected dice-roller extension. In the Configure panel you set:

    Clicking the button in Play mode rolls the dice and shows the result to the chosen audience.

    Choosing a Roller

    Forms can send rolls to either of two roller extensions, chosen in the Settings panel at the foot of the Forms panel. The choice is the GM's and applies to the whole Room:

    A few things to know:

    Zero-quantity dice

    A field reference can drive a dice quantity, not just a modifier: ${Power}d6 rolls a quantity of six-sided dice equal to the Power field. Most rollers stall on a zero-quantity command such as 0d6, so when that reference resolves to zero, Forms removes the empty term before sending the roll (eg. 1d20 + ${Bless}d4 becomes 1d20 alone when the Bless variable is numerically zero or logically 'false'). If every dice term resolves to zero and there's nothing left to roll, then the button tells you so in a notification rather than sending a dice command that never completes.

    Power Rolls (Draw Steel)

    A dice button has a second mode for the Draw Steel system's signature Power Roll (2d10 plus modifiers, read as one of three success tiers). Tick Power Roll (Draw Steel) in the Configure panel and the dice-notation field is replaced by Power Roll controls:

    Power Rolls are sent to the Connected Dice Connected Dice extension, which must be installed and enabled in this Room. This is independent of the Dice+ / Bones! choice above: one sheet can use a Dice+ button for generic rolls and a Power Roll button (for a Draw Steel test) at the same time. The Connected Dice extension rolls the dice and shows the resulting tier in its own dice tray. Forms also keeps the most recent Power Roll at the top of its Action popover because Connected Dice's tray has no roll log, so this holds the last result to hand; dismiss it with the × button and it returns to show your next roll.


    StatView Fields

    A StatView field is a read-only window onto a value stored somewhere else in the Room. It never accepts typed input; it mirrors its source and updates when that source changes. Sources can be:

    When you configure a StatView field, Forms offers an auto-discovery tree of the metadata it can find, so you can browse and click the exact value to mirror rather than typing a path by hand. Because a StatView field surfaces a plain value, it can also be referenced by $Label from calc fields and dice buttons.

    When listing the available metadata values in the Configure Field popover, some well-known extensions are described by their public names, like Owl Trackers and Draw Steel Tools and Trackers, while others are described by their development name, like com.dddice or com.battle-system.forge.


    Tooltip Fields

    A Tooltip field holds GM-authored reference content (a spell description, a rules reminder, a piece of lore) written as rich text in the Configure panel. In Play Mode, anyone can click the field to read its content in a popup. It is universal (not gated by ownership) and never editable by any player, so it is ideal for in-context rules help or world lore that sits right on the sheet where it is needed.


    The Field List

    The Action popover lists every field in the Scene, with tools at the top of the popover to help you find the one you want:

    public/images/FieldList.png

     

    The Display row also allows you to Alt-click one of its icons to 'solo' it (eg. Alt-click on the Number icon to show only Number fields), and then Alt-click on it again to go back to the original display selection.

    Each row in the field list shows the field's type, its label, its value, and an Edit Field Value button (pencil icon); the GM also has three more quick action icons for restyling, configuringg, or deleting each item.

    A single-click on any list item will add a red highlight to that item and to its field in the Scene, allowing the user to correlate Scene fields with their position in the list. A double-click on any list item will pan the user's viewport so that the field is centred for them, allowing them to see the exact position of any list item in the Scene.

    The list and the Scene stay in step; whenever a field in the Scene is selected (only possible when the GM is in Build mode, or when a marquee-select has multi-selected more than one filed), the user's list is updated to add red highlighting to the list item(s).


    Styling Fields

    Open the Appearance panel at the foot of the field list to control how fields look:

    public/images/Appearance.png

     

    Styling works at two levels:

    The upper section shows a live-preview of the current style, which updates immediately with any parameter changes made on the controls below it.

    The lower section has five rows of controls:

    1. LABEL: the name of the field in the list and (optionally) in the Scene,
      • font colour swatch with numeric input and an eye-dropper
      • press'n'hold font size rocker with numeric entry (1-400)
      • bold weight toggle
      • outline style toggle
      • horizontal alignment 3-way toggle (left/centre/right)
      • vertical alignment 3-way toggle (top/middle/bottom)
      • visibility toggle (defaults to hidden)
    2. VALUE: the contents of the field as seen in the list and in the Scene
      • font colour swatch with numeric input and an eye-dropper
      • press'n'hold font size rocker with numeric entry (1-400)
      • autofit toggle - only available on Multiline fields
      • bold weight toggle - not available for Multiline fields
      • outline style toggle
      • horizontal alignment 3-way toggle (left/centre/right)
      • vertical alignment 3-way toggle (top/middle/bottom)
      • visibility toggle (defaults to visible)
    3. FAMILY: dropdown picker of all seven familiar OBR font family options, and Line spacing rocker (1.0-2.5) - only available on Multiline fields
    4. STROKE: shape outline for all field types except Clock, where is is the ring and segment spokes
      • colour swatch with numeric input and an eye-dropper
      • opacity slider (0-100%)
      • thickness value (1-10)
      • line style picker (Solid/Dashed/Dotted)
    5. FILL: shape background for all field types except Clock, where is is the filled segment colour
      • colour swatch with numeric input and an eye-dropper
      • opacity slider (5-100%), capped at 5% minimum, to ensure a valid click target

    Whenever the Appearance panel is open, its top line shows the current style, which is either Default Field Appearance when no individual field is being edited there, or [Field Label] Appearance when a specific field is being edited.

    Default Field Appearance:

    [Field Label] Appearance:

    Field previews are rendered with a faithful text-measurement engine using the exact fonts Owlbear Rodeo draws with, so what you see while styling matches what lands on the canvas.


    Format Paint: Copying One Field's Look to Many

    Styling fields one at a time is slow work on a large sheet. Format Paint copies a chosen set of parameters from one field onto as many others as you like, in one action.

    The workflow is: style one field, then multiselect to paint it onto the others.

    1. Style a single field until it looks exactly right.
    2. Select it, then Ctrl- or Shift-click (or marquee-select on the canvas) to add the fields you want to match it. The first field selected is the one being copied from.
    3. The Appearance pane retitles itself Format Paint from [Field Label] in red. While it is in this mode the controls no longer edit anything: clicking a control arms it for copying instead, marking it with a red outline. Click it again to disarm it.
    public/images/FormatPaint.png

     

    1. Press Apply to N [type] fields to confirm, and see the success result "Painted onto N fields" next to that button:
    public/images/PaintSuccess.png

     

    Only the parameters you armed are copied. Every other parameter on the target fields is left exactly as it was, and the field being copied from is never altered.

    A few things worth knowing:


    Protecting Field Layout

    Once a sheet is laid out, you don't want fields drifting away from their proper location on the sheet mid-session. All fields have a global layout protection setting shown in the top-right corner of the Action popover:

    public/images/LayoutStatus.png

     

    Layout: Locked uses an auto-revert guard: if an unauthorised change to a field's geometry is made, it is snapped back to its authorised layout as soon as possible. The GM's changes are treated as authorised whenever they have activated Build mode (so those changes are not reverted), allowing them to rearrange fields without having to switch to Layout: Editable for everyone in the Room.

    This auto-revert is usually immediate, but if you are in Layout: Locked and you see some unauthorised changes (eg. made by a player) that are not being reverted, then it's likely that the nominated enforcer is busy or has experienced a brief network disconnection - but don't worry, those changes will be fixed when the enforcer is back online again! If the enforcer has left the Room, another one is elected from the remaining members in the Room.

    Moving, scaling, or rotating the sheet image carries all its fields with it: the whole form travels as one, so a player can reposition their character sheet where is suits them, and even Lock it in position, while the fields on it retain their proper places and can still be click-edited directly.


    Concealing a Sheet from Players

    When you are preparing a sheet that you are not ready to show, or are running a GM-only tracker in the Scene (like a negotiation, a montage, or an NPC's sheet), you can hide an entire sheet - including its image and all of its fields - from your players, while keeping a fully-opaque copy for yourself. This is an upgrade from OBR's in-built Hide function, which makes the object completely invisible to players but also shows the GM a semi-transparent version that can be low-contrast and hard to read.

    In the Forms popover, sort the field list By Sheet, and each sheet's header gains a Conceal from players button (GM-only). Click it and:

    Note that this feature is also available by right-clicking on a character sheets in the canvas and selecting Conceal from players there, which then becomes a Reveal to players toggle when the sheet is hidden and the four corner markers are added to it.

    If any of the GM-only icons is obscuring part of the sheet, you can click-drag to reposition them, or delete one or more of them will no ill effect - however, it would be prudent to leave at least one of them visibkle as a visual reminder that this sheet can't be seen by players. Any GM-only icon that's dragged completely off the sheet will be deleted, and all four icons will be added afresh after a tab reload.

    ⚠️ This is a visual convenience, not a secrecy guarantee. A hidden sheet's data still lives in the Room's metadata, so a technically-minded player could in principle read its values through the browser console. Use it to declutter the table and run sheets your players have not reached yet, not to store information that you absolutely must keep secret from technically-capable players!

    💡If you need this ability to conceal an image and all its attachments from your players in a Room or a Scene where Forms' full feature-set is not needed, you can instead use the Conceal extension, which is the stand-alone version of this one capability!


    Sheet Management

    Laying out a character sheet is the one job in Forms that takes real time, and you should only have to do it once. The Sheet Management section of the Action popover (GM-only, and collapsible like Appearance and Settings) is where a finished sheet becomes something you can reuse anywhere:

    public/images/SheetMgmt.png

     

    Everything here is a SAVE (to your OBR cloud storage), or an INSERT (into the current Scene), or a DISK operation (to or from your device's hard drive), laid out as a grid of six buttons:

    Field set Template
    SAVE Sheet to Fields Sheet to Template
    INSERT Fields to Sheet Template to Sheet
    DISK Backup Sheet Restore Sheet

    A SAVE takes a live character sheet within the current Scene and produces a stored artefact (a Field Set or a Template) in your own Owlbear Rodeo cloud storage for use later; an INSERT takes one of those OBR-stored artefacts and adds it into the current Scene; a DISK allows you to backup or restore a filled-out sheet with all its values to your device's local hard drive. Hover any button for a one-line description, and the Glossary link in the section's header explains the terms (Field, Field Set, Template, and the rest) in case any are unfamiliar.

    A saved artefact comes in three kinds:


    Sharing the Fields Without the Artwork

    Most published character sheets are somebody else's copyrighted artwork. You can lay out a beautiful Forms overlay for one, but you cannot hand the sheet image to another GM, and a sheet template carries the image with its fields. A Field Set is the answer: it saves your fields and nothing else, so what you pass on is your own work, and each GM who receives it lands it on the copy of the sheet they already bought.

    Sheet to Fields saves the chosen sheet's fields without its image (again with the sheet dropdown when there is more than one). The name begins Fields -, which keeps field sets and sheet templates out of each other's pickers.

    Fields to Sheet opens a picker of your saved field sets, then asks you to click the sheet image in your Scene to drape the fields over. A click on anything that is not an image is ignored, so a misclick costs you nothing but another click.

    The fields are stored as fractions of the sheet they were drawn on rather than as fixed positions, so they fit whatever size of sheet you land them on: a field set captured from a small image lands correctly on a large one, and the fields' text size scales with them, so the values are still legible at the size you meant them to be.

    If the sheet you drop them onto is a different shape from the one they were drawn on (eg. a landscape sheet when the fields were laid out on a portrait one), Forms tells you so, because the fields will be stretched and may be out of alignment with the printed boxes underneath. Any StatView fields will also need their sources re-picked, since the token they were originally reading from is probably not in this Scene; the message after an insert says how many StatView fields need to be re-linked.

    ⚠️ To export or import a template or a field set, you can use the same OBR functionality that you use to backup and restore Scenes and image assets: Open the Extras menu (the three-dot button in the lower-left corner of your Room), then select Manage Storage, and finally click on the Export Backup icon (the cloud with a download arrow on it) or the Import Backup icon (the document with an upload arrow on it), then select what you want to export or import to/from the .ob2 archive file that OBR uses.


    Saving a Sheet as a Template

    Sheet to Template saves a sheet complete with its image and its fields. If more than one sheet in this Scene has fields on it, a dropdown appears so you can pick which one; with only one, it goes straight to naming. Name it, and Forms opens your Asset Manager's Scenes category for you to file the new template wherever you want to store it. Every template's name begins Forms -, which is what makes it findable later, so that prefix is fixed and only the rest of the name is yours to write.

    Template to Sheet opens a picker showing only your Forms templates, and adds the one you choose to the current Scene: the sheet image and every field that belongs on it.

    A template keeps everything about its fields except their contents: the types, labels, styling, checkbox and radio groups, calc formulae, dice notation, symbols, and marks all travel with it but the values land blank, ready for whoever fills the sheet in. A template is a blank form, not a copy of a filled-in one, so saving your Fighter's sheet as a template does not save your Fighter's stats or other values.

    An inserted template is a copy. It belongs to you in this Scene, and filling it in, restyling it, or drawing new fields on it leaves the saved 'master copy' of the template untouched within your storage, ready to stamp out the next character sheet.

    💡 Templates are Scenes in your own cloud storage, the same trick the Prefabs extension showcased, so they cost you almost no space to keep and are yours to use in any Room.

    ⚠️ Forms cannot tell whether you completed the save: the Asset Manager takes over as soon as it opens, and it never reports back. So there is no "Saved!" message, by design, rather than by omission. The Asset Manager is your confirmation, and your template appears there under its Forms - name.


    Finding Your Templates Again

    Templates and field sets sit among all your other Scenes in the Asset Manager, so Forms marks them in two ways:

    A field set has no artwork to show, so instead of a picture of the sheet, its thumbnail draws the outline of the sheet the fields were captured from, with the fields laid out on it in blue or green to match the owner-only/public nature of each field: you recognise the overlay by its pattern.

    💡 The badge is decorative, and Owlbear Rodeo regenerates a Scene's thumbnail from your viewport a short while after you open it as a Scene in its own right (eg. to edit it), which paints over the badge. Nothing is broken if that happens: it is the name that keeps a template findable, and the name survives. There is no need to re-save the template to get its badge back


    Backing Up a Filled-In Sheet

    A Field Set and a Template are both blank by design: they capture a sheet's layout to stamp out fresh copies, so they leave every value empty. To keep a sheet with its filled-in values (a specific character mid-campaign, or a snapshot before a risky change), use Backup and Restore instead. They sit in their own DISK row at the foot of Sheet Management, set apart because they save to a file on your device, not to your OBR cloud storage.

    💡 The file is plain, readable JSON: open it and you will find a description of what it is, the sheet it came from, and a listing of every field and its value.

    ⚠️ The artwork is stored as a reference to the image in your OBR storage (ie. the image itself is not embedded), so although your backup files are kept small, a restore needs that character sheet image to still exist in your OBR account. Restoring into the same Scene keeps everything as it was; restoring into a different Scene may need any StatView fields that mirror a token or player re-linked (and the restore will warn you how many there are).


    Troubleshooting

    "I drew a field but it didn't attach to my sheet"

    "A player can't edit their field"

    "A calc field shows an error, `#Cycle`, or `#Ambiguous`"

    "A field keeps snapping back when I move it"

    "A field isn't snapping back when it was wrongly moved"

    "My fields disappeared or didn't save"


    Support

    Owlbear Rodeo's Discord is the community hub for all extensions. Join via this invite link: https://discord.gg/u5RYMkV98s and search for Forms in the extension channels, or open a help request in #extension-help.


    Privacy & Data

    Anonymous performance metrics.

    Forms collects anonymous performance metrics in two sets.

    Always-on metrics:

    Opt-out metrics:

    These are collected to help support and improve the extension and no personal information is ever collected. The GM can enable the Metrics: no error/behaviour counts option in their Settings page to remove the "error_count", "incomplete_config", and "new_StatView_namespace" values from the metrics, which although useful for support purposes do reveal anonymised behaviour.

    The "new_StatView_namespace" telemetry allows Forms to send the development namespace of any unknown extension used in a StatView field, so that they can be added to the lookup table: eg. so we can replace com.bitperfect-software.hp-tracker/data with the much friendlier GM's Grimoire name! These messages are:

    a) only sent for extensions that don't already exist in our lookup table b) only sent for extensions that have been added to a StatView field c) truly anonymous by design - they are a separate message to the rest of the telemetry data, "this unknown extension was linked to a StatView field", with zero identifying information so that it can't be correlated with your other anonymous metrics

    Once a new and unknown extension has been reported in this way, we will find its published name, add it to our lookup table, and then update the Forms extension to include that information, so that existing and future StatView fields linked to the extension will show its proper name, making it much easier to understand what the StatView field is presenting.

    Session data are retained for up to 4 years. If you do not consent to providing any performance data then you must not use this extension.

    Local to your Room.

    All field definitions and values are stored in your Owlbear Rodeo Scene and item metadata under the com.several-record.forms namespace. This data lives in your OBR Room and persists as part of it.

    No third-party content.

    Beyond the bundled fonts (see below), Forms ships no external assets, and only reports performance telemetry with the level of detail that you choose.


    Font Credits

    Forms bundles the seven text fonts available in Owlbear Rodeo so that field text is measured and previewed with the exact glyph metrics OBR renders with. Licence files are included in the extension package under public/fonts/.

    Font Copyright / Author Licence
    Roboto Copyright 2011 The Roboto Project Authors SIL Open Font Licence 1.1
    Dancing Script Copyright 2016 The Dancing Script Project Authors SIL Open Font Licence 1.1
    Courier Prime Copyright 2015 The Courier Prime Project Authors SIL Open Font Licence 1.1
    EB Garamond Copyright 2017 The EB Garamond Project Authors SIL Open Font Licence 1.1
    Permanent Marker Google Fonts Apache Licence 2.0
    Lemon Tuesday No copyright notice in bundled file SIL Open Font Licence 1.1
    Gotica Bastard Manfred Klein: no licence file; believed public domain Public domain

    The faithful text-layout engine (src/lib/textLayout.ts) is ported from the Snaps extension's Note renderer.


    Icon Credits

    Icon Description Author Licence
    Field-type, tool, and interface icons Field types, the Build tool, and UI controls Lorc and Delapouite via game-icons.net CC BY 3.0

    Icons are adapted from their original game-icons.net SVG sources (recoloured via currentColor for theme support, and resized) for use in Owlbear Rodeo.