I've worked on this plugin for a couple of years but never quite finished it. Before I entirely move on, I'd like to post my code here in case anyone wants to continue my work or use it as a reference.
My gameplay mod is called Active Arena. It changes how a round of arena mode is played (and it simply disables itself for all other map types). The plugin is
totally playable as-is - or at least it was a year ago - but there are a few noticeable bugs I didn't fix that have prevented me from actually publishing the mod. I wrote them down in a text file included in the zip. I've playtested the mod, and
it actually is a lot of fun.
Short explanation:
This mod makes arena mode function less like Counter-Strike and more like a team deathmatch.
Long explanation:
Instead of players never respawning in a round, active arena uses a ticket system to let players respawn. Each team starts off with a number of tickets (determined partially by the number of players on the opposing team), and every time a player respawns his team loses a ticket. Once a team has no tickets left, nobody on the team can respawn. Then the round ends like an arena round normally ends, by the remaining team being killed off. To prevent stalemates, the control point opens up a minute after a team runs out of tickets.
Instead of players respawning in their spawn room, the location where a player spawns depends on the locations of all his teammates. The average location of the team is calculated, and then the mod picks a spawn point from a list that is closest to the average location but far enough away from enemies and out of their line of sight. The list of spawn points is in a separate text file, and I have a separate small plugin that helps write that file so you can generate your own set of spawn points (either to replace my sets or to add support for a new arena map I didn't make spawn points for.) If a server doesn't have a set of spawn points for a given map, everyone will just spawn in the spawn room.
When players respawn, they have a few seconds of damage immunity, just in case they do somehow get hit (which seldom happens because they spawn away from enemies).
All the times and settings can be easily customized by cvars, from the number of tickets to the minimum distance away from enemies players can spawn.
If anyone has any interest in using this, please let me know! I would
love for someone to complete or adapt this mod so that others can enjoy it.