Speaking of the map protector, what do y'all think of our implementation of it vs. others? Both have advantages and disadvantages. I'll outline the general difference below.
Other implementations:
On map load, find all current objects in the world and mark them as "map objects". Protect these map objects. This implementation does not find objects the map spawns during game play like the buttons in the dance room in gm_mobenix when the reset button is hit.
Our implementation:
Assume that anything not spawned by a player (determined by using every spawn hook available to us) is owned by the map. This method correctly determines map objects spawned after load like in the example given above. However, the downside is that the map author may intend for the object to be manipulated in any way by anyone (like the bowling balls in gm_mobenix). Another downside is when script authors do not correctly implement their spawn code (like in the RP gamemodes listed above), UPS assumes the objects are owned by the map.
Another point of interest about our implementation is that it's individualized for types of objects. You're allowed to do nothing but use buttons, but you can do almost anything with a map spawned phys object.