0 of 0

File information

Last updated

Original upload

Created by

Y wingpilot2

Uploaded by

Ywingpilot2

Virus scan

Safe to use

Tags for this mod

About this mod

AI Enhanced reworks the AI on Kyber private matches, allowing bots to play the objectives intelligently to keep the action going.

Permissions and credits
AI Enhanced is an "open source" mod that improves the behaviors of the AI, also known as Auto-Players, allowing them to play the Objectives in modes like Strike or Galactic Assault ensuring the action never stops on Kyber private matches.


For Kyber players
Assuming the host chooses to run the mod, this means servers should overall be more active. With "Auto-Players" moving around with the intelligence of real players, ensuring the action is always happening and servers are never empty.

For Kyber hosts
Assuming all the mods you host with are compatible with AI Enhanced(ensure you are not using any game mode or map editing mods outside of mods that affect Supremacy or Instant Online Improvements) hosting with AI Enhanced should be very easy, all you need to do is add whatever amount of bots you want with Kyber's "DICE-Bot" sliders, and AI Enhanced will handle the rest. Though as a host, there are some things you should keep in mind about the functionality of the mod to ensure the best possible experience for everyone involved:

  • AI Enhanced is very CPU and network intensive, so do not host with the mod if you do not have a capable CPU or internet connection. Having a lesser CPU or Internet Connection can result in a very poor experience for all other players in the match
  • make sure to have as few programs as possible running on your computer while hosting with AI Enhanced, in order to ensure the game and AI Enhanced have the resources they need. Programs such as Frosty Mod Manager are not needed to be running while the game is running, and tend to be very intensive while idling, so you can afford to close those.
  • On certain Galactic Assault maps, the bots spawning will be intentionally delayed, this is for AI Pathing reasons, they should spawn in roughly 60 seconds after you set the count.
  • Not all maps have the best pathfinding, sadly we are incapable of generating new pathfinding, so some maps have issues with autoplayers poorly moving around. The primary maps with these issues are Starkiller base and Endor, since their counterparts for other modes are very different to that of their Supremacy and Coop counterparts. For Endor, I would suggest not spawning bots at all for the first phase, Starkiller I do not have any workarounds for though, as pretty much the entire map is broken sadly.
  • Bots will not leave the game the moment you decrease the slider, instead if they are spawned in they first have to die in order to be removed. 

AI Behaviors
AI Enhanced makes many changes to AI Behaviors, mostly relating to combat, in order to ensure the best possible experience. This section will dive into the specifics of how AI under AI Enhanced will function, and the specifics of how or where they will.

Objectives
AI will now attempt to support players in playing the objective, whether that be directly contributing or supporting real players in playing it. In Galactic Assault, the autoplayers will interact with hack objectives, plant and disarm bombs and defend or capture areas, but they will not pick up the Ion Disruptors or rocket launchers used on maps like Naboo or Endor, nor attack the MTT or AT AT, instead opting to defend the objectives around those areas. AI will also not get inside vehicles, meaning objectives like AT TE's will never have AI piloting them. And in Strike, AI are fully capable of playing, with the only issue being they do not pick up the flag when it is dropped(instead only ever picking up the flag from its original spawn position)

Combat
AI are now much smarter in combat, with faster reaction times and improved behaviors. To be more specific, AI will now strafe properly, as well as dodging and rolling. The AI are also no longer extremely accurate with all forms of weaponry, as well as the Droideka's AI no longer attempting to roll mid combat(they will now exclusively roll when outside of combat, and when they sight an enemy within a 20 meter radius will stop rolling and won't roll until target is either eliminated or has retreated).

Spawning
How and what the AI spawn as has been changed. They now spawn in as reinforcements, as well as join player squads and form their own squads, and will squad spawn on each other and you. They will also no longer randomly respawn and will have a delay on how long it takes for them to respawn to match that of players or to prevent them from spawning in area's with bad pathfinding.

Heroes and Villains
While the AI will not spawn in as heroes in most modes, improvements have been made to how they behave in Heroes Versus Villains, and how they play as saber heroes. The AI are now smarter with how they time blocking and attacking, and use their force abilities at better ranges to maximize their effectiveness. They will also commonly strafe in order to make it harder for blaster heroes to hit them.


For mod makers
AI Enhanced requires a variety of changes depending on the kind of mod you are developing, and its open source nature should hopefully not only allow for you to build upon what is already here but also improve or add onto what already exists in the mod. Though, since compatibility with AI Enhanced is a complex subject due to the very vast amount of changes AI Enhanced makes this section has been split up for all of the different kinds of modders.


Character modding and AI Enhanced
If you are someone who makes PM/IA Reinforcement mods, you will need to update all of your existing Reinforcements with the following changes, if you are planning on making reinforcements in the future you can just use the Character Template provided. For existing characters, you will need to go into your affected team files(Type WSTeamData) and add the AP Kits from coop so that the team files look like this:
Assuming you did everything correctly, congrats! The AutoPlayers should be spawning in as your reinforcement without issue!


Map modding and AI Enhanced
If you plan on making mods that modify maps and want them to be compatible with AI Enhanced, things could be more complex. If you're map only affects Supremacy, Coop, Strike(unless it's Kamino), Blast and HVV, then you should have no issues(assuming the gamemode spatialprefab files aren't adjusted in anyway), but for Galactic Assault you may be required to either Redo what you have done in the AI Enhanced project file. This is as a result of AI Enhanced needing to edit gamemode logic to function, and for Galactic Assault the only way to do so is the Subworlds themselves.

Gamemode modding and AI Enhanced
If your mod requires that the HVV, Strike or Blast spatial prefab files be modified then you will need to redo your changes inside of the AI Enhanced project file. This is because AI Enhanced needs to edit those files in order to trigger its own logic. If you overwrite said files without the AI Enhanced functionality AI Enhanced will cease to function at best, and cause crashes at worst. Something to note though, if you remake your changes in the AI Enhanced project file, any other gamemode adjusting mod will be incompatible still. So for example, if Mod A edits blast, and Mod B edits HVV, and you manually merge Mod A's edits into AI Enhanced, Mod B will as a result of the process conflict, even though Mod A only affects blast. This is because Gamemode mods are required for bundling reasons to include either nothing or everything from AI Enhanced to function, this is a side effect of how the mod tools and game itself functions and I cannot do much to fix it without completely redoing how the project fundamentally works.

Editing AI Behaviors
If you would like to change how the AI act, what the AI spawn in as or how they engage in combat, you can very easily do so with how AI Enhanced is setup. To do this, you will first have to figure out which of the 2 types of autoplayers are in AI Enhanced, Stunt or Hero. Stunt is used in every mode but HVV, they are meant to support players and don't spawn in as heroes. Hero autoplayers are used in HVV, and they are able to spawn in as Heroes and can act as more suitable replacements for real players. You can find the settings for the Stunt autoplayers in the project file at A0_YW/Shared/Settings/StuntAutoplayerSettingsContainer, The same is for the Hero autoplayer settings, only under the name AutoplayerSettingsContainer instead.
How the Stunt autoplayer settings look in frosty editor

This file is divided under 3 sections, CombatSettings, Movement, and Spawning. CombatSettings control how the autoplayers act during combat, so how they aim or the distance they engage at. Movement covers how the Autoplayers move, so how much they strafe or roll. Spawning controls what they spawn on or how they spawn in. If you're wondering how the specific settings work, here is some documentation on the specifics of what each setting does.

CombatSettings
Aiming -> AimNoiseScale - This value is an float(number value with decimals) that controls how accurate the autoplayers are in general, higher values being less accurate, lower values being more.
Aiming -> BlasterAimNoiseScale - This value is an float(number value with decimals) that controls how accurate the autoplayers are in general, higher values being less accurate, lower values being more.
Aiming -> LauncherAimNoiseScale - This value is an float(number value with decimals) that controls how accurate the autoplayers are with rocket launchers, higher values being less accurate, lower values being more.
Aiming -> LmgAimNoiseScale - This value is an float(number value with decimals) that controls how accurate the autoplayers are with heavy weapons, higher values being less accurate, lower values being more.
Aiming -> ShotgunAimNoiseScale - This value is an float(number value with decimals) that controls how accurate the autoplayers are with shotguns, higher values being less accurate, lower values being more.
Aiming -> SniperRifleAimNoiseScale - This value is an float(number value with decimals) that controls how accurate the autoplayers are with sniper rifles, higher values being less accurate, lower values being more.
Aiming -> TargetTrackerFieldOfViewDegrees - the FOV of the autoplayers, how widely they can see. Higher values mean the autoplayers have a larger cone of vision, smaller means it will be smaller
Engaging -> CombatMelee -> CombatUseMelee - whether or not to use melee when in combat, 1 = true, 0 = false
Engaging -> CombatMelee -> MeleeDistanceM - The distance in meters when the autoplayers will start punching people
Engaging -> CombatMelee -> MeleeIntervalS - The interval in which autoplayers melee in seconds
Engaging -> CombatMelee -> LofPredictionTime - The time it takes an autoplayer to predict another characters move
Engaging -> CombatMelee -> LofReactionTime - The time it takes an autoplayer to react to another character
Engaging -> CombatMelee -> SwordFighting -> PauseSwordAttackDurationTimeMaxS - The maximum amount of time a lightsaber character can pause to restore stamina while attacking in seconds
Engaging -> SwordFighting -> PauseSwordAttackDurationTimeMinS - The minimum amount of time a lightsaber character can pause to restore stamina while attacking in seconds
Engaging -> SwordFighting -> SwordAttackDistanceMetersMax - The maximum distance an autoplayer can be from an opponent when attacking in meters
Engaging -> SwordFighting -> SwordAttackDistanceMetersMin - The minimum distance an autoplayer can be from an opponent when attacking in meters
Engaging -> SwordFighting -> SwordAttackDurationTimeMaxS - The maximum amount of time an autoplayer can spend attacking an opponent before stopping to either block with their saber or to block in seconds
Engaging -> SwordFighting -> SwordAttackDurationMinS - The minimum amount of time an autoplayer can spend attacking an opponent before stopping to either block with their saber or to block in seconds
Engaging -> SwordFighting -> SwordGuardDurationTimeMaxS - The maximum amount of time an autoplayer can spend blocking with their lightsaber before returning to either pausing or attacking.
Engaging -> SwordFighting -> SwordGuardDurationTimeMinS - The minimum amount of time an autoplayer can spend blocking with their lightsaber before returning to either pausing or attacking.
Engaging -> SwordFighting -> UseSwordAttackingAbilitiesFromMeters - The distance autoplayers with a lightsaber use their abilities from
Engaging -> MaxTargetEngagingDistanceScaleStunt - The maximum distance an autoplayer can start engaging with an enemy. 1 is the maximum value, and is somewhere around a few hundred meters.

Movement
CombatMovement -> EvasiveManeuversDodgeRollProbability - Chances that an autoplayer will roll in combat. 0-1 scale.
CombatMovement -> EvasiveManeuversInvertStrafeDurationMin - The minimum amount of time spent strafing in one direction.
CombatMovement -> EvasiveManeuversInvertStrafeDurationMax - The maximum amount of time spent strafing in one direction.
CombatMovement -> EvasiveManeuversJumpProbability -> The chances that an autoplayer will jump in combat. 0-1 scale.
CombatMovement -> HeroStrafeProbabilityPerFrame - The chances that an autoplayer will try to strafe per frame.
MovementChecks -> AllowEvasiveManouversOOB - Allow the autoplayers to use EvasiveManeuvers(otherwise classified as CombatMovement, detailed above) when out of bounds, unsure on if this actually works.
MovementChecks -> AllowTeleport - Whether or not to allow the autoplayers to teleport. If enabled, the autoplayers will teleport when there is no pathfinding and they are stuck, if they cannot properly reach a set point, or if it is impossible for them to complete an objective.
MovementChecks -> EvasiveManeuversGroundCheckEnabled - Whether or not to check if there is ground nearby to do an evasive maneuver(E.G if there isn't ground in the area the autoplayer is thinking about rolling, then don't roll at all). Makes autoplayers fall off high surfaces more at the cost of CPU performance.
MovementChecks -> EvasiveManeuversGroundCheckHeightDistanceM - The height distance(so the distance up or down) in meters to check, higher values cost more CPU.
MovementChecks -> EvasiveManeuversGroundCheckHeightOffsetM - The amount of a height difference it takes for the autoplayer to decide not to roll.
MovementChecks -> EvasiveManeuversGroundCheckDistanceM - The distance in meters to check horizontally, higher values cost more CPU.
MovementChecks -> EvasiveManeuversGroundCheckCooldownS - The cooldown the autoplayer has for checking in seconds.

Spawning
SpawnProbabilities -> SpecialSpawnProbability_Gameplay - The chances of an autoplayer spawning in as a reinforcement assuming the max count of said character hasn't been reached and they have enough Battle Points.
SpawnProbabilities -> HeroSpawnProbability_Gameplay - The chances of an autoplayer spawning in as a hero assuming the max count of said character hasn't been reached and they have enough Battle Points.
RespawningStunt -> AllowRespawn - Whether or not autoplayers are allowed to respawn after they have died. Disabling this means the moment an autoplayer dies they will never spawn back in.
RespawningStunt -> AllowSuicide - Allows the autoplayer to mid gameplay respawn, enabling this means an autoplayer can respawn if they get stuck, though can have unintended side effects of autoplayers randomly respawning.
RespawningStunt -> InitialRespawnDelay - The delay for an autoplayer to spawn in, so if you spawn in an autoplayer how much time it takes before they are allowed to first spawn in
RespawningStunt -> RespawnDelay - The delay for an autoplayer to respawn, so after they die how long it takes for them to spawn back in
RespawningStunt -> InitialRespawnDelayBadPathing - The amount of time from when an autoplayer first joins before they are allowed to spawn in on maps with bad pathfinding, this will apply to the following maps/modes: Geonosis Galactic Assault, Starkiller Base Galactic Assault, and Endor Galactic Assault.
Squads -> AllowGameplayBotsToJoinPlayerSquads - Whether or not autoplayers are allowed to join squads with real players.
Squads -> AllowGameplayBotsToFormOwnSquads - Whether or not autoplayers are allowed to create squads with eachother, independent of real players.
Squads -> SquadSpawnProbability - The chances that an autoplayer will attempt to squad spawn. 0-1 scale.


CREDITS
BlueNade - Clone troopers in the mod page render
Chucky296 - Assistance with Clones in the main render
Wannkunstbeikor - Assistance with tools and logic editing
Btec Math - Originally demonstrated to me examples of autoplayer logic being executed, allowing me to more easily figure out the logic
CosmicDreams - Assisting with the creation of addons and additional moral support.

Y wingpilot2 - Developing the mod itself, Created mod page render