Both the values are being initialized, but with the GetPropIsInteractedWith in a seperate timer, using an integer to control it instead (if I understand what you mean).
I did get it to work the way I wanted it to exactly. I just had to make a rather strange method to fix it.
// Helper to update if stone is held
int iInteractStoneIndex = 0;
void TimerUpdateInteraction(string &in asTimer)
{
if(!GetPropIsInteractedWith("stone")) iInteractStoneIndex = 0;
else iInteractStoneIndex = 1;
AddTimer("loop", 0.0166f, "TimerUpdateInteraction");
}
void Impact2(string &in asParent, string &in asChild, int alState)
{
float Time = (1.05f - GetTimerTimeLeft("ImpactTime"));
float Speed = (Distance / Time); // Gets the speed
if(Speed >= 0.2f && iInteractStoneIndex == 0)
{
Derp.