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!
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
Lists all available commands
- -a | Rolls a dice expression and returns the result summed up.
- -i | Rolls a dice expression, printing each roll individually, then summing it up.
d20, 1d6, 2d12+1, 1d4-1, 3d6+8, 5d20+12, 80d100-50, etc.
- -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!
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).
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).
- --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 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
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 examplelore 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.
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.
Want to contribute to Lore at all?
git clone https://github.com/jake-abed/lore
cd lore
go build
If you want to contribute anything at all, please fork the repository and open up a pull request to the 'main' branch.