1) Sometimes, you want an explosion that's only visible to certain players, and routed to no others. Normally, you have to get creative when doing this, but since the server has full routing control, why not:
player.explosion(usual parameters) - only routed to player
arena.explosion(usual parameters, optional array of players it gets routed to)
2) It was always a problem that players don't get credit for their LUA explosion kills, so if possible,
arena.creditedExplosion(usual parameters, player it's credited as a projectile of, array of players it gets routed to)
3) Then I thought, well it's a classical problem in inf to try to say, halve someone's damage, and I don't think this is entirely possible with C# alone, but with some tinkering of the editors, I think it might be:
player:dontRoute(itemid)
player:dontRoute()
player:doRoute(itemid)
player:doRoute()
If an developer, for example, makes all weapons shoot 2 parts, then dontRoute(one of the items) would effectively halve its damage.
Another option is:
player.substituteRoute(actual itemid, resulting itemid) - When routing shots to other players, substitute first item for second, the second being a gun that does half damage.
4) If bots can eventually see explosions in the same way as players can (they should in order to take damage), perhaps we can avoid base hack completely by making an "observer bot" that does nothing but observe the projectiles fired, and sends the explosions that destroy the turrets, rather than the shooter sending their own explosions.