Making a skill for the ranger class, but setting the damage type to magic results in the skill never actually doing damage. I'm presuming this is because the bow requirement mean it's reading stats from the bow? The damage type can be anything (fire, chaos etc.) and it still works, so why not magic?

On closer inspection the tool-tip states where you put the [1] entry for damage as "10-11 magic armour" instead of "10-11 fire damage" or whatever else you use. So I think the editor is incorrectly trying to deal magic 'armour' instead of 'damage' on bow skills?

Screenshot: https://imgur.com/a/xKI9h and code for the skill:

Code
    <stat_object index="6" is_substat="false">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="SpiritArrow" />
        <field name="SkillType" type="StringStatObjectFieldDefinition" value="Projectile" />
        <field name="ForGameMaster" type="EnumerationStatObjectFieldDefinition" value="1" enumeration_type_name="YesNo" />
        <field name="Ability" type="EnumerationStatObjectFieldDefinition" value="2" enumeration_type_name="SkillAbility" />
        <field name="Tier" type="EnumerationStatObjectFieldDefinition" value="1" enumeration_type_name="SkillTier" />
        <field name="Requirement" type="EnumerationStatObjectFieldDefinition" value="2" enumeration_type_name="SkillRequirement" />
        <field name="ActionPoints" type="IntegerStatObjectFieldDefinition" value="0" />
        <field name="Cooldown" type="IntegerStatObjectFieldDefinition" value="0" />
        <field name="Damage Multiplier" type="IntegerStatObjectFieldDefinition" value="90" />
        <field name="DamageType" type="EnumerationStatObjectFieldDefinition" value="4" enumeration_type_name="Damage Type" />
        <field name="TargetRadius" type="IntegerStatObjectFieldDefinition" value="13" />
        <field name="AreaRadius" type="IntegerStatObjectFieldDefinition" value="30" />
        <field name="DeathType" type="EnumerationStatObjectFieldDefinition" value="3" enumeration_type_name="Death Type" />
        <field name="ExplodeRadius" type="IntegerStatObjectFieldDefinition" value="0" />
        <field name="CanTargetCharacters" type="EnumerationStatObjectFieldDefinition" value="1" enumeration_type_name="YesNo" />
        <field name="CanTargetItems" type="EnumerationStatObjectFieldDefinition" value="1" enumeration_type_name="YesNo" />
        <field name="CanTargetTerrain" type="EnumerationStatObjectFieldDefinition" value="1" enumeration_type_name="YesNo" />
        <field name="ForceTarget" type="EnumerationStatObjectFieldDefinition" value="0" enumeration_type_name="YesNo" />
        <field name="TargetConditions" type="StringStatObjectFieldDefinition" value="NonSelf" />
        <field name="ForkingConditions" type="StringStatObjectFieldDefinition" value="Enemy;!Dead;!Tagged:BLOCK_FORK" />
        <field name="UseCharacterStats" type="EnumerationStatObjectFieldDefinition" value="0" enumeration_type_name="YesNo" />
        <field name="UseWeaponDamage" type="EnumerationStatObjectFieldDefinition" value="0" enumeration_type_name="YesNo" />
        <field name="UseWeaponProperties" type="EnumerationStatObjectFieldDefinition" value="0" enumeration_type_name="YesNo" />
        <field name="ProjectileCount" type="IntegerStatObjectFieldDefinition" value="1" />
        <field name="ProjectileDelay" type="IntegerStatObjectFieldDefinition" value="0" />
        <field name="Template" type="StringStatObjectFieldDefinition" value="cd16cdc6-16ca-42ea-960e-d6ee53c0e7cc" />
        <field name="ChanceToPierce" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="MaxPierceCount" type="IntegerStatObjectFieldDefinition" value="10" />
        <field name="Icon" type="StringStatObjectFieldDefinition" value="unknown" />
        <field name="DisplayName" type="TranslatedStringStatObjectFieldDefinition" value="Spirit Arrow" />
        <field name="Description" type="TranslatedStringStatObjectFieldDefinition" value="Fire a magic arrow that will pierce enemies that it passes through, dealing [1]." />
        <field name="StatsDescriptionParams" type="StringStatObjectFieldDefinition" value="Damage" />
        <field name="PrepareAnimationInit" type="StringStatObjectFieldDefinition" value="skill_prepare_weapon_01_start" />
        <field name="PrepareAnimationLoop" type="StringStatObjectFieldDefinition" value="skill_prepare_weapon_01_loop" />
        <field name="PrepareEffect" type="StringStatObjectFieldDefinition" value="RS3_FX_GP_Projectile_Arrow_Custom_A:Dummy_ArrowFX;RS3_FX_Skills_SpiritArrow:Dummy_ArrowFX" />
        <field name="CastAnimation" type="StringStatObjectFieldDefinition" value="skill_attack_precision_01_cast" />
        <field name="CastTextEvent" type="StringStatObjectFieldDefinition" value="cast" />
        <field name="MemorizationRequirements" type="StringStatObjectFieldDefinition" value="RangerLore 1" />
        <field name="Memory Cost" type="IntegerStatObjectFieldDefinition" value="1" />
        <field name="Magic Cost" type="IntegerStatObjectFieldDefinition" value="0" />
        <field name="ProjectileTerrainOffset" type="EnumerationStatObjectFieldDefinition" value="1" enumeration_type_name="YesNo" />
        <field name="OverrideMinAP" type="EnumerationStatObjectFieldDefinition" value="0" enumeration_type_name="YesNo" />
        <field name="Damage Range" type="IntegerStatObjectFieldDefinition" value="10" />
        <field name="CastEffect" type="StringStatObjectFieldDefinition" value="RS3_FX_GP_Projectile_Arrow_Custom_A:Dummy_ArrowFX" />
        <field name="ProjectileType" type="EnumerationStatObjectFieldDefinition" value="1" enumeration_type_name="ProjectileType" />
      </fields>
    </stat_object>