Skip to content

aurule/npc

Repository files navigation

NPC - A GM Campaign Management Tool

GitHub version

About

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.

Installation

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.

Usage

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.

Testing and Development

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.

Running Tests

Go to the root project directory and run python -m pytest or make test.

To generate a coverage report, run make coverage.

Building Documentation

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.

License

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/.