Template:Infobox creature/internal: Difference between revisions

From Baldur's Gate 3 Wiki
Jump to navigation Jump to search
(Support specifying the item that grants a passive, via Template:Infobox creature/passives parser.)
(Rename "initiative" to "init bonus" to be in line with "prof bonus".)
 
(3 intermediate revisions by 2 users not shown)
Line 3: Line 3:
<data source="title"></data>
<data source="title"></data>
<image source="image"></image>
<image source="image"></image>
<data source="full name">
  <label>Full Name</label>
</data>
<data source="va">
<data source="va">
   <label>Voiced by</label>
   <label>Voiced by</label>
Line 38: Line 41:
<panel>
<panel>
   <section>
   <section>
     <label>Explorer</label>
     <label>Balanced</label>
     <group>
     <group>
       <header>Explorer Difficulty Stats</header>
       <header>Balanced Difficulty Stats</header>
       <data source="e level">
       <data source="level">
         <label>Level</label>
         <label>Level</label>
       </data>
       </data>
       <data source="e hp">
       <data source="hp">
         <label>HP</label>
         <label>HP</label>
       </data>
       </data>
       <data source="e ac">
       <data source="ac">
         <label>AC</label>
         <label>AC</label>
       </data>
       </data>
       <data source="e initiative">
       <data source="init bonus">
         <label>Initiative</label>
         <label>Initiative</label>
       </data>
       </data>
       <data source="e prof bonus">
       <data source="prof bonus">
         <label>Proficiency</label>
         <label>Proficiency</label>
       </data>
       </data>
       <data source="e movement m">
       <data source="movement m">
         <label>Movement</label>
         <label>Movement</label>
         <format>{{{e movement m|0}}}&#8239;m ({{{e movement ft|0}}}&#8239;ft)</format>
         <format>{{{movement m|0}}}&#8239;m ({{{movement ft|0}}}&#8239;ft)</format>
       </data>
       </data>
       <data source="e weight kg">
       <data source="weight kg">
         <label>Weight</label>
         <label>Weight</label>
         <format>{{{e weight kg|0}}}&#8239;kg ({{{e weight lb|0}}}&#8239;lb)</format>
         <format>{{{weight kg|0}}}&#8239;kg ({{{weight lb|0}}}&#8239;lb)</format>
       </data>
       </data>
       <group layout="horizontal">
       <group layout="horizontal">
         <header>Ability scores</header>
         <header>Ability scores</header>
         <data source="e str">
         <data source="str">
           <label>STR</label>
           <label>STR</label>
           <format>{{{e str}}}<br/>({{{e str mod}}})</format>
           <format>{{{str}}}<br/>({{{str mod}}})</format>
         </data>
         </data>
         <data source="e dex">
         <data source="dex">
           <label>DEX</label>
           <label>DEX</label>
           <format>{{{e dex}}}<br/>({{{e dex mod}}})</format>
           <format>{{{dex}}}<br/>({{{dex mod}}})</format>
         </data>
         </data>
         <data source="e con">
         <data source="con">
           <label>CON</label>
           <label>CON</label>
           <format>{{{e con}}}<br/>({{{e con mod}}})</format>
           <format>{{{con}}}<br/>({{{con mod}}})</format>
         </data>
         </data>
         <data source="e int">
         <data source="int">
           <label>INT</label>
           <label>INT</label>
           <format>{{{e int}}}<br/>({{{e int mod}}})</format>
           <format>{{{int}}}<br/>({{{int mod}}})</format>
         </data>
         </data>
         <data source="e wis">
         <data source="wis">
           <label>WIS</label>
           <label>WIS</label>
           <format>{{{e wis}}}<br/>({{{e wis mod}}})</format>
           <format>{{{wis}}}<br/>({{{wis mod}}})</format>
         </data>
         </data>
         <data source="e cha">
         <data source="cha">
           <label>CHA</label>
           <label>CHA</label>
           <format>{{{e cha}}}<br/>({{{e cha mod}}})</format>
           <format>{{{cha}}}<br/>({{{cha mod}}})</format>
         </data>
         </data>
       </group>
       </group>
       <group layout="horizontal">
       <group layout="horizontal">
         <header>Saving throws</header>
         <header>Saving throws</header>
         <data source="e str">
        <!-- We intentionally use the ability scores as the data sources,
           <label>{{#if: {{{e str save prof|}}} | '''STR''' | STR }}</label>
            so this group won't be rendered if ability scores are missing,
           <format>{{#if: {{{e str save prof|}}} | '''{{{e str save}}}''' | {{{e str save}}} }}</format>
            like for inanimate objects -->
         <data source="str">
           <label>{{#if: {{{str save prof|}}} | '''STR''' | STR }}</label>
           <format>{{#if: {{{str save prof|}}} | '''{{{str save}}}''' | {{{str save}}} }}</format>
         </data>
         </data>
         <data source="e dex">
         <data source="dex">
           <label>{{#if: {{{e dex save prof|}}} | '''DEX''' | DEX }}</label>
           <label>{{#if: {{{dex save prof|}}} | '''DEX''' | DEX }}</label>
           <format>{{#if: {{{e dex save prof|}}} | '''{{{e dex save}}}''' | {{{e dex save}}} }}</format>
           <format>{{#if: {{{dex save prof|}}} | '''{{{dex save}}}''' | {{{dex save}}} }}</format>
         </data>
         </data>
         <data source="e con">
         <data source="con">
           <label>{{#if: {{{e con save prof|}}} | '''CON''' | CON }}</label>
           <label>{{#if: {{{con save prof|}}} | '''CON''' | CON }}</label>
           <format>{{#if: {{{e con save prof|}}} | '''{{{e con save}}}''' | {{{e con save}}} }}</format>
           <format>{{#if: {{{con save prof|}}} | '''{{{con save}}}''' | {{{con save}}} }}</format>
         </data>
         </data>
         <data source="e int">
         <data source="int">
           <label>{{#if: {{{e int save prof|}}} | '''INT''' | INT }}</label>
           <label>{{#if: {{{int save prof|}}} | '''INT''' | INT }}</label>
           <format>{{#if: {{{e int save prof|}}} | '''{{{e int save}}}''' | {{{e int save}}} }}</format>
           <format>{{#if: {{{int save prof|}}} | '''{{{int save}}}''' | {{{int save}}} }}</format>
         </data>
         </data>
         <data source="e wis">
         <data source="wis">
           <label>{{#if: {{{e wis save prof|}}} | '''WIS''' | WIS }}</label>
           <label>{{#if: {{{wis save prof|}}} | '''WIS''' | WIS }}</label>
           <format>{{#if: {{{e wis save prof|}}} | '''{{{e wis save}}}''' | {{{e wis save}}} }}</format>
           <format>{{#if: {{{wis save prof|}}} | '''{{{wis save}}}''' | {{{wis save}}} }}</format>
         </data>
         </data>
         <data source="e cha">
         <data source="cha">
           <label>{{#if: {{{e cha save prof|}}} | '''CHA''' | CHA }}</label>
           <label>{{#if: {{{cha save prof|}}} | '''CHA''' | CHA }}</label>
           <format>{{#if: {{{e cha save prof|}}} | '''{{{e cha save}}}''' | {{{e cha save}}} }}</format>
           <format>{{#if: {{{cha save prof|}}} | '''{{{cha save}}}''' | {{{cha save}}} }}</format>
         </data>
         </data>
       </group>
       </group>
       <group>
       <group>
         <header>Resistances <sup>[[Resistances|(info)]]</sup></header>
         <header>Resistances <sup>[[Resistances|(info)]]</sup></header>
         <data source="e resistances" name="resistances">
         <data source="resistances" name="resistances">
           <format>{{#invoke: ParseList | main | {{{e resistances}}} | useTemplate = Parse resistance | style = htmlList }}</format>
           <format>{{#invoke: ParseList | main | {{{resistances}}} | useTemplate = Parse resistance | style = htmlList }}</format>
        </data>
      </group>
      <group>
        <header>Actions</header>
        <data source="actions" name="actions">
          <format>{{#invoke:
            ParseList | main | {{{actions}}}
            | useTemplate = Infobox creature/actions query
            | style = htmlListNoBullets
          }}</format>
         </data>
         </data>
       </group>
       </group>
       <group>
       <group>
         <header>Conditions</header>
         <header>Conditions</header>
         <data source="e conditions" name="conditions">
         <data source="conditions" name="conditions">
           <format>{{#invoke:
           <format>{{#invoke:
             ParseList | main | {{{e conditions}}}
             ParseList | main | {{{conditions}}}
             | useTemplate = Infobox creature/conditions query
             | useTemplate = Infobox creature/conditions query
             | style = htmlListNoBullets
             | style = htmlListNoBullets
Line 136: Line 152:
       <group>
       <group>
         <header>Features</header>
         <header>Features</header>
         <data source="e passives" name="passives">
         <data source="passives" name="passives">
           <format>{{#invoke:
           <format>{{#invoke:
             ParseList | main | {{{e passives}}}
             ParseList | main | {{{passives}}}
             | useTemplate = Infobox creature/passives parser
             | useTemplate = Infobox creature/passives parser
             | style = htmlListNoBullets
             | style = htmlListNoBullets
Line 147: Line 163:
   </section>
   </section>
   <section>
   <section>
     <label>Balanced</label>
     <label>Explorer</label>
     <group>
     <group>
       <header>Balanced Difficulty Stats</header>
       <header>Explorer Difficulty Stats</header>
       <data source="level">
       <data source="e level">
         <label>Level</label>
         <label>Level</label>
       </data>
       </data>
       <data source="hp">
       <data source="e hp">
         <label>HP</label>
         <label>HP</label>
       </data>
       </data>
       <data source="ac">
       <data source="e ac">
         <label>AC</label>
         <label>AC</label>
       </data>
       </data>
       <data source="initiative">
       <data source="e init bonus">
         <label>Initiative</label>
         <label>Initiative</label>
       </data>
       </data>
       <data source="prof bonus">
       <data source="e prof bonus">
         <label>Proficiency</label>
         <label>Proficiency</label>
       </data>
       </data>
       <data source="movement m">
       <data source="e movement m">
         <label>Movement</label>
         <label>Movement</label>
         <format>{{{movement m|0}}}&#8239;m ({{{movement ft|0}}}&#8239;ft)</format>
         <format>{{{e movement m|0}}}&#8239;m ({{{e movement ft|0}}}&#8239;ft)</format>
       </data>
       </data>
       <data source="weight kg">
       <data source="e weight kg">
         <label>Weight</label>
         <label>Weight</label>
         <format>{{{weight kg|0}}}&#8239;kg ({{{weight lb|0}}}&#8239;lb)</format>
         <format>{{{e weight kg|0}}}&#8239;kg ({{{e weight lb|0}}}&#8239;lb)</format>
       </data>
       </data>
       <group layout="horizontal">
       <group layout="horizontal">
         <header>Ability scores</header>
         <header>Ability scores</header>
         <data source="str">
         <data source="e str">
           <label>STR</label>
           <label>STR</label>
           <format>{{{str}}}<br/>({{{str mod}}})</format>
           <format>{{{e str}}}<br/>({{{e str mod}}})</format>
         </data>
         </data>
         <data source="dex">
         <data source="e dex">
           <label>DEX</label>
           <label>DEX</label>
           <format>{{{dex}}}<br/>({{{dex mod}}})</format>
           <format>{{{e dex}}}<br/>({{{e dex mod}}})</format>
         </data>
         </data>
         <data source="con">
         <data source="e con">
           <label>CON</label>
           <label>CON</label>
           <format>{{{con}}}<br/>({{{con mod}}})</format>
           <format>{{{e con}}}<br/>({{{e con mod}}})</format>
         </data>
         </data>
         <data source="int">
         <data source="e int">
           <label>INT</label>
           <label>INT</label>
           <format>{{{int}}}<br/>({{{int mod}}})</format>
           <format>{{{e int}}}<br/>({{{e int mod}}})</format>
         </data>
         </data>
         <data source="wis">
         <data source="e wis">
           <label>WIS</label>
           <label>WIS</label>
           <format>{{{wis}}}<br/>({{{wis mod}}})</format>
           <format>{{{e wis}}}<br/>({{{e wis mod}}})</format>
         </data>
         </data>
         <data source="cha">
         <data source="e cha">
           <label>CHA</label>
           <label>CHA</label>
           <format>{{{cha}}}<br/>({{{cha mod}}})</format>
           <format>{{{e cha}}}<br/>({{{e cha mod}}})</format>
         </data>
         </data>
       </group>
       </group>
       <group layout="horizontal">
       <group layout="horizontal">
         <header>Saving throws</header>
         <header>Saving throws</header>
        <!-- We intentionally use the ability scores as the data sources,
         <data source="e str">
            so this group won't be rendered if ability scores are missing,
           <label>{{#if: {{{e str save prof|}}} | '''STR''' | STR }}</label>
            like for inanimate objects -->
           <format>{{#if: {{{e str save prof|}}} | '''{{{e str save}}}''' | {{{e str save}}} }}</format>
         <data source="str">
           <label>{{#if: {{{str save prof|}}} | '''STR''' | STR }}</label>
           <format>{{#if: {{{str save prof|}}} | '''{{{str save}}}''' | {{{str save}}} }}</format>
         </data>
         </data>
         <data source="dex">
         <data source="e dex">
           <label>{{#if: {{{dex save prof|}}} | '''DEX''' | DEX }}</label>
           <label>{{#if: {{{e dex save prof|}}} | '''DEX''' | DEX }}</label>
           <format>{{#if: {{{dex save prof|}}} | '''{{{dex save}}}''' | {{{dex save}}} }}</format>
           <format>{{#if: {{{e dex save prof|}}} | '''{{{e dex save}}}''' | {{{e dex save}}} }}</format>
         </data>
         </data>
         <data source="con">
         <data source="e con">
           <label>{{#if: {{{con save prof|}}} | '''CON''' | CON }}</label>
           <label>{{#if: {{{e con save prof|}}} | '''CON''' | CON }}</label>
           <format>{{#if: {{{con save prof|}}} | '''{{{con save}}}''' | {{{con save}}} }}</format>
           <format>{{#if: {{{e con save prof|}}} | '''{{{e con save}}}''' | {{{e con save}}} }}</format>
         </data>
         </data>
         <data source="int">
         <data source="e int">
           <label>{{#if: {{{int save prof|}}} | '''INT''' | INT }}</label>
           <label>{{#if: {{{e int save prof|}}} | '''INT''' | INT }}</label>
           <format>{{#if: {{{int save prof|}}} | '''{{{int save}}}''' | {{{int save}}} }}</format>
           <format>{{#if: {{{e int save prof|}}} | '''{{{e int save}}}''' | {{{e int save}}} }}</format>
         </data>
         </data>
         <data source="wis">
         <data source="e wis">
           <label>{{#if: {{{wis save prof|}}} | '''WIS''' | WIS }}</label>
           <label>{{#if: {{{e wis save prof|}}} | '''WIS''' | WIS }}</label>
           <format>{{#if: {{{wis save prof|}}} | '''{{{wis save}}}''' | {{{wis save}}} }}</format>
           <format>{{#if: {{{e wis save prof|}}} | '''{{{e wis save}}}''' | {{{e wis save}}} }}</format>
         </data>
         </data>
         <data source="cha">
         <data source="e cha">
           <label>{{#if: {{{cha save prof|}}} | '''CHA''' | CHA }}</label>
           <label>{{#if: {{{e cha save prof|}}} | '''CHA''' | CHA }}</label>
           <format>{{#if: {{{cha save prof|}}} | '''{{{cha save}}}''' | {{{cha save}}} }}</format>
           <format>{{#if: {{{e cha save prof|}}} | '''{{{e cha save}}}''' | {{{e cha save}}} }}</format>
         </data>
         </data>
       </group>
       </group>
       <group>
       <group>
         <header>Resistances <sup>[[Resistances|(info)]]</sup></header>
         <header>Resistances <sup>[[Resistances|(info)]]</sup></header>
         <data source="resistances" name="resistances">
         <data source="e resistances" name="resistances">
           <format>{{#invoke: ParseList | main | {{{resistances}}} | useTemplate = Parse resistance | style = htmlList }}</format>
           <format>{{#invoke: ParseList | main | {{{e resistances}}} | useTemplate = Parse resistance | style = htmlList }}</format>
        </data>
      </group>
      <group>
        <header>Actions</header>
        <data source="e actions" name="actions">
          <format>{{#invoke:
            ParseList | main | {{{e actions}}}
            | useTemplate = Infobox creature/actions query
            | style = htmlListNoBullets
          }}</format>
         </data>
         </data>
       </group>
       </group>
       <group>
       <group>
         <header>Conditions</header>
         <header>Conditions</header>
         <data source="conditions" name="conditions">
         <data source="e conditions" name="conditions">
           <format>{{#invoke:
           <format>{{#invoke:
             ParseList | main | {{{conditions}}}
             ParseList | main | {{{e conditions}}}
             | useTemplate = Infobox creature/conditions query
             | useTemplate = Infobox creature/conditions query
             | style = htmlListNoBullets
             | style = htmlListNoBullets
Line 248: Line 271:
       <group>
       <group>
         <header>Features</header>
         <header>Features</header>
         <data source="passives" name="passives">
         <data source="e passives" name="passives">
           <format>{{#invoke:
           <format>{{#invoke:
             ParseList | main | {{{passives}}}
             ParseList | main | {{{e passives}}}
             | useTemplate = Infobox creature/passives parser
             | useTemplate = Infobox creature/passives parser
             | style = htmlListNoBullets
             | style = htmlListNoBullets
Line 271: Line 294:
         <label>AC</label>
         <label>AC</label>
       </data>
       </data>
       <data source="t initiative">
       <data source="t init bonus">
         <label>Initiative</label>
         <label>Initiative</label>
       </data>
       </data>
Line 343: Line 366:
         <data source="t resistances" name="resistances">
         <data source="t resistances" name="resistances">
           <format>{{#invoke: ParseList | main | {{{t resistances}}} | useTemplate = Parse resistance | style = htmlList }}</format>
           <format>{{#invoke: ParseList | main | {{{t resistances}}} | useTemplate = Parse resistance | style = htmlList }}</format>
        </data>
      </group>
      <group>
        <header>Actions</header>
        <data source="t actions" name="actions">
          <format>{{#invoke:
            ParseList | main | {{{t actions}}}
            | useTemplate = Infobox creature/actions query
            | style = htmlListNoBullets
          }}</format>
         </data>
         </data>
       </group>
       </group>
Line 380: Line 413:
         <label>AC</label>
         <label>AC</label>
       </data>
       </data>
       <data source="h initiative">
       <data source="h init bonus">
         <label>Initiative</label>
         <label>Initiative</label>
       </data>
       </data>
Line 452: Line 485:
         <data source="h resistances" name="resistances">
         <data source="h resistances" name="resistances">
           <format>{{#invoke: ParseList | main | {{{h resistances}}} | useTemplate = Parse resistance | style = htmlList }}</format>
           <format>{{#invoke: ParseList | main | {{{h resistances}}} | useTemplate = Parse resistance | style = htmlList }}</format>
        </data>
      </group>
      <group>
        <header>Actions</header>
        <data source="h actions" name="actions">
          <format>{{#invoke:
            ParseList | main | {{{h actions}}}
            | useTemplate = Infobox creature/actions query
            | style = htmlListNoBullets
          }}</format>
         </data>
         </data>
       </group>
       </group>
Line 501: Line 544:
| ac = 10
| ac = 10
| prof bonus = +4
| prof bonus = +4
| initiative = +5
| init bonus = +5
| movement m = 9
| movement m = 9
| movement ft = 30
| movement ft = 30
Line 529: Line 572:


| resistances = fire immunity, acid vulnerable, slashing immunity nm
| resistances = fire immunity, acid vulnerable, slashing immunity nm
| actions = Absolute Power, Dueller's Enthusiasm
| conditions = Aura of Protection, Aura of Hate
| conditions = Aura of Protection, Aura of Hate
| passives = Agile Chassis, Cull the Weak (Drider)
| passives = Agile Chassis, Cull the Weak (Drider)
Line 536: Line 580:
| e ac = 8
| e ac = 8
| e prof bonus = +3
| e prof bonus = +3
| e initiative = +4
| e init bonus = +4
| e movement m = 9
| e movement m = 9
| e movement ft = 30
| e movement ft = 30
Line 564: Line 608:


| e resistances = acid vulnerable, lightning vulnerable
| e resistances = acid vulnerable, lightning vulnerable
| e actions = Absolute Power
| e conditions = Aura of Protection
| e conditions = Aura of Protection
| e passives = Agile Chassis
| e passives = Agile Chassis
Line 571: Line 616:
| t ac = 12
| t ac = 12
| t prof bonus = +5
| t prof bonus = +5
| t initiative = +6
| t init bonus = +6
| t movement m = 12
| t movement m = 12
| t movement ft = 40
| t movement ft = 40
Line 599: Line 644:


| t resistances = fire immunity, slashing immunity nm, piercing immune nm, bludgeoning immune nm
| t resistances = fire immunity, slashing immunity nm, piercing immune nm, bludgeoning immune nm
| t actions = Absolute Power, Dueller's Enthusiasm, Entangle
| t conditions = Aura of Protection, Aura of Hate, Unstoppable
| t conditions = Aura of Protection, Aura of Hate, Unstoppable
| t passives = Agile Chassis, Cull the Weak (Drider), Adamantine Shield @ Adamantine Shield
| t passives = Agile Chassis, Cull the Weak (Drider), Adamantine Shield @ Adamantine Shield
Line 606: Line 652:
| h ac = 14
| h ac = 14
| h prof bonus = +6
| h prof bonus = +6
| h initiative = +7
| h init bonus = +7
| h movement m = 12
| h movement m = 12
| h movement ft = 40
| h movement ft = 40
Line 634: Line 680:


| h resistances = fire immunity, cold immune, slashing immunity nm, piercing immune nm, bludgeoning immune nm
| h resistances = fire immunity, cold immune, slashing immunity nm, piercing immune nm, bludgeoning immune nm
| h actions = Absolute Power, Dueller's Enthusiasm, Entangle, Fireball
| h conditions = Aura of Protection, Aura of Hate, Unstoppable, Legendary Resistance: Incapacitation
| h conditions = Aura of Protection, Aura of Hate, Unstoppable, Legendary Resistance: Incapacitation
| h passives = Agile Chassis, Cull the Weak (Drider), Adamantine Shield @ Adamantine Shield, Fast Hands
| h passives = Agile Chassis, Cull the Weak (Drider), Adamantine Shield @ Adamantine Shield, Fast Hands

Latest revision as of 02:14, 7 June 2024

This is the raw internal infobox template for creatures. It does very little processing on its parameters and expects all the data to be spoon-fed.