GM Notes¶
Warning
GM notes files are python modules that are imported when parsed. NEVER parse a gm notes file without inspecting it to verify that there are no unexpected consequences, especially a file from someone you do not trust.
Dungeonsheets has the ability to parse a python file with entities needed for game manager (GM) session notes.
Each file must contain a line like:
dungeonsheets_version = "0.4.2"
sheet_type = "gm"
Without the version line, the makesheets
command-line utility
will ignore the file. This is necessary to avoid importing non-D&D
python files. Without the sheet_type
line, the file will be
interpreted as a character sheet.
Basic Info¶
Currently, these attributes are supported: monsters
and
session_title
. More attributes will be added in the future, but if
there’s something specific you have a need for, please consider
contributing an issue or pull-request.
session_title = "Objects in Space"
monsters = ["ogre", "giant eagle"]
party = ["rogue1.py", "paladin2.py"]
monsters
should be a list of either strings or subclasses of
Monster
. These entries will then by listed on the
resulting PDF with their stat block and features.
party
contains a list of filenames for the characters in the
party. These will produce a summary table of the attributes of your
party.
Random Tables¶
Random tables can be used in-game to make decisions on-the-fly. These
tables can be included in the PDF using random_tables
. Currently
the following random tables are available.
- “conjure animals” - A list of options to choose from when a player casts the Conjure Animals spell.
- “treasure” - Tables for rolling treasure dropped by individuals or hoards.
random_tables = ["conjure animals"]
Adding Arbitrary Content¶
Additional content can be included in arbitrary sections that get
added after the summary of the GM notes output. The extra_content
attribute can accept a list of content that will be rendered as
sections in the output document. Any subclass of mechanics.Content
can be used. The section heading will be the name attribute of each
piece of content, and the body will be the docstring.
For example, the following entry will be rendered as a new section with the heading “The Bar Fight”:
from dungeonsheets import mechanics
class BarFight(mechanics.Content):
"""If the characters decide to go to the *Alliance Friendly Bar*,
they will probably have to fight their way out against 5 enemies
(3 Veteran, 2 Soldier).
"""
name = "The Bar Fight"
extra_content = [BarFight, ]