==========================================================================================================================================================================
XMP Bots - Beta 4
==========================================================================================================================================================================

Title : XMP Bots - Beta 3.2
Release Date : 4/29/23
File Name : XMPBots-Beta3-2.zip
Author(s) : 
	AlCapowned
	takwu - Original bot conversion with native file replacements, used as a blueprint in many areas
	Free-Monkey Entertainment - Modifications to Epic's bots to support the XMP gametype
	Epic Games/Digital Extremes - Original bot code
E-mail Address : totalalcapownage(at)gmail(dot)com
Web Page : None

================================================== 
1) Description
================================================== 

This mod adds basic bot support to Unreal 2: XMP. Essentially, it is a port of UTXMP's bots with some modifications.
It includes a few custom classes that must be placed in maps in order for the AI to function.
8 pre-pathed maps are included.

================================================== 
2) Features
==================================================

Bots can do the following, to varying degrees of success: 
	-Split up into attack, defense, and freelance squads
	-Hack energy sources, deploy points, and doors
	-Attempt to grab the enemy team's artifact and pick up dropped artifacts
	-Sprint, double jump, and dodge
	-Revive allies and mercy kill enemies
	-Disable allied force walls
	-Send various voice messages to allies 
	-Directly resupply allied bots who are low on ammo/shields/health
	-Resupply human allies with resupply packs
	-Stand still when directly resupplied
	-Be blinded by concussion grenades, with the effect's length being based on bot difficulty
	-Use certain weapons based on usefulness. Examples:
		-Rangers only use the sniper rifle against enemies slower than the gunner's regular movement speed (to prevent player frustration)
		-Techs favor EMP grenades against vehicles and deployables
		-Gunners favor the flamethrower in close quarters

Current map roster:
	-APv2-RGB
	-Garden
	-Lowlands
	-Nakoja
	-Sirocco
	-Sunset Beach
	-AP-Anubis-IIv2
	-Alcazar

================================================== 
3) Changelog
==================================================
Beta 3.2 (4/29/23)
	-Made the bot pawns do a check and remove themselves if they're missing a controller or if their assigned controller doesn't have them as a pawn
	-Made the bot count configurable per map

Beta 3.1 (4/15/23)
	-Quick fix - removed custom game replication info class to preserve compatibility with the BSE MapVote mutator

Beta 3 (4/15/23)
	-Made bots leave hackable objectives after they finish hacking
	-Made bots balance teams when a player switches teams online
	-Made bots' role calls and hacking declarations less spammy
	-Gave the bots a few more voice messages
	-Set all maps to have XMPBots.XB_XMPGame as their default gametype (should prevent issues with map voting and rotation)
	-Added minDesiredPlayers variable, renamed NumBots variable to minDesiredPlayersOffline, and renamed bAutoNumBots variable to bAutoNumBotsOffline
	-Added bot conversions of XMP-AP-Anubis-IIv2 and XMP-Alcazar

Beta 2 (4/2/23)
	-Fixed bots being unable to aim the flamethrower and shocklance correctly
	-Fixed bots' configured voices being overwritten by the default voice from their class
	-Made bots favor the shotgun at close range
	-Made bots balance teams on initial spawn
	-Made the extra bots that spawned (ignoring the deploy points) remove themselves from the game
	-Made bots more talkative, including voice messages for their role, friendly fire, revival requests, apologies, and being near energy sources
	-Made downed bots wait a maximum of 20 seconds before deciding to redeploy
	-Gave bots a chance to play a taunt animation upon killing an enemy

Beta 1 (3/24/23)
	-Fixed techs missing field generators
	-Made techs favor the grenade launcher if attacking a vehicle or deployable
	-Made rangers favor the grenade launcher and smoke grenades while carrying the artifact
	-Made gunners favor the flamethrower at close range
	-Made bots point out live juggernauts
	-Cleaned up log spam and fixed a few warnings and errors

Discord release 3 (3/19/23)
	-Fixed autoturrets not being able to see bots
	-Reduced the likelyhood of a problem in which bots would keep trying to hack things already owned by their team
	-Made bots play hack messages
	-Made bots try to stand still when being directly resupplied by players
	-Made bots able to directly resupply other bots (can't work on players due to original code)
	-Brought back resupply packs and made bots use them on players (made them undesirable to bots otherwise, but may try to make them self-supply in the future)
	-Brought back the sniper rifle with the caveat that the bots only favor using it against targets that are moving slower than the gunner's standard movement speed 
	-Made bots (somewhat) able to hack doors
	-Made bots with human squad leaders pick the same spawn point if their squad leader is waiting to deploy
	-Improved bot deploy point selection

Discord release 2 (3/16/23)
	-Fixed sprinting not working online
	-Fixed reviving not working online
	-Made the base bot skill adjusted based on game difficulty (so now the command would be open XMP-APv2-RGBBots?game=xmpbots.xb_xmpgame?difficulty=#, where # is 0-7)
	-Removed the sniper rifle from the ranger, mines/tripmines from the gunner, and resupply drops from all classes
	-Prevented bots from deploying when no human player is present
	-Made bots able to deactivate force walls
	-Made flashbang grenades disable bot firing (the length of the effect is reduced based on bot skill)
	-Disabled join message for bots

Discord release 1 (3/10/23)
	-Initial Discord release

================================================== 
4) Requirements
================================================== 

This mod requires the latest patched version of Unreal 2: XMP (2226). I recommend XMP Community Edition: https://www.xmpcommunity.com/

================================================== 
5) Installation
================================================== 

1. Extract XMPBots.u and XMPBots.ini to your U2XMP\System folder.
2. Extract the included levels to the U2XMP\Maps folder.
If you want to play an offline game, open U2XMP, press ~ or tab, and type "open <mapname>?difficulty=<#>" without quotes, where <mapname> is a level that has bot support and <#> is a number 0 through 7. Press enter.


If you're hosting a server, make sure to do the following:
3. Open your U2XMP.ini file in your System folder.
4. Under [Engine.GameEngine], add a line that says ServerPackages=XMPBots
Example bat files are included for hosting through UCC.



================================================== 
6. Configuration
================================================== 

XMPBots.ini allows you to configure bot numbers and indiviual bot characteristics.

bUseMapSpecificBotCount - The bot count will be set on a map-by-map basis. Requires that each map be added to the MapEntries list.

bUseGlobalBotCount - Makes every map use the same set number of bots.
globalMinDesiredPlayers (online only) - the total number of players (humans + bots) you want to have - bots will balance teams accordingly
globalMinDesiredPlayersOffline (offline only) - Like minDesiredPlayers, but will only apply if bAutoNumBotsOffline is false

bAutoNumBotsOffline (offline only) - bot count will be set based on a level's recommended player count. bUseGlobalBotCount and bUseMapSpecificBotCount are ignored.

bDebugStuff - for log messages, ignore this if you aren't me

================================================== 
7. Uninstalling
================================================== 

1. Delete XMPBots.u, XMPBots.ini, and the included levels.
2. Remove ServerPackages=XMPBots from your U2XMP.ini

================================================== 
8. Known issues
================================================== 

1. Bots can't use vehicles or manned turrets.
2. Bots can get stuck in certain areas or won't go to places they should.
3. Bots don't always make the best weapon choices.
4. Bots don't always pick up dropped artifacts.
5. Bots sometimes freeze up when attempting to resupply the player.
6. Bots don't pick up health/shield/ammo packs.
7. Some maps have better pathing than others.

================================================== 
9. Level support
================================================== 

If you want to add bot support to a level on your own, add EditPackages=XMPBots under [Editor.EditorEngine] in U2XMP.ini.

Manually place PathNodes or RoadPathNodes to cover most of the pathing (RoadPathNodes are effectively regular PathNodes, but they were included to make copying/pasting from UTXMP/UT2004 maps easier)
For each hackable energy source, deploy point, and door panel, add an XB_GameObjective_Hack (under Actor -> NavigationPoint -> JumpDest -> JumpSpot -> XB_GameObjective).
	-In the placed XB_GameObjective_Hack's default properties', go to the XMP section and set the RealObjective property to the same name as the generator/deploy point/door you want the bots to be able to hack.
For each artifact node, add an XB_GameObjective_Icon (also under XB_GameObjective) in the middle of each node. Set the RealObjective property as you did with the other classes.
 
================================================== 
10. Future plans
================================================== 
1. Vehicle and manned turret support, if possible.
2. Smart deployable placement
3. Bug fixes
4. More vanilla map support and improved pathing on current maps
5. Concussion jumping for gunners
6. Accuracy reduction for enemies on fire
7. More team messages
8. Health/shield/ammo station support
9. Health/shield/ammo pickup support