Star
Import Guide

Importing Custom Tables into Mythic GME 2e

Learn how to prepare and import CSV, TXT, JSON, and Foundry VTT files for use in Mythic GME Mobile.

Quick Rules (TL;DR)

Requirement CSV TXT
File encoding UTF-8 (with or without BOM) UTF-8
Line endings Windows CRLF \r\n or Unix LF \n (auto-detected) CRLF or LF (auto-detected)
Table type declaration table_type header present; value in first data row only (optional) Single line table_type: … at first OR last non-empty line (optional)
Valid values meaning-table · event-focus same
Range coverage Ranges must cover 1 → N with NO gaps/overlaps Sequential numbers auto-generated (1-N)

CSV Format

Headers & Required Columns

range_start,range_end,result[,tags][,entryRollOn][,id][,table_type]
  • range_start, range_end, result – always required for range-based CSV
  • Optional columns may appear in any order. table_type is optional but recommended
  • Header names are case-insensitive (Result, result, RESULT all work)
  • tags cells accept multiple tags separated by semicolons ;
  • entryRollOn cells accept multiple targets separated by semicolons ;

Sample Meaning Table

range_start,range_end,result,tags,table_type
1,20,Common,,meaning-table
21,40,Uncommon,,
41,60,Rare,,
61,80,Very Rare,,
81,100,Extremely Rare,,

Sample Event Focus Table

range_start,range_end,result,entryRollOn,tags,table_type
1,10,Plot Point Event,random_plot_point_event,,event-focus
11,20,Plot Beat,random_plot_beat,,
21,30,Character Action,Characters,,
31,40,Character Negative,Characters,,
41,50,Character Positive,Characters,,

TXT Format

A TXT table is one entry per line – easiest for quick lists.

Declaring the Table Type

Add one of these lines at the first or last non-empty line:

table_type: meaning-table

or

table_type: event-focus

Complete Example (Meaning Table)

# My Custom Action List
# One verb per line

table_type: meaning-table

Abandon
Activate
Advance
Attack
Befriend

PSV Format (Pipe-Separated Values)

PSV files use endpoint notation where each line represents a cumulative range endpoint.

5|withdrawn
15|guarded
30|cautious
69|neutral
84|sociable
99|helpful
100|forthcoming

This produces ranges 1-5, 6-15, 16-30 … 100-100 automatically.

Rules:

  • No header row required; optional table_type declaration allowed
  • Endpoints must be ascending integers
  • The first range always starts at 1. The last endpoint is the table's rangeEnd
  • Lines starting with # are treated as comments and ignored

JSON and Foundry VTT

JSON (Unified Table v3)

The app supports importing JSON tables that follow the Unified Table v3 schema:

  • Full-fidelity fields: translations, tags, data, tableRollOn, entryRollOn
  • tableType is part of JSON; no separate declaration needed
  • Valid tableType values: meaning-table or event-focus
  • Table IDs must be snake_case; category IDs are kebab-case

Foundry VTT JSON

Foundry imports are detected automatically when the JSON has a results array with entries containing _id, text, and a range array.

Validation Checklist

Before importing, confirm:

  • ✅ File encoded in UTF-8 (no smart quotes)
  • ✅ If provided, table_type matches intended tab (or pick the right tab)
  • ✅ Ranges cover 1-N (CSV)
  • ✅ No overlapping ranges
  • ✅ No blank required fields (result, etc.)
  • ✅ Headers spelled correctly (case doesn't matter)

If any check fails, the app shows an exact error and refuses to save, so your data remains safe.

Frequently Asked Questions

"Importer says 'Invalid table: entries must fully cover the range…'"

Your ranges have a gap or overlap. Double-check range_start / range_end.

"I don't see my table_type column in Google Sheets"

If columns aren't visible, you may need to add data or adjust column visibility. See Google's official guide on working with columns for details. Enter table_type in the first data row, then leave the rest blank.

"Can I mix weighted and ranged rows?"

Weight-based rolling is coming soon. Currently, create range-based tables only.

Need Help? If you run into any issues following this guide, please contact me and I'll be happy to help you get your tables imported successfully.