This feature is experimental. Use at your own risk!

Wild Card Creator allows users to create custom character sheets made from HTML and CSS and allows you to import any form-fillable PDF sheet. This means that you can easily and quickly create flexible character sheets in Wild Card Creator, without having to learn a difficult language.

Creating HTML/CSS Character Sheets

Getting Started

Custom character sheets for Wild Card Creator use standard HTML and CSS commands with special syntax to denote Savage Worlds concepts that a character would have (e.g. what their attributes are). The special syntax is detailed later on this page.

If you’re not familiar with HTML and CSS, there many tutorials online, such as the ones at W3Schools, that can teach you how to use them.

You’ll need to have a general idea of how you want things laid out and how to express that using HTML and CSS. Wild Card Creator supports the most common aspects of HTML5 and CSS, so you can potentially create some very detailed character sheets.

General Considerations

All custom character sheets should be a single file ending in either .htm or .html. If you want to use images, place them all in a folder with the same name as the HTML file. Use the [Character Sheet] tag to refer to the character sheets folder in the URL . For instance:

<img src="[Character Sheet]/My Character Sheet/My Image.jpg">

It’s highly recommended that all sizes be indicated by percentages, rather than pixels or some other unit, when measuring. This is because your custom character sheet may be printed on a variety of paper sizes (e.g. Letter, A4) and may be portrait or landscape.

An experimental character sheet tester can be found by going to  Edit -> Preferences and in the “Experimental” section choosing “HTML Character Sheet Tester.”

Installing the Character Sheet

This is where the experimental part comes in. Right now, you have to manually place it in the “HTML Character Sheets” folder of the Savage Worlds Resources folder. You can find this by going to Edit -> Preferences and in the “Experimental” section, clicking on the “Show Resources Folder” button.

In version 1.5 and higher, it will be possible to save it in a location that will not be overwritten during an app update. In the mean time, always make a backup copy of your file so that it does not get overwritten when Wild Card Creator is updated.

Adding Form-fillable PDF Character Sheets

Getting Started

Getting a form-fillable PDF to work with Wild Card Creator requires telling the program what to put in each field. This is done by creating a mapping of what field goes to what.

Each field in the PDF is given a name when it is created. Wild Card creator requires that each of these fields have a unique name. If they don’t you’ll have to go through some more hoops and rename the fields until they are unique.

All tools required for this process can be found by going to Edit -> Preferences and choosing the “Experimental” section.

Checking for Duplicate Field Names

In the Experimental section of the preferences, click on the button labeled “Field Duplicate Checker” and navigate to your PDF. It will either report that there are no duplicate field names (in which case you can skip to the “Create the Field Mapping” step) or it will create a PDF with the names of the fields filled in (e.g. if multiple fields have the name “Skill”, then each of those fields will be filled out with the word “Skill”.

Fixing Duplicate Field Names

Using the PDF generated by the Field Duplicate Identifier, change each filled in field to the name that you want it to be. For instance, you might change the first “Skill” to “Skill 1”, the second “Skill” to “Skill 2”, and so on.

Save the PDF and launch the “Field Renamer” tool. This will examine the PDF and change the name of any field with a value written in it to that value. So a field with “Skill 1” written in it will change the name of that field to “Skill 1.” It will then prompt you to save a PDF with the names corrected.

Creating the Field Mapping

Click on the button labeled “Field Mapping Generator” and navigate to the PDF. A mapping file will be generated and you will be prompted to save it. This mapping file contains many lines such as the following:

"Skill1" : "",

The left text in quotes is the name of the field, which hopefully has been named descriptively enough to indicate what it is for (if not, go to “Identifying Field Names”. The quotes to the right indicate what value should go in this field. In between the quotes, type in the character syntax as described below. Note that unlike the HTML sheet, this section currently requires everything to be written in Pascal Case.

Identifying Field Names

It’s possible that whoever made your PDF didn’t name the fields very descriptively. In that case, you’ll need some help figuring out what they are. Click on the button labeled “Form Field Identifier.” This will create a copy of the PDF with every text field filled in with the name of the field. This will help you identify which field is which for the field mapping.

Installing the Character Sheet

This is where the experimental part comes in. Right now, you have to manually place the PDF in the “PDF Originals” folder and the mapping in the “PDF Mappings” folder within the Savage Worlds Resources folder. You can find this by going to Edit -> Preferences and in the “Experimental” section, clicking on the “Show Resources Folder” button.

Character Syntax

All special syntax for a Wild Card Creator characters is surrounded by brackets. You can use either Pascal Case or words with spaces and the syntax can be in upper or lower case. Sometimes, special parameters can be used to modify how the syntax is displayed. Such parameters are separated from the main syntax by commas (e.g. [Hindrances, Expanded]).

General

  • Name — Displays the character’s name
  • Concept — Displays the character’s concept
  • Setting — Displays the setting(s) that the character is part of
  • Portrait — Prints the file path of the character portrait’s image file (it’s recommended to use this inside the “src” part of an IMG tag)

Traits

  • Attributes — Displays the standard “stat block” listing of the attributes
  • Attribute:(Attribute Nam) — Displays the name and die type of the attribute indicated by (Attribute Name). Uses the same parameters as Attribute:(#) below.
  • Attribute:(#) — Displays the attribute that is alphabetically ordered at position (#), if it exists (e.g. [Attribute:3] would display the third attribute alphabetically)
    • Name — The name of the attribute only
    • Trapping — The trapping of the attribute only
    • Source — The setting in which the attribute is found
    • Die — The die type of the attribute. Synonymous with value.
    • Value — The die type of the attribute. Synonymous with die.
    • RawValue — A numerical representation of the die type (e.g. d4 = 4, d6 = 6, d8 = 8, etc.)
    • DieStep — The die step value (e.g. d4 = 1, d6 = 2, d8 = 3, etc.)
    • DieStep0: — The zero-based die step value (e.g. d4 = 0, d6 = 1, d8 = 2, etc.)
  • Skills — Displays the standard “stat block” listing of the skills
  • Skill:(Skill Name) — Displays the name and die type of the skill indicated by (Skill Name). Uses the same parameters as Skill:(#) below.
  • Skill:(#) — Displays the skill that is alphabetically ordered at position (#), if it exists (e.g. [Skill:3] would display the third skill alphabetically)
    • Name — The name of the skill only
    • Trapping — The trapping of the skill only
    • Source — The setting in which the skill is found
    • Die — The die type of the skill. Synonymous with value.
    • Value — The die type of the skill. Synonymous with die.
    • RawValue — A numerical representation of the die type (e.g. Untrained = 0, d4 = 4, d6 = 6, d8 = 8, etc.)
    • DieStep — The die step value (e.g. Untrained = 0, d4 = 1, d6 = 2, d8 = 3, etc.)
    • DieStep0: — The zero-based die step value (e.g. Untrained = -1,  d4 = 0, d6 = 1, d8 = 2, etc.)
    • LinkedAttribute — The linked attribute of the skill (e.g. Fighting is linked to Agility)
    • LinkedAttributeAbbreviation — The three letter abbreviation of the linked attribute of the skill (e.g. Agi, Spi, Sma)

Derived Statistics

  • Derived Statistics — Displays the standard “stat block” listing of the derived statistics
  • DerivedStatistic:(Derived Statistic Name) — Displays the name of the derived statistic indicated by (Derived Statistic Name). Uses the same parameters as DerivedStatistic:(#) below.
  • DerivedStatistic:(#) — Displays the derived statistic that is alphabetically ordered at position (#), if it exists (e.g. [DerivedStatistic:3] would display the third derived statistic alphabetically)
    • Name — The name of the derived statistic only
    • Trapping — The trapping of the derived statistic only
    • Source — The setting in which the derived statistic is found
    • Die — The die type of the derived statistic. Synonymous with value.
    • Value — The value of the derived statistic. Synonymous with die.
    • Base — The base value of the derived statistic (i.e. only the statistic’s formula)
    • Mod — The modifier value of the derived statistic (i.e only the value from sources aside from the statistic’s formula)

“Derived statistics” contain the typical derived statistics that appear in a statblock (i.e. Charisma, Pace, Parry, Toughness, Grit from Deadlands Reloaded), as well as several “hidden” derived statistics:

  • Running Die — The character’s running die (defaults to d6)
  • Size — The character’s size (humans are +0), which modifies Toughness
  • Bennies — The number of Bennies that a character has
  • Load Limit — The amount of weight that the character can carry before becoming encumbered
  • Encumbrance Penalty — The penalty to Agility and Strength-based trait rolls that the character is suffering due to becoming encumbered
  • Armor — The amount of protection provided to the character by armored gear around the character’s torso as well as an natural armor

Races

  • Race — Displays the character’s race as it appears in a statblock (i.e. with name and trapping, if any)
    • Name — The name of the race only
    • Trapping — The trapping of the race only
    • Effects — The effects description of the race
    • Source — The setting in which the race is found
    • Description — The description of the race

Subgroups (a.k.a. Occupations)

Some settings contain groups that a player character can be part of, such as the Occupations of Agents of Oblivion, Interface Zero 2.0, and Weird Wars Rome or the Extracurricular Activities of East Texas University. In Wild Card Creator, these groups are referred to as “Subgroups”.

  • Subgroup — Displays the character’s subgroup as it appears in a statblock (i.e. with name and trapping, if any)
    • Name — The name of the subgroup only
    • Trapping — The trapping of the subgroup only
    • Effects — The effects description of the subgroup
    • Source — The setting in which the subgroup is found
    • Description — The description of the subgroup

Hindrances & Edges

  • Hindrances — Displays the standard “stat block” listing of the hindrances
    • Expanded — A modifier indicating that it should list the “Expanded” version of the Hindrances, with each item on its own bullet point
  • Hindrance:(Hindrance Name) — Displays the Hindrance and short description (if any) if the Hindrance indicated by (Hindrance Name) exists. Uses the same parameters as Hindrance:(#) below.
  • Hindrance:(#): Displays the Hindrance that is alphabetically ordered at position (#), if it exists (e.g. [Hindrance:3] would display the third Hindrance alphabetically)
    • Expanded — The hindrance as it appears in an expanded statblock (e.g. Curious: Character wants to know about everything)
    • Name — The name of the hindrance only
    • Trapping — The trapping of the hindrance only
    • Effects — The effects description of the hindrance
    • Source —The setting in which the hindrance is found

The above syntax applies for Edges (and “NoAdvanceEdges”, i.e. those that are granted without an Advance) as well. Just replace “Hindrance” with “Edge”.

Arcane Background

  • ArcaneBackground — Displays the name of the character’s Arcane Background, if any
    • Name — The name of the power only
    • Trapping — The trapping of the power only
    • Source — The setting in which the power is found
    • PowerPoints — The number of power points associated with this Arcane Background
    • ArcaneSkill — The arcane skill associated with this Arcane Background

Powers

  • Powers — Displays the standard “stat block” listing of the powers
    • Expanded — A modifier indicating that it should list the “Expanded” version of the Powers, with each item on its own bullet point
  • Power:(Power Name) — Displays the power and short description (if any) if the power indicated by (Power Name) exists. Uses the same parameters as Power:(#) below.
  • Power:(#) — Displays the power that is alphabetically ordered at position (#), if it exists (e.g. [Power:3] would display the third power alphabetically)
    • Expanded — The power as it appears in an expanded statblock (e.g. Bolt: Power Points: 1 per missile, Range: 24/48/96, Duration: Instant)
    • Name — The name of the power only
    • Trapping — The trapping of the power only
    • Source — The setting in which the power is found
    • PP — The Power Point cost of the power. Synonymous with Cost.
    • Cost — The Power Point cost of the power. Synonymous with PP.
    • Range — The Range of the power
    • Duration — The Duration of the power

Gear

  • Gear:(#) — Displays the Gear (i.e. everything that is not a weapon), as it appears in a standard statblock, that is alphabetically ordered at position (#), if it exists (e.g. [Gear:3] would display the third piece of gear alphabetically)
    • Name — The name of the gear only
    • Quantity — The quantity of the gear
    • NameAndQuantity — The name and the quantity of the gear in parentheses if it is greater than 1
    • Weight — The weight of the gear
    • Notes — The notes for the gear
  • Weapon:(#) — Works as above with Gear, including the same modifiers, except that it only displays weapons
    • Damage — The damage of the weapon
    • Range — The range of the weapon (returns “—” for hand weapons)
    • RoF — The RoF of the weapon (returns “—” for hand weapons)
    • Shots — The Shots of the weapon (returns “—” for hand weapons)
    • Min Str — The Minimum Strength of the weapon (returns “—” for hand weapons)
    • AP — The weapon’s AP, parsed from the Notes field (returns “—” if no AP was found in the Notes field)
    • NotesNoAP — The weapon’s notes with the “AP” value parsed out of it
  • Armor:(#) — Works as above with Gear, including the same modifiers, except that it only displays armor
    • Value — The amount of protection the armor provides. Synonymous with armor.
    • Armor — The amount of protection the armor provides. Synonymous with value.
    • Coverage — The area that the armor covers (e.g. “torso”, “head”, “entire body”) parsed from the Notes field (returns “—” if no coverage was found in the Notes field)
    • NotesNoCoverage — The armor’s notes with the coverage (e.g. “torso”, “head”, “entire body”) parsed out
  • Remaining Cash — Displays the character’s remaining cash
  • Total Weight — Displays the total weight of the character’s belongings
  • Load Limit — Displays the character’s load limit
  • ArmorValue — Displays the armor value of the character in its default location (equivalent to ArmorLocationValue:Torso)
  • ArmorLocationValue:(L) — Displays the armor value of the character for a default location of the character. The convention for Savage Worlds is that valid armor locations are as follows: torso, head, arms, legs, and entire body. The armor location is determined by the contents of the armor’s Notes field.

Advances

  • XP — Displays the character’s current XP
  • Rank — Displays the character’s current Rank
  • Advance:(#) — Displays the Advance that the character has taken at the given XP value (e.g. [Advance:30] shows the Advance that the character took at 30 XP)

Writeups and Characteristics

Physical descriptions and other user-inputted information that can be added to the character are in one of two categories. A long description (e.g. “Description” and DLR “Worst Nightmare”) is called a Writeup. A short description (e.g. “Gender”, “Height”) is a called Characteristic. To reference these, create a tag with one of those two categories and then the field name. For instance:

[Writeup:Description]
[Writeup:Worst Nightmare]
[Characteristic:Gender]
[Characteristic:Height]

Advanced Character Syntax

There are times when you want to procedurally generate content on a custom character sheet. For instance, you might want to create an HTML table that grows or shrinks depending on how many Edges a character has taken. The following syntax can solve that:

If Statements

Sometimes you only want part of an HTML sheet to appear in certain circumstances. For instance, if the character has an Arcane Background you might want a section for Powers to appear, but otherwise would prefer it remain hidden. To do this, you can use an if statement. An if statement looks like this:

[if Powers exist]
<!--This HTML code will only display if the character has any powers-->
[end if]

The following if statements are currently supported:

  • If Powers Exist
  • If Portrait Exists
  • If Portrait Does Not Exist
  • If Special Abilities Exist

For Loops

A for loop allows you create a unique line that is dynamically generated based on the number of items you have. An example is as follows:

[for each Skill:Smarts]
<tr>
<td>#</td> <!--A number by itself will just put the name of the content-->
<td>[Skill:#, Value]</td>
</tr>
[end for]

In the example, we are iterating over all skills linked to Smarts. For every skill in the list, we are creating a new HTML table row with one column containing the name of the skill and the other containing the die of that skill. You can also iterate over Hindrances, Edges, Powers, and other content, substituting the # symbol where appropriate. For instance:

[for each Edge]
<tr>
<td>#</td> <!--A number by itself will just put the name of the content-->
</tr>
[end for]

You can use the following terms in for loops:

  • Skill (optionally with an attribute, e.g. Skill:Agility)
  • TrainedSkill (optionally with an attribute, e.g. TrainedSkill:Agility)
  • UntrainedSkill (optionally with an attribute, e.g. UntrainedSkill:Agility)
  • Edge
  • Hindrance
  • Power
  • Gear
  • Weapon
  • Armor
  • NonWeapon
  • NonArmor
  • NonWeapon/NonArmor
The information on this reference sheet may change. If you have any feedback, please contact us.