Code:
register_event("ResetHUD", "defkit_cleanup", "b")
This is logically wrong to use this event for cleaning dropped defkit.
Because "defkit_cleanup" function would be called
1. On client connect
2. On client spawn
3. On appropriate client command (considered as exploit)
Also this isn't rationally to call this function N times where N - number of spawned clients for example.
My opinion: this function should be called only on round start.