It’s Time For the Feats of Strength!

Last modified date

Feats (or abilities) have been in CRPGs for a long time. They usually come in two main types: passive or triggered.

For me feats really took off in DnD 3.0. The feats system in Broken Staff CRPG is modelled after the DnD system.

It's Time for the Feats of Strength

For those familiar with the DnD system there are a few differences:

  • All characters get a new feat every level
  • All classes have starting feats (such as what equipment they can use) that are given when one level of that class is taken
  • ‘Prestige classes’ are not in the Broken Staff system as classes. They are implemented via feats

Just like most other elements of the system, there are two files in the feats sub-system.

FeatGroups.xml

The first file type is used to organize feats. Right now there are three feat groups:

  • Passive Feats – Passive feats are abilities or skill upgrades a character has
  • Triggered Feats – Triggered feats are abilities that a character has to willfully attempt
  • Personality Feats – Personality feats are an optional type of passive feats that can help further customize characters

Here’s an example entry showing how the passive feats group is stored:


<FeatGroup>
   <Id>passive</Id>
   <Name>Passive Feats</Name>
   <Description>Passive feats that are automatically applied to character. Includes racial feats.</Description>
</FeatGroup>

For those of you following the series you will notice the standard id, name and description fields are used again.

Right now the feat groups aren’t very interesting, but they are needed to help organize the much more useful feats.

Feats.xml

Feats rely heavily on the flexibility that the effect system provides.

I’ll walk through examples from each of the three feat groups. The first one is a passive feat given to thieves for free at first level.

Passive Feat Example


<!-- Passive Class Feat -->
<Feat>
   <Id>novicethief</Id>
   <FeatGroup>passive</FeatGroup>
   <Name>Novice Thief</Name>
   <Description>Thieves with this feat get a very small bonus to their thieving skills.</Description>
   <Requirements>
      <Locked>Yes</Locked>
   </Requirements>
   <Effects>
      <Effect>
         <Id>disabletrapbonus</Id>
         <Duration>Permanent</Duration>
         <Value>5</Value>
      </Effect>
      <Effect>
         <Id>lockpickbonus</Id>
         <Duration>Permanent</Duration>
         <Value>5</Value>
      </Effect>
      <Effect>
         <Id>sneakbonus</Id>
         <Duration>Permanent</Duration>
         <Value>5</Value>
      </Effect>
      <Effect>
         <Id>pickpocketbonus</Id>
         <Duration>Permanent</Duration>
         <Value>5</Value>
      </Effect>
      <Effect>
         <Id>climbingbonus</Id>
         <Duration>Permanent</Duration>
         <Value>5</Value>
      </Effect>
   </Effects>
</Feat>

Triggered Feat Example

Triggered feats are feats that a character chooses to use.

They can be either combat techniques.


<!-- Triggered Combat Feat -->
<Feat>
   <Id>trip</Id>
   <FeatGroup>triggered</FeatGroup>
   <Name>Trip</Name>
   <Description>Special attack that has a chance to stun an opponent for 15 seconds.</Description>
   <Triggered>combat</Triggered>
   <Requirements>
      <Attributes>
         <Attribute>
            <Id>strength</Id>
            <Value>16</Value>
         </Attribute>
      </Attributes>
   </Requirements>
   <Effects>
      <Effect>
         <Id>makeattack</Id>
      </Effect>
      <Effect>
         <Id>attackbonus</Id>
         <Value>-1</Value>
      </Effect>
      <Effect>
         <Id>damagebonus</Id>
         <Value>-15</Value>
      </Effect>
      <Effect>
         <Id>stun</Id>
         <Group>enemies</Group> <!-- any, allies, enemies -->
         <Range>touch</Range> <!-- self, touch, short, medium, long, extralong -->
         <Target>single</Target> <!-- single, some, all -->
         <Duration>15</Duration> <!-- in seconds -->
         <SavingThrows>
            <Allowed>Yes</Allowed>
            <SaveEffect>negate</SaveEffect> <!-- negate or 1/2 damage -->
            <Attribute>reflex</Attribute>
            <Value>1*STR</Value> <!-- determinied by their strength value -->
         </SavingThrows>
      </Effect>
   </Effects>
</Feat>

Personality Feat Example

As noted above personality feats are just a specialized form of passive feat given at character creation.

Depending on how the developer sets up the system new characters can either get no personality feats or a predetermined number. The default it two.

These feats usually have a few positive elements offset by negative ones. The example below contains only a single negative bonus so many players might not choose it willingly. It is there for if the system is setup to grant random personalty feats on character creation.


<!-- Personality Feat -->
<Feat>
   <Id>personalitythoughtless</Id>
   <FeatGroup>personality</FeatGroup>
   <Name>Thoughtless</Name>
   <Description>You can be callous and insensitive to others.</Description>
   <Requirements>
      <Locked>Yes</Locked> <!-- need to be unlocked programatically for character, can't normally get this feat -->
   </Requirements>
   <Effects>
      <Effect>
         <Id>charismabonus</Id>
         <Group>allies</Group> <!-- any, allies, enemies -->
         <Range>self</Range> <!-- self, touch, short, medium, long, extralong -->
         <Target>single</Target> <!-- single, some, all -->
         <MinValue>-1</MinValue>
         <MaxValue>-1</MaxValue>
         <Duration>Permanent</Duration>
      </Effect>
   </Effects>
</Feat>

How to Add Feats

If you wish to add new feats to the game system you need to:

  • Add a relevant entry in the Feats.xml file. This includes defining the available values for that feat, the type of feat and any effects attributed with that feat.
  • Next you would include the feat in any of the files that make use of it such as in: items, skills, classes, characters, monsters etc

Do you have any questions? Anyone? Anyone?

Greg Caughill

Greg Caughill is the owner and creative director of Broken Staff Studios.

Share