Coming soon
← Back to the blog

Blog

Import RealmCast maps into any VTT with one file (.uvtt)

You finished a battlemap in RealmCast. You want it in Foundry — walls drawn, doors placed, lights set, grid aligned — without spending an hour tracing geometry by hand. That’s what Universal VTT format is for: one JSON file (.uvtt, same spec as .dd2vtt / .df2vtt) that carries the map image plus the metadata your VTT needs to reconstruct the scene.

RealmCast adds Export for VTT (.uvtt) to the asset workspace download menu on finished blueprint-born maps. One click, one file, import on the other side.

What is UVTT?

Universal VTT is an open JSON interchange format originally popularized by Dungeondraft’s .dd2vtt export. Foundry, Arkenforge, Fantasy Grounds Unity, Roll20 (with tooling), and AboveVTT all understand variants of the same schema. RealmCast ships .uvtt, which is the same structure under a neutral extension.

The file is self-contained: you don’t upload the PNG separately and hope the wall layer lines up. The image is embedded as base64 inside the JSON, and every wall segment, door portal, and light source is expressed in the same coordinate space as that image.

What’s inside a RealmCast .uvtt file

When you export a finished map that was cast from a blueprint, RealmCast writes a single JSON document with:

  • image — the full-resolution map as a base64-encoded PNG. RealmCast maps are deliberately gridless in the artwork; the VTT draws its own grid from the metadata below.
  • pixels_per_grid and map_size — grid alignment data so squares snap correctly without you measuring pixels in an image editor.
  • line_of_sight — wall polylines derived from the blueprint’s room footprints. These are deterministic geometry from the floor plan, not AI-traced guesses.
  • portals — doors on connection edges between rooms, including open/closed state and width from the blueprint’s connection graph.
  • lights — light sources from the blueprint’s lighting metadata, placed in the same coordinate system as the walls.

Because walls, doors, and lights come from the blueprint — the same structured object that defined the cast — alignment with the painted image is exact. You’re not importing a pretty picture and hoping a third-party tool reverse-engineers the layout.

What is not in the file: a drawn grid overlay. Your VTT renders a crisp grid from pixels_per_grid. If you need a PNG with a grid baked in (some workflows do), use Download with grid from the same menu instead.

Import instructions by VTT

Foundry VTT (v11+)

  1. Install the Universal Battlemap Importer module from the Add-on Modules tab.
  2. Open the Scenes sidebar and use the module’s import action.
  3. Select your RealmCast .uvtt file (or a .dd2vtt / .df2vtt from another tool — same format).
  4. Foundry creates the scene with the map image, walls, doors, and lights applied automatically.

No manual wall tracing required for blueprint-born RealmCast maps.

Arkenforge

  1. Open the Images tab in Arkenforge.
  2. Import the .uvtt file directly.
  3. Colliders (walls) and lights are applied from the embedded data automatically.

Fantasy Grounds Unity

  1. When creating a new scene or image, choose import and select the .uvtt file.
  2. Fantasy Grounds reads the bundle and applies walls, lighting, doors, and line of sight from the file automatically.

Roll20

Roll20’s native importer is limited; the practical path depends on your subscription:

With Roll20 Pro:

  1. Upload the map image to your game (the .uvtt embeds it, but Roll20’s workflow still expects the image on their CDN for the map layer).
  2. Install and run the UniversalVTTImporter API script in your campaign.
  3. Follow the script’s instructions to paste the wall and lighting data into GM Notes as directed — the script bridges UVTT geometry into Roll20’s dynamic lighting layer.

Without Pro:

Upload the map image only and configure Dynamic Lighting manually. The .uvtt export is still useful as a reference for wall placement, but Roll20 won’t ingest the JSON without Pro-tier tooling.

AboveVTT

AboveVTT supports .dd2vtt import directly. RealmCast’s .uvtt uses the same JSON schema — rename to .dd2vtt if the importer filters on extension, or import as offered in your AboveVTT version’s battlemap import UI.

FAQ

Where’s the grid?

RealmCast battlemaps are painted without a grid — that’s intentional, so floor art never fights your VTT’s square alignment. The .uvtt file tells the VTT how many pixels equal one five-foot square (pixels_per_grid). The VTT draws a perfectly aligned grid on top. You won’t see grid lines in the PNG inside the file; you’ll see them in the VTT after import.

Which maps support VTT export?

Blueprint-born maps only — battlemaps that were cast from a RealmCast blueprint, where room geometry, connections, and lighting metadata exist in structured form.

Imported maps (images you uploaded) and legacy pre-blueprint maps do not expose VTT export. The download menu hides those actions when the blueprint data isn’t there to drive walls and doors deterministically.

Does it cost mana?

No. VTT export, HD download, and download-with-grid are subscription-tier features, not mana spends. They require magus, archmage, or demiurge (same gate as HD download). Apprentice accounts see an upsell instead. Exporting does not debit your mana balance and does not trigger a new cast.


Open a finished blueprint map in your sanctum, open the download split-button, and choose Export for VTT (.uvtt). One file from RealmCast; walls, doors, and lights waiting in whatever VTT your table already runs.