Items in the Broken Staff CRPG
CRPG Items
Items are another CRPG area that are hard to get right.
One of my main design goals for the system was to make it easy to change over time in response to testing and feedback.
ItemTypes.xml
Item types are how the system organizes items.
In the default system there are 14 types of items:
- Weapon – items to attack
- Body / Armour – items to protect the body
- Helmet – items to protect the head
- Hand – items to protect the hands
- Foot – items to protect the feet
- Ring – items to wear on fingers
- Amulet – items to wear around the neck
- Belt – items to wear around the waist
- Cloak – items to wear on the back
- Potion – items to drink, whether magical or water or alcohol related
- Scroll – items to learn spells from or read
- Book – items to read
- Instrument – items for bards to play
- Misc – quest, usable, other, junk
Here’s a sample item type for rings:
<ItemType>
<Id>ring</Id>
<Name>Ring</Name>
<Description>Rings.</Description>
</ItemType>
The item type fields are the standard id, name and description. Items have many more fields.
Items.xml
Weapon Example
<Item>
<Id>armingsword</Id>
<Cost>100</Cost>
<ItemType>
<Id>weapon</Id>
<IsEquipable>Yes</IsEquipable>
<Handedness>onehanded</Handedness>
</ItemType>
<Name>Arming Sword</Name>
<Description>A one handed sword used by knights and other warriors.</Description>
<UnidentifiedName>Sword</UnidentifiedName>
<UnidentifiedDescription>Some kind of sword.</UnidentifiedDescription>
<AssayingValue>8</AssayingValue>
<Requirements>
<Attribute>
<Id>strength</Id>
<Value>10</Value>
</Attribute>
<Feat>
<Id>equipwarriorweapons</Id>
</Feat>
</Requirements>
<SkillsUsed>
<Skill>
<Id>swords</Id>
</Skill>
</SkillsUsed>
<Attributes>
<Attribute>
<Id>armorclass</Id>
<Value>0</Value>
</Attribute>
<Attribute>
<Id>attackbonus</Id>
<Value>0</Value>
</Attribute>
</Attributes>
<OnAttack>
<Effect>
<Percent>55</Percent>
<Id>slashingdamage</Id>
<Range>short</Range>
<MinValue>1</MinValue>
<MaxValue>8</MaxValue>
<ToHit>
<Attribute>
<Id>attackbonus</Id>
<Value>0</Value>
</Attribute>
<Attribute>
<Id>initiative</Id>
<Value>-1</Value>
</Attribute>
</ToHit>
</Effect>
<Effect>
<Percent>45</Percent>
<Id>piercingdamage</Id>
<Range>short</Range>
<MinValue>1</MinValue>
<MaxValue>7</MaxValue>
<ToHit>
<Attribute>
<Id>attackbonus</Id>
<Value>0</Value>
</Attribute>
<Attribute>
<Id>initiative</Id>
<Value>0</Value>
</Attribute>
</ToHit>
</Effect>
</OnAttack>
<Crafting>
<IsCraftable>Yes</IsCraftable>
<Skill>
<Id>smithing</Id>
<Value>15</Value>
</Skill>
<ItemsRequired>
<Item>
<Id>ironore</Id>
<Quantity>3</Quantity>
<UsedUp>Yes</UsedUp>
</Item>
<Item>
<Id>smithhammer</Id>
<Quantity>1</Quantity>
<UsedUp>No</UsedUp>
</Item>
</ItemsRequired>
</Crafting>
</Item>
Standard id, name, description… blah blah blah.
The big things that stand out about weapons are who can use them and what happens when you attack with them.
The Requirements tag can cover any of the types of data we’ve look at: classes, attributes, skills etc. You can customize who can use what items fairly easily if you do not like how the default system is setup.
The OnAttack tag covers what happens when attacking with the item. There can be multiple actions with less than 100% and actions with 100% probibility. The system will build a list of the LT1PI (less than 100 percent items) and choose one of them and then do all the 100% items. This allows for multiple attack types, in the default system you can have swings, thrusts and other types of attacks. The different types of attacks can have different speeds and cause different types of damage.
This tag might be modified in the future, I am not 100% happy with it but we shall see how it works when we get it in action in the character builder / combat app.
Next we cover an example of a usable item.
Scroll Example
<Item>
<Id>scrolloflullaby</Id>
<Cost>100</Cost>
<ItemType>
<Id>scroll</Id>
<IsEquipable>No</IsEquipable>
<IsUsable>Yes</IsUsable>
</ItemType>
<Name>Scroll of Lullaby</Name>
<Description>An arcane scroll inscribed with the lullaby spell.</Description>
<UnidentifiedName>Paper</UnidentifiedName>
<UnidentifiedDescription>A piece of paper.</UnidentifiedDescription>
<AssayingValue>10</AssayingValue>
<Attributes>
<Attribute>
<Id>weight</Id>
<Value>0.5</Value>
</Attribute>
</Attributes>
<OnUse>
<UseWhen>Combat</UseWhen> <!-- Both, Combat, Non-combat -->
<Uses>1</Uses>
<Effects>
<Effect>
<Id>sleep</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> <!-- light strength is 1-5 -->
<MaxValue>1</MaxValue>
<Duration>120</Duration> <!-- in seconds -->
<SavingThrows>
<Allowed>Yes</Allowed>
<SaveEffect>negate</SaveEffect> <!-- negate or 1/2 damage -->
<Attribute>willpower</Attribute>
<Value>5</Value>
</SavingThrows>
</Effect>
</Effects>
</OnUse>
<Crafting>
<IsCraftable>Yes</IsCraftable>
<Skill>
<Id>enchanting</Id>
<Value>10</Value>
</Skill>
<ItemsRequired>
<Item>
<Id>goldpiece</Id>
<Quantity>90</Quantity>
<UsedUp>Yes</UsedUp>
</Item>
<Item>
<Id>scroll</Id>
<Quantity>1</Quantity>
<UsedUp>Yes</UsedUp>
</Item>
<Item>
<Id>enchanterssatchel</Id>
<Quantity>1</Quantity>
<UsedUp>No</UsedUp>
</Item>
</ItemsRequired>
<SpellsRequired>
<Spell>
<Id>lullaby</Id>
</Spell>
</SpellsRequired>
</Crafting>
</Item>
Scrolls are not equipable but they are usable. You could have an equipable, usable ring that would be another type of usable item but in this case I chose a scroll.
When used scrolls have an effect that is usally the same or similar to the spell of the same name as the scroll. It can be different in case you want all scrolls to be weaker than the spell versions or standardized values while the spells have more of a range of values.
The scroll would also be used to learn the spell. Right now that effect is implied in the crafting section although in future versions of the system we might make it a new set of fields.
To craft a scroll you would need an empty scroll, the enchanter’s satchel item, gold and be able to cast the spell in question.
Adding New Items
If you wish to add new items to your game you need to:
- If you are creating a new type of item you would also need to add an entry to the ItemTypes.xml file
- Add a relevant entry in the Items.xml file. This includes defining the available values for that item and any effects attributed with that value
- Next you would include the item in any of the files that make use of it such as in: characters, monsters, treasures, encounters, shops etc
Do you have any questions? Anyone? Anyone?