Sorry to bump an old thread but might be relevant to some people ...
Setup various grenade-suppression scripts on my TFC server, only to find that while it prevented players from having/using grenades, the bots still did. I'm my case I'm using BotMan's old "HPB-Bot" bot's. Don't know if that's an issue with other bots (like Fox-Box) or not.
So, I had to come up with an alternate method. Having some HL & TFC mapping experience, I new there was a "func_nogrenades" entity that mappers can use to create an invisible field which prevents grenades from exploding and doing any damage. This is typically used in respawn rooms and resupply rooms to prevent them from being continuously spammed - particularly on friendly-fire servers. There is also a "func_nobuild" entity that is used to prevent Engineers from building sentries and dispensers in undesirable places as well.
Anyway, for years I've used an old BotMan mod called "Stripper2" on my HL server to strip-out some weapons at run-time - effectively preventing them from spawning without having to modify the BSP map file itself. Well, "Stripper2" can also spawn entities into a game a run-time. So, I've created Stripper2 configuration files for each default TFC map (and a custom map that I run) to essentially spawn a func_nogrenades entity over the entire playable area of the map.
I wasn't sure how the game engine would react to a func_nogrenades entity (or any other entity for that matter) that used the entire possible world coordinates. So when I created these configuration files, I made sure they only covered the space in the coordinate system that each map actually uses.
Doing that was a bit of a challenge. I had to use a utility out there called BSP2Map to essentially dump the map's source-code (in .MAP format) to a file, open it in Hammer (the old formerly-WorldCraft version, not the Source engine version), create the "brush-based entity" that covered the entire usable area, etc. I never saved anything back into the BSP file itself, just used the data from it as a reference to get the size and position of the func_nogrenades entity right. Then exported to .MAP from Hammer a resultant .MAP file, containing only the func_nogrenades brush-based entity. Then I had to translate those coordinates into the format that Stripper2 wanted in it's configuration file. Of course, that process was repeated for each map because they each use different areas of the "world" coordinates.
As an example, here's the Stripper2 configuration information for 2Fort:
origin/0 0 0
bbox_min/-1792 -4096 -1408
bbox_max/1792 4096 128
Anyway, so the net effect of all this is that grenade power-ups spawn as normal, players can gather and throw them as normal, but they do not explode or do any damage. You just see a little explosion sprite, but no sound is played or damage is imposed - just as if they had been thrown into a respawn room. The bots also try to use the grenades as normal, they just have no effect. Of course, Stipper2 must be installed as a server-side "meta-mod".
I've packaged-up the Stripper2 configuration files and such and posted them on the web for anyone interested. The file is available at the URL listed below: