Hi everyone!

This time I've got a bit of a tough cookie to crack. I want to create a spell, which causes the caster to make a weapon attack but, instead of adding the Strength or Dexterity bonus to the Attack and Damage Rolls, adds the caster's Spellcasting Ability bonus.

Example: A druid equiped with a Longbow uses this spell to target a creature in range. As the spell goes off, the druid makes an attack with the Longbow and adds their Wisdom bonus to both attack and damage rolls, instead of Dexterity.

Sounds simple but turned out to be quite tricky - I haven't been able to find the solution, yet.

Here is what I have learned so far:

The Smite spells of the Paladin class behave very similar to what I want to do, so I'll use the Melee Weapon version as an example. The important properties are found in columns U - "SpellRoll" and V - "SpellSuccess" respectively. While Smites act like spells (requires preparation, uses spell slots, etc.), their SpellRoll field says:

Attack(AttackType.MeleeWeaponAttack) - This basically tells the game (among other things), that the caster should make an Attack Roll using their equiped Melee Weapon and appropriately add their Strength or Dexterity bonus to the attack roll.

In the SpellSuccess field the property that's important for me is:

DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType) - This tells the game that, in case of a hit, the damage die of the equiped main hand melee weapon should be rolled for damage (e.g. 1d4 for a dagger, 1d12 for a great axe) and also that the damage should be of the same type as that of the weapon (blunt, slashing, piercing). Again the bonus from Strength or Dexterity is added appropriately, same as for the attack roll.

If there is any property, variable or modifier which can be added to those fields in order to change the Ability Score, which is used for the calculation, I haven't found it, yet or did it wrong.


That being said, there's more. The game does support the general idea of replacing the Ability Score which should be used in a roll. Two examples are the Bind Weapon spell granted by the Warlock's Pact of the Blade feature and Jaheira's weapon "Sylvan Scimitar".

The Warlock's Bind Weapon ability basically adds a buff to the equiped melee weapon, which includes (among many others) the following property:

WeaponAttackRollAbilityOverride(Charisma) - This tells the game that, instead of Streangth or Dexterity, it should add the bonus from Charisma to both Attack and Damage rolls.

There's quite a bit more to it, but in essence as long as the weapon with this buff is equiped, the wielder adds their Charisma bonus to all weapon attack and damage rolls.


I do not want to use a buff like that to create the intended behaviour for several reasons:

1. Since the buff would only be applied once the spell is actually cast, the spell's tooltip would show the wrong ability score and bonuses (Strength or Dexterity). For the same reason when targeting a creature, the chance to hit would be wrong, because it too would be calculated before the buff is applied
2. Timing - in order for this to even work as intended, the spell would have to apply the buff first, then make the attack and possibly damage rolls and then remove the buff immediately afterwards
3. It would be very to susceptible to error - if the game ever fails to remove the buff (in time) that could cause all sorts of problems
4. It could also cause the spell to interact with other things when it shouldn't. For example some magic items trigger if the user applies a condition

Unfortunately I cannot simply use MeleeSpellAttack in the SpellRoll field, because - while that would indeed use the spellcasting ability - it also ignores all properties of the equiped weapon. So no +1 to attack and damage, if the weapon has a +1 enchantment, no bonus effects from weapon coatings (e.g. poisons) and the like.

As always I'm readying an action to thank each and everyone who might be able to help me with this!

Last edited by Kasai; 01/04/25 01:14 PM.

Qc terxepssrw evi jypp sj aiewipw. Mrjsvq xli uyiir ws xlex wli qmklx wlss xliq eaec. Livi ai ks 'vsyrh xli qypfivvc fywl. Ks, qsroic, KS!