I'm working on a script to drag paralyzed actors in a way that resembles the vanilla mechanic for dragging dead ones. I'm using a spell with the Grip Actor effect archetype. I want to trigger the spell when the player holds the Activate button and release it when the button is released through a script attached to the actor that monitors player key presses using Spell.Cast() and the SKSE functions RegisterForKey(), OnKeyDown(), IsKeyPressed(), and OnKeyUp(). The script adds the spell to the player and detects button presses fine, but I'm running into problems with the casting mechanic. At the moment, when I press activate on an unconscious actor, the spell activates instantaneously then seemingly deactivates, which usually throws the actor anywhere from a few dozen to a few hundred feet away. I have a hunch this is because Grip Actor is a concentration spell and normally the cast button needs to be held down to maintain it, but the OnKeyDown event only triggers once discretely at the start of the button press. I've tried to circumvent this using the HoldKey() function to keep Activate held, but it seems this doesn't trigger the OnKeyDown event fast enough for the engine and actors are still thrown. Is there some kind of polling loop I can set up where I can make the player cast a continuous concentration spell until the scripted key is released? Has anyone else accomplished something like this, or found a better way to fudge the drag mechanic? I've tried everything from force-ragdolling the bodies to temporarily killing the actors but this seems to be the only near-feasible solution. Thanks!