X8  RANDOM  BOTS 


Description

As its title suggests, the purpose of this Unreal Tournament mutator is randomizing the bots available in the game, allowing the use of many more custom models and skins.
Some time ago I made an external program with the same purpose, Bot Handler, but it was clunky and confusing to use and required manually adding the custom models/skins entries, while this mutator is fairly simple and straightforward to use.

Rather than scanning the available models and skins at the start of every match, their information is stored in the config file. This requires you to rescan all the models/skins every time another one is added, but it is necessary to remove loading times.
This way you can also add extra names and information to be picked when generating bots.


There are two ways of using the mutator: Random mode and Extended List mode.
In Random mode (enabled by default) new bots will be generated at the start of every match, with different stats and properties each time.
In Extended List mode, instead, a fixed list of bots is generated, and every match 32 bots are randomly picked from it. It's pretty much the same as using the normal bot info with Random Order selected, however there are up to 2048 bot slots available.

It works fine in online matches, but I have no way of checking if the loaded models are inside the serverpackages so if you're running a server make sure there aren't extraneous models/skins in the .ini file.

Enjoy




Installation

Unzip X8RandomBotsV090.zip, then copy the files into your Unreal Tournament\System folder.

Then select X8 Random Bots in the mutator menu to activate it for the next match.




How To Use

The mutator is already configured to work without any further step, if it's selected the bots will be randomized using the default UT models/skins (including all the bonus pack ones).

If you have custom models/skins installed it's easy to enable them in the mod: just type "Mutate X8RB List" in the console during a match (the game might freeze for some seconds if you have a lot of skins installed) and their data will be saved in the configuration file. They will be ready to use from the next match (bots are generated only at the start of every match).


If you want to use the Extended List mode, after enabling it (either in the config file or with the "Mutate X8RB Mode Extended" console command) a small list will be automatically generated (128 bots). If you want a larger one just use the "Mutate X8RB Generate <Number>" command, replacing <Number> with the desired bot number.
Bots with the same name will be deleted, so it's possible that less bots than the number specified are generated.


The mutator will automatically guess some names to assign to the bots with custom models/skins, but you can also add/change them: just search the entry of the skin whose names you want to edit in the Src[] array in the X8RandomBots.ini file, and edit the NAME(name1, name2...) setting.
Make sure to keep the parenthesis at the start and end, otherwise the skin might not be recognized.
If you want large numbers of bots in Extended List mode you should add lots of new bot names.

C/Java-Style comments are supported, so if you want to disable a skin without deleting its entry you can add a "//" at the start of its line. Any text included between a pair of "/*" and "*/" will get discarded too.

Names can contain some wildcards that allow for randomly generated names, if you've used my Bot Handler program in the past they're pretty much the same with a couple of additions, if you're interested in this feature check out the Name Wildcards section.
The characters (, ), % and spaces cannot be used directly in names, but there are wildcards that will add them instead (like %_ for space).


If you want to use this mod on a server, the console commands are disabled in any online mode, so you will have to generate the .ini file during an offline match.
If you've got custom models/skins installed, make sure to disable (add a "//" at the start of their line in the Src[] array) the ones who aren't in your serverpackages list or you might see some invisible bots.




Command List

This is a list of all the commands available in the Mutator, use them by writing "mutate X8RB <command>" in the game console (for example "mutate X8RB List", "mutate X8RB Mode Random", etc.). They are not case sensitive.
Note that they will work only in offline games (I chose not to make them available online since they can freeze the server for some seconds if many models/skins are installed).

Commands

  • List - Scans all the available models and skins and saves them in the configuration file (Src array). If a skin was already available in the .ini file, it will be preserved along with any extra names/information you manually added.
  • List Reset - Does the same as the List command, but deletes the list before doing the scan (removing all the names/other information that you added manually). MAKE A BACKUP OF YOUR X8RandomBots.ini FILE BEFORE DOING THIS.
  • Generate <Number> - Generates an Extended List with the specified number of bots, if <Number> is omitted 128 bots will be generated.
  • Mode <Mode> - Selects the mutator mode, <Mode> can be either Random or Extended



Configuration File

This is a list of some settings that can be modified in the X8RandomBots.ini File.
Since the bots are generated before the match starts, you need to start a new match to see changes effect the mutator.

Settings

  • bChangeBotTeams - Bool, whether to generate a random team value or keep the value from the default Bot Info.
  • bClampStats - Bool, if True the bot stats (Skill, Accuracy, Alertness, Camping and StrafingAbility) will be clamped to the default max/min values (in the Bot Config menu).
  • bExtendedListMode - Bool, if True bots will be chosen from the Extended List instead of being generated randomly.
  • bClassLoadingCheck - Bool, enables a safety check when generating bots (makes sure the bot class is valid), but might add some loading time before the match.
  • bDisableNotFoundSkins - Bool, if True the skins already present in the list but not found anymore will get commented out during the Mutate X8RB List scan.

Bot Stats

  • SkillFreq - Float, how many bots (in percentage from 0.0 (0%) to 1.0 (100%)) will get a random Skill value.
  • SkillMin - Float, lowest Skill value that can be assigned.
  • SkillMax - Float, highest Skill value that can be assigned.
  • AccuracyFreq - Float, how many bots will get a random Accuracy value.
  • AccuracyMin - Float, lowest Accuracy value that can be assigned.
  • AccuracyMax - Float, highest Accuracy value that can be assigned.
  • AlertnessFreq - Float, how many bots will get a random Alertness value.
  • AlertnessMin - Float, lowest Alertness value that can be assigned.
  • AlertnessMax - Float, highest Alertness value that can be assigned.
  • CampingFreq - Float, how many bots will get a random Camping value.
  • CampingMin - Float, lowest Camping value that can be assigned.
  • CampingMax - Float, highest Camping value that can be assigned.
  • StrafingFreq - Float, how many bots will get a random Strafing Ability value.
  • StrafingMin - Float, lowest Strafing Ability value that can be assigned.
  • StrafingMax - Float, highest Strafing Ability value that can be assigned.
  • JumpyFreq - Float, how many bots will be Jumpy.
  • StyleFreq - Float, how many bots will have a Combat Style different than None.
  • WeaponFreq - Float, how many bots will have a Favorite Weapon.
  • Weapons - String, possible Favorite Weapons for the bots (each separated by a comma)
  • TeamNoneFreq - Float, how many bots will get neutral team color



Name Wildcards

These wildcards can be used inside names to have randomly generated names, or to add special characters.
In the list an uppercase N (or N1, N2, etc.) means any number, while an uppercase T (or T1, T2 etc.) means any text. If N is before the parenthesis only one digit should be used, even if it rapresents a percentage (3 becomes 30%, 7 becomes 70% etc.)

Special Characters

  • %_ - Adds a space ' ' character. Ex. War%_Cow -> War Cow
  • %% - Adds a percent '%' character.

Random Numbers

  • %rN - Adds a random number between 0 and 10^N (excluded). Ex. %r2 -> any number from 0 to 99
  • %bN - Adds a random binary number with N characters. Ex. %b5 -> 10110
  • %i - Adds the index number of the bot in the Bot List (from 1 to 32)
  • %n(N1, N2) - Adds a number between N1 and N2 (excluded). Ex. %n(33, 36) -> either 33, 34 or 35

Random Characters

  • %av - Adds a random vowel.
  • %aV - Adds a random uppercase vowel.
  • %ac - Adds a random consonant
  • %aC - Adds a random uppercase consonant.
  • %al - Adds a random letter.
  • %aL - Adds a random uppercase letter.
  • %an - Adds a random number.
  • %aa - Adds a random letter, 50% chance of uppercase.
  • %ar - Adds a random letter or number, 50% chance of uppercase.

Switches

  • %c(T) - Chooses one of the characters inside parenthesis. Ex. %c(XAN) -> either X, A or N
  • %dN(T) - Has N chance of deleting the text T. Ex. Cry%d3(s)s -> 30% chance of Crys over Cryss
  • %yN(T1, T2) - Has N chance of adding T1 instead of T2. Ex. %y6(Z,Ry) -> 60% chance of Zanna over Ryanna
  • %w(T1, T2, T3...) - Chooses one of the tokens inside parenthesis (separated by commas). Ex. %w(Ta,Sa,La)ra -> either Tara, Sara or Lara
  • %mN(T) - Has N chance of duplicating the text T. Ex. %m3(is) -> 30% chance of isis over is
  • %hN(T) - Duplicates T for N times. Ex. V%h3(on) -> Vononon
  • %p(T) - Processes the text in parenthesis before anything else.

Transforms

  • %u(T) - Makes the text T uppercase. Ex. %u(Malcom) -> MALCOM
  • %l(T) - Makes the text T lowercase. Ex. %l(Aryss) -> aryss
  • %q(T) - Capitalises the first letter of text T. Ex. %q(loque) -> Loque
  • %v(N) - Replaces N (a number up to 3999) with its roman numerals counterpart. Ex. %v(13) -> XIII



Details

Author:
Website:

Filename:
Release Date:
Last Update:
Version:

Game:
Mod Name:
Gametype:

DeathoX 8 (a.k.a. XYZ 8000)
www.DeathoX8.com

X8RandomBots
21 / 12 / 2013
21 / 12 / 2013
0.90

Unreal Tournament
X8 Random Bots
Any




Stats

Editor(s) used:
Base:
Build Time:
Known Bugs:

Custom Textures:
Custom Music:
Custom Sounds:

.uc Files:
Lines of Code:

Notepad++, GEdit, UnrealEd 2.0
X8 Random Bots
A week
None

No
No
No

5
2387




This mod is copyright 2013, by DeathoX 8.
You may NOT decompile this mod or use it as a base for any other additional mods without explicit permission from the Original Author.
You are NOT allowed to commercially exploit this mod, i.e. put it on a CD or any other electronic medium that is sold for money without my explicit permission!
You MAY distribute this mod through any electronic network (internet (web/ftp), FIDO, local BBS etc.), provided you include this file and leave the archive intact.
UnrealŪ Tournament (c)1999 Epic Megagames, Inc. All Rights Reserved. Distributed by GT Interactive Software, Inc. under license. Unreal Tournament and the Unreal Tournament logo are registered trademarks of Epic Megagames, Inc. All other trademarks and trade names are properties of their respective owners.