I Put a Spell on You
CRPG Spells
One of the more important parts of any CRPG system set in a fantasy world is the magic system.
As a person who primarily likes playing mage characters, poor, undeveloped magic systems are a sore point of mine. Magic systems are very important to me.
While I am trying to keep the main system’s magic as neutral and ‘standard’ as possible, magic will play a huge role in the world of Aerth, which each of the six magical schools being tied to a very concrete philosophy.
SpellBooks.xml
There are six spell books, each used by a number of different classes:
- Arcane: Mages, Spellswords, Bards, Adventurers
- Infernal: Warlocks
- Necromancy: Necromancers, Blackguards
- Divine: Priests, Paladins, Bards, Adventurers
- Nature: Druids, Rangers
- Mental: Psionics, Spies, Bards
<SpellBook>
<Id>arcane</Id>
<Name>Arcane</Name>
<Description>Standard spellbook used by mages, bards, spellswords and adventurers.</Description>
</SpellBook>
One thing different about spells compared to other parts of the system we’ve looked at is in addition to the spell book or category there are also spell levels as a way of further grouping spells by power.
SpellLevels.xml
There are currently seven levels of spells. I contemplated making nine, and may in the future after testing the system more. The magic levels start with the simplest of cantrips and move on up to ancient and powerful spells.
- Level One – Cantrips
- Level Two – Minor
- Level Three – Apprentice
- Level Four – Journeyman
- Level Five – Expert
- Level Six – Master
- Level Seven – Ancient
Below is the entry for minor cantrip spells:
<SpellLevel>
<Id>one</Id>
<Name>Cantrips</Name>
<Description>Level one spells are commonly called cantrips, they are the weakest spells a spellcaster can master.</Description>
</SpellLevel>
Like most other ‘category’ or grouping files, you will see the standard id, name and description fields.
Now that we have looked at the two supporting files for the magic system we can get to the fun part.
Spells.xml
We’ve come at last to the largest and most important file in the spell system, the Spells.xml file.
Here you will find defined all the spells in the game. Usually when I mod a game the first thing I look at is the magic system to see how I can add more variety and usefulness to the game.
You can also modify this system easily to handle your needs. In the default system I’m building there are no spell animations or icons so you would need to add those in since they can vary dramatically based on what graphic engine you are using.
<Spell>
<Id>jolt</Id>
<Name>Jolt</Name>
<Description>This arcane cantrip hurls a small arc of electricity at a single enemy for minor damage.</Description>
<SpellBook>arcane</SpellBook>
<SpellSkill>air</SpellSkill>
<SpellLevel>1</SpellLevel>
<Cost>
<Attribute>
<Id>mp</Id>
<Value>2</Value>
</Attribute>
</Cost>
<Effects>
<Effect>
<Id>lightningdamage</Id>
<Group>enemies</Group> <!-- any, allies, enemies -->
<Range>short</Range> <!-- self, touch, short, medium, long, extralong -->
<Target>single</Target> <!-- single, some, all -->
<MinValue>1</MinValue>
<MaxValue>3</MaxValue>
<BonusValue>
<Attributes>
<Attribute>
<Id>intelligence</Id>
<Value>[(ATTRIB/8)-1]</Value>
</Attribute>
</Attributes>
</BonusValue>
</Effect>
</Effects>
</Spell>
In addition to the standard id, name and description fields there are a number of spell specific fields we should review:
- SpellBook – This value relates to the id in the SpellBook.xml file
- SpellSkill – This is the id of the skill associated with this spell
- SpellLevel – This is the id of the spell level in the SpellLevel.xml file
- Cost – This holds the cost of the spell, in the standard Broken Staff system this will be an amount of MP but it could be gold pieces or a lot of other items
- Effects – These are the effects associated with the spell. In addition to standard effect items there are range, target and group fields that determine who the spell effects
Under effects is something called bonus value which adds to the min/max value depending on something, in this case the caster’s intelligence attribute. You could also add extra damage or increase the spell duration based on skill level.
That’s the basic overview of the magic system in the Broken Staff CRPG.
Adding New Spells
If you wish to add new spells to your game you need to:
- Add a relevant entry in the Spells.xml file. Take a look at existing spells to see some of the things you can accomplish
- Next you would include the spell in any of the files that make use of it such as in: classes, characters, monsters etc
- In theory your existing system code should be able to handle the new spell. But you would need to test it to be sure
Any questions? Feel free to comment on this post.
The next post will cover items.