Skip to content

Airtable-Powered Dungeons & Dragons (D&D) 5E Automation CLI

License

Notifications You must be signed in to change notification settings

AlexSafatli/airtable-dnd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

airtable-dnd

A CLI to manage a D&D campaign from the command line with Airtable.

Currently only partially implemented (WIP). See Current Features below.

Build

go build .

Usage

This script has a number of commands and will eventually feature more.

Manage Items

./airtable-dnd items <item_json_file_paths...> uses a 5etools JSON file or set of JSON files containing item data to populate weight and value data in a party inventory table.

Encounters

Manage Encounters

./airtable-dnd encounter run <encounter_json_file_path> [submit/slots] where the path to an encounter JSON file points to a file with the following example format:

{
  "Encounter": {
    "Name": "s2_l1_r2",
    "Session": 2,
    "Level": 1,
    "Room": 2,
    "XP": 30
  },
  "Participants": [
    {"Name": "Bandit", "Initiative": 2, "HP": 12},
    {"Name": "Burglar", "Initiative": 2, "HP": 23},
    {"Name": "Mook", "Initiative": 2}
  ]
}

Create Encounter JSONs

./airtable-dnd encounter create <encounter_json_file_path> <monsters_json_folder_path> monsterName # monsterName2 # ... , where any number of monsters and quantity of respective are provided. This uses a 5etools folder path containing JSONs that have monster data, where the path to an encounter JSON file points to a new file that is made in the above format.

Current Features

  • Encounter submission/recordkeeping
  • Encounter initiative order
  • Encounter JSON creator (for use with the run subcommand)
  • Management of party loot

Planned Features

  • Random generation of entities (NPCs, etc.)
  • Management of characters

Related Projects

  • Saber which is intended to eventually be an underlying engine to this CLI

Releases

No releases published

Packages

No packages published

Languages