Features of dm-tools at v1.2.0
Snap Package
dm-tools is a set of applications written in Python and packaged as a strictly
confined Snap. Snap packaging provides an easier maintenance workflow than debs
or rpms, and it works well with the Python ecosystem by bundling
all application dependencies and removing the requirement for the user
to manage them. Strictly confined Snaps also have the added benefit of
providing the user with assurances that the application is obeying the
principal of least privilege in terms of its use of system resources, and gives
the user tools to inspect an application's permissions in the form of its
interface and plugs: simply run snap connections <snap name>
.
dm-tools uses the home
plug to enable the live-game app to save game state
between sessions, and uses the network
plug in order to query the open-source
D&D 5e SRD API to automatically populate stats
for SRD monsters. That's the extent of the application's permissions on any
system.
Live-Game
live-game is an application for tracking combat encounters. Users can add and remove combatants on the fly, adjust HP, conditions, and initiative rolls, and can use the application to sort combatants by initiative and track each turn, often using only single keystrokes.
The interface of live-game is a curses-like GUI in the terminal that uses unicode emojis to display some information. A legend is provided on-screen for identifying the meaning of each emoji.
Plebs
plebs is an application that generates basic information text for one or more NPCs. It can be passed arguments to generate several NPCs at once, and to use one of several name generator algorithms. The application can also be passed an alternate configuration file to adjust the values and probabilities of each NPC attribute; documentation on the interface for this config file is forthcoming.
In addition to basic D&D ability scores, plus race and name for each NPC, plebs also generates a list of trinkets carried by the NPC (e.g. to help make pickpocketing more interesting), as well as a commoner occupation, three personality traits to help the DM in role-playing the NPC, and a problem that the NPC is having in their life when encountered by the players. NPC problems can work either as minor quests for the players to pursue, or simply aid the DM in creating flavor and immersion for their game.
Pockets
pockets simply generates a list of one or more interesting trinkets. Although some trinkets are inspired by those in various D&D books, they are all ultimately of my own creation, and I find myself adding more all the time.
Open Source
dm-tools is an open source project. Help make it better by submitting issues or PRs to the Github page.