Importing & Exporting Custom Tables
Where to import/export
- Open the Custom Tables feature in the app (not in Settings).
- Use Import to add tables from files; use Export to save your tables for sharing/backups.
- Unlocking note: on Google Play, Amazon, and the Apple App Store, Custom Tables requires an IAP; Itch.io and Microsoft Store include it with a higher‑priced purchase.
Quick rules (TL;DR)
- File encoding: UTF‑8 (CRLF or LF line endings are OK)
- Table types:
meaning-tableorevent-focus - Range coverage: Your entries must fully cover 1 → N without gaps/overlaps
- Formats:
- CSV: requires
range_start, range_end, result(range‑based only for now) - TXT: one entry per line (+ optional table_type line)
- PSV:
endpoint|resultwith endpoints that produce 1..N ranges - JSON v3: full‑fidelity schema, including translations and links
- CSV: requires
- Weighted tables: Not supported yet. Use explicit ranges instead
CSV format (range‑based)
Required columns:
range_start,range_end,result
Optional columns (order doesn’t matter):
description,tags(semicolon‑separated),entryRollOn,id,table_description,table_type
Notes
- Header names are case‑insensitive
table_typeis optional; if used, only the first data row should contain a value- Conflicting or invalid values are rejected with a clear error message
Samples
- Meaning Template (CSV): Download
- Meaning Example (CSV): Download
- Event Focus Template (CSV): Download
- Event Focus Example (CSV): Download
TXT format (one per line)
- One entry per line. Simple and fast for short lists.
- Optional
table_type: meaning-table(orevent-focus) line may appear on the first or last non‑empty line.
Samples
PSV format (pipe‑separated endpoints)
- Each line:
endpoint|result - Endpoints must ascend; first range starts at 1; last endpoint becomes the table’s rangeEnd
- Optional table_type line may appear at the beginning or end
Samples
JSON (Unified Table v3)
- Full‑fidelity fields (translations,
tags,data,tableRollOn,entryRollOn) tableTypeis part of JSON; valid values:meaning-tableorevent-focus- IDs: table IDs are snake_case; category IDs are kebab‑case
Samples
- Meaning Template (JSON): Download
- Meaning Sample (JSON): Download
- Event Focus Template (JSON): Download
- Event Focus Sample (JSON): Download
Foundry VTT JSON (auto‑mapping)
Detected automatically when a JSON includes a results array with entries that contain _id, text, and a range array.
Mapping highlights
name→displayNamedescription→descriptionresults[].text→entries[].resultresults[].range→entries[].range(e.g.,[min, max])- Unknowns preserved under
data.foundry - Event Focus imports enforce
categoryId = "event-focus"
Samples
Validation & troubleshooting
- Range coverage: 1 → N with no gaps or overlaps
- Headers spelled correctly (case‑insensitive)
- No blank required fields (
result, etc.) - If a file is invalid, the app shows an exact error and refuses to save, so your data stays safe
Next steps
- Get oriented and create your first tables: see “Getting Started with Custom Tables”
- Organize categories, icons, and links: see “Organizing Custom Tables”
- JSON field reference: see “Custom Table Schema” and “Categories Schema”