-
Notifications
You must be signed in to change notification settings - Fork 2
Character Sheet Format
The character sheets used with npc are plain text documents in UTF-8. The have multiple sections for the different game stats, and one special section at the beginning for a public description.
The npc typically ignores everything outside of the description. The exception is the lint
command, which parses structures within the rest of the file when linting certain character types.
The description is everything that comes before the first section block. A block starts with a single line containing a word surrounded by dashes, like --Notes--
or --Stats--
. The description can have as much plain text as you want, and supports tags that let you add parseable information.
The character's primary name is derived from the filename. The entire base name is considered, up to the delimiter: a space, a dash, and another space (-
). Everything after that in the filename is assumed to be a GM-only note and is ignored. This name can be overridden using the @realname
tag and more names can be added with @name
tags.
Within the summary, various tags are recognized for including special information. Each must be on its own line, and not indented.
For the most part, when a tag is present multiple times, all of the values are stored.
Designates the character's creature type. Not case-sensitive, but the capitalization used will be shown in any generated NPC list.
Recognized types:
- Human
- Changeling
- Fetch
- Goblin
Right now, only the first @type
tag is considered when processing the file. This might change in the future to support hybrid characters, but don't hold your breath.
Linting is generally supported for all types, with special linting available for Changeling characters. Other types can be added by putting a new key into settings.
Indicates that the character is pretending to be a different creature type. Useful when they're (successfully) hiding their true nature. When this tag is present, its value is used instead of @type
in a generated character listing.
When multiple @faketype
tags are included, all of their values are added to the character. When a character listing is generated, the list of fake types entirely replaces the list from any @type
tags.
Adds a name for this character. Appropriate for nicknames and such. The text should include where the name is used.
Sets the character's primary name, overriding the value that was extracted from the filename. The old value is lost, so if you want use the character's nickname as their filename, you will need to manually add that nickname using an @name
tag.
Unlike most tags, multiple @realname
tags will overwrite each other. The last one in the file wins.
Add an honorific title for the character.
Marks the character as a member of the named group. It does not imply that they have any merits related to the group (Status, Goodwill, etc.), but simply that they are connected to it in some way.
Names the character's rank, position, role, etc. within a group. It applies its value to the most recent @group
(or derivative) tag above it and is ignored entirely if there is no such tag.
Describes the character's physical appearance.
This tag's presence indicates that the character has died. Optionally, details can be added to specify how or when they died.
Indicates that the character lives in a place other than the main campaign setting. If the game spans a large geographic area, you may want to use the location
tag instead.
Added in 1.3.1
Indicates that the character lives in a specific location within the main campaign setting. If the game spans a large geographic area, this tag may be needed for all characters.
Indicates that the character has no permanent home.
Added in 1.4.0
Notes the character's race. This is mostly useful for D&D and other games where racial bonuses exist, but can be used for demographic data in any game.
These tags store information that is unique to Changeling characters and are ignored when processing all other character types. The data in these tags is still stored, however, and will be present in the output of the dump
command. The data will also be present in a json-formatted character listing.
To make use of changeling-specific tags, be sure to include @type Changeling
in the character file.
Names the character's Seeming. Make sure it's in the default changeling settings file, or in a custom file supplied via settings.
Names the character's kith. Make sure it's in the default changeling settings file, or in a custom file supplied via settings.
Shortcut for the following:
@type Changeling
@seeming [seeming]
@kith [kith]
Derivative of @group
. Specifies that the character belongs to the named court, and has at least one dot in the related Mantle merit.
When present, the character's Court is displayed before any other group memberships. When not present, the text "Courtless" is shown instead.
Names the freehold that the character belongs to, either by fealty pledge or common association. This is not a group-like tag -- freeholders have ranks within their court instead of directly within the freehold.
When present, the character's freehold is displayed immediately after their court (or courtless status).
Derivative of @group
. Names the motley that the character is bound to by a special pledge.
When present, the character's Motley is displayed after their Court, and before any other groups.
Derivative of @group
. Names the entitlement that the character is belongs to.
When present, the character's entitlement is displayed before other groups.
Derivative of @appearance
. Describes the character's mundane appearance.
Derivative of @appearance
. Describes the character's magical appearance to those able to perceive their faerie Mien.
These tags store information that is unique to Werewolf characters and are ignored when processing all other character types. The data in these tags is still stored, however, and will be present in the output of the dump
command regardless of character type. The data will also be present in a json-formatted character listing.
To make use of werewolf-specific tags, be sure to include @type Werewolf
in the character file.
Added in 1.4.0
Names the character's Auspice. Make sure it's in the default werweolf settings file, or in a custom file supplied via settings.
Auspice should not be included for Pure tribes, but must be included for tribes of the moon.
Added in 1.4.0
Shortcut for the following:
@type Werewolf
@auspice [auspice]
Added in 1.4.0
Derivative of @group
. Names the character's Tribe. Make sure it's in the default werewolf settings file or in a custom file included in the user or campaign settings.
Added in 1.4.0
Derivative of @group
. Specifies that the character belongs to the named pack.
Added in 1.4.0
Derivative of @group
. Specifies that the character belongs to the named lodge.
Added in 1.4.0
Describes the spirit's ban, a special vulnerability for them. This should be hidden in listings with @hide ban
unless the players already know about it.
Directives are just like tags, but instead of adding information about the character, they change the way the character is processed.
Indicates that the character should not appear in any generated character listings. The character will still appear in the output of the dump
, however.
Suppresses a tag from appearing for the character within generated character listings. The tag info will still appear in the output of dump
.
The tag name must be specified without the @
sign in front. To hide multiple tags, use the @hide
directive multiple times.
Suppresses a named group from appearing anywhere for the character in generated listings. The group will still appear in the output of dump
.
Suppresses the character's ranks in the named group from appearing in generated listings. The ranks will still appear in the output of dump
.
Individual ranks cannot be hidden while letting the rest appear. Either all ranks for a certain group are hidden, or all are shown.
If a line starts with @#
, it will be omitted from the parsed character entirely. To comment out a tag, just add the #
after the existing @
.