<#ftl encoding="UTF-8" strip_whitespace=true > ${pcstring('NAME')} [${pcstring('POOL.COST')} Points]
Created using PCGen ${pcstring('EXPORT.VERSION')} on ${pcstring('EXPORT.DATE')}
<#if (pcstring("ABILITYALL.ANY.0.TYPE=RaceName.HASASPECT.RaceName") = "Y")> <#else> <#if (pcvar("COUNT[VISION]") > 0) > <#else>
${pcstring('NAME')} <#if (pcstring("FOLLOWEROF") != "") >- ${pcstring('FOLLOWEROF')} ${pcstring('PLAYERNAME')} ${pcstring('ALIGNMENT')} ${pcstring('DEITY')} ${pcstring('POOL.COST')} Click for Bio
Character Name PLAYER ALIGNMENT DEITY POINTS
${pcstring('CLASSLIST')} <#if (pcvar('count("ABILITIES","CATEGORY=Archetype","TYPE=Archetype","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> (${pcstring('ABILITYLIST.Archetype.TYPE=Archetype')}) ${pcstring('EXP.CURRENT')}${pcstring('ABILITYALL.ANY.0.ASPECT=RaceName.ASPECT.RaceName')}${pcstring('RACE')} ${pcstring('SIZELONG')} / ${pcstring('FACE')} ${pcstring('HEIGHT')} ${pcstring('WEIGHT')}${pcstring('VISION')}Normal
CLASS EXPERIENCE RACE SIZE / FACE HEIGHT WEIGHT VISION
${pcstring('TOTALLEVELS')} ${pcstring('EXP.NEXT')} ${pcstring('AGE')} ${pcstring('GENDER')} ${pcstring('COLOR.EYE')} ${pcstring('COLOR.HAIR')}, ${pcstring('LENGTH.HAIR')}
LEVEL NEXT LEVEL AGE GENDER EYES HAIR
<#if (pcstring("WEAPON.${weap}.QUALITY.Critical") = "")> <#else>)
<@loop from=0 to=pcvar('COUNT[STATS]-1') ; stat , stat_has_next><#-- TODO: Loop was of early exit type 1 -->
ABILITY
NAME
ABILITY
SCORE
ABILITY
MODIFIER
TEMPORARY
SCORE
TEMPORARY
MODIFIER
${pcstring('STAT.${stat}.NAME')}
${pcstring('STAT.${stat}.LONGNAME')}
${pcstring('STAT.${stat}.NOTEMP.NOEQUIP')} ${pcstring('STAT.${stat}.MOD.NOTEMP.NOEQUIP')} ${pcstring('STAT.${stat}')} ${pcstring('STAT.${stat}.MOD')}
<#if pchasvar('StarfinderSystem')>

CURRENT HP

SUBDUAL DAMAGE

CURRENT STAMINA

DAMAGE
REDUCTION

SPEED
HP
Hit Points
${pcstring('HP')}


SP
Stamina Points
${pcstring('ALTHP')}

 ${pcstring('DR')} 
<@loop from=0 to=pcvar('COUNT[MOVE]-1') ; movement , movement_has_next><#-- TODO: Loop was of early exit type 1 --> ${pcstring('MOVE.${movement}.NAME')} ${pcstring('MOVE.${movement}.RATE')} <#if (pcstring("MOVE.${movement}.NAME") = "Fly")> (${pcstring('ABILITYALL.Special Ability.HIDDEN.0.TYPE=Maneuverability.ASPECT.Maneuverability')}) <#-- <#list pc.dynamic.movement as movement> ${movement.name} ${movement.val.speed} -->
<#elseif (pcvar("UseAlternateDamage") = 0 )>

WOUNDS/CURRENT HP

SUBDUAL DAMAGE

DAMAGE
REDUCTION

SPEED
HP
Hit Points
${pcstring('HP')}


 ${pcstring('DR')} 
<@loop from=0 to=pcvar('COUNT[MOVE]-1') ; movement , movement_has_next><#-- TODO: Loop was of early exit type 1 --> ${pcstring('MOVE.${movement}.NAME')} ${pcstring('MOVE.${movement}.RATE')} <#if (pcstring("MOVE.${movement}.NAME") = "Fly")> (${pcstring('ABILITYALL.Special Ability.HIDDEN.0.TYPE=Maneuverability.ASPECT.Maneuverability')})
<#else>

CURRENT VITALITY

SUBDUAL DAMAGE

CURRENT WP

DAMAGE
REDUCTION

SPEED
VP
Vitality
${pcstring('HP')}


WP
Wound Points
${pcstring('ALTHP')}

 ${pcstring('DR')} 
<@loop from=0 to=pcvar('COUNT[MOVE]-1') ; movement , movement_has_next><#-- TODO: Loop was of early exit type 1 --> ${pcstring('MOVE.${movement}.NAME')} ${pcstring('MOVE.${movement}.RATE')} <#if (pcstring("MOVE.${movement}.NAME") = "Fly")> (${pcstring('ABILITYALL.Special Ability.HIDDEN.0.TYPE=Maneuverability.ASPECT.Maneuverability')})
AC
Armor Class
${pcstring('AC.AC')} = ${pcstring('AC.Base')} + ${pcstring('AC.Ability')} + ${pcstring('AC.Armor')} + ${pcstring('AC.ArmorProfBonus')} ${pcstring('AC.Shield')} = ${pcstring('AC.Misc')} Profs
Avail
${pcvar('VAR.ArmorProf_LightArmor')} ${pcvar('VAR.ArmorProf_MediumArmor')} ${pcvar('VAR.ArmorProf_HeavyArmor')} ${pcvar('VAR.ArmorProf_UnarmoredDefense')} Resolve
Points
${pcvar('VAR.Resolve')}
TOTAL BASE STAT ARMOR PROF SHIELD MISC Light Medium Heavy Unarmored TOTAL
PERCEPTION
Modifier
${pcvar('VAR.PerceptionTotal')} = ${pcvar('VAR.PerceptionAbility')} + ${pcvar('VAR.PerceptionProf')} + ${pcvar('VAR.PerceptionItem')}
TOTAL WIS PROF ITEM
BASE ATTACK
Bonus
${pcstring('ATTACK.MELEE')}


${pcstring('SPELLFAILURE')} ${pcstring('ACCHECK')} ${pcstring('MAXDEX')} ${pcstring('SR')}  
MISS
CHANCE
ARCANE
FAILURE
ARMOR
CHECK
MAX
DEX
SPELL
RESIST.
TEMP
<@loop from=0 to=pcvar('COUNT[CHECKS]-1') ; checks , checks_has_next>
SAVING THROWS TOTAL BASE ABILITY MAGIC EPIC MISC TEMPORARY
${pcstring('CHECK.${checks}.NAME')}
<#if (pcstring("CHECK.${checks}.NAME") = "Fortitude")> Constitution <#else> <#if (pcstring("CHECK.${checks}.NAME") = "Reflex")> Dexterity <#else> <#if (pcstring("CHECK.${checks}.NAME") = "Will")> Wisdom <#else>
${pcstring('CHECK.${checks}.TOTAL')} = ${pcstring('CHECK.${checks}.BASE')} + ${pcstring('CHECK.${checks}.STATMOD')} + ${pcstring('CHECK.${checks}.MAGIC')}
+ ${pcstring('CHECK.${checks}.EPIC')}
+ ${pcstring('CHECK.${checks}.MISC.NOMAGIC.NOSTAT')}
+
CONDITIONAL MODIFIERS:
<#assign condCount = 0> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Racial Trait","TYPE=Racial Trait","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; RacialTrait , RacialTrait_has_next> <#if (pcstring("ABILITYALL.Racial Trait.VISIBLE.${RacialTrait}.TYPE.ASPECT.BonusSave")!= "")> <#if (condCount > 0)> , ${pcstring("ABILITYALL.Racial Trait.VISIBLE.${RacialTrait}.TYPE.ASPECT.BonusSave")?lower_case} <#assign condCount++> <#else>
TOTAL BASE ATTACK STAT SIZE EPIC MISC TEMP
MELEE
ATTACK BONUS
${pcstring('ATTACK.MELEE.TOTAL')} = ${pcstring('ATTACK.MELEE')}
+ ${pcstring('ATTACK.MELEE.STAT')} + ${pcstring('ATTACK.MELEE.SIZE')}
+ ${pcstring('VAR.charbonusto("COMBAT","EPICAB").INTVAL')}
+ ${pcstring('ATTACK.MELEE.MISC')}
+
RANGED
ATTACK BONUS
${pcstring('ATTACK.RANGED.TOTAL')} = ${pcstring('ATTACK.RANGED')}
+ ${pcstring('ATTACK.RANGED.STAT')} + ${pcstring('ATTACK.RANGED.SIZE')}
+ ${pcstring('VAR.charbonusto("COMBAT","EPICAB").INTVAL')}
+ ${pcstring('ATTACK.RANGED.MISC')}
+
CONDITIONAL MODIFIERS:
<@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=CombatBonus")-1') ; ability , ability_has_next> ${pcstring('ABILITYALL.ANY.${ability}.ASPECT=CombatBonus.ASPECT.CombatBonus')}
<#if (pcvar('count("ABILITIES","CATEGORY=Natural Attack","TYPE=NaturalAttack","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Natural Attack","TYPE=NaturalAttack","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; ability , ability_has_next> <#if (pcstring("ABILITYALL.Natural Attack.VISIBLE.${ability}.TYPE=NaturalAttack.DESC:YES") = "Y")>
${pcstring('ABILITYALL.Natural Attack.VISIBLE.${ability}.TYPE=NaturalAttack')} TOTAL ATTACK BONUS DAMAGE CRIT / MULT REACH
${pcstring('ABILITYALL.Natural Attack.VISIBLE.${ability}.TYPE=NaturalAttack.ASPECT.NaturalAttackToHit.SIGN')}
${pcstring('ABILITYALL.Natural Attack.VISIBLE.${ability}.TYPE=NaturalAttack.ASPECT.NaturalAttackDamage')}
${pcstring('ABILITYALL.Natural Attack.VISIBLE.${ability}.TYPE=NaturalAttack.ASPECT.NaturalAttackThreatRange')} / ${pcstring('ABILITYALL.Natural Attack.VISIBLE.${ability}.TYPE=NaturalAttack.ASPECT.NaturalAttackCritMult')}
${pcstring('ABILITYALL.Natural Attack.VISIBLE.${ability}.TYPE=NaturalAttack.ASPECT=NaturalAttackReach.ASPECT.NaturalAttackReach')}
Special Properties ${pcstring('ABILITYALL.Natural Attack.${ability}.TYPE=NaturalAttack.ASPECT.NaturalAttackNotes')}${pcstring('ABILITYALL.Natural Attack.${ability}.TYPE=NaturalAttack.DESC')}

<#if (pcvar('VAR.DisplayUnarmedOff.INTVAL') > 0)> <#else> <@loop from=0 to=pcvar('countdistinct("ABILITIES","CATEGORY=Special Ability","TYPE=UnarmedDisplay","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; ability , ability_has_next>
UNARMED TOTAL ATTACK BONUS DAMAGE CRITICAL REACH
${pcstring('WEAPONH.TOTALHIT')}
${pcstring('WEAPONH.DAMAGE')}
- ${pcstring('REACH')}
SPROP: ${pcstring('ABILITYALL.Special Ability.VISIBLE.${ability}.TYPE=UnarmedDisplay.ASPECT.UnarmedNotes')}

<#-- create variable x --> <#assign fab = pcstring('WEAPONH.TOTALHIT')?keep_before("/")?number> <#assign fab_1 = pcvar('VAR.FAB_1.INTVAL') + fab> <#assign fab_2 = pcvar('VAR.FAB_2.INTVAL') + fab> <#assign fab_3 = pcvar('VAR.FAB_3.INTVAL') + fab> <#assign fab_4 = pcvar('VAR.FAB_4.INTVAL') + fab> <#assign fab_5 = pcvar('VAR.FAB_5.INTVAL') + fab> <#assign fab_6 = pcvar('VAR.FAB_6.INTVAL') + fab> <#assign fab_7 = pcvar('VAR.FAB_7.INTVAL') + fab> <#assign fab_8 = pcvar('VAR.FAB_8.INTVAL') + fab> <#assign fab_9 = pcvar('VAR.FAB_9.INTVAL') + fab> <#if (pcvar("FlurryLvl") >= 1)>
Flurry of Blows TOTAL ATTACK BONUS
<#if (fab_1 >= 0)>+<#t>${fab_1}<#t> <#if (pcvar("FlurryAttacks") >= 2)> /<#if (fab_2 >= 0)>+<#t>${fab_2}<#t> <#if (pcvar("FlurryAttacks") >= 3)> /<#if (fab_3 >= 0)>+<#t>${fab_3} <#if (pcvar("FlurryAttacks") >= 4)> /<#if (fab_4 >= 0)>+<#t>${fab_4} <#if (pcvar("FlurryAttacks") >= 5)> /<#if (fab_5 >= 0)>+<#t>${fab_5} <#if (pcvar("FlurryAttacks") >= 6)> /<#if (fab_6 >= 0)>+<#t>${fab_6} <#if (pcvar("FlurryAttacks") >= 7)> /<#if (fab_7 >= 0)>+<#t>${fab_7} <#if (pcvar("FlurryAttacks") >= 8)> /<#if (fab_7 >= 0)>+<#t>${fab_8} <#if (pcvar("FlurryAttacks") >= 9)> /<#if (fab_7 >= 0)>+<#t>${fab_9}

<#macro weaponHandedToHitDmgTable weap> <#if (pcstring('WEAPON.${weap}.SPROP') != "")>
1H-P 1H-O 2H 2W-P-(OH) 2W-P-(OL) 2W-OH
 Bonus ${pcstring('WEAPON.${weap}.BASEHIT')}
${pcstring('WEAPON.${weap}.OHHIT')}
${pcstring('WEAPON.${weap}.THHIT')}
${pcstring('WEAPON.${weap}.TWPHITH')}
${pcstring('WEAPON.${weap}.TWPHITL')}
${pcstring('WEAPON.${weap}.TWOHIT')}
 Dam ${pcstring('WEAPON.${weap}.BASICDAMAGE')}
${pcstring('WEAPON.${weap}.OHDAMAGE')}
${pcstring('WEAPON.${weap}.THDAMAGE')}
${pcstring('WEAPON.${weap}.BASICDAMAGE')}
${pcstring('WEAPON.${weap}.BASICDAMAGE')}
${pcstring('WEAPON.${weap}.OHDAMAGE')}
 Special Properties  ${pcstring('WEAPON.${weap}.SPROP')}
<#macro weaponBlock weap> <#assign weaponCategory> ${pcstring('WEAPON.${weap}.CATEGORY')?lower_case} <#-- Weapon ${weap} is ${pcstring("WEAPON.${weap}.NAME")} Cat: ${weaponCategory} --> <#if (weaponCategory?contains('both'))> <#if (weaponCategory?contains('ranged'))> <@loop from=0 to=4 ; range , range_has_next> <@loop from=0 to=4 ; range1 , range1_has_next> <@loop from=0 to=4 ; range2 , range2_has_next>
  Range${pcstring('WEAPON.${weap}.RANGELIST.${range}')}
 Bonus${pcstring('WEAPON.${weap}.RANGELIST.${range1}.TOTALHIT')}
 Dam${pcstring('WEAPON.${weap}.RANGELIST.${range2}.DAMAGE')}
 Ammunition Used
☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐
 Special Properties
 ${pcstring('WEAPON.${weap}.SPROP')}

<#else>
${pcstring('WEAPON.${weap}.NAME')}
HAND TYPE SIZE CRITICAL REACH
${pcstring('WEAPON.${weap}.HAND')}
${pcstring('WEAPON.${weap}.TYPE')}
${pcstring('WEAPON.${weap}.SIZE')}
-${pcstring('WEAPON.${weap}.QUALITY.Critical')} ${pcstring('WEAPON.${weap}.REACH')}${pcstring('WEAPON.${weap}.REACHUNIT')}
<@weaponHandedToHitDmgTable weap=weap /> <#else> <#if (weaponCategory?contains('ranged'))> ${pcstring('WEAPON.${weap}.NAME')}
HAND TYPE SIZE CRITICAL ${pcstring('WEAPON.${weap}.HAND')}
${pcstring('WEAPON.${weap}.TYPE')}
${pcstring('WEAPON.${weap}.SIZE')}
<#if (pcstring("WEAPON.${weap}.QUALITY.Critical") = "")> - <#else>) ${pcstring('WEAPON.${weap}.QUALITY.Critical')} <#if (pcstring("WEAPON.${weap}.CONTENTS") = "0")> <@loop from=0 to=4 ; range , range_has_next> <@loop from=0 to=4 ; range1 , range1_has_next> <@loop from=0 to=4 ; range2 , range2_has_next>
  Range${pcstring('WEAPON.${weap}.RANGELIST.${range}')}
 Bonus${pcstring('WEAPON.${weap}.RANGELIST.${range1}.TOTALHIT')}
 Dam${pcstring('WEAPON.${weap}.RANGELIST.${range2}.DAMAGE')}
 Ammunition Used
☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐
 Special Properties
 ${pcstring('WEAPON.${weap}.SPROP')}

<#else> <@loop from=0 to=pcvar('WEAPON.${weap}.CONTENTS-1') ; ammo , ammo_has_next>  AMMUNITION: ${pcstring('WEAPON.${weap}.CONTENTS.${ammo}')} <#if (pcstring("WEAPON.${weap}.CONTENTS.${ammo}.SPROP") = " ")> (${pcstring('WEAPON.${weap}.CONTENTS.${ammo}.SPROP')})  Range <@loop from=0 to=4 ; range , range_has_next> ${pcstring('WEAPON.${weap}.RANGELIST.${range}')}'
 Bonus <@loop from=0 to=4 ; range1 , range1_has_next> ${pcstring('WEAPON.${weap}.RANGELIST.${range1}.CONTENTS.${ammo}.TOTALHIT')}
 Dam <@loop from=0 to=4 ; range2 , range2_has_next> ${pcstring('WEAPON.${weap}.RANGELIST.${range2}.CONTENTS.${ammo}.DAMAGE')}  Ammunition Used
☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐ ☐☐☐☐☐  Special Properties
 ${pcstring('WEAPON.${weap}.SPROP')}

<#else> <#if (pcboolean("WEAPON.${weap}.ISTYPE.Double") || weaponCategory?contains('non-standard-melee') || weaponCategory?contains('natural'))> ${pcstring('WEAPON.${weap}.NAME')}
TOTAL ATTACK BONUS DAMAGE CRITICAL ${pcstring('WEAPON.${weap}.TOTALHIT')}
${pcstring('WEAPON.${weap}.DAMAGE')}
<#if (pcstring("WEAPON.${weap}.QUALITY.Critical") = "")> - <#else>) ${pcstring('WEAPON.${weap}.QUALITY.Critical')}
HAND REACH TYPE SIZE SPECIAL PROPERTIES
${pcstring('WEAPON.${weap}.HAND')}
${pcstring('WEAPON.${weap}.REACH')}${pcstring('WEAPON.${weap}.REACHUNIT')}
${pcstring('WEAPON.${weap}.TYPE')}
${pcstring('WEAPON.${weap}.SIZE')}
 ${pcstring('WEAPON.${weap}.SPROP')}

<#else> ${pcstring('WEAPON.${weap}.NAME')}
HAND TYPE SIZE CRITICAL RANGE ${pcstring('WEAPON.${weap}.HAND')}
${pcstring('WEAPON.${weap}.TYPE')}
${pcstring('WEAPON.${weap}.SIZE')}
<#if (pcstring("WEAPON.${weap}.QUALITY.Critical") = "")> - <#else>) ${pcstring('WEAPON.${weap}.QUALITY.Critical')} ${pcstring('WEAPON.${weap}.RANGE')}
<@weaponHandedToHitDmgTable weap=weap />
<@loop from=0 to=2 ; weap , weap_has_next><#-- TODO: Loop was of early exit type 1 --> <#if (pcstring("WEAPON.${weap}.NAME") != "") > <@weaponBlock weap=weap /> <#assign nextWeaponIdx = 3 /> <#-- If the 3rd weapon was a 'both' weapon, tack its ranged block on this page --> <#if (pcstring("WEAPON.3.NAME") != "") > <#assign weaponCategory> ${pcstring('WEAPON.3.CATEGORY')?lower_case} <#if (weaponCategory?contains('both') && weaponCategory?contains('ranged'))> <@weaponBlock weap=3 /> <#assign nextWeaponIdx = 4 />
1H-P: One handed, primary hand. 1H-O: One handed, off hand. 2H: Two handed. 2W-P-(OH): 2 weapons, primary hand (off hand weapon is heavy). 2W-P-(OL): 2 weapons, primary hand (off hand weapon is light). 2W-OH:2 weapons, off hand.
<@loop from=0 to=2 ; count , count_has_next> <#if (pcstring("ARMOR.${count}.NAME") != "") >
${pcstring("ARMOR.EQUIPPED.${count}.NAME")}
TYPEARMOR BONUSMAX DEX BONUS
${pcstring("ARMOR.EQUIPPED.${count}.TYPE")}
See Below
${pcstring("ARMOR.EQUIPPED.${count}.MAXDEX")}
CHECK PENALTYSPELL FAILURESPECIAL PROPERTIES
${pcstring("ARMOR.EQUIPPED.${count}.ACCHECK")}
${pcstring("ARMOR.EQUIPPED.${count}.SPELLFAIL")}
${pcstring("ARMOR.EQUIPPED.${count}.SPROP")}
<#if (pcvar("VAR.TOTALPOWERPOINTS") >= 1) >
PSI POWER POINTS
 Base PP ${pcstring('VAR.BASEPOWERPOINTS.INTVAL')}  Bonus PP ${pcstring('VAR.BONUSPOWERPOINTS.INTVAL')}  Total PP ${pcstring('VAR.TOTALPOWERPOINTS.INTVAL')}
 
<@loop from=0 to=pcvar('count("SKILLSIT", "VIEW=VISIBLE_EXPORT")')-1; skill , skill_has_next > <#if (skill % 2 = 0)><#else> <#list pc.skills?sort as skill>
SKILLS MAX
RANKS
${pcstring('MAXSKILLLEVEL')}/${pcstring('MAXCCSKILLLEVEL')}
SKILL NAME ABILITY SKILL
MODIFIER
ABILITY
MODIFIER
RANKS MISC
MODIFIER
<#if pcboolean("SKILLSIT.${skill}.UNTRAINED")>◆  ${pcstring('SKILLSIT.${skill}')} ${pcstring('SKILLSIT.${skill}.ABILITY')} ${pcstring('SKILLSIT.${skill}.TOTAL')} = ${pcstring('SKILLSIT.${skill}.ABMOD')}
+ ${pcstring("SKILLSIT.${skill}.RANK")?replace("\\.0", "", "rf")}
+ ${pcstring('SKILLSIT.${skill}.MISC')}
  ${skill}
◆ = Useable Untrained
CONDITIONAL MODIFIERS:
<@loop from=0 to=pcvar('countdistinct("ABILITIES","ASPECT=SkillBonus")-1') ; ability , ability_has_next> ${pcstring('ABILITYALL.ANY.${ability}.ASPECT=SkillBonus.ASPECT.SkillBonus')}

PCGen Character Template by ROG, mods/maint by Arcady, Barak & Dimrill. For suggestions please post to pcgen@yahoogroups.com with "OS Suggestion" in the subject line.

Created using PCGen ${pcstring('EXPORT.VERSION')} on ${pcstring('EXPORT.DATE')}
Player: ${pcstring('PLAYERNAME')}; Character Name: ${pcstring('NAME')}
<#else>
<#macro equipmentRow equip1> <#if (equip1 % 2 = 0)>
 ${pcstring("EQ.Not.Coin.NOT.Gem.${equip1}.NAME.MAGIC~~")}
<#if (pcstring("EQ.Not.Coin.NOT.Gem.${equip1}.SPROP") != "")> (${pcstring('EQ.Not.Coin.NOT.Gem.${equip1}.SPROP')}) <#if (pcstring("EQ.Not.Coin.NOT.Gem.${equip1}.NOTE") != "")> (${pcstring('EQ.Not.Coin.NOT.Gem.${equip1}.NOTE')})
<@loop from=1 to=pcvar('EQ.Not.Coin.NOT.Gem.${equip1}.CHARGES') ; charges , charges_has_next> <#assign eqType = pcstring("EQ.Not.Coin.NOT.Gem.${equip1}.TYPE")?lower_case /> <#if (eqType?contains("consumable") || eqType?contains("potion") || eqType?contains("ammunition")) > <@loop from=1 to=pcvar('EQ.Not.Coin.NOT.Gem.${equip1}.CHECKBOXES') ; consumable , consumable_has_next>
${pcstring('EQ.Not.Coin.NOT.Gem.${equip1}.LOCATION')}
${pcstring('EQ.Not.Coin.NOT.Gem.${equip1}.QTY')}
${pcstring('EQ.Not.Coin.NOT.Gem.${equip1}.WT')}
${pcstring('EQ.Not.Coin.NOT.Gem.${equip1}.COST')}
EQUIPMENT
<@loop from=0 to=(pcvar("COUNT[EQUIPMENT.Not.Coin.NOT.Gem]")-1)/2 ; equip1, equip1_has_next > <@equipmentRow equip1=equip1 />
ITEM LOCATION QTY BULK COST
<@loop from=((pcvar("COUNT[EQUIPMENT.Not.Coin.NOT.Gem]")-1)/2)+1 to=pcvar("COUNT[EQUIPMENT.Not.Coin.NOT.Gem]")-1 ; equip2, equip2_has_next > <@equipmentRow equip1=equip2 />
ITEM LOCATION QTY BULK COST
TOTAL BULK CARRIED/VALUE   ${pcstring('TOTAL.WEIGHT.INTVAL')} ${pcstring('TOTAL.VALUE')}
<#assign overburdened = pcstring('WEIGHT.Overburdened')?number>
BULK ALLOWANCE
Light ${pcstring('WEIGHT.LIGHT')} Encumbered ${pcstring('WEIGHT.Encumbered')} Overburdened ${overburdened+1}
<#if (pcvar("COUNT[EQTYPE.LightSource]") > 0)>
<@loop from=0 to=pcvar('COUNT[EQTYPE.LightSource]-1') ; light , light_has_next> <#if (light % 2 = 0)><#else>
ILLUMINATION
Light Source Bright Shadowy Duration
${pcstring('EQTYPE.LightSource.${light}.NAME')} ${pcstring('EQTYPE.LightSource.${light}.QUALITY.Bright Illumination')} ${pcstring('EQTYPE.LightSource.${light}.QUALITY.Shadowy Illumination')} ${pcstring('EQTYPE.LightSource.${light}.QUALITY.Duration')}

MONEY
<@loop from=0 to=pcvar('COUNT[EQTYPE.Coin]')-1 ; count , count_has_next> ${pcstring('EQTYPE.Coin.${count}.NAME')}: ${pcstring('EQTYPE.Coin.${count}.QTY')}
<@loop from=0 to=pcvar('COUNT[EQTYPE.Gem]')-1 ; count , count_has_next> ${pcstring('EQTYPE.Gem.%.QTY')}x${pcstring('EQTYPE.Gem.${count}.NAME')} (${pcstring('EQTYPE.Gem.${count}.COST')})
${pcstring('MISC.FUNDS')} Unspent Funds = ${pcstring('GOLD.TRUNC')}

<#if (pcvar("FOLLOWERTYPE.Familiar") > 0) > <@loop from=0 to=pcvar('COUNT[FOLLOWERTYPE.FAMILIAR.0.EQTYPE.WEAPON]-1') ; wep , wep_has_next><#-- TODO: Loop was of early exit type 1 --> <#if (pcstring("FOLLOWERTYPE.FAMILIAR.0.WEAPON.${wep}.QUALITY.Critical") = "")> <#else>)
Familiar: ${pcstring('FOLLOWERTYPE.FAMILIAR.0.NAME')} (${pcstring('FOLLOWERTYPE.FAMILIAR.0.RACE')})
FORT: ${pcstring('FOLLOWERTYPE.FAMILIAR.0.CHECK.FORTITUDE.TOTAL')} REF: ${pcstring('FOLLOWERTYPE.FAMILIAR.0.CHECK.REFLEX.TOTAL')} WILL: ${pcstring('FOLLOWERTYPE.FAMILIAR.0.CHECK.2.TOTAL')} HP: ${pcstring('FOLLOWERTYPE.FAMILIAR.0.HP')} AC: ${pcstring('FOLLOWERTYPE.FAMILIAR.0.AC.Total')} INIT: ${pcstring('FOLLOWERTYPE.FAMILIAR.0.INITIATIVEMOD')}
${pcstring('FOLLOWERTYPE.FAMILIAR.0.WEAPON.${wep}.NAME')} ${pcstring('FOLLOWERTYPE.FAMILIAR.0.WEAPON.${wep}.TOTALHIT')} DAMAGE: ${pcstring('FOLLOWERTYPE.FAMILIAR.0.WEAPON.${wep}.DAMAGE')} CRITICAL:-${pcstring('FOLLOWERTYPE.FAMILIAR.0.WEAPON.${wep}.QUALITY.Critical')}
Special:   ${pcstring('FOLLOWERTYPE.FAMILIAR.0.SPECIALLIST')}

<#if (pcvar("FOLLOWERTYPE.SPECIAL MOUNT") > 0) > <@loop from=0 to=pcvar('COUNT[FOLLOWERTYPE.SPECIAL MOUNT.0.EQTYPE.WEAPON]-1') ; wep , wep_has_next><#-- TODO: Loop was of early exit type 1 --> <#if (pcstring("FOLLOWERTYPE.SPECIAL MOUNT.0.WEAPON.${wep}.QUALITY.Critical") = "")> <#else>)
Special Mount: ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.NAME')} (${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.RACE')})
FORT: ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.CHECK.FORTITUDE.TOTAL')} REF: ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.CHECK.REFLEX.TOTAL')} WILL: ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.CHECK.2.TOTAL')} HP: ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.HP')} AC: ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.AC.Total')} INIT: ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.INITIATIVEMOD')}
${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.WEAPON.${wep}.NAME')} ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.WEAPON.${wep}.TOTALHIT')} DAMAGE: ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.WEAPON.${wep}.DAMAGE')} CRITICAL:-${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.WEAPON.${wep}.QUALITY.Critical')}
Special:   ${pcstring('FOLLOWERTYPE.SPECIAL MOUNT.0.SPECIALLIST')}

<#if (pcvar("FOLLOWERTYPE.ANIMAL COMPANION") > 0) > <@loop from=0 to=pcvar('COUNT[FOLLOWERTYPE.ANIMAL COMPANION]-1') ; anm , anm_has_next> <@loop from=0 to=pcvar('COUNT[FOLLOWERTYPE.ANIMAL COMPANION.${anm}.EQTYPE.WEAPON]-1') ; wep , wep_has_next><#-- TODO: Loop was of early exit type 1 --> <#if (pcstring("FOLLOWERTYPE.ANIMAL COMPANION.${anm}.WEAPON.${wep}.QUALITY.Critical") = "")> <#else>)
Animal Companion: ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.NAME')} (${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.RACE')})
FORT: ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.CHECK.FORTITUDE.TOTAL')} REF: ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.CHECK.REFLEX.TOTAL')} WILL: ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.CHECK.2.TOTAL')} HP: ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.HP')} AC: ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.AC.Total')} INIT: ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.INITIATIVEMOD')}
${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.WEAPON.${wep}.NAME')} ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.WEAPON.${wep}.TOTALHIT')} DAMAGE: ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.WEAPON.${wep}.DAMAGE')} CRITICAL:-${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.WEAPON.${wep}.QUALITY.Critical')}
Special:   ${pcstring('FOLLOWERTYPE.ANIMAL COMPANION.${anm}.SPECIALLIST')}

<#if (pcvar("FOLLOWERTYPE.FOLLOWERS") > 0) >
HENCHMEN
<@loop from=0 to=pcvar('COUNT[FOLLOWERTYPE.FOLLOWERS]-1') ; follower , follower_has_next><#-- TODO: Loop was of early exit type 1 --> ${pcstring('FOLLOWERTYPE.FOLLOWERS.${follower}.NAME')}, 
<#if (pcvar("MISC.COMPANIONS") > 0) >
OTHER COMPANIONS
${pcstring('MISC.COMPANIONS')}

<#if (pcstring("TEMPLATELIST") != '') >
TEMPLATES
${pcstring('TEMPLATELIST')}

<#if (pcvar("MISC.MAGIC") > 0) >
MAGIC
${pcstring('MISC.MAGIC')}

<#if (pcvar("PROHIBITEDLIST") > 0) >
PROHIBITED
${pcstring('PROHIBITEDLIST')}

<#if (pcstring("DOMAIN.1") != "") > <@loop from=1 to=pcvar('COUNT[DOMAINS]') ; count , count_has_next>
Cleric of ${pcstring('DEITY')}
Domain
Granted Power
${pcstring('DOMAIN.${count}')}
${pcstring('DOMAIN.${count}.POWER')}

<@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Ability","ASPECT=TurnType")-1') ; turncount , turncount_has_next> <#assign turnLevel = pcvar('((ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnLevel)+0)')> <#-- create variable x -->
${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnType')} ${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnKind')}
TURNING CHECK
RESULT
AFFECTED
(MAX HIT DICE)
TURN LEVEL ${turnLevel}
TURN DAMAGE ${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnDamage')}
Up to 0 ${turnLevel-4} TURNING CHECK 1d20${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnCheck.INTVAL.SIGN.NOZERO')}
1 - 3 ${turnLevel-3} TURNS/DAY ${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnTimes.INTVAL')}
4 - 6 ${turnLevel-2} <@loop from=0 to=pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnTimes.INTVAL')?number-1> ☐
7 - 9 ${turnLevel-1} ${pcstring('ABILITYALL.Special Ability.${turncount}.ASPECT=TurnType.ASPECT.TurnNotes')}
10 - 12 ${turnLevel}
13 - 15 ${turnLevel+1}
16 - 18 ${turnLevel+2}
19 - 21 ${turnLevel+3}
22+ ${turnLevel+4}

<@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Ability","ASPECT=ChannelingType")-1') ; channelingcount , channelingcount_has_next> <#assign ChannelingLevel = pcvar('((ABILITYALL.Special Ability.${channelingcount}.ASPECT=ChannelingType.ASPECT.ChannelingLevel)+0)')> <#-- create variable x -->
${pcstring('ABILITYALL.Special Ability.${channelingcount}.ASPECT=ChannelingType.ASPECT.ChannelingType')} ${pcstring('ABILITYALL.Special Ability.${channelingcount}.ASPECT=ChannelingType.ASPECT.ChannelingKind')}
CHANNELING CHECK
RESULT
AFFECTED
(MAX HIT DICE)
CHANNELING LEVEL ${ChannelingLevel}
MAGNITUDE ${pcstring('ABILITYALL.Special Ability.${channelingcount}.ASPECT=ChannelingType.ASPECT.Magnitude')}
Up to 0 ${ChannelingLevel-8} CHANNELING CHECK 1d20${pcstring('ABILITYALL.Special Ability.${channelingcount}.ASPECT=ChannelingType.ASPECT.ChannelingCheck.INTVAL.SIGN.NOZERO')}
1 - 3 ${ChannelingLevel-7} USES/DAY ${pcstring('ABILITYALL.Special Ability.${channelingcount}.ASPECT=ChannelingType.ASPECT.ChannelingUses.INTVAL')}
4 - 6 ${ChannelingLevel-6} <@loop from=0 to=pcstring('ABILITYALL.Special Ability.${channelingcount}.ASPECT=ChannelingType.ASPECT.ChannelingUses.INTVAL')?number-1> ☐
7 - 9 ${ChannelingLevel-5} ${pcstring('ABILITYALL.Special Ability.${channelingcount}.ASPECT=ChannelingType.ASPECT.ChannelingNotes')}
10 - 12 ${ChannelingLevel-4}
13 - 15 ${ChannelingLevel-3}
16 - 18 ${ChannelingLevel-2}
19 - 21 ${ChannelingLevel-1}
22 - 25 ${ChannelingLevel}
26+ ${ChannelingLevel+1}

<@loop from=nextWeaponIdx to=pcvar('COUNT[EQTYPE.Weapon]-1') ; weap , weap_has_next><#-- TODO: Loop was of early exit type 1 --> <#if (pcstring("WEAPON.${weap}.NAME") != "") > <@weaponBlock weap=weap />
1H-P: One handed, primary hand. 1H-O: One handed, off hand. 2H: Two handed. 2W-P-(OH): 2 weapons, primary hand (off hand weapon is heavy). 2W-P-(OL): 2 weapons, primary hand (off hand weapon is light). 2W-OH:2 weapons, off hand.
LANGUAGES
${pcstring('LANGUAGES')} ${pcstring('ABILITYALL.ANY.0.ASPECT=Language.ASPECT.Language')}
<#if (pcvar('count("ABILITIES","CATEGORY=Proficiency","TYPE=Proficiency","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Proficiency","TYPE=Proficiency","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; proficiency , proficiency_has_next> <#if (proficiency % 2 = 0)><#else>
Proficiencies
${pcstring('ABILITYALL.Proficiency.VISIBLE.${proficiency}.TYPE=Proficiency')} [${pcstring('ABILITYALL.Proficiency.VISIBLE.${proficiency}.TYPE=Proficiency.SOURCE')}]
<#if (pcvar('count("ABILITIES","CATEGORY=Archetype","TYPE=Archetype","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Archetype","TYPE=Archetype","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; archetype , archetype_has_next> <#if (archetype % 2 = 0)><#else>
Archetypes
${pcstring('ABILITYALL.Archetype.VISIBLE.${archetype}.TYPE=Archetype')} ${pcstring('ABILITYALL.Archetype.VISIBLE.${archetype}.TYPE=Archetype.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Afflictions","TYPE=Affliction","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Afflictions","TYPE=Affliction","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; affliction , affliction_has_next> <#if (affliction % 2 = 0)><#else> <#if (affliction % 2 = 0)><#else>
Afflictions
${pcstring('ABILITYALL.Afflictions.VISIBLE.${affliction}.TYPE=Affliction')} [${pcstring('ABILITYALL.Afflictions.VISIBLE.${affliction}.TYPE=Affliction.SOURCE')}]
     ${pcstring('ABILITYALL.Afflictions.VISIBLE.${affliction}.TYPE=Affliction.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=Trait","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=Trait","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; trait , trait_has_next> <#if (trait % 2 = 0)><#else> <#if (trait % 2 = 0)><#else>
Traits
${pcstring('ABILITYALL.Special Ability.VISIBLE.${trait}.TYPE=Trait')} [${pcstring('ABILITYALL.Special Ability.VISIBLE.${trait}.TYPE=Trait.SOURCE')}]
     ${pcstring('ABILITYALL.Special Ability.VISIBLE.${trait}.TYPE=Trait.DESC')}
<#macro typeOfAbilitySuffix typeOfAbility > <#if (typeOfAbility?contains("extraordinary"))> (Ex) <#if (typeOfAbility?contains("supernatural"))> (Su) <#if (typeOfAbility?contains("spelllike"))> (Sp) <#if (typeOfAbility?contains("psilike"))> (Ps) <#if (pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=SpecialAttack","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=SpecialAttack","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; specialAttack , specialAttack_has_next> <#if (specialAttack % 2 = 0)><#else> <#if (specialAttack % 2 = 0)><#else>
SPECIAL ATTACKS
<#assign typeOfAbility = pcstring("ABILITYALL.Special Ability.VISIBLE.${specialAttack}.TYPE=SpecialAttack.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Special Ability.VISIBLE.${specialAttack}.TYPE=SpecialAttack.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${specialAttack}.TYPE=SpecialAttack.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${specialAttack}.TYPE=SpecialAttack')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Special Ability.VISIBLE.${specialAttack}.TYPE=SpecialAttack.SOURCE')}]
     ${pcstring('ABILITYALL.Special Ability.VISIBLE.${specialAttack}.TYPE=SpecialAttack.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=Prestige Award Display","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=Prestige Award Display","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; prestigeAward , prestigeAward_has_next> <#if (prestigeAward % 2 = 0)><#else> <#if (prestigeAward % 2 = 0)><#else>
Prestige Awards
<#assign typeOfAbility = pcstring("ABILITYALL.Special Ability.VISIBLE.${prestigeAward}.TYPE=Prestige Award Display.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Special Ability.VISIBLE.${prestigeAward}.TYPE=Prestige Award Display.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${prestigeAward}.TYPE=Prestige Award Display.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${prestigeAward}.TYPE=Prestige Award Display')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Special Ability.VISIBLE.${prestigeAward}.TYPE=Prestige Award Display.SOURCE')}]
     ${pcstring('ABILITYALL.Special Ability.VISIBLE.${prestigeAward}.TYPE=Prestige Award Display.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Special Ability","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY","TYPE=AnimalTrick")') = 0)> <#else> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Ability","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY","TYPE=AnimalTrick")-1') ; animalTrick , animalTrick_has_next> <#if (animalTrick % 2 = 0)><#else>
ANIMAL TRICKS
${pcstring('ABILITYALL.Special Ability.VISIBLE.${animalTrick}.TYPE=AnimalTrick')} ${pcstring('ABILITYALL.Special Ability.VISIBLE.${animalTrick}.TYPE=AnimalTrick.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=SpecialQuality","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=SpecialQuality","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; specialQuality , specialQuality_has_next> <#if (specialQuality % 2 = 0)><#else> <#if (specialQuality % 2 = 0)><#else>
SPECIAL QUALITIES
<#assign typeOfAbility = pcstring("ABILITYALL.Special Ability.VISIBLE.${specialQuality}.TYPE=SpecialQuality.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Special Ability.VISIBLE.${specialQuality}.TYPE=SpecialQuality.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${specialQuality}.TYPE=SpecialQuality.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${specialQuality}.TYPE=SpecialQuality')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Special Ability.VISIBLE.${specialQuality}.TYPE=SpecialQuality.SOURCE')}]
     ${pcstring('ABILITYALL.Special Ability.VISIBLE.${specialQuality}.TYPE=SpecialQuality.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Racial Trait","TYPE=Racial Trait","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Racial Trait","TYPE=Racial Trait","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; RacialTrait , RacialTrait_has_next> <#if (RacialTrait % 2 = 0)><#else> <#if (RacialTrait % 2 = 0)><#else>
RACIAL TRAITS
<#assign typeOfAbility = pcstring("ABILITYALL.Racial Trait.VISIBLE.${RacialTrait}.TYPE=Racial Trait.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Racial Trait.VISIBLE.${RacialTrait}.TYPE=Racial Trait.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Racial Trait.VISIBLE.${RacialTrait}.TYPE=Racial Trait.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Racial Trait.VISIBLE.${RacialTrait}.TYPE=Racial Trait')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Racial Trait.VISIBLE.${RacialTrait}.TYPE=Racial Trait.SOURCE')}]
     ${pcstring('ABILITYALL.Racial Trait.VISIBLE.${RacialTrait}.TYPE=Racial Trait.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Ancestry","TYPE=Ancestry","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Ancestry","TYPE=Ancestry","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; Ancestry , Ancestry_has_next> <#if (Ancestry % 2 = 0)><#else> <#if (Ancestry % 2 = 0)><#else>
Ancestry Features
<#assign typeOfAbility = pcstring("ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.SOURCE')}]
     ${pcstring('ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Background","TYPE=Background","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Background","TYPE=Background","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; Background , Background_has_next> <#if (Background % 2 = 0)><#else> <#if (Background % 2 = 0)><#else>
Background
<#assign typeOfAbility = pcstring("ABILITYALL.Background.VISIBLE.${Background}.TYPE=Background.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Background.VISIBLE.${Background}.TYPE=Background.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Background.VISIBLE.${Background}.TYPE=Background.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Background.VISIBLE.${Background}.TYPE=Background')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Background.VISIBLE.${Background}.TYPE=Background.SOURCE')}]
     ${pcstring('ABILITYALL.Background.VISIBLE.${Background}.TYPE=Background.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Ancestry","TYPE=Ancestry","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Ancestry","TYPE=Ancestry","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; Ancestry , Ancestry_has_next> <#if (Ancestry % 2 = 0)><#else> <#if (Ancestry % 2 = 0)><#else>
AncestryS
<#assign typeOfAbility = pcstring("ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.SOURCE')}]
     ${pcstring('ABILITYALL.Ancestry.VISIBLE.${Ancestry}.TYPE=Ancestry.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Class Feature","TYPE=Class Feature","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Class Feature","TYPE=Class Feature","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; ClassFeature , ClassFeature_has_next> <#if (ClassFeature % 2 = 0)><#else> <#if (ClassFeature % 2 = 0)><#else>
Class Features
<#assign typeOfAbility = pcstring("ABILITYALL.Class Feature.VISIBLE.${ClassFeature}.TYPE=Class Feature.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Class Feature.VISIBLE.${ClassFeature}.TYPE=Class Feature.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Class Feature.VISIBLE.${ClassFeature}.TYPE=Class Feature.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Class Feature.VISIBLE.${ClassFeature}.TYPE=Class Feature')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Class Feature.VISIBLE.${ClassFeature}.TYPE=Class Feature.SOURCE')}]
     ${pcstring('ABILITYALL.Class Feature.VISIBLE.${ClassFeature}.TYPE=Class Feature.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Power List","TYPE=Alchemy","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Power List","TYPE=Alchemy","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; Alchemy , Alchemy_has_next> <#if (Alchemy % 2 = 0)><#else> <#if (Alchemy % 2 = 0)><#else>
Alchemy
<#assign typeOfAbility = pcstring("ABILITYALL.Power List.VISIBLE.${Alchemy}.TYPE=Alchemy.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Power List.VISIBLE.${Alchemy}.TYPE=Alchemy.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Power List.VISIBLE.${Alchemy}.TYPE=Alchemy.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Power List.VISIBLE.${Alchemy}.TYPE=Alchemy')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Power List.VISIBLE.${Alchemy}.TYPE=Alchemy.SOURCE')}]
     ${pcstring('ABILITYALL.Power List.VISIBLE.${Alchemy}.TYPE=Alchemy.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Class Feat","TYPE=Class Feat","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Class Feat","TYPE=Class Feat","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; ClassFeat , ClassFeat_has_next> <#if (ClassFeat % 2 = 0)><#else> <#if (ClassFeat % 2 = 0)><#else>
Class Feats
<#assign typeOfAbility = pcstring("ABILITYALL.Class Feat.VISIBLE.${ClassFeat}.TYPE=Class Feat.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Class Feat.VISIBLE.${ClassFeat}.TYPE=Class Feat.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Class Feat.VISIBLE.${ClassFeat}.TYPE=Class Feat.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Class Feat.VISIBLE.${ClassFeat}.TYPE=Class Feat')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Class Feat.VISIBLE.${ClassFeat}.TYPE=Class Feat.SOURCE')}]
     ${pcstring('ABILITYALL.Class Feat.VISIBLE.${ClassFeat}.TYPE=Class Feat.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Ancestry Feat","TYPE=Ancestry Feat","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Ancestry Feat","TYPE=Ancestry Feat","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; AncestryFeat , AncestryFeat_has_next> <#if (AncestryFeat % 2 = 0)><#else> <#if (AncestryFeat % 2 = 0)><#else>
Ancestry Feats
<#assign typeOfAbility = pcstring("ABILITYALL.Ancestry Feat.VISIBLE.${AncestryFeat}.TYPE=Ancestry Feat.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Ancestry Feat.VISIBLE.${AncestryFeat}.TYPE=Ancestry Feat.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Ancestry Feat.VISIBLE.${AncestryFeat}.TYPE=Ancestry Feat.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Ancestry Feat.VISIBLE.${AncestryFeat}.TYPE=Ancestry Feat')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Ancestry Feat.VISIBLE.${AncestryFeat}.TYPE=Ancestry Feat.SOURCE')}]
     ${pcstring('ABILITYALL.Ancestry Feat.VISIBLE.${AncestryFeat}.TYPE=Ancestry Feat.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Proficiency","TYPE=Display","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Proficiency","TYPE=Display","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; ClassFeat , ClassFeat_has_next> <#if (ClassFeat % 2 = 0)><#else> <#if (ClassFeat % 2 = 0)><#else>
Proficiency
<#assign typeOfAbility = pcstring("ABILITYALL.Proficiency.VISIBLE.${ClassFeat}.TYPE=Display.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Proficiency.VISIBLE.${ClassFeat}.TYPE=Display.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Proficiency.VISIBLE.${ClassFeat}.TYPE=Display.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Proficiency.VISIBLE.${ClassFeat}.TYPE=Display')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Proficiency.VISIBLE.${ClassFeat}.TYPE=Display.SOURCE')}]
     ${pcstring('ABILITYALL.Proficiency.VISIBLE.${ClassFeat}.TYPE=Display.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=ProficiencyDisplay","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=ProficiencyDisplay","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; ClassFeat , ClassFeat_has_next> <#if (ClassFeat % 2 = 0)><#else> <#if (ClassFeat % 2 = 0)><#else>
Special Ability
<#assign typeOfAbility = pcstring("ABILITYALL.Special Ability.VISIBLE.${ClassFeat}.TYPE=ProficiencyDisplay.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Special Ability.VISIBLE.${ClassFeat}.TYPE=ProficiencyDisplay.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${ClassFeat}.TYPE=ProficiencyDisplay.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${ClassFeat}.TYPE=ProficiencyDisplay')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Special Ability.VISIBLE.${ClassFeat}.TYPE=ProficiencyDisplay.SOURCE')}]
     ${pcstring('ABILITYALL.Special Ability.VISIBLE.${ClassFeat}.TYPE=ProficiencyDisplay.DESC')}
<#if (pcvar('count("ABILITIES","CATEGORY=Special Action","TYPE=Special Action","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Action","TYPE=Special Action","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; SpecialAction , SpecialAction_has_next> <#if (SpecialAction % 2 = 0)><#else> <#if (SpecialAction % 2 = 0)><#else> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.Cost") = "Y")> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.Requirement") = "Y")> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.Frequency") = "Y")> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.Trigger") = "Y")> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.Enhancement") = "Y")> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.Success") = "Y")> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.CriticalSuccess") = "Y")> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.Failure") = "Y")> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.CriticalFailure") = "Y")>
Special Actions
<#assign typeOfAbility = pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> [${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.SOURCE')}]
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.Trait')}     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.Cost')}
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.Requirement')}
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.Frequency')}
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.Trigger')}
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.Enhancement')}
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.Success')}
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.CriticalSuccess')}
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.Failure')}
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.ASPECT.CriticalFailure')}
     ${pcstring('ABILITYALL.Special Action.VISIBLE.${SpecialAction}.TYPE=Special Action.DESC')}
<#if (pcvar("COUNT[SA]") > 0) > <@loop from=0 to=pcvar('COUNT[SA]-1') ; sa , sa_has_next>
SPECIAL ABILITIES
${pcstring('SPECIALABILITY.${sa}')}
${pcstring('SPECIALLIST')}
<@loop from=0 to=pcvar('COUNT[FEATSALL.VISIBLE]-1') ; feat , feat_has_next> <#if (feat % 2 = 0)><#else> <#if (feat % 2 = 0)><#else> <#if (feat % 2 = 0)><#else>
FEATS
${pcstring('FEATALL.VISIBLE.${feat}')} [${pcstring('FEATALL.VISIBLE.${feat}.SOURCE')}]
    ${pcstring('FEATALL.VISIBLE.${feat}.DESC')}
    ${pcstring('FEATALL.VISIBLE.${feat}.BENEFIT')}
<#if (pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=PFSBoon","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=Special Ability","TYPE=PFSBoon","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; PFSBoon , PFSBoon_has_next> <#if (PFSBoon % 2 = 0)><#else>
PFS Boons
<#assign typeOfAbility = pcstring("ABILITYALL.Special Ability.VISIBLE.${PFSBoon}.TYPE=PFSBoon.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.Special Ability.VISIBLE.${PFSBoon}.TYPE=PFSBoon.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${PFSBoon}.TYPE=PFSBoon.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.Special Ability.VISIBLE.${PFSBoon}.TYPE=PFSBoon')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> : ${pcstring('ABILITYALL.Special Ability.VISIBLE.${PFSBoon}.TYPE=PFSBoon.DESC')} — [${pcstring('ABILITYALL.Special Ability.VISIBLE.${PFSBoon}.TYPE=PFSBoon.SOURCE')}]
<#if (pcvar('count("ABILITIES","CATEGORY=PFS Chronicle","TYPE=PFSChronicle","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")') > 0)> <@loop from=0 to=pcvar('count("ABILITIES","CATEGORY=PFS Chronicle","TYPE=PFSChronicle","VISIBILITY=DEFAULT[or]VISIBILITY=OUTPUT_ONLY")-1') ; PFSChronicle , PFSChronicle_has_next> <#if (PFSChronicle % 2 = 0)><#else>
PFS Chronicles
<#assign typeOfAbility = pcstring("ABILITYALL.PFS Chronicle.VISIBLE.${PFSChronicle}.TYPE=PFSChronicle.TYPE")?lower_case /> <#if (pcstring("ABILITYALL.PFS Chronicle.VISIBLE.${PFSChronicle}.TYPE=PFSChronicle.HASASPECT.Name") = "Y")> ${pcstring('ABILITYALL.PFS Chronicle.VISIBLE.${PFSChronicle}.TYPE=PFSChronicle.ASPECT.Name')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> <#else> ${pcstring('ABILITYALL.PFS Chronicle.VISIBLE.${PFSChronicle}.TYPE=PFSChronicle')} <@typeOfAbilitySuffix typeOfAbility=typeOfAbility /> : ${pcstring('ABILITYALL.PFS Chronicle.VISIBLE.${PFSChronicle}.TYPE=PFSChronicle.DESC')} — [${pcstring('ABILITYALL.PFS Chronicle.VISIBLE.${PFSChronicle}.TYPE=PFSChronicle.SOURCE')}]
<#if (pcvar("COUNT[TEMPBONUSNAMES]") > 0) >
Temporary Bonuses Applied
<@loop from=0 to=pcvar('COUNT[TEMPBONUSNAMES]-1') ; temp , temp_has_next> <#if (temp = 0)> <#else> •  ${pcstring('TEMPBONUS.${temp}')}
<#include "common/common-spells.ftl">
${pcstring('NAME')} <#if (pcstring("FOLLOWEROF") != "") >- ${pcstring('FOLLOWEROF')}
${pcstring('RACE')}
RACE
${pcstring('AGE')}
AGE
${pcstring('HEIGHT')}
HEIGHT
${pcstring('WEIGHT')}
WEIGHT
${pcstring('COLOR.EYE')}
EYE COLOR
${pcstring('COLOR.SKIN')}
SKIN COLOR
${pcstring('COLOR.HAIR')}
HAIR COLOR
${pcstring('LENGTH.HAIR')}
HAIR LENGTH
${pcstring('PHOBIAS')}
PHOBIAS
${pcstring('PERSONALITY1')} ${pcstring('PERSONALITY2')}
PERSONALITY TRAITS
${pcstring('INTERESTS')}
INTERESTS
${pcstring('SPEECHTENDENCY')}, ${pcstring('CATCHPHRASE')}
SPOKEN STYLE
${pcstring('NAME')}'s portrait
Description
${pcstring('DESC')}
Home
<#if (pcstring("REGION") != "" && pcstring("REGION") != "None") > From ${pcstring('REGION')}. ${pcstring('RESIDENCE')}, ${pcstring('LOCATION')}
Biography
${pcstring('BIO')}
<#if (pcvar("COUNT[NOTES]") > 0) >
<@loop from=0 to=pcvar('COUNT[NOTES]-1') ; note , note_has_next><#-- TODO: Loop was of early exit type 1 --> <#if (pcstring("NOTE.${note}.NAME") = "DM Notes")> <#else>
Notes
${pcstring('NOTE.${note}.NAME')} ${pcstring('NOTE.${note}.VALUE')}