## Bots in UTeamFix

First off, you should be aware that UTeamFix uses its own Bots since version 9E, however the number of changes/improvements is currently limited. Indeed some issues will remain to be improved at a later time. It is also possible to use non-UTeamFix bots in game, but it is not recommended. The standard bots will be replaced automatically with their UTeamFix counterparts.

You can configure up to 32 bots yourself (0 to 31). Since this would involve a lot of typing, I recommend you set up your bots locally with your local bot-menu, then open your Unreal.ini and copy paste your bot-config to your server ini-file in the section `[UTeamFix.CFGBots]`, especially if you want your bots to wear custom skins...

UTeamFix bots behave differently from normal bots in the following manner:

- Invulnerable players are completely ignored (no more ammo waste on them).
- Bots which have spawn protection will ignore other players.
- Bots will not attack people who are typing, provided they started typing BEFORE the bot saw them.
- Bots will not attack people who are feigning death, provided they started doing it BEFORE the bot saw them.
- Bots may enter/leave by themselves in the middle of the game.
- All bots will leave if all human players have left the server.
- Bots will sometimes retreat now instead of blindly attacking.
- Bots may decide to switch team-places with a human (human goes from red to blue, a bot may go from blue to red).
- Bots will decide to run away or NOT always run after someone
- UTF-10: Bots talk SHIT (in at least 2 languages but mostly English of course)
- UTF-10: Bots may decide to throw a gun at teammates sometimes
- UTF-10: Bots (and monsters) may react to incoming missiles much quicker
- UTF-10: High-Skill bots recheck their target to avoid teamkilling

Bot Settings (systemwide) bMultiplayerBots has no more effect, everything is controlled through here. You can configure 32 bots yourself.
Setting | Effect | Default
--- | --- | ---
Alertness | Internally used, the setting is completely useless! | -
bAdjustSkill | If bots should get better/worse during game depending on their performance. | False
BadMapsUser | UTF-10 has a feature to prevent ANY bots from entering blacklisted maps which have bad or no bot support or even worse, where the map causes Unreal to crash when bots enter. The internal list only contains ONE entry at the moment (DMMontron), so if an admin comes across any other maps that are crashy or whacky with bots, he/she can enter the map into the list to fix any bot-crashing issues. Up 64 maps may be entered into the list. | -blank-
BaseSkill | Float value from 0 to 3. Basic skill level of bots. | 2.0
bBotsBalanceTeams | If true, bots will ignore their configured teams and join whatever team they are needed in mostly during a teamgame. NOTE: Bots will always balance teams if the Team Game has balanced teams enabled globally. | True
bFastMissileRespond | A specialized feature derived from LIE (local internet effects). If enabled, bots (and monsters too hehe) will react quicker to long range attacks that involve firing projectiles - similar to a "bAlwaysWarn". This feature is automatically enabled in MonsterMash, it requires a bit of extra CPU power but will stop Bots ignore being fired at pretty sure (unless retreating)... Not really required in BotMatch, but very useful anywhere with non-bot Scripted Pawns involved. | False
BotAccuracy | The higher, the lower is the aimerror... suggested float value between 0 and 1. | 0
BotClasses | Here, the classes used for the bots are determine, you can use default Unreal bot classes, UTeamFix bot classes or custom ones. The Unreal default ones will be internally replaced with their UTeamFix counterparts, custom ones may cause errors in the logs because there are a number of things they do not have... Unreal bot classes: Unreali.MaleOneBot Unreali.MaleTwoBot Unreali.MaleThreeBot Unreali.FemaleOneBot Unreali.FemaleTwoBot Unreali.SkaarjPlayerBot UTeamFix bot classes (counterparts): UTeamFix.UTeamBotsMaleOne UTeamFix.UTeamBotsMaleTwo UTeamFix.UTeamBotsMaleThree UTeamFix.UTeamBotsFemaleOne UTeamFix.UTeamBotsFemaleTwo UTeamFix.UTeamBotsSkaarjPlayer | 16 bots pre- con- figured
BotNames | That should be self-explaining... | Dante, Ash...
BotSkills | Bot skill modifier for the individual bots. The resulting skill used in game will be the BaseSkill+BotSkill. | 0
BotSkins | Which skins they use. Leave blank to use default ones, trying to use skins which are not installed (or making typos) will result in the default skins also. And naturally, skins are ignored in TeamGames, because there you need the team colors. Skin listings... Male One: Male1Skins.Carter Male1Skins.Kurgan Male1Skins.Male1Gib Male1Skins.T_Red Male1Skins.T_Blue Male1Skins.T_Green Male1Skins.T_Yellow UTeamSkins.Male1T_Red (UTeam Alt.Human Skin) UTeamSkins.Male1T_Blue (UTeam Alt.Human Skin) UTeamSkins.Male1T_Green (UTeam Alt.Human Skin) UTeamSkins.Male1T_Gold (UTeam Alt.Human Skin) UnrealI.JMale1 (Hidden Skin - identical to Kurgan) UnrealShare.JMale1 (Hidden Skin - identical to Kurgan) UnrealI.Kurgan (Hidden Skin - identical to Kurgan) UnrealI.JMale2 (Hidden Skin) UnrealI.JMale3 (Hidden Skin) UnrealI.JMale4 (Hidden Skin) UnrealI.JMale5 (Hidden Skin) UnrealI.JMale6 (Hidden Skin) UnrealI.JMale7 (Hidden Skin) UnrealI.JMale8 (Hidden Skin) Male Two: Male2Skins.Ash Male2Skins.Ivan Male2Skins.Kristoph Male2Skins.Male2Gib Male2Skins.T_Red Male2Skins.T_Blue Male2Skins.T_Green Male2Skins.T_Yellow UTeamSkins.Male2T_Red (UTeam Alt.Human Skin) UTeamSkins.Male2T_Blue (UTeam Alt.Human Skin) UTeamSkins.Male2T_Green (UTeam Alt.Human Skin) UTeamSkins.Male2T_Gold (UTeam Alt.Human Skin) UnrealShare.JMale21 (Hidden Skin - Identical to T_Red) UnrealI.JMale22 (Hidden Skin - Similar but not identical to Iavn) Male Three: Male3Skins.Bane Male3Skins.Dante Male3Skins.Dregor Male3Skins.Krige Male3Skins.Male3Gib Male3Skins.T_Red Male3Skins.T_Blue Male3Skins.T_Green Male3Skins.T_Yellow UTeamSkins.Male3T_Red (UTeam Alt.Human Skin) UTeamSkins.Male3T_Blue (UTeam Alt.Human Skin) UTeamSkins.Male3T_Green (UTeam Alt.Human Skin) UTeamSkins.Male3T_Gold (UTeam Alt.Human Skin) UnrealShare.JMale31 (Hidden Skin - Identical to Dante) Female One: Female1Skins.Drace Female1Skins.FemGib1 Female1Skins.Gina Female1Skins.Nikita Female1Skins.Raquel Female1Skins.Tamika Female1Skins.T_Red Female1Skins.T_Blue Female1Skins.T_Green Female1Skins.T_Yellow UTeamSkins.FeMale1T_Red (UTeam Alt.Human Skin) UTeamSkins.FeMale1T_Blue (UTeam Alt.Human Skin) UTeamSkins.FeMale1T_Green (UTeam Alt.Human Skin) UTeamSkins.FeMale1T_Gold (UTeam Alt.Human Skin) Female Two: Female2Skins.Dimitra Female2Skins.Fem2Gib Female2Skins.Katryn Female2Skins.Sonya Female2Skins.T_Red Female2Skins.T_Blue Female2Skins.T_Green Female2Skins.T_Yellow UTeamSkins.FeMale2T_Red (UTeam Alt.Human Skin) UTeamSkins.FeMale2T_Blue (UTeam Alt.Human Skin) UTeamSkins.FeMale2T_Green (UTeam Alt.Human Skin) UTeamSkins.FeMale2T_Gold (UTeam Alt.Human Skin) UnrealI.Sonya (Hidden Skin - identical to Sonya) UnrealShare.Sonya (Hidden Skin - identical to Sonya) UnrealI.JFemale1 (Hidden Skin - identical to Sonya) UnrealI.F2Female3 (Hidden Skin - identical to Katryn) UnrealI.F2Female2 (Hidden Skin) UnrealI.F2Female4 (Hidden Skin) Skaarj Trooper: SkTrooperSkins.T_Skaarj1 SkTrooperSkins.T_Skaarj2 SkTrooperSkins.T_Skaarj3 SkTrooperTeam.T_Red (UTeam SKTrooper Skin) SkTrooperTeam.T_Blue (UTeam SKTrooper Skin) SkTrooperTeam.T_Green (UTeam SKTrooper Skin) SkTrooperTeam.T_Gold (UTeam SKTrooper Skin) UnrealI.sktrooper1 (Hidden Skin - identical to T_Skaarj1) UnrealI.sktrooper2 (Hidden Skin - identical to T_Skaarj2) UnrealI.sktrooper3 (Hidden Skin - identical to T_Skaarj3) | -
BotTeams | Which team the bot prefers to be in. (0=red, 1=blue, 2=green, 3=gold). This setting will be ignored if balancing is enabled or the specified team does not exist. | 0,1 alt.
bRandomOrder | Whether or not bots should join in the order as appearing in the bot list or randomely. | False
bUseMapIdealPlayerLoad | Use only when minimal bots greater than 0 and/or you configured a normal ideal playerload. This neat tweak adjusts the ideal playerload count based on the map playerload information the map author included into the map. If no such information is given by the author, or this setting is disabled, the normal PlayerLoad setting will be used. The following information can be parsed out of the map information: X-Y players: Ideal = (Y-X)/2 X++ players: Ideal = X*1.5 | false
Camping | Camping rate float 0 to 1, how much bots like to camp (higher, more likely). | 0
CombatStyle | Float -1 to +1: low means tends to stay off and snipe, high means tends to charge and melee. | 0
Difficulty | Represents the game level (single player), 0 to 3 (easy, medium, hard, Unreal). When a bot is added, the difficulty is set accordingly, the effects on BOTS are unknown though. It appears to have some effects everywhere, for example human footsteps are louder with higher difficulty. | 3
FavoriteWeapon | Which weapon the bots use preferably if available. I'm afraid you will have to use UTeamFix classes here (for normal Unreal matches): UTeamFix.UTeamWeapon_DispersionPistol UTeamFix.UTeamWeapon_AutoMag UTeamFix.UTeamWeapon_DualMag UTeamFix.UTeamWeapon_Stinger UTeamFix.UTeamWeapon_ASMD UTeamFix.UTeamWeapon_Eightball UTeamFix.UTeamWeapon_FlakCannon UTeamFix.UTeamWeapon_Razorjack UTeamFix.UTeamWeapon_GESBioRifle UTeamFix.UTeamWeapon_Rifle UTeamFix.UTeamWeapon_Minigun UTeamFix.UTeamWeapon_Zark | -
GeneralTalkyness | A rough base percentage as to how often bots give a verbal comment on anything. The EXACT chance of a single statement is based on this setting, the individual bot talkyness (see later), the total number of bots present in the game and the type of event. For example, a bot will much more likely make a comment on itself suiciding than being killed regularly. Also, if the bot is taking friendly fire it will respond almost always, it will be extensively unfriendly if you hit its head :P Change this setting in small portions only. Small changes to this setting can have great impact, so be careful and do not change it much above +/- 0.5 of the original value. Exception: If you absolutely do NOT want bots to talk at all, set it to a very large negative value, like -100. Bots can be very insulting, they talk tough shit so if you have kids or gentle souls in your server you may want to prevent them from spitting verbal poison, although in this case I simply suggest a low setting (like zero) in which case bots will at least be able to respond to very important matters at times, such as friendly fire in team games. | 0.45
NumIdealPlayerLoad | If bigger than zero, bots will fill up the map during game if there are not enough player to reach this number. Bots will also leave again during game if real players decide to join after a while. | 0
NumMaxBots | Never add more bots than this number. | 32
NumMinBots | At least this number of bots will join any game. If the ideal playerload suggests more bots, then more will enter, but never less than this number. | 0
PersonalTalkyness | Set each individual bot's personal likelyness to talk in game. The real value used in game is the sum of the "GeneralTalkyness" and this value, so a bot that should less than average would have a low negative PERSONAL talkyness, such as "-0.2", a dick-headed trash talker would go well with a positive modifier such as "0.3". | -