Change Unarmed Melee Abilities for Iron Body

The script for the Iron Body spell has no code that changes the caster’s unarmed melee abilities.

I would like to:

  • set unarmed melee damage to 1d4 (small size) or 1d6 (medium size)
  • set target to “considered armed, when making unarmed attacks”, although I’m not sure that is even a thing in this game.

The function that comes closest to what I want is EffectDamage(), but using that feels wrong, because it’s independent of the unarmed state.

How do I go about this?

Wiki entry to Iron Body spell

There’s no reference where the increased unarmed damage of the monk class comes from, hence I think that the amount of damage characters deal are hardcoded. You could play around with scripting - giving the character in question an appropriate creature weapon through ActionEquipItem (INVENTORY_SLOT_CWEAPON_L, INVENTORY_SLOT_CWEAPON_R) for the duration of the spell… which will be difficult to script since you can’t equip items temporarily. AFAIK equiping creature items on characters is prone to causing all sorts of issues, at least in NWN2. As an alternative you could create invisible clubs and equip this as a weapon - still, the timed duration of the spell will remain complicated.

Personally I would use a temporary EffectDamageIncrease of +1 for small and +2 for medium/large races. That’s not exactly how it’s handled in D&D 3.5, but it’s close.

1d2 unarmed small - average of 1.5 dmg
1d3 unarmed medium - average of 2 dmg
1d4 unarmed large - average of 2.5 dmg

1d4 small monk - average of 2.5 dmg
1d6 medium monk - average of 3.5 dmg
1d8 large monk - average of 4.5 dmg

To be considered armed while striking unarmed you need the improved unarmed strike feat. Similar to the timed equipping of items there’s no simple way to give feats temporarily. You could script around with a user defined event fired with a delay of the spells duration within the Iron Body spell, or a custom heartbeat loop.

Easiest would be to create an item granting you the improved unarmed strike feat and a damage bonus. Using the OnAcquireItem event you can start a script which after the duration of the spell self destructs the item. Downside is that the character needs a free inventory slot.

2 Likes