Did you ever experience this strange bug where your viewmodel suddenly disappears and you didn't do anything?
This is actually an engine bug Valve should try to fix.
This plugin tries to prevent this bug from happening on your server.

Installation
- Drop missing_viewmodel_fix.smx into addons/sourcemod/plugins.
- Restart server and you're good to go.
Explanation of the bug
If someone joins spectator mode and watches someone else in first person mode, the player still alive can't see their viewmodel (weapon and hands) anymore. It looks like "r_drawviewmodel 0" was executed. This only happens if "mp_death_drop_gun" is set to 1.
How can this be replicated exactly?
1) Run your server with default competitive settings, with or without MetaMod/SourceMod.
2) Start up de_dust2.
3) Join CT team together with a friend.
4) You have to be apart enough for this to work (as this bug seems to only happen when transition effect is not visible), so let your friend walk all the way on A long until he reaches pit.
5) You stay on CT spawn, make sure you've set "cl_spec_mode" to 4 (firstperson) - this is part of the bug.
6) Join spectator mode - your friend's viewmodel is now gone.
What this plugin does
This plugin intercepts teamjoins to spectator and forces the client to set "cl_spec_mode" to 6 (free look) first. As soon as the client has set freelook mode the teamjoin is performed. This causes the client to start in freelook mode and therefore prevents the bug.
Limitations
This plugin may not work if you use other plugins that intercept teamjoins as well (like TeamChange Unlimited).
Fix for TeamChange Unlimited:
Change this:
PHP Code:
To this:TeamChangeActual(client, toteam);
DownloadPHP Code:
if (toteam == TEAM_SPECTATE) {
return Plugin_Continue;
} else {
TeamChangeActual(client, toteam);
}
Source