Skip to content

Torg Eternity: Character Generator, Custom Data, Effects

July 10, 2018

This is part of the continuing discussion on how to customize the game data in the TOCG character generator for the Torg Eternity roleplaying game. Please go here for the start of the series. This post is going to examine how to define character modifications for perks, items, and special abilities.

Effects

In this post we’ll go over the different kinds of effects that can be applied to the character. “Effects” are used by races, perks, items, and special abilities.

To recap, one of the optional nested XML elements that can be included in the Perk element is the Effects element. Here is an example perk with a skill-related effect:

<Perks>

<Perk name=“Shadow Step” category=“Darkness” contradiction=“true” takeAgain=“false” limitations=“false” enhancements=“false”>

<Summary>Stealth is Favored. +2 damage vs. Flat-Footed.</Summary>
<Description>Please see page 85 in the Torg Eternity Core Rulebook.</Description>

<Prereqs>

<SkillAdds name=“Stealth”>2</SkillAdds>
<NoCategory name=“Light” />

</Prereqs>

<Effects>

<FavoredSkill name=“Stealth” />

</Effects>

</Perk>

</Perks>

In this case, when the perk is added to the character, the character’s stealth skill becomes Favored (which places a mark next to the skill name in the application and on exported character sheets & stat blocks).

Effects are any changes that modify or add something to the character sheet, and as such there’s a lot of different types, and they tend to be very flexible. In the above example, you can see that only part the perk is recorded as an Effect – that stealth becomes Favored. That’s because Favored skills are marked as such in the application, so that becomes an Effect. The other part – a +2 bonus to damage vs. Flat-Footed opponents – is conditional, and isn’t included on the character sheet beyond the blurb for the perk. Effects can add items to the character’s inventory, modify the stats of items, gift special abilities, boost attributes, grant followers, and much more.

Effects will generally be applied to the character when the perk, item, or special ability is added to the character. With weapons, armors, and shields, though, the item needs to be equipped before any effects will be applied.

Some effects, such as ones that modify attributes, can have the target (the attribute) named in the CustomGameData.xml file, or the target can be selected by the user via the Choices element. Please see the previous post for more information on Choices, or the upcoming post on advanced perks for using Choices and Effects together. The decision to use one or the other is the difference between a perk that always modifies a particular attribute – giving a +1 to Strength, for example – vs. a perk that gives a bonus to an attribute of the user’s choice.

The available XML elements that can be nested inside of an Effects element are:

  • <AddCompanion name=“(companion name)”>(lots of stuff)</AddCompanion> So I organized these lists alphabetically, which naturally meant the most complex Effect ended up as the first one! This is the effect that adds a pre-generated follower to the character, such as from the Animal Companion perks. Followers that are not pre-generated are handled elsewhere. This element has a lot of nested elements and has some advanced interactions with some special abilities, so this one will have to be detailed in its own post.
  • <AddItem type=“(item category)” name=“(item name)” /> This adds a particular item to the character’s inventory. The (item category) must be set to one of: “General”, “Weapon”, “Armor”, “Shield”, “Ammo”, “Poison”, “Vehicle”, “Cyberware”, or “Occultech”. The (item name) has to be set to the name XML attribute of an Item element. The named item has a category XML attribute that must match the (item category) value.
    • Example: <AddItem type=“Weapon” name=“Slayer’s Gun” />
    • Meaning: Add the Slayer’s Gun weapon to the character’s inventory.
  • <AddItemEffect type=“(item category)” name=“(item name)”>(Effect element)</AddItemEffect> This Effect adds a different Effect to a particular item in the character’s inventory. The (item category) must be set to one of: “General”, “Weapon”, “Armor”, “Shield”, “Ammo”, “Poison”, “Vehicle”, “Cyberware”, or “Occultech”. The (item name) has to be set to the name XML attribute of an Item element. The named item has a category XML attribute that must match the (item category) value. The (Effect element) is a nested element inside of the AddItemEffect, that could be any of the elements from this list.
    • Example: <AddItemEffect type=“Armor” name=“Dragon Warrior Armor”>
      <BoostDamage attr=“Str”>2</BoostDamage>
      </AddItemEffect>
    • Meaning: A BoostDamage effect is added to the character’s Dragon Warrior Armor. The BoostDamage effect increases damage based on Strength by +2.
  • <AddItemQuality type=“(item category)” name=“(item name)”>(Quality element)</AddItemQuality> This effect adds an item Quality to a particular item in the character’s inventory. The (item category) must be set to one of: “General”, “Weapon”, “Armor”, “Shield”, “Ammo”, “Poison”, “Vehicle”, “Cyberware”, or “Occultech”. The (item name) has to be set to the name XML attribute of an Item element. The named item has a category XML attribute that must match the (item category) value. The (Quality element) is a nested element inside of the AddItemQuality, that could be any Quality (Qualities will be covered in a future post).
    • Example: <AddItemQuality type=“Armor” name=“Dragon Warrior Armor”>
      <Misc>+2 Str for tests</Misc>
      </AddItemQuality>
    • Meaning: Adds a miscellaneous quality to the character’s Dragon Warrior Armor. This will add a note to the armor that it provides a +2 bonus to Strength-related tests.
  • <AddItemQualityToItems type=“(item category)” skill=“(weapon or vehicle skill)” hasQualities=“(qualities list)”>(Quality element)</AddItemQualityToItems> This effect is similar to the above, but instead of adding qualities to a specific item, it adds them to all items in the character’s inventory. The element’s XML attributes are used to identify which items should be affected. The (item category) must be set to one of: “General”, “Weapon”, “Armor”, “Shield”, “Ammo”, “Poison”, “Vehicle”, “Cyberware”, or “Occultech”. The (weapon or vehicle skill) is optional. If it is present, it should be set to the name of a Skill associated with the items that you want to affect. “Melee Weapons” if you only want to target such weapons, for example. The (qualities list) is optional. If it is present, it should be a comma-separated listed of qualities that items must have in order to be affected. The (Quality element) is a nested element inside of the AddItemQualityToItems, that could be any Quality (Qualities will be covered in a future post).
    • Example: <AddItemQualityToItems type=“Weapon” skill=“Melee Weapons” hasQualities=“Two Handed,Unwieldy”>
      <Stagger />
      </AddItemQualityToItems>
    • Meaning: Any two-handed melee weapons with the “Unwieldy” quality possessed by the character will gain the “Stagger” quality as well.
  • <AddMovement type=“(move type)” attrUsed=“(attribute shortName)” value=“(speed number)” /> This gives the character a new movement mode. The speed of the new movement type can either be based on a game attribute, or set to a static value. In the first case, the (attribute shortName) has to be set to the shortName XML attribute of an Attribute element, and the (speed number) is set to “0”. In the latter case, the (attribute shortName) is set to “” and the (speed number) is set to a number. The (move type) must be set to one of: “Land”, “Flight”, “Swim”, or “Burrow”.
    • Example: <AddMovement type=“Flight” attrUsed=“” value=“11” />
    • Meaning: The character can now fly at a speed of 11.
  • <AddSpecialAbility name=“(special ability name)” /> This adds a particular special ability to the character. The (special ability name) has to be set to the name XML attribute of a SpecialAbility element.
    • Example: <AddSpecialAbility name=“Darkvision” />
    • Meaning: The character gains the Darkvision special ability.
  • <AddSpell type=“(spell type)” name=“(spell name)” /> “Spell” in this case is a general term for any miracle, psionic power, or magic spell. This adds knowledge of a particular “spell” to the character. The (spell name) has to be set to the name XML attribute of a Spell element. The (spell type) must be one of: “Miracle”, “PsiPower”, or “Spell”
    • Example: <AddSpell type=“Miracle” name=“Ward Enemy” />
    • Meaning: The character gains the ward enemy miracle.
  • <BoostAttribute attr=“(attribute shortName)” boostLimit=“(true or false)” superAttr=“(true or false)” isBonus=“(true or false)”>(number)</BoostAttribute> This modifies the value of one of the character’s attributes. Despite the name, it can increase or decrease the attribute value. The (attribute shortName) is optional; if it is present it has to be set to the shortName XML attribute of an Attribute element. If it is not present, there should be a Choices element with a nested SelectAttribute element elsewhere so that the user can pick an attribute to modify. The boostLimit XML attribute should be “true” if the modification can exceed the character’s racial limit for the attribute. The superAttr XML attribute should be “true” if the modified attribute causes a contradiction. The isBonus XML attribute should be “true” if the modification does not affect XP costs for improving the attribute through normal advancement. The (number) is the amount to modify the attribute value by.
    • Example: <BoostAttribute attr=“Spi” boostLimit=“false” superAttr=“false” isBonus=“false”>1</BoostAttribute>
    • Meaning: The character’s Spirit increases by 1. The new value cannot exceed the character’s maximum Spirit (as determined by its race).
    • Example: <BoostAttribute boostLimit=“true” superAttr=“true” isBonus=“false”>1</BoostAttribute>
    • Meaning: The user selects one of the character’s attributes to increase by 1. The new value can exceed the character’s maximum attribute value (as determined by race). Making attribute or skill tests with the attribute will cause a contradiction outside of the character’s native realm.
  • <BoostAxiom type=“(axiom type)”>(number)</BoostAxiom> This modifies the value of one of the character’s axioms. Despite the name, it can increase or decrease the axiom value. The (axiom type) is optional; if it is present it must be set to one of: “Magic”, “Social”, “Spirit”, or “Tech”. If it is not present, there should be a Choices element with a nested SelectAxiom element elsewhere so that the user can pick an axiom to modify. The (number) is the amount to modify the axiom by.
    • Example: <BoostAxiom type=“Tech”>1</BoostAxiom>
    • Meaning: The character’s Tech axiom increases by 1.
    • Example: <BoostAxiom>1</BoostAxiom>
    • Meaning: The user selects one axiom to increase by 1 on the character.
  • <BoostDamage attr=“(attribute shortName)” skill=“(skill name)”>(number)</BoostDamage> This either modifies damage dealt by the character that is based on a game attribute (probably Strength), or it modifies damage dealt by weapons that use a particular combat skill. Despite the name, it can increase or decrease the damage value. The (attribute shortName) is optional; if it is present it has to be set to the shortName XML attribute of an Attribute element. The (skill name) is also optional; if it is present it has to be set to the name XML attribute of a Skill element. Only one of the XML attributes should be used. The (number) is the amount to modify the axiom by.
    • Example: <BoostDamage skill=“Unarmed Combat”>2</BoostDamage>
    • Meaning: The character does +2 damage with weapons that use the unarmed combat skill.
    • Example: <BoostDamage attr=“Str”>2</BoostDamage>
    • Meaning: The character does +2 damage with weapons that use Strength to determine damage.
  • <BoostMovement type=“(move type)”>(number)</BoostMovement> This modifies the character’s speed with a particular movement mode. The (move type) must be set to one of: “Land”, “Flight”, “Swim”, or “Burrow”. The (number) is the amount to modify the speed by.
    • Example: <BoostMovement type=“Land”>2</BoostMovement>
    • Meaning: The character’s land speed increases by 2.
  • <BoostSkill name=“(skill name)” boostLimit=“(true or false)” superSkill=“(true or false)” mastery=“(true or false)” isBonus=“(true or false)”>(number)</BoostSkill> This modifies the value of one of the character’s skills. Despite the name, it can increase or decrease the skill value. The (skill name) is optional; if it is present it has to be set to the name XML attribute of a Skill element. If it is not present, there should be a Choices element with a nested SelectSkill element elsewhere so that the user can pick a skill to modify. The boostLimit XML attribute should be “true” if the modification can exceed the normal skill cap. The superSkill XML attribute should be “true” if the modified skill causes a contradiction. The mastery XML attribute should be “true” if only the skill cap is being modified. The isBonus XML attribute should be “true” if the modification does not affect XP costs for improving the skill through normal advancement. The (number) is the amount to modify the skill value by.
    • Example: <BoostSkill name=“Dodge” boostLimit=“false” superSkill=“false” mastery=“false” isBonus=“true”>1</BoostSkill>
    • Meaning: The character’s dodge skill gains a +1 bonus.
    • Example: <BoostSkill boostLimit=“true” superSkill=“true” mastery=“false” isBonus=“false”>2</BoostSkill>
    • Meaning: The user selects one of the character’s skills to increase by 2. The new value can exceed the skill cap. Making tests with the skill will cause a contradiction outside of the character’s native realm.
  • <CanAccessCategory name=“(perk category name)” /> This allows the character to take perks from the named PerkCategory, even if the character’s cosm is not in the category’s list of allowed cosms. The (perk category name) is optional; if present it has to be set to the name XML attribute of a PerkCategory element. If it is not present, the category must be supplied by a Choices element, such as SelectPerkCategory.
    • Example: <CanAccessCategory name=“Reality” />
    • Meaning: The character can now take perks from the Reality category.
    • Example: <CanAccessCategory />
    • Meaning: The user selects a perk category and the character can now take perks from it.
  • <CountsAsRace name=“(race name)” /> This allows the character to bypass racial prerequisites for a particular race. The (race name) has to be set to the name XML attribute of a Race element.
    • Example: <CountsAsRace name=“Edeinos” />
    • Meaning: The character can now select edeinos-only perks.
  • <FavoredSkill name=“(skill name)” /> This makes a particular skill Favored. The (skill name) has to be set to the name XML attribute of a Skill element.
    • Example: <FavoredSkill name=“Stealth” />
    • Meaning: The character’s stealth skill is now Favored.
  • <IgnoreShock /> This turns off the character’s Shock limit. It’s intended for NPCs, for those that are immune to Shock damage.
    • Example: <IgnoreShock />
    • Meaning: The character ignores Shock damage.
  • <ModifyItem type=“(item category)” name=“(item name)” propertyName=“(item property)”>(property value)</ModifyItem> This will modify some value on an item in the character’s inventory. This is a complicated element that will be covered in an upcoming post.
  • <ModifyItemQuality type=“(item category)” name=“(item name)” quality=“(quality name)” propertyName=“(quality property)”>(property value)</ModifyItemQuality> This effect is similar to ModifyItem, above, except that it changes a value on some quality object attached to the item. This, too, is a very complicated topic, and will also be covered in a future post.
  • <ModifyPossibilities>(number)</ModifyPossibilities> This modifies the number of Possibilities the character has. If the character is reality-rated, its Possibility total is modified by (number).
    • Example: <ModifyPossibilities>1</ModifyPossibilities>
    • Meaning: The character has +1 Possibilities.
  • <ModifyShockLimit>(number)</ModifyShockLimit> This modifies the character’s Shock limit. The (number) is the amount the limit is modified by.
    • Example: <ModifyShockLimit>2</ModifyShockLimit>
    • Meaning: The character’s Shock limit is 2 higher than normal.
  • <ModifyToughness>(number)</ModifyToughness> This modifies the character’s Toughness. The (number) is the amount the Toughness is modified by.
    • Example: <ModifyToughness>1</ModifyToughness>
    • Meaning: The character’s Toughness is 1 higher than normal.
  • <ModifyWealth>(number)</ModifyWealth> This modifies the character’s money. The (number) is the amount of money added to or subtracted from the character.
    • Example: <ModifyWealth>9000</ModifyWealth>
    • Meaning: The character has $9,000 more dollars than normal.
  • <ModifyWeaponDamage name=“(weapon name)”>(number)</ModifyWeaponDamage> This modifies the damage of a particular weapon. The (weapon name) is optional; if it is present it has to be set to the name XML attribute of an Item element that has its category XML attribute set to “Weapon”. If it is not present, there should be a Choices element with a nested SelectItem element elsewhere so that the user can pick a weapon to modify. The (number) is the amount to modify the weapon’s damage by.
    • Example: <ModifyWeaponDamage name=“Great Axe”>1</ModifyWeaponDamage>
    • Meaning: The character gains a +1 bonus to damage with his Great Axe.
    • Example: <ModifyWeaponDamage>1</ModifyWeaponDamage>
    • Meaning: The user selects one of the character’s weapons to gain a +1 bonus to damage.
  • <ModifyWoundLimit>1</ModifyWoundLimit> This modifies the character’s Wound limit. The (number) is the amount the limit is modified by.
    • Example: <ModifyWoundLimit>1</ModifyWoundLimit>
    • Meaning: The charcter’s Wound limit is 1 higher than normal.
  • <MultiplyRunSpeed type=“(move type)”>(number)</MultiplyRunSpeed> This sets the character’s run multiplier with a particular movement mode. The (move type) must be set to one of: “Land”, “Flight”, “Swim”, or “Burrow”. The (number) is the new run multiplier, the default is x3. If multiple such elements are affecting the character, the highest multiplier is used.
    • Example: <MultiplyRunSpeed type=“Land”>4</MultiplyRunSpeed>
    • Meaning: The character’s running speed on land is set to 4 times its normal speed.
  • <MultiplySpeed type=“(move type)”>(number)</MultiplySpeed> This multiplies the character’s speed with a particular movement mode. The (move type) must be set to one of: “Land”, “Flight”, “Swim”, or “Burrow”. The (number) is the speed multiplier. If multiple such elements are affecting the character, the highest multiplier is used.
    • Example: <MultiplySpeed type=“Land”>2</MultiplySpeed>
    • Meaning: The character’s land speed is multiplied by 2.
  • <RemoveItemQualityFromItems type=“(item category)” skill=“(weapon or vehicle skill)” hasQualities=“(qualities list)”>(quality name)</RemoveItemQualityFromItems> This will remove a particular quality from all items possessed by the character that match certain conditions. The (item category) must be set to one of: “General”, “Weapon”, “Armor”, “Shield”, “Ammo”, “Poison”, “Vehicle”, “Cyberware”, or “Occultech”The (weapon or vehicle skill) is optional. If it is present, it should be set to the name of a Skill associated with the items that you want to affect. “Melee Weapons” if you only want to target such weapons, for example. The (qualities list) is optional. If it is present, it should be a comma-separated listed of qualities that items must have in order to be affected. The (quality name) must be set to the name of a quality that could be found on that type of item.
    • Example: <RemoveItemQualityFromItems type=“Weapon”  skill=“Melee Weapons”>Unwieldy</RemoveItemQualityFromItems>
    • Meaning: Any melee weapon possessed by the character will lose the “Unwieldy” quality.
  • <RemoveMovement type=“(move type)” /> This removes a particular movement mode from the character. The (move type) must be set to one of: “Land”, “Flight”, “Swim”, or “Burrow”.
    • Example: <RemoveMovement type=“Flight” />
    • Meaning: The character loses the power of flight.
  • <RemoveSpecialAbility name=“(special ability name)” /> This removes a particular special ability from the character. The (special ability name) has to be set to the name XML attribute of a SpecialAbility element.
    • Example: <RemoveSpecialAbility name=“Outsider (Edeinos)” />
    • Meaning: The character loses the edeinos Outsider penalty.

Congratulations to anyone who made it this far! Now that we’ve gotten all that out of the way, we’ll talk about building some advanced perks next.

Advertisements

From → Gaming, Software, Torg

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: