-
Notifications
You must be signed in to change notification settings - Fork 4
Data and data files
Manticore is meaningless without the data from the various 13th Age monster lists. This data is entered into the application via JSON files. The system requires at least one file, data.json
that is found in the repository in the static\data\
folder. For users who wish to host their own version of Manticore with monster lists not found in the core 13th Age books, additional data can be added to custom.json
in the same folder, and it will be used if found.
The data format trades off redundancy with clarity with the intent of making it as easy as reasonable to maintain the lists by hand as a lot of data entry happens manually.
The top level object is a mapping of book names to lists of monsters. The lists are ordered by level for convenience when editing them, and are otherwise ordered according to the monster lists in the appropriate book.
The individual monster records are tuple arrays rather than objects with named fields. This is a concession to brevity for entering the data by hand.
As a Typescript type definition this is (taken from data.ts
):
// name, level, size, type, tags, pagenumber
type MonsterRecord = [string, number, MonsterSize, string, string[], number];
type DataSet = {[index:string]: MonsterRecord[]};
There is a small test suite (tests/data.js
) that exhaustively tests the data to ensure it matches the schema.