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

Point Cost

  • ADVANTAGE_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

Encumbrance Loop

  • ENCUMBRANCE_LOOP_START
  • ENCUMBRANCE_LOOP_END
  • 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
  • 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 Only Loop (only advantages costing 2 points or more)

  • ADVANTAGES_ONLY_LOOP_START
  • ADVANTAGES_ONLY_LOOP_END

All Advantages Only Loop (only advantages, any cost)

  • ADVANTAGES_ALL_LOOP_START
  • ADVANTAGES_ALL_LOOP_END

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

  • DISADVANTAGES_LOOP_START
  • DISADVANTAGES_LOOP_END

All Disadvantages Loop (only disadvantages, any cost)

  • DISADVANTAGES_ALL_LOOP_END
  • DISADVANTAGES_ALL_LOOP_START

Quirks Loop (only disadvantages costing -1 point)

  • QUIRKS_LOOP_START
  • QUIRKS_LOOP_END

Perks Loop (only advantages costing 1 point)

  • PERKS_LOOP_START
  • PERKS_LOOP_END

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

  • LANGUAGES_LOOP_START
  • LANGUAGES_LOOP_END

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

  • CULTURAL_FAMILIARITIES_LOOP_START
  • CULTURAL_FAMILIARITIES_LOOP_END

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)
  • EXCLUDE_CATEGORIES_<NAME>
    Exclude any Advantage that contains "<NAME>", case insensitive.
    For example: @EXCLUDE_CATEGORIES_POWER will exclude any Advantages that contain the category "Power".
  • ID
  • PARENT_ID
  • MODIFIER_NOTES_FOR_<NAME>
    Display the notes for the modifier named "<NAME>", case insensitive.
  • ONLY_CATEGORIES_<NAME>
    Only include Advantages that contain "<NAME>", case insensitive.
    For example: @ONLY_CATEGORIES_POWER will only display Advantages that contain the category "Power".
  • POINTS
  • REF
  • TYPE

Reactions Loop

  • REACTION_LOOP_END
  • REACTION_LOOP_START
  • MODIFIER
  • SITUATION
  • ID

Conditional Modifiers Loop

  • CONDITIONAL_MODIFIERS_LOOP_END
  • CONDITIONAL_MODIFIERS_LOOP_START
  • MODIFIER
  • SITUATION
  • ID

Skills Loop

  • SKILLS_LOOP_START
  • SKILLS_LOOP_END
  • 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
  • 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

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

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

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

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

Other Equipment Loop (non-carried equipment)

  • OTHER_EQUIPMENT_LOOP_START
  • OTHER_EQUIPMENT_LOOP_END

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
  • NOTE
  • REF
  • ID
  • PARENT_ID

Notes all combined into one text block

  • NOTES

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.