The only way I can think to accomplish this is to have an OnHit event that basically casts the spell it was hit with at something else.
This is what I have, on an archerytarget static.
Scriptname PCKP_OnHitRedirectApple extends ObjectReferenceObjectReference Property XMarker autoSpell Property AppleSpell autoEvent OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, \ bool abBashAttack, bool abHitBlocked)if akSource as Spell==AppleSpell AppleSpell.Cast(self, XMarker)endIfendEvent
I don't think it is registering the OnHit event though.
EDIT: Just thought of a workaround. The projectile triggers and explosion that places an invisible object. This object does a FindNearestRefOfType archerytarget and then if that distance is small enough it Updates the ref. Then I do what I was going to do as an OnUpdate event.
EDIT2: This isn't working either, and I can't really imagine why not. My log is saying that the FindCLosestRef is returning a None, which I don't understand why that would be. Really weirding me out.