Looks like we can clean (some of) this stuff up quite easily. :>

I was worried we would not be able to update the various items, but here's a Arrow of Fire, and you can see where the the Surface creation is done, and the Explode Radius.

new entry "Projectile_ArrowOfFire"
type "SpellData"
data "SpellType" "Projectile"
using "Projectile_MainHandAttack"
data "SpellProperties" "IF(not SavingThrow(Ability.Dexterity,10)):DealDamage(1d4,Fire); GROUND:SurfaceChange(Ignite); GROUND:SurfaceChange(Vaporize); GROUND:CreateSurface(2,,Fire);"
data "ExplodeRadius" "2"
data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType); TARGET:ExecuteWeaponFunctors(MainHand)"
data "Template" "a987eb34-3d51-42fb-ba62-d2ebfbdc58c0"
data "DisplayName" "Projectile_ArrowOfFire_DisplayName"
data "CastSound" "Proj_Arr_Cast_Arrow_Of_Fire"
data "SpellFlags" "HasHighGroundRangeExtension;RangeIgnoreVerticalThreshold;IsHarmful"

Now if I can just find where the stupid Barrels are stored, I've already found the High Ground modifiers as well, and we are getting somewhere. laugh