Ok, i got an idea, while discussing about reserved slots for l4d. This plugin will check every connecting player and if they dont have admin-flags (reserved, kick or root) and they got into spectators, they will be kicked with appropriate kick reason. Will print to all chat why someone got kicked. This only checks players who just connected. It wont kick any who changed team to spectators or was moved by some afk manager plugin. I hope this would work. It would be useful for local hosting and for those who have spare slots on their rented server. Hopefully we will get working reserved slots for l4d somewhen.
Claimed to be working fine.
Config file "L4D_ReservedSpectators" will be created inside cfg/sourcemod folder.
Dont forget to put
translation file into sourcemod/translations if you use 1.2 or 1.3 version.
CVARS:
l4d_reserved_spectators_timetokick (default 10) "Specifies time before non-admin spectator will be kicked."
l4d_reserved_spectators_playersb4kick, (default

"Specifies how many players to have before adding timer to start kicking"
l4d_rs_version Version of plugin.
Changelog
1.01 / Fixed a typo, which screwed message coloring.
1.1 / Added CVAR to control time before kick will occur.
1.2 / Added translation file. If doesnt work, use 1.1 version.
1.3 (KrX edition)/ New cvar added, see cvars list for description. Some extra checks also.
1.4 (KrX edition)/ Added version cvar and KrX to author's list in plugin info.