Your
min_speed function is weird and even if it made sense I doubt your regular server owner would know what values to put there.
Looking at the smokegrenade logic, I see the only condition for it to explode if it's the smokegrenade is on the ground, no speed check. Also when the smokegrenade hits the ground the velocity is set to 95% of the current velocity.
https://github.com/s1lentq/ReGameDLL...enade.cpp#L791
(line 801 and line 816)
If you want to mimic the sg functionality that's what you should do. Reduce velocity when the nade is on ground and prevent explosion until the nade hits the ground.
If you stil want a speed check, why don't you check speed directly(sqrt of velocity[0]^2 + velocity[1]^2 + velocity[2]^2)?
__________________