how often do they use HCL when play game from hostbot ? I think this HCL+disable votekick is help but won't solved 100%
Basically all hostbots today have the HCL command, unless they (1) run a very outdated version of GHost++, or (2) use something else than GHost++, but thats rare.
In almost every case, the bot will have HCL support. Many people don't use it, but the bot supports it and they could simply add the "dummy command" to the HCL default setting to solve the issue.
The only problem with the solution I propose, is a minor cosmetical annoyance: When the game has just started, the GHost One bot (a bot based on GHost++) will announce to red player:
"-0 auto set, no need to type it in PlayerName"
(in that example, the HCL command has been set to "0")
That message is not a big deal, and better than having a map-based votekick that you're forced use - at least you have a choice. Personally, I can just edit out that announcement from the bot source code anyway, but not all people is able to do that of coourse.
With that little announcement-message in mind, yeah, its not 100% perfect solution, but otherwise I'd say its damn close to 100%

Better than no solution.
if I change my command to -kick, do it still interface with hostbot's command?
the standard "trigger" on hosting bots is the ! symbol, so thats !votekick.
but some bots may choose to use different trigger, like . or - and then yes, a conflict is possible.
!votekick is used by the bot votekick system
!kick is used by bot admins
But, and I can't stress this enough, a map-based votekick should NOT be active when hosting with bot. In other words, there should never be any conflict anyway
I havn't try yet, but you can find out which command will cause invalid mode and force to use default. I think it already work like this :
- mode trigger start when red enter "-" in chat
- if player enter -abcderf, it will become default mode immediate.
- if player enter "- " , it should trigger tha mode, then mode become invalid and automatic use default mode ? (any 1 character after "-", since HCL automatic add "-" to front, so you can try it out)
What I meant, is that you should add a mode command that did not do anything at all.
If you write (example) the command -0 (or just "0" in HCL) it should simply ignore it, and not pick the default mode or do anything. Red player should be able to type in a mode like usual.
This allow the map to detect that HCL is present (and therefore know that a bot is hosting), but otherwise not interfere with the behaviour of the map.
In other words, I suggest that some specific dummy command (like "0" in my example) behave exactly like an empty HCL, and allows red to type in a mode immediately after the game has loaded.
If any HCL string is present (bot detected), then -votekick is disabled.
if(HCL == "") then enable votekick, and allow Red player to type in a gamemode
if(HCL == "0") then disable votekick, and allow Red player to type in a gamemode
if(HCL == "apgmcl") then disable votekick, and run the gamemode from HCL
Or, in other words:
if(HCL != "") then disable votekick
if(HCL == "0") then ignore this HCL command, go on with your business as usual
try out my votekick system. I think it is more useful than other vote kick :
Sure, I will try it out

It sounds very neat. Visually it can do things that the bot-based votekick system can not, with the pop-up menu and all.
I also like the way that you have configured it. Above 50% make sense in my opinion (but bot owners have different preferences on this setting). The anti-spam votekick detail is good also.
However, its technically impossible to achive the same things that you get from the bot-based votekick system. Sorry, but it will just never be a suitable replacement for bots. Let me explain.
For one thing, the bot !votekick system
respects the access levels of the bot,
exempting admins from being votekicked, and
allowing admins to cancel a votekick, or
locking the votekick command from being used at all while the admin is in the game.
(Also keep in mind, that bot hosted games have random people in all slots. Red player is just some random person)
Your map has no knowledge of who is bot admin(s), and who is not. Because this is maintained entirely on the bot-side of things, in its database.
Another issue is that.. technically speaking, from the bot side of things, we can't distinquish between a player leaving voluntarily or being votekicked by the map -votekick command. The host bot only knows that "player left the game".... However, if (1) connection drops or (2) game crashes or (3) the bot !votekick system was used to disconnect a player.. well, then, the bot will know that. And the bot can distinquish between such events and the "player voluntarily leaving" event. But this gets ruined by the -votekick command.
And why is that important? Well, the map-based votekick command effectively puts the auto-ban-leaver system out of business, because we can no longer rely on the "player has left" status.
We just got that fixed with the "after game 30 seconds disconnect" feature, now its all ruined again! lol
If I were crazy enough to enable it anyway, then the map -votekick would simply become a -voteban system. This, I do NOT want.
And yeah, different bot owners have different preference for votekick percentage. Personally, I have mine set to effectively a "majority vote" (anything above 50%), just like your map setting... This works for me, but not for everybody.
Bot owners can even modify their bot code and change their votekick system to their liking, adding new features, etc. They want freedom to do that, and not be dependent on a map that they can not, and do not want, to edit to make such changes.
Don't get me wrong, I think the -votekick and -kick commands is great for normal-hosted games, and I think you got the right idea on how to make it work well.
But its just not useful for bot hosts
W3MMD should include in next Beta, let me know if work or not (because I can't test them). I will try finish W3MMD tomorrow.
if W3MMD work without bug (after a few day), then I will release 3.4, then take a break before working on next version.
All right, cool.. I'm a rather busy myself this week, but I'll have a word with Morijarti. He could probably do some testing on this.