GetTouchingParts() is too laggy, but I can't find an alternative

Might work for you.