Skip to content

Character Sheet Format

Peter Andrews edited this page Apr 25, 2018 · 19 revisions

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.

Description

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.

Name

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.

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.

@type [creature type]

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

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

@faketype [creature type]

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.

@name [name]

Adds a name for this character. Appropriate for nicknames and such. The text should include where the name is used.

@realname [name]

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.

@title [title]

Add an honorific title for the character.

@group [group name]

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.

@rank [rank name]

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.

@appearance [description]

Describes the character's physical appearance.

@dead (details)

This tag's presence indicates that the character has died. Optionally, details can be added to specify how or when they died.

@foreign [place]

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.

@location [place]

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.

@wanderer

Indicates that the character has no permanent home.

@race

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.

Changeling-Specific Tags

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.

@seeming [seeming name]

Names the character's Seeming. Make sure it's in the default changeling settings file, or in a custom file supplied via settings.

@kith [kith name]

Names the character's kith. Make sure it's in the default changeling settings file, or in a custom file supplied via settings.

@changeling [seeming] [kith]

Shortcut for the following:

@type Changeling
@seeming [seeming]
@kith [kith]

@court [court name]

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.

@freehold [freehold name]

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

@motley [motley name]

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.

@entitlement [entitlement name]

Derivative of @group. Names the entitlement that the character is belongs to.

When present, the character's entitlement is displayed before other groups.

@mask [description]

Derivative of @appearance. Describes the character's mundane appearance.

@mien [description]

Derivative of @appearance. Describes the character's magical appearance to those able to perceive their faerie Mien.

Werewolf-Specific Tags

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.

@auspice [auspice name]

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.

@werwolf [auspice]

Added in 1.4.0

Shortcut for the following:

@type Werewolf
@auspice [auspice]

@tribe [tribe]

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.

@pack [pack name]

Added in 1.4.0

Derivative of @group. Specifies that the character belongs to the named pack.

@lodge [lodge name]

Added in 1.4.0

Derivative of @group. Specifies that the character belongs to the named lodge.

Spirit-Specific Tags

@ban [description]

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

Directives are just like tags, but instead of adding information about the character, they change the way the character is processed.

@skip

Indicates that the character should not appear in any generated character listings. The character will still appear in the output of the dump, however.

@hide [tag name]

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.

@hidegroup [group name]

Suppresses a named group from appearing anywhere for the character in generated listings. The group will still appear in the output of dump.

@hideranks [group name]

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.

Comments

@#

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