NOTE!

As of GCS 5.15, a new format for output templates was introduced and is described in the file Markdown/Help/Export Templates in the Master Library. For now, you can still use this old format, but it may go away at some point in the future.


Output Templates

When GCS exports a character sheet to text, it uses a modifiable template to create the resulting file. This template is itself is plain text and can be customized in any way desired. GCS looks for templates in the Output Templates folder of both the Master Library and the User Library.

Creating New Templates

Templates are text files. The extension of the template file is used when creating a newly exported sheet from a template. Instructions on inserting character information and other functions are given to GCS with keys, which are of the form, @KEY or @KEY@. (Note that this turns @ into a reserved character, and so you must use @ if you wish the final HTML character sheet to include one.) Keys are case-sensitive and must be in all-caps. Incorrectly entered keys will be replaced with Unidentified key! in the output.

The following example shows the creation of a template that will output a plain text list of the sort generally used to post characters on Internet forums. The most basic keys are simply markers for a find-and-replace operation.

@NAME [@TOTAL_POINTS] Sex: @GENDER Age: @AGE Size: @SIZE TL: @TL Unused Points: @UNSPENT_POINTS Attributes [@ATTRIBUTE_POINTS] ST @ST DX @DX IQ @IQ HT @HT HP @BASIC_HP FP @BASIC_FP PR @PERCEPTION WL @WILL Basic Speed: @BASIC_SPEED Basic Move: @BASIC_MOVE

Results in:

Jack Jackson [120] Sex: Male Age: 38 Size: +0 TL: 4 Unused Points: 0 Attributes [50] ST 12 DX 10 IQ 10 HT 12 HP 12 FP 12 PER 12 WILL 10 Basic Speed: 5.5 Basic Move: 5

Lists of traits are generated with loop keys. When GCS encounters a loop, it applies the template within the loop once for each item on the list.

@ADVANTAGES_LOOP_START @DESCRIPTION_PRIMARY@DESCRIPTION_MODIFIER_NOTES_PAREN [@POINTS] @ADVANTAGES_LOOP_END

Results in:

Advantages [15] Fit [5] High Pain Threshold [10] Language: English (Native; Spoken (Native); Written (Native)) [0] Disadvantages [-25] Bad Temper (CR: 15 (Almost All The Time)) [-5] Charitable (CR: 12 (Quite Often)) [-15] Skinny [-5]

There are several different forms of the @DESCRIPTION keys. _PRIMARY outputs the name only, _MODIFIER_NOTES outputs those notes due to modifiers, and _NOTES outputs the text in the Notes field of the advantage, skill, or equipment. The latter two can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces. @DESCRIPTION_NOTES is omitted here because notes on advantages are rules summaries, which, while useful on character sheets meant for use in play, are not desirable in this template. Notes are, however, meaningful on skills, equipment, and spells, and so are included in those loops:

Skills [@SKILL_POINTS] @SKILLS_LOOP_START @DESCRIPTION_PRIMARY @DESCRIPTION_NOTES_PAREN @SL (@RSL) [@POINTS] @SKILLS_LOOP_END Spells [@SPELL_POINTS] @SPELLS_LOOP_START @DESCRIPTION_PRIMARY @DESCRIPTION_NOTES_PAREN @SL (@RSL) [@POINTS] @SPELLS_LOOP_END Equipment (@CARRIED_VALUE, @CARRIED_WEIGHT) @EQUIPMENT_LOOP_START @DESCRIPTION_PRIMARY, $@COST, @WEIGHT, x@QTY @EQUIPMENT_LOOP_END Notes @NOTES_LOOP_START @NOTE @NOTES_LOOP_END

Adding @NOTES to the end finishes this template.

Available Keys

Description

  • AGE
  • BIRTHDAY
  • CREATED_ON
  • EYES
  • GENDER
  • HAIR
  • HAND
  • HEIGHT
  • NAME
  • NOTES
  • PLAYER
  • PORTRAIT
    (Outputs the file name of the character's portrait, which is saved in the same directory as the character sheet)
  • RELIGION
  • SIZE
  • SKIN
  • TITLE
  • TL
  • WEIGHT
  • BODY_TYPE
  • ANCESTRY
  • RACE

Point Cost

  • ADVANTAGE_POINTS
  • ANCESTRY_POINTS
  • ATTRIBUTE_POINTS
  • BASIC_MOVE_POINTS
  • BASIC_SPEED_POINTS
  • DISADVANTAGE_POINTS
  • DX_POINTS
  • UNSPENT_POINTS
  • FP_POINTS
  • HP_POINTS
  • HT_POINTS
  • IQ_POINTS
  • PERCEPTION_POINTS
  • QUIRK_POINTS
  • RACE_POINTS
  • SKILL_POINTS
  • SPELL_POINTS
  • ST_POINTS
  • TOTAL_POINTS
  • WILL_POINTS

Attributes

  • BASIC_MOVE
  • BASIC_SPEED
  • DX
  • FRIGHT_CHECK
  • HEARING
  • HT
  • IQ
  • PERCEPTION
  • ST
  • SWING
  • TASTE_SMELL
  • THRUST
  • TOUCH
  • VISION
  • WILL

HP and FP

  • BASIC_FP
    (Maximum FP. For current FP, use FP)
  • BASIC_HP
    (Maximum HP. For current HP, use HP)
  • DEAD
  • DEATH_CHECK_1
  • DEATH_CHECK_2
  • DEATH_CHECK_3
  • DEATH_CHECK_4
  • FP
    (Current FP. For maximum FP, use BASIC_FP)
  • FP_COLLAPSE
  • HP
    (Current HP. For maximum HP, use BASIC_HP)
  • HP_COLLAPSE
  • REELING
  • TIRED
  • UNCONSCIOUS

Primary Attributes Loop

  • PRIMARY_ATTRIBUTE_LOOP_END
  • PRIMARY_ATTRIBUTE_LOOP_START
  • PRIMARY_ATTRIBUTE_LOOP_COUNT (emits the total number of items in the loop)
  • ID
  • NAME
  • FULL_NAME
  • COMBINED_NAME
  • VALUE
  • POINTS

Secondary Attributes Loop

  • SECONDARY_ATTRIBUTE_LOOP_END
  • SECONDARY_ATTRIBUTE_LOOP_START
  • SECONDARY_ATTRIBUTE_LOOP_COUNT (emits the total number of items in the loop)
  • ID
  • NAME
  • FULL_NAME
  • COMBINED_NAME
  • VALUE
  • POINTS

Point Pools Loop

  • POINT_POOL_LOOP_END
  • POINT_POOL_LOOP_START
  • POINT_POOL_LOOP_COUNT (emits the total number of items in the loop)
  • ID
  • NAME
  • FULL_NAME
  • COMBINED_NAME
  • CURRENT
  • MAXIMUM
  • POINTS

Encumbrance Loop

  • ENCUMBRANCE_LOOP_START
  • ENCUMBRANCE_LOOP_END
  • ENCUMBRANCE_LOOP_COUNT (emits the total number of items in the loop)
  • DODGE
  • LEVEL
    (Level of encumbrance; None (0), Light (1), etc.)
  • LEVEL_ONLY
    (Level of encumbrance; 0, 1, etc.)
  • MAX_LOAD
  • MOVE
  • CURRENT_MARKER (emits the word "current" when on the current encumbrance level, otherwise is emits an empty value)
  • CURRENT_MARKER_1 (emits the number "1" when on the current encumbrance level, otherwise is emits an empty value)

Hit Location Loop

  • HIT_LOCATION_LOOP_START
  • HIT_LOCATION_LOOP_END
  • HIT_LOCATION_LOOP_COUNT (emits the total number of items in the loop)
  • DR
  • EQUIPMENT
    (Show the name(s) of the equipment providing the DR bonus on a single line)
  • EQUIPMENT_FORMATTED
    (Show the name(s) of the equipment providing the DR bonus, each on a separate line surrounded by <p>...</p>)
  • PENALTY
    (The penalty to attack this location deliberately)
  • ROLL
    (Roll required to hit this location using random hit locations)
  • WHERE
    (Name of the hit location)

General Defenses

  • GENERAL_DR (effectively the torso DR)
  • CURRENT_DODGE (current dodge based on encumbrance)
  • CURRENT_MOVE (current move based on encumbrance)
  • BEST_CURRENT_BLOCK
  • BEST_CURRENT_PARRY

Lifting & Moving Things

  • BASIC_LIFT
  • CARRY_ON_BACK
  • ONE_HANDED_LIFT
  • RUNNING_SHOVE
  • SHIFT_SLIGHTLY
  • SHOVE
  • TWO_HANDED_LIFT

Advantages Loop (all advantages/disadvantages/perks/quirks)

  • ADVANTAGES_LOOP_START
  • ADVANTAGES_LOOP_END
  • ADVANTAGES_LOOP_COUNT (emits the total number of items in the loop)

Advantages Only Loop (only advantages costing 2 points or more)

  • ADVANTAGES_ONLY_LOOP_START
  • ADVANTAGES_ONLY_LOOP_END
  • ADVANTAGES_ONLY_LOOP_COUNT (emits the total number of items in the loop)

All Advantages Only Loop (only advantages, any cost)

  • ADVANTAGES_ALL_LOOP_START
  • ADVANTAGES_ALL_LOOP_END
  • ADVANTAGES_ALL_COUNT (emits the total number of items in the loop)

Disadvantages Loop (only disadvantages costing -2 points or less)

  • DISADVANTAGES_LOOP_START
  • DISADVANTAGES_LOOP_END
  • DISADVANTAGES_LOOP_COUNT (emits the total number of items in the loop)

All Disadvantages Loop (only disadvantages, any cost)

  • DISADVANTAGES_ALL_LOOP_END
  • DISADVANTAGES_ALL_LOOP_START
  • DISADVANTAGES_ALL_LOOP_COUNT (emits the total number of items in the loop)

Quirks Loop (only disadvantages costing -1 point)

  • QUIRKS_LOOP_START
  • QUIRKS_LOOP_END
  • QUIRKS_LOOP_COUNT (emits the total number of items in the loop)

Perks Loop (only advantages costing 1 point)

  • PERKS_LOOP_START
  • PERKS_LOOP_END
  • PERKS_LOOP_COUNT (emits the total number of items in the loop)

Languages Loop (only Advantages that contain the Category "Language")

  • LANGUAGES_LOOP_START
  • LANGUAGES_LOOP_END
  • LANGUAGES_LOOP_COUNT (emits the total number of items in the loop)

Cultural Familiarities Loop (only Advantages that start with "Cultural Familiarity")

  • CULTURAL_FAMILIARITIES_LOOP_START
  • CULTURAL_FAMILIARITIES_LOOP_END
  • CULTURAL_FAMILIARITIES_LOOP_COUNT (emits the total number of items in the loop)

Keys that can be used in any of the above Advantage/Disadvantage loops

  • DESCRIPTION
    (Produces output of the form below, excluding those sections not present)
    @DESCRIPTION_PRIMARY<div class="note">@DESCRIPTION_MODIFIER_NOTES</div><div class="note">@DESCRIPTION_NOTES</div>
  • DESCRIPTION_MODIFIER_NOTES
    (Outputs the notes generated by active modifiers. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_NOTES
    (Outputs the text in the Notes field of the item. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_PRIMARY
    (Outputs the name of the item)
  • ID
  • PARENT_ID
  • MODIFIER_NOTES_FOR_<NAME>
    Display the notes for the modifier named "<NAME>", case insensitive.
  • POINTS
  • REF
  • TYPE

Reactions Loop

  • REACTION_LOOP_END
  • REACTION_LOOP_START
  • REACTION_LOOP_COUNT (emits the total number of items in the loop)
  • MODIFIER
  • SITUATION
  • ID

Conditional Modifiers Loop

  • CONDITIONAL_MODIFIERS_LOOP_END
  • CONDITIONAL_MODIFIERS_LOOP_START
  • CONDITIONAL_MODIFIERS_LOOP_COUNT (emits the total number of items in the loop)
  • MODIFIER
  • SITUATION
  • ID

Skills Loop

  • SKILLS_LOOP_START
  • SKILLS_LOOP_END
  • SKILLS_LOOP_COUNT (emits the total number of items in the loop)
  • DESCRIPTION
    (Produces output of the form below, excluding those sections not present)
    @DESCRIPTION_PRIMARY<div class="note">@DESCRIPTION_MODIFIER_NOTES</div><div class="note">@DESCRIPTION_NOTES</div>
  • DESCRIPTION_MODIFIER_NOTES
    (Outputs the notes generated by active modifiers. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_NOTES
    (Outputs the text in the Notes field of the item. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_PRIMARY
    (Outputs the name of the item)
  • DIFFICULTY
  • POINTS
  • REF
  • ID
  • PARENT_ID
  • RSL
    (Relative skill level)
  • SL
    (Skill level)

Spells Loop

  • SPELLS_LOOP_START
  • SPELLS_LOOP_END
  • SPELLS_LOOP_COUNT (emits the total number of items in the loop)
  • CLASS
  • COLLEGE
  • DESCRIPTION
    (Produces output of the form below, excluding those sections not present)
    @DESCRIPTION_PRIMARY<div class="note">@DESCRIPTION_MODIFIER_NOTES</div><div class="note">@DESCRIPTION_NOTES</div>
  • DESCRIPTION_MODIFIER_NOTES
    (Outputs the notes generated by active modifiers. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_NOTES
    (Outputs the text in the Notes field of the item. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_PRIMARY
    (Outputs the name of the item)
  • DIFFICULTY
  • DURATION
  • MANA_CAST
  • MANA_MAINTAIN
  • POINTS
  • REF
  • ID
  • PARENT_ID
  • RSL
    (Relative skill level)
  • SL
    (Skill level)
  • TIME_CAST

Simple Melee Attacks Loop (one line for every mode of attack for each weapon)

  • MELEE_LOOP_START
  • MELEE_LOOP_END
  • MELEE_LOOP_COUNT (emits the total number of items in the loop)

Hierarchical Melee Attacks Loop (one line for each weapon, and then one line for each mode of attack)

  • HIERARCHICAL_MELEE_LOOP_START
    • ATTACK_MODES_LOOP_START
    • ATTACK_MODES_LOOP_END
  • HIERARCHICAL_MELEE_LOOP_END
  • HIERARCHICAL_MELEE_LOOP_COUNT (emits the total number of items in the loop)

Keys that can be used in any of the above Melee loops

  • BLOCK
  • DAMAGE
  • DESCRIPTION
    (Produces output of the form below, excluding those sections not present)
    @DESCRIPTION_PRIMARY<div class="note">@DESCRIPTION_MODIFIER_NOTES</div><div class="note">@DESCRIPTION_NOTES</div>
  • DESCRIPTION_MODIFIER_NOTES
    (Outputs the notes generated by active modifiers. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_NOTES
    (Outputs the text in the Notes field of the item. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_PRIMARY
    (Outputs the name of the item)
  • LEGALITY_CLASS
  • LEVEL
  • PARRY
  • REACH
  • STRENGTH
    (Weapon strength as a String, which can include additional symbols)
  • WEAPON_STRENGTH
    (Weapon strength as a Number)
  • UNMODIFIED_DAMAGE
  • USAGE
  • ID

Simple Ranged Attack Loop (one line for every mode of attack for each weapon)

  • RANGED_LOOP_END
  • RANGED_LOOP_START
  • RANGED_LOOP_COUNT (emits the total number of items in the loop)

Hierarchical Ranged Attack Loop (one line for each weapon, and then one line for each mode of attack)

  • HIERARCHICAL_RANGED_LOOP_START
    • ATTACK_MODES_LOOP_START
    • ATTACK_MODES_LOOP_END
  • HIERARCHICAL_RANGED_LOOP_END
  • HIERARCHICAL_RANGED_LOOP_COUNT (emits the total number of items in the loop)

Keys that can be used in any of the above Ranged loops

  • ACCURACY
  • AMMO
    (Report the quantity of ammo used by this weapon. Correlates categories "UsesAmmoType:" and "AmmoType:")
  • BULK
  • DAMAGE
  • DESCRIPTION
    (Produces output of the form below, excluding those sections not present)
    @DESCRIPTION_PRIMARY<div class="note">@DESCRIPTION_MODIFIER_NOTES</div><div class="note">@DESCRIPTION_NOTES</div>
  • DESCRIPTION_MODIFIER_NOTES
    (Outputs the notes generated by active modifiers. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_NOTES
    (Outputs the text in the Notes field of the item. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_PRIMARY
    (Outputs the name of the item)
  • LEGALITY_CLASS
  • LEVEL
  • RANGE
  • RECOIL
  • ROF
  • SHOTS
  • STRENGTH
  • UNMODIFIED_DAMAGE
  • USAGE
  • ID

Equipment

  • CARRIED_VALUE
    (Includes preceding $)
  • CARRIED_WEIGHT
  • OTHER_EQUIPMENT_VALUE
    (Includes preceding $)

Equipment Loop (carried equipment)

  • EQUIPMENT_LOOP_START
  • EQUIPMENT_LOOP_END
  • EQUIPMENT_LOOP_COUNT (emits the total number of items in the loop)

Other Equipment Loop (non-carried equipment)

  • OTHER_EQUIPMENT_LOOP_START
  • OTHER_EQUIPMENT_LOOP_END
  • OTHER_EQUIPMENT_LOOP_COUNT (emits the total number of items in the loop)

Keys that can be used in both Equipment loops

  • COST
    (Does not include preceding $)
  • COST_SUMMARY
    (Cost multiplied by qty)
  • DESCRIPTION
    (Produces output of the form below, excluding those sections not present)
    @DESCRIPTION_PRIMARY<div class="note">@DESCRIPTION_MODIFIER_NOTES</div><div class="note">@DESCRIPTION_NOTES</div>
  • DESCRIPTION_MODIFIER_NOTES
    (Outputs the notes generated by active modifiers. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_NOTES
    (Outputs the text in the Notes field of the item. Can also have _PAREN, _BRACKET, or _CURLY appended to them to surround the output, if any, in parenthesis, square brackets or curly braces).
  • DESCRIPTION_PRIMARY
    (Outputs the name of the item)
  • EQUIPPED
    Checkmark if equipped
  • EQUIPPED_NUM
    1 if equipped, 0 if not equipped
  • ID
  • PARENT_ID
  • QTY
  • REF
  • STATE
    (Whether the item is carried ("C"), equipped ("E") or not carried ("-"))
  • WEIGHT
  • WEIGHT_SUMMARY
    (Weight multiplied by qty)

Notes Loop

  • NOTES_LOOP_END
  • NOTES_LOOP_START
  • NOTES_LOOP_COUNT (emits the total number of items in the loop)
  • NOTE
  • REF
  • ID
  • PARENT_ID

Notes all combined into one text block

  • NOTES

Keys that can be used outside the Advantage/Disadvantage and Equipment loops, filtering the next Advantage/Disadvantage or Equipment loop encountered:

  • EXCLUDE_TAGS_<NAME>
    Exclude any Advantage or Equipment that contains "<NAME>", case insensitive.
    For example: @EXCLUDE_TAGS_POWER will exclude any Advantages or Equipment that contain the tag "Power".
  • ONLY_TAGS_<NAME>
    Only include Advantages or Equipment that contain "<NAME>", case insensitive.
    For example: @ONLY_TAGS_POWER will only display Advantages or Equipment that contain the category "Power".

Formatting

  • ENCODING_OFF
    If present, all text field encoding from that point on will be disabled. Normally, text field output is encoded so that it will display properly as HTML.
  • ENHANCED_KEY_PARSING
    Allows, but does not require, that a key be surrounded with @. For example, @ID@ or @NAME@. Useful for when output needs to be embedded. ex: "<HTML@KEY@TAG>"
  • DEPTHx
    (Outputs the current indention depth multiplied by the number appended to the key. For example, @DEPTHx12 would output 0 for depth 0, 12 for depth 1, 24 for depth 2, etc.)
  • STYLE_INDENT_WARNING
    (Produces output of the form below if the current indentation depth is greater than 0, otherwise nothing)
    style="padding-left: @DEPTHx12px;" or style="padding-left: @DEPTHx12px; color: red;" if the item has unsatisfied requirements.