Well basically how this works in the first place is setup with two areas.
void OnStart()
{
//Collide callback
AddEntityCollideCallback("stone", "AreaRockOnShovel_1", "Impact1", false, 1);
AddEntityCollideCallback("stone", "AreaRockOnShovel", "Impact2", false, 1);
}
The script area AreaRockOnShovel_1 is just calculating the time of how long it takes for the rock to hit the next area. Meanwhile the AreaRockOnShovel calls the whole event. I doubt that the script would be able to somehow not call it at the right time, especially now with this integer variable I'm using instead. Maybe I managed to make the game think I dropped it sometime when holding it somehow.
The script areas are also setup like this, thought it would be useful to know (apologies for a white background).
Derp.