External Synchronization
External synchronization, AKA external sync, is a feature that allows you to maintain character information on a non-Zingor webpage and have it synchronized into Zingor. This is accomplished by adding some Zingor-specific HTML markup to the external webpage. While external sync is active, character sheet details are synchronized into Zingor approximately once per minute.
External sync starts off inactive for all characters. To make use of external sync, follow the instructions on this page.
Associating Your Character with an External Webpage
In Zingor, visit the character sheet of the character with which you want to use external sync.
At the top-right of the character sheet, find the button “Add Wiki URL”.

Note
The feature currently refers to the external webpage as a “wiki page” or “wiki URL”, but it can be any webpage, as long as you’re able to add basic HTML content to that page.
Click that button, and enter the URL of the external page you want to use.

Warning
Fragments (the optional final URL component starting with #) are not supported in external page URLs. If a fragment is present in the URL, it will be stripped on save.
After you’ve added the URL, click Save. You should see the Add Wiki URL button has changed to read Edit Wiki URL, and that a link with the text “Wiki Link” has appeared to the left of that button. This link takes you to the URL you entered.

Activating External Sync
After saving the URL, you’ll also see a new Sync From Wiki button appear in the Identity section.

Click this button to activate external synchronization. You will see a “sync” badge appear (next to the “Identity” heading) to remind you that synchronization is active.

The button that previously said “Sync from wiki” will now say “Stop wiki sync”. If desired, click that button to deactivate synchronization.
Marking Up Your External Webpage
Zingor finds your character’s data on the external page by looking for Zingor microformats (ZMF): ordinary HTML elements tagged with special class names starting with zingor-. You keep full control over how the page looks: Zingor only cares about the class names and reads each tagged element’s visible text as the value.
Note
ZMF uses class attributes (rather than, say, data-* attributes) because wiki software such as MediaWiki strips most HTML attributes when saving a page, but preserves class.
Each external page describes exactly one character. The markup comes in two shapes: single fields and repeating records.
Single Records
Tag any element with one of the class names below, and its text will become that field’s value:
<td class="zingor-strength">14</td>
<span class="zingor-name">Aldric the Bold</span>
Class |
Character field |
|---|---|
|
Name |
|
Race |
|
Sex |
|
Class |
|
Level |
|
Experience points |
|
Strength |
|
Percentile strength |
|
Dexterity |
|
Constitution |
|
Intelligence |
|
Wisdom |
|
Charisma |
|
Current hit points |
|
Armor class (AC) |
|
Notes |
|
Background |
|
Appearance |
Anything you leave out is simply not synchronized: Zingor keeps whatever value it already has. If the same markup appears more than once on the page, the first occurrence wins.
Note
Money and inventory are not synchronized. Coins are inventory items in Zingor, and inventory (which containers hold what, how stacks are split) is managed in Zingor itself.
Repeating Records: Spells and Sage Knowledge
Lists of things use one level of nesting: a root element tagged with the record’s class, containing elements tagged with the record’s subfield classes. A table row per record is the natural fit, but any container element works. Records never nest inside other records, so your page can use the simplest markup possible; where record A in some way “belongs to” record B, record A will name record B within itself.
Spells
Spells use root class zingor-spell with subfields -name (required), -level (required), and -memorized (optional):
<tr class="zingor-spell">
<td class="zingor-spell-name">Cure Light Wounds</td>
<td class="zingor-spell-level">1</td>
<td class="zingor-spell-memorized">X</td>
</tr>
Warning
The zingor-spell-memorized field, if it evaluates as “yes”, means that the spell is currently memorized, not that it has been cast/is not memorized.
Sage Fields
Among the sage fields your character possesses, chosen fields are those in which your character has focused his knowledge, such that studies within that field advance at the class’s in-field rate. Possessing a field and having chosen it are two different things. For chosen fields, use root class zingor-chosen-field, with the single subfield -name (required):
<li class="zingor-chosen-field">
<span class="zingor-chosen-field-name">Animal Training</span>
</li>
Zingor calculates which fields appear on your character sheet as your class’s fields, plus the fields of any out-of-class studies you possess. That’s why there’s no ZMF record for merely possessing a field: list the studies you possess, and the fields follow.
Note
When exporting to a wiki page, the === Field === headings over the study tables are every field you have, while the “Chosen Fields” list above them is the smaller set you picked.
Sage Studies
Sage studies use root class zingor-sage-study with subfields -name (required), -points (required), and -chosen (optional):
<tr class="zingor-sage-study">
<td class="zingor-sage-study-name">Faith</td>
<td class="zingor-sage-study-points">27</td>
<td class="zingor-sage-study-chosen">X</td>
</tr>
zingor-sage-study-chosen, if it evaluates as “yes”, marks the study as one you’ve chosen, as opposed to one you just have points in. This is the same distinction as for fields, except that a study you hold is a record in its own right rather than something Zingor derives.
Warning
A study can be listed under more than one field heading on your page (e.g. Beasts belongs to both Reverence and Legends & Folklore). As mentioned under Single Records, if Zingor encounters the same markup twice while importing, the first occurrence wins. This applies to studies too, and to concentrations: listing the same subject twice under one study keeps the first and warns about the second.
Sage Concentrations
Sage concentrations are Zingor’s catchall term for the subareas to which some sage studies’ points must be allocated, such as one of the Outer Planes or a locus of Geography. Concentrations are records of their own, zingor-sage-concentration, with subfields -study (required), -name (required), and -points (optional). They sit alongside your study records rather than inside them, so each one names the study it belongs to:
<tr class="zingor-sage-study">
<td class="zingor-sage-study-name">History</td>
<td class="zingor-sage-study-points">37</td>
</tr>
<tr class="zingor-sage-concentration">
<td class="zingor-sage-concentration-study">History</td>
<td class="zingor-sage-concentration-name">Ancient Asia</td>
<td class="zingor-sage-concentration-points">22</td>
</tr>
<tr class="zingor-sage-concentration">
<td class="zingor-sage-concentration-study">History</td>
<td class="zingor-sage-concentration-name">Medieval Asia</td>
<td class="zingor-sage-concentration-points">15</td>
</tr>
The study record still carries your overall total, and it may exceed the sum of your concentrations: the difference is points you hold but haven’t committed anywhere yet, which your sheet shows as an “unallocated” line. If you list concentrations for a study you never list on its own, Zingor works the total out from them and says so in a warning.
Some studies have a fixed set of concentrations and some don’t, and Zingor treats the two differently:
History, the Outer Planes, and Heraldry have complete lists: History’s twelve period-and-sphere pairs, Heraldry’s four mega-cultures, and the outer planes themselves. Zingor will correct your spelling of any of them, but a name that isn’t on the list is ignored with a warning, because it isn’t an allocation the rules allow. On your sheet these appear as a dropdown rather than a text box.
Geography, Beasts, Artifacts, Law & Policy, and Politics are open. A locus, a studied beast, or a political entity is your DM’s invention, or a list too long and too changeable for Zingor to hold, so whatever you type is kept verbatim.
For some studies a concentration has no number of its own, and you can leave the -points cell empty:
Beasts and Artifacts grant you one studied subject per ten points, so every subject is worth the same ten. Writing a different number gets you a warning and the rule is applied anyway.
Law & Policy and Politics don’t divide their points at all — each of their concentrations is worth the study’s whole total. A character with 22 points in Politics is a 22-point authority on their chosen entity (and, per the study, counts at half that everywhere else, which your sheet works out for you).
Steam & Gasgear is a special case. It has no concentrations per se, nor markup of its own beyond the ordinary
zingor-sage-studyrecord for its knowledge points. Its built inventions are inventory items on your sheet which you mark as Steam & Gasgear inventions within that study on your character sheet. Accordingly, the maintenance points (MP) which you allocate to them day are local sheet state: like a concentration’sgrantedmark or a hidden row, they are never read from your page. Zingor’s wiki export mentions each built invention in the inventory table’s status column, but as plain text only, so nothing about them round-trips through a sync.
Warning
Naming a concentration under a study that doesn’t have any (Faith, say) is ignored, with a warning on your sheet. So is naming one under Athletics — see below.
Sage Abilities
Sage abilities (also “standalone sage abilities”) are one-off sage abilities gained other than through the sage study system, such as through a character’s progenitor. They use root class zingor-sage-ability with subfields -name (required), -points (required), -source (optional freetext noting where the ability came from), and -from-study (optional):
<tr class="zingor-sage-ability">
<td class="zingor-sage-ability-name">Read Weather</td>
<td class="zingor-sage-ability-points">12</td>
<td class="zingor-sage-ability-source">Old sailor's mentorship</td>
</tr>
zingor-sage-ability-from-study handles studies whose concentrations are sage abilities in their own right; at present, Athletics is the only study that follows this rule. The wiki counts each Athletics discipline as a sage ability outright, so there is no reason for Zingor to invent a second kind of record for them. Name the study the ability comes from, and it will be listed both under that study on your sheet and among your standalone abilities:
<tr class="zingor-sage-ability">
<td class="zingor-sage-ability-name">Swimming</td>
<td class="zingor-sage-ability-points">14</td>
<td class="zingor-sage-ability-from-study">Athletics</td>
</tr>
Warning
For spells, chosen fields, sage studies, sage concentrations, and sage abilities, the page is authoritative when the markup is present. For example, if your page contains any zingor-spell elements, the spells found there replace your character’s spell list in Zingor on each sync. If the page contains no spell markup at all, your Zingor spell list is left alone.
Each of those is a section in its own right, concentrations included. A page with a study table but no concentration table is saying nothing about your concentrations, so Zingor keeps the ones you have. Once your page does list concentrations, though, that table is the whole truth: one you delete from it is deleted on your sheet.
How Values Are Read
Zingor is forgiving about formatting, so your page can stay human-readable:
Text fields use the element’s visible text, with surrounding whitespace trimmed. Formatting markup inside the element (bold, links, etc.) is fine; only the text is kept.
Number fields pick out the first number in the text, ignoring thousands separators:
<td class="zingor-xp">12,450 xp</td>reads as 12450.Yes/no fields like
zingor-spell-memorizedtreatX,✓,yes,y,true, or1(in any letter case) as “yes”; anything else (including leaving the cell empty) as “no”.
When a value can’t be understood (say, a level cell containing no number), Zingor never guesses: the rest of the page still syncs, but that field is skipped (or, for spells and sage studies, that whole record is skipped).
Seeing What Didn’t Sync
Every skipped value is reported back on the character sheet, so a typo in your markup doesn’t quietly go unnoticed.
While external sync is active, the Identity section carries a line reading, for example, “2 things on the external page couldn’t be read”, along with how long ago that sync ran. Click it to expand the list, which names each field or record that was skipped and why.
The line appears only when the most recent sync had something to report. Fix the markup on your page, and the line disappears on the next sync — there’s nothing to dismiss.
Note
At most 50 warnings are listed. If a sync produces more than that, the list ends by telling you how many further warnings there were.
Turning off external sync clears the list, since it describes a page Zingor is no longer reading.