CRPG Monsters

CRPG Monsters

This week we are continuing our series of tutorials on post v0.4 parts of the system by looking at how monsters are setup in the Broken Staff CRPG

CRPG Monsters

Monsters can include not only beasts but also humanoid creatures. If you compare an entry in the Monsters.xml file to a character, you should notice many similarities.

Monsters.xml

Here’s a sample monster:


<Monster>
   <Id>goblin</Id>
   <Name>Goblin</Name>
   <Description>
Goblins are small, twisted humanoids. They are often thought to have once been gnomes, corrupted by dark magic.
   </Description>
   <Race>beast</Race>
   <Attributes>
      <Attribute>
         <Id>sex</Id>
         <Value>male</Value>
      </Attribute>
      <Attribute>
         <Id>strength</Id>
         <Value>6</Value>
      </Attribute>
      <Attribute>
         <Id>vitality</Id>
         <Value>7</Value>
      </Attribute>
      <Attribute>
         <Id>dexterity</Id>
         <Value>10</Value>
      </Attribute>
      <Attribute>
         <Id>speed</Id>
         <Value>10</Value>
      </Attribute>
      <Attribute>
         <Id>intelligence</Id>
         <Value>5</Value>
      </Attribute>
      <Attribute>
         <Id>wisdom</Id>
         <Value>4</Value>
      </Attribute>
      <Attribute>
         <Id>charisma</Id>
         <Value>4</Value>
      </Attribute>
      <Attribute>
         <Id>virtue</Id>
         <Value>6</Value>
      </Attribute>
      <Attribute>
         <Id>luck</Id>
         <Value>10</Value>
      </Attribute>
      <Attribute>
         <Id>hp</Id>
         <Value>6</Value>
      </Attribute>
      <Attribute>
         <Id>sp</Id>
         <Value>6</Value>
      </Attribute>
      <Attribute>
         <Id>mp</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>hpregen</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>spregen</Id>
         <Value>0.1</Value>
      </Attribute>
      <Attribute>
         <Id>mpregen</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>armorclass</Id>
         <Value>4</Value>
      </Attribute>
      <Attribute>
         <Id>initiative</Id>
         <Value>6</Value>
      </Attribute>
      <Attribute>
         <Id>attackbonus</Id>
         <Value>3</Value>
      </Attribute>
      <Attribute>
         <Id>experience</Id>
         <Value>10</Value>
      </Attribute>
      <Attribute>
         <Id>fortitude</Id>
         <Value>2</Value>
      </Attribute>
      <Attribute>
         <Id>reflexes</Id>
         <Value>3</Value>
      </Attribute>
      <Attribute>
         <Id>willpower</Id>
         <Value>1</Value>
      </Attribute>
      <Attribute>
         <Id>slashing</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>blunt</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>piercing</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>energy</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>fire</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>nuclear</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>water</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>ice</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>acid</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>lightning</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>energy</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>holy</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>unholy</Id>
         <Value>0</Value>
      </Attribute>
      <Attribute>
         <Id>poison</Id>
         <Value>0</Value>
      </Attribute>
   </Attributes>
   <Classes>
      <Class>
         <Id>thief</Id>
         <Level>1</Level>
         <IsCurrent>Yes</IsCurrent>
      </Class>
   </Classes>
   <Feats>
      <Feat>
         <Id>equipbasicweapons</Id>
      </Feat>
      <Feat>
         <Id>equipwarriorweapons</Id>
      </Feat>
      <Feat>
         <Id>equiplightarmor</Id>
      </Feat>
      <Feat>
         <Id>equipshields</Id>
      </Feat>
      <Feat>
         <Id>trip</Id>
      </Feat>
   </Feats>
   <Skills>
      <Skill>
         <Id>swords</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>daggers</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>axes</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>polearms</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>blunt</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>bows</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>crossbows</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>thrown</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>shield</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>martialarts</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>running</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>climbing</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>swimming</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>jump</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>ambidexterity</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>dodge</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>deflect</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>disabletrap</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>picklock</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>sneak</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>scouting</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>pickpocket</Id>
         <Value>5</Value>
      </Skill>
      <Skill>
         <Id>deathstrike</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>history</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>mythology</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>artifacts</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>diplomacy</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>bartering</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>alchemy</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>enchanting</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>smithing</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>arcane</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>holy</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>nature</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>mind</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>fire</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>water</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>earth</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>air</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>mental</Id>
         <Value>0</Value>
      </Skill>
      <Skill>
         <Id>divine</Id>
         <Value>0</Value>
      </Skill>
   </Skills>
   <Spells />
   <Items>
      <Item>
         <Id>stoneclub</Id>
         <Quantity>1</Quantity>
      </Item>
      <Item>
         <Id>stoneknife</Id>
         <Quantity>1</Quantity>
      </Item>
      <Item>
         <Id>stonespear</Id>
         <Quantity>1</Quantity>
      </Item>
      <Item>
         <Id>raggedclothing</Id>
         <Quantity>1</Quantity>
      </Item>
   </Items>
   <Effects>
      <Effect>
         <Id>none</Id>
         <TimeLeft>0</TimeLeft>
         <Value>0</Value>
      </Effect>
   </Effects>
</Monster>

The monster has the standard id, name and description fields.

There are also a number of custom fields:

  • Race: The monster’s race corresponding to the Races.xml file
  • Attributes: The monster’s attributes corresponding to the Attributes.xml file
  • Classes: The monster’s classes corresponding to the Classes.xml file
  • Feats: The monster’s special abilities corresponding to the Feats.xml file
  • Skills: The monster’s skills corresponding to the Skills.xml file
  • Spells: The monster’s known spells corresponding to the Spells.xml file. In the example listed here the goblin knows no spells, but check the Monsters.xml file for examples of monsters with spells
  • Items: The monster’s inventory corresponding to the Items.xml file
  • Effects: The monster’s active effects corresponding to the Effects.xml file

What should you notice about all of the above items? They are all other parts of the Broken Staff CRPG system that you can customize and extend. This is another example where the modular design approach will hopefully make your job of using the system easier and more rewarding.

Adding new monsters with new abilities or unique features should be pretty easy.

Adding New Monsters

To do so you need to:

  • If you need to add a new race to accomodate your new monster, see the race tutorial. Remember to make the IsPlayable tag No if you don’t want human controlled characters playing that race
  • Add a relevant entry for the new monster in the Monsters.xml file. This includes defining the id, name, description and fields unique to the new monster
  • Then add the monster to the Encounters.xml file

Just how characters and parties work together, monsters and encounters work together. Next week we will finish the v0.4 tutorials with a look at how monsters and encounters work together to provide battles or other encounters.

Greg Caughill

Greg Caughill

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