• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

Final Release [Mutator] BotDetonator (white-listed)

Ducky

Super Moderator
May 22, 2011
6,358
237
Netherlands
BotDetonator(white-listed)

Revision 81 - Released December 11 22, 2012


Introduction

I made a mutator called bot detonator. The name sounds odd, but the mutator will actually kick (or detonate) all bots as soon as a specific condition is reached (see Configuration section).

My goal with this mutator is to reduce the complains about servers that are running bots. The mutator gives the ability to players to vote to kick all bots. Even so can admins set values which will arrange that bots do leave if for example 4 players are present. The admin can for example put 20 initial bots on his server to attract players. Then all bots will be removed if for example 4 real players have joined. This will make it harder for people to use the bots for easy XP gaining.

If the bots are all kicked out, then they will not leave any weapons behind on the battle-field. This will prevent that players vote away the bots to get there weapons.


New: Web-Admin mutator settings
All configuration properties can now be edited directly from out of the web-admin interface. The settings can be found on the mutator page.

Important:
If you did run an older version of this mutator, then it might be that you will not see any of the mutator settings. In that case you will need to look-up and open the ROWebAdmin.ini file on your server and delete all the lines that start with HasSettingsCache. Those lines should be present in the [WebAdmin.QHDefaults] section of that ini file. Don't worry about throwing away lines for other mutators. They will be recreated as soon as you restart the server.

Configuration properties:
  • bKickBotsOnPlayerCount
    If true, then bots will be kicked if the number of human players is equal to or above KickBotsPlayerCount.
    If bAllowBotsToReturn is true, then the bots will return if the number of human players becomes less than KickBotsPlayerCount.
  • KickBotsPlayerCount
    If bKickBotsOnPlayerCount is true, then all bots will be kicked if the number of human players is equal to or above this value.
    If bAllowBotsToReturn is true, then the bots will return if the number of human players becomes less than KickBotsPlayerCount.
  • bAllowBotsToReturn
    If true and bKickBotsOnPlayerCount is also true, then the bots will return if the number of human players becomes less than KickBotsPlayerCount.
  • bKickAllBotsVoteEnabled
    If true, then players can vote to kick the bots.
    See also KickBotsVotePercentage and VoteTimeSpan.
  • KickBotsVotePercentage
    If bKickAllBotsVoteEnabled is true, then all bots will be kicked if the number of votes is equal to or above this percentage.
    All votes have to be made within VoteTimeSpan or else the voting is cancelled.
    A second vote by the same person will cancel his previous vote.
  • VoteTimeSpan
    The time span in which all players should vote. The time span starts directly after a player initiates a vote (first kick bots vote). All votes will be cancelled if this time expires.
    See also bKickAllBotsVoteEnabled and KickBotsVotePercentage.
  • MinimumNrOfRequiredPlayersForVoting
    The minimum required number of players before voting is possible.
  • PrivilegedPlayerVoteWeight
    The voting weight for privileged players.
    Value 0 means privileged player voting is disabled. Value 1 is used for none privileged players.
    This feature can only be used if the ReserverSlots mutator is active on the server too.
  • BotsKillCountRatio
    The impact on a players XP, class progression and weapon progression if he kills a bot.
    • 0: The score of killing an AI will never be added to the killers stats.
    • 1: The score of killing an AI will always be added to the killers stats (same behavior as in current RO2).
    • 2: 50% of the killed AI's will be added to the killers stats. (1st kill will be added, 2nd will be ignored, 3rd will be added, 4th will be ignored, etc...).
    • 3: 33% of the killed AI's will be added to the killers stats. (1st kill will be added, 2nd and 3rd will be ignored, 4th will be added, 5th and 6th will be ignored, etc...).
    • etc...
  • NrOfBotsForHumans
    The number of bots that should leave/return when a human player enters/leaves.
  • NrOfBotsForHumansRatio
    Ratio that will give the NrOfBotsForHumans a more dynamic behavior. If unequals 0.0, then the next formula is used to calculate the number of bots that will leave for a joining player:
    Nr Of Bots To Kick = NrOfBotsForHumans + (NrOfBotsForHumansRatio x Player Count)
    (above non-linear feature is partly based on a suggestion made by -=THOR=-)
  • bAllowBotsToStartMap
    Allows bots to start a map.
    If true, then the map will start as soon as it is loaded and the server won't wait for a human player.
    See also TimeTillBotsStartServer and MinBotsWhenStartingServer.
  • TimeTillBotsStartServer
    The time that the bots will wait after map load before they start the server.
    See also bAllowBotsToStartMap and MinBotsWhenStartingServer.
  • MinBotsWhenStartingServer
    Minimum number of bots when they need to start the server.
    See also bAllowBotsToStartMap and TimeTillBotsStartServer.
  • bDetonateInsteadOfKick
    If true, then the bots will detonate instead of getting kicked (very messy).
  • bNotificationMessageEnabled
    If true, then a notification message will be send to a single player each time after he spawns.
    The message will let him know that this mutator is active and how to start a kick bots vote.
    The notification message will only be send if voting is enabled (see bKickAllBotsVoteEnabled).
    See also MutatorNotificationMessageDelay.
  • MutatorNotificationMessageDelay
    If bBroadcastMutatorNotification is true, then this property can be used to set the delay between spawning and displaying the notification message.
  • bEnableLogging
    Config variable for enabling/disabling debug info logging.

Mutator commands:
  • Mutate BD Help
    Displays this mutator command list.
  • Mutate BD KickBots
    Starts a kick bots vote or adds a vote. If the player already did vote, then his vote will be reversed.

Mutator commands (only available for administrators):
  • Mutate BD AdminKickBots
    Kicks all the bots.
  • Mutate BD AdminSpawnBots [<number>]
    Spawns a number of bots. If number is ommited, then minplayers will be used.

Mutator admins:

Only an in-game admin or an web-admin can use the above admin commands. However it is possible to add mutator admins. Every added mutator admin will be able to use any of the above (and below) admin commands, but he will not have any admin rights on server level. More than one person can be added as a mutator admin. These are the commands to manage your mutator admins. If you are not yet a mutator admin, then you will need to sign-in as an in-game admin or web-admin to execute below commands.


  1. Mutate BD AddAdmin <name>
    With this command you can add a mutator admin. For name you enter the player name of the person that you want to add. The player must currently be on your server or else the add will fail.
    Example: Mutate BD AddAdmin Ducky
  2. Mutate BD DeleteAdmin <name>
    This command will delete a mutator admin. For name you enter the person that you want to delete from your mutator admin list. The player does not have to be on your server.
    Examply: Mutate DB DeleteAdmin Ducky
  3. Mutate BD ShowAdmins
    This command will display a list of all mutator admins.

Where to download the mutator (for server admins):


The mutator can be downloaded from this location:
https://dl.dropbox.com/u/54368035/Mutators/BotDetonator/BotDetonator-Rev81.zip


How to install the mutator (for server admins):


  1. Download the mutator from above location
  2. Extract all files from the archive
  3. Place the next files in the ROGame\Config folder on your server:
    • Config\defaultbotdetonator.ini
    • Config\ROBotDetonator.ini
  4. Place the next file in the ROGame\Localization\INT folder on your server:
    • Localization\INT\BotDetonator.int
  5. Place the next files in the ROGame\BrewedPCServer folder on your server:
    • BrewedPCServer\BotDetonator.u
    • BrewedPCServer\MutatorEx.u
    • BrewedPCServer\MutatorSettings.u
    • BrewedPCServer\IReservedSlots.u
  6. Restart your server(you need to do this or else the server will not find the mutator)
Note:
It can be that the MutatorEx.u or MutatatorSettings.u or IReservedSlots.u files do already exist on your server. In that case you need to overwrite them. The BotDetonator mutator will cause a server crash if both those files do not exist on your server.
They only need to be present. However there is no need to start them if you do not wish to use them.

Important:
In case this mutator is used in combination with the ReservedSlots mutator, then make sure that you are using the latest version of ReservedSlots.
ReservedSlots can be downloaded from here.


How to activate the mutator (for server admin):


  1. Open your servers web-admin tool
  2. Go to the Change Map page
  3. Select your game type and map
  4. At the Additional URL variables field you add ?mutator=BotDetonator.BotDetonator
  5. Now load the map
You can also add ?mutator=BotDetonator.BotDetonator to your command line.

If you have more than one mutator running on your server, then you can load them with:
?mutator=BotDetonator.BotDetonator,Mutator1.Mutator1
It doesn't matter which mutator is on the first position.


How to configure the settings (for server admins):

  1. Go to the ROGame\Config folder on your server
  2. Open the ROBotDetonator.ini file with a text editor. Details of the properties can be found in the top of this post (see Configuration).
  3. Make your changes and save the file
  4. Restart your RO2 server
If you did it correctly, then BotDetonator.BotDetonator should be visible on the Current Game page of the web-admin tool.

Source code:
The source code of this mutator can be downloaded from:
svn://212.83.88.75/BotDetonator/trunk/
An SVN client is required to download the sources (for example TortoiseSVN).
The files are password protected. If you want access to the sources, then please PM me and you will receive a reply with sign-in details.
 
Last edited:
Great Job, added to our server. Thank you. :)

Your welcome! And thank you for supporting it by adding it to your server :)

Do you have any plans to have a Vote Add option for Bots?

Well I assume that you aren't asking for an option that bots can vote too, but that you are asking that players can vote to add bots.
I did think about it, but removed it to prevent that one group votes bots away and the other group votes them back. This might happen if the voting success percentage is set to less than 50% or if there are "not yet grown up grown ups on the server".

Or a Bot Enable Vote?

Uhmm... can you explain what you mean by this?

For players?

Here I'm also losing track. Can you please explain?
Thanks in advance!
 
Last edited:
Upvote 0
I tried out your server earlier today. I didn't vote though, because that would have directly kicked all the bots. I was the only human player at that time.


Awesome, thanks for checking up on it ducky! Let us know if you need any help with anything with testing or such.

For some reason, though I have enabled messages, I don't see the notifications. I am wondering if it's just me.

Not a big deal though since I just put the notification in our adverts instead.
 
Upvote 0
Awesome, thanks for checking up on it ducky! Let us know if you need any help with anything with testing or such.

For some reason, though I have enabled messages, I don't see the notifications. I am wondering if it's just me.

Not a big deal though since I just put the notification in our adverts instead.

Well I noticed that I did get 2 notifications. One from the mutator and 1 from server. That was the one that you added to your servers advertisement list.

The mutator only send the message to a player that just has spawned. It's implemented like this to prevent too many messages on the server.
 
Upvote 0
I don't even know what a Catinthe hat is. How about an Easter egg hat?Easter is coming.

Oh Ducky, its a classic !

thecatinthehat-400x400.png


YouTube- The Cat in the Hat. part 1 - YouTube
 
Upvote 0
Ducky, this is, for me at least, the best mutator out there.

It's on all of my clan's servers that have bots and I get so very much joy when I can kick all the bots out without changing the map.

Every player on the server usually goes "Sweet!" when we kick the bots.

We did have some bot farmers on the other day who weren't real happy, but oh well.

Again, thank you for this awesome mutator.
 
Upvote 0
Ducky, this is, for me at least, the best mutator out there.

It's on all of my clan's servers that have bots and I get so very much joy when I can kick all the bots out without changing the map.

Every player on the server usually goes "Sweet!" when we kick the bots.

Well that is the main goal of this mutator. To make the players and admins happy. :)

We did have some bot farmers on the other day who weren't real happy, but oh well.

Let them cry :p

Again, thank you for this awesome mutator.

Your welcome. And thank you for supporting this mutator. One question, did you set it to just let the bots drop dead or do you let them detonate? :D
 
Upvote 0
A new white-listed BotDetonator release is available. No new features have been added to this new release. It's only a bug fix that did blow up tanks (human driver was seen as a AI :D). This has been solved now.

The new release can be downloaded by using the download link in the OP of this thread.

Please note that the old "blow up the tank" version has been removed from the white-list!
 
Upvote 0
Would it be in your power to make a Co-op mutator that controls human player team selection on joining the server?
So for instance:
Each time a new map loads, the mutator randomly chooses which team will be "human" and which "bot". Then it automatically asigns any humans that join to the "Human" team.
Both teams would still have bots and the "bot" team would have a couple more.(like 3 humans and 3 bots vs. 8 bots) The ideal gamemode would be countdown with hero bots, realism and no death notification.

Then we would have co-op. :)
 
Upvote 0
Would it be in your power to make a Co-op mutator that controls human player team selection on joining the server?
So for instance:
Each time a new map loads, the mutator randomly chooses which team will be "human" and which "bot". Then it automatically asigns any humans that join to the "Human" team.
Both teams would still have bots and the "bot" team would have a couple more.(like 3 humans and 3 bots vs. 8 bots) The ideal gamemode would be countdown with hero bots, realism and no death notification.

Then we would have co-op. :)

Yes it's possible and wouldn't be too hard to make, but this will only increase the bot farming.
 
Upvote 0