As usual, I've been wracking my meager brains for longer than I should have, trying valiantly to not have to come begging for the kindly help of generous strangers, but I'm finally ready to give up on this one and hope that someone here can show me what I missed.
The script below is attached to several miscobjects, the idea being that when those objects are hit by a certain spell projectile, they delete themselves and spawn the appropriate critter in their place. Up until now, I've accomplished this by having a separate script for each type of item/critter, but that was inelegant (to say the least) and a real pain to update since I would have to make changes to all of them individually. The idea here is to have one master script for all of the items that will use a conditional to figure which one just got hit so that the correct critter can be spawned.
I decided that HasKeyword would be a pretty straight forward way to ID these, so I came up with this:
Spoiler
Scriptname PDAMActivationMASTERScript extends ObjectReference{Master script for activating inert automata};**This section allows for activation of inert automatons**;These are keywords used by the script to identify the inert unitsKeyword Property PDAMSpiderWarriorKW autoKeyword Property PDAMSpiderTrainerKW autoKeyword Property PDAMSpiderStealthKW autoKeyword Property PDAMSpiderDroneKW autoKeyword Property PDAMSpiderArcaneKW autoKeyword Property PDAMSphereWarriorKW autoKeyword Property PDAMSphereStealthKW autoKeyword Property PDAMSphereGuardianKW autoKeyword Property PDAMSphereArcherKW autoKeyword Property PDAMCenturionKW auto;These properties represent the active units to be spawnedActorBase Property PDAMCenturion AutoActorBase Property PDAMSpiderArcane AutoActorBase Property PDAMSpiderTrainer AutoActorBase Property PDAMSpiderDrone AutoActorBase Property PDAMSpiderStealth AutoActorBase Property PDAMSpiderWarrior AutoActorBase Property PDAMSphereArcher AutoActorBase Property PDAMSphereGuardian AutoActorBase Property PDAMSphereStealth AutoActorBase Property PDAMSphereWarrior Auto;Projectile for the control rod hit detection and target IDProjectile Property PDAMActivationBolt Autoauto STATE ActivatingEvent OnHit (ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked) If akProjectile == PDAMActivationBolt If Self.HasKeyword(PDAMCenturionKW) Self.PlaceActorAtMe(PDAMCenturion) ;spawns inert Debug.Notification("Centurion Activated!") ElseIf (Self as Form).HasKeyWord(PDAMSpiderArcaneKW) == true Self.PlaceActorAtMe(PDAMSpiderArcane) ;spawns inert Debug.Notification("Dynamo Spider Activated!") ElseIf (Self as Form).HasKeyword(PDAMSpiderTrainerKW ) == true Self.PlaceActorAtMe(PDAMSpiderTrainer) ;spawns inert Debug.Notification("Training Spider Activated!") ElseIf (Self as Form).HasKeyWord(PDAMSpiderDroneKW) == true Self.PlaceActorAtMe(PDAMSpiderDrone) ;spawns inert Debug.Notification("Spider Drone Activated!") ElseIf (Self as Form).HasKeyWord(PDAMSpiderStealthKW) == true self.PlaceActorAtMe(PDAMSpiderStealth) ;spawns inert Debug.Notification("Spider Assassin Activated!") ElseIf (Self as Form).HasKeyword(PDAMSpiderWarriorKW) == true self.PlaceActorAtMe(PDAMSpiderWarrior) ;spawns inert Debug.Notification("Spider Warrior Activated!") ElseIf (Self as Form).HasKeyWord(PDAMSphereArcherKW ) == true self.PlaceActorAtMe(PDAMSphereArcher) ;spawns inert Debug.Notification("Sphere Archer Activated!") ElseIf (Self as Form).HasKeyWord(PDAMSphereGuardianKW) == true self.PlaceActorAtMe(PDAMSphereGuardian) ;spawns inert Debug.Notification("Sphere Guardian Activated!") ElseIf (Self as Form).HasKeyWord(PDAMSphereStealthKW ) == true self.PlaceActorAtMe(PDAMSphereStealth) ;spawns inert Debug.Notification("Sphere Assassin Activated!") ElseIf (Self as Form).HasKeyWord(PDAMSphereWarriorKW) == true self.PlaceActorAtMe(PDAMSphereWarrior) ;spawns inert Debug.Notification("Sphere Warrior Activated!") EndIf Self.Delete() ;deletes friendly GoToState("Done") EndIfEndEventEndStateSTATE Done;Do nothingEndStateExcept that it isn't running the part that looks for the keywords, it just deletes the item and nothing else. I've tried writing things out several ways (as you can see by the inconsistencies and unnecessary formalities), all of my variables are assigned in CK and the script compiles without error. I just can't figure out what the heck I'm missing. I've looked up different scripts and threads that use HasKeyword, and I don't see anything wrong with my syntax. As always, I have a suspicion that answer is blazingly obvious, and I'm just still too green at this scripting business to see it staring me in the face.
Anyone have an ideas? Pretty please?
I'd be extremely grateful for any guidance or advice.

Thanks for the ideas, though!