Skip to content
/ lore Public

Lore is a CLI tool for DM'ing Dungeons & Dragons (or any other table top game). Written in Go.

License

Notifications You must be signed in to change notification settings

jake-abed/lore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lore

A CLI tool for game masters running D&D, Pathfinder, and other tabletop game campaigns. All written in Go. While I still largely run a pen & paper campaign, I always keep a laptop up and running for looking up info and keeping notes.

Currently a work in progress, but still functional!

Screenshot of Lore in action

Installing Lore

Prerequisites:

  • Go
  • SQLite3

Install the Go toolchain via the docs or via webi!

Install SQLite3 via your necessary method!

For example:

# Ubuntu
sudo apt update && sudo apt upgrade && sudo apt install sqlite3

# Arch
sudo pacman -Syu && sudo pacman -S sqlite:

# Mac
brew install sqlite3

Now simply install Lore via the Go toolchain:

go install github.com/jake-abed/lore

Commands

help

Lists all available commands

dice

  • -a | Rolls a dice expression and returns the result summed up.
  • -i | Rolls a dice expression, printing each roll individually, then summing it up.

Examples of Dice Expressions

d20, 1d6, 2d12+1, 1d4-1, 3d6+8, 5d20+12, 80d100-50, etc.

monsters

  • -i | Get basic information about a monster from the D&D 5e API.
  • -f | Simulate a turn-based fight between two monsters.
    • Slightly skewed as it does not factor movement or flying into the battles, so extremely agile or flying monsters will have less of an edge than they normal would.
  • -va | View all monsters from the D&D API. Great with grep!

npcs

View, search, edit, and create custom NPCs for your campaign.

  • -a | Add new NPC via form!
  • -v | View an NPC with the provided name (exact match).
  • -d | Delete an NPC by ID.
  • -s | Lists all NPCs that partially match the provided name.
  • -e | Edit an NPC with the provided name (exact match).

places

View, search, edit, and create custom places for your campaign.

  • -a | Add a new place via form!
  • -d | Delete a place by ID represented as an integer.
  • -v | View a place with the provided name (exact match).
  • -s | Lists all places that partially match the provided name.
  • -e | Edit a place with the provided name (exact match).

Uses 'place flags' to mark which place type you are operating on.

  • --world | Overaching world for a campaign.
  • --area | Areas or regions of a world.
  • --location | Locations contained within areas.
  • --sublocation | Not implemented! Not sure if necessary or overkill?

connect

Connect NPCs to quests/places and Quests to npcs/places.

-- --npc= --{quest|place-type}= | Connect an npc to a quest/place. -- --quest= --{npc|place-type}= | Connect a quest to an npc/place.

These connections will become visible

Roadmap

While not set in stone, hitting a true v1.0.0 will include:

  • Dice Rolls
    • lore dice <dice-arg> allowing for dynamic dice rolls!
      • For example lore dice 2d6+1 rolls two six-sided die and adds one!
  • Quests
    • Write quests.
    • Attach NPCs to quests
    • Attach places to quests?
  • History/Events
    • The final shape isn't decided, but historical events can be important.
  • Players
    • Store info about your player's characters.
  • Encounters
    • Write encounters and then serve them up randomly to the GM.

I'm also debating adding a custom monsters section or replacing the API with custom monsters. The catch here is that monsters are... complex and require significantly more work to customize. They also require knowledge of the game system being used. Lore is supposed to be game system agnostic for custom info. So, feedback would be nice here.

NB on Compatibility

Up until v1.0.0 Lore should be considered unstable. The shape of the DB is a work in progress and I cannot promise compatibility.

Starting at v1.0.0, the DB schema will be stable and non-breaking changes only will happen.

Contributing

Want to contribute to Lore at all?

Clone the repo:

git clone https://github.com/jake-abed/lore
cd lore

Build it:

go build

Submit a pull request!

If you want to contribute anything at all, please fork the repository and open up a pull request to the 'main' branch.

About

Lore is a CLI tool for DM'ing Dungeons & Dragons (or any other table top game). Written in Go.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages