NPC is a tool to make my life easier when I'm running tabletop RPG games. It automates and streamlines a few tedious tasks like managing plot and session notes, and managing character sheets.
NPC is very much a personal project. It works well enough for me to use at my weekly game, but that's it. That said, if you use it and come up with suggestions or bugs, open an issue! I'll at least take a look 😃
This readme and the project's ReadTheDocs are the main documentation for the project. The source code is pretty thoroughly documented, too.
All code is hosted on github.
Each release of NPC has pre-built binaries for Linux and Windows. These can be used directly by putting them in a directory in the system's PATH. I have plans to improve this experience in the future.
Alternately, you can run npc from its source. To do so, clone or download the source and install the system libraries corresponding to the packages in requirements.txt
. Symlink the npc_cli
file to somewhere in your PATH and it should work.
Right now, NPC is used primarily through its command line. See ReadTheDocs for details of the available comands and what they do.
NPC uses plain text files for all of its configuration and data. You can use whatever text editor you like to update characters, etc.
Development is pretty straightforward. Clone the repo and create a standard venv using Python 3.11 or later. Install packages from requirements-dev.txt
and you should be all set.Development is pretty straightforward. Clone the repo and create a standard venv using Python 3.11 or later. Install packages from requirements-dev.txt
and you should be all set.
Go to the root project directory and run python -m pytest
or make test
.
To generate a coverage report, run make coverage
.
The docs are built using Sphinx. From the root dir, you can run make docs
to quickly generate them.
When actively working on the docs, use scripts/live-docs.sh
to automatically rebuild the docs on change, using sphinx-autobuild.
To update the reference documentation for tags and systems, run python scripts/build_reference_docs.py
.
NPC is Copyright (C) 2015-2024 Paige Andrews
NPC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program, in the file LICENSE.md
. If not, see
https://www.gnu.org/licenses/.