I'm writing this document as an attempt to consolidate what is known about space combat in MoOIII into a single coherent whole. Most everything here can be found in the [url=http://www.ina-community.com/forums/showthread.php?s=e859235fc302dac4d8cb008dfa3700ca&threadid=279930]Armor/Shields thread[/url]. I intend to keep this file updated as I learn more about how space combat works in MoOIII (and as patches change this), and to continue to post in the Armor/Shields thread when I'm doing testing. This post will explain how combat works in some detail. The post that follows it will contain charts (or links to charts) of the various ingame values that are relevant to space combat. The third post will touch upon various implications brought out by the information in the first two. I [i]will[/i] be assuming that you the reader have a minimum of familiarity with MoOIII. :) If you find errors, let me know. I care more about factual errors than typos, of course. :) If you want to snarf the information here, go right ahead. If you're going to snarf the actual text, it'd be nice if you actually attributed it. [size=3][b]Starships versus System Ships versus Orbitals[/b][/size] Starships are the default for ship stats. Hull size for hull size, orbitals cost 60% of the AUs and get 150% of the space, System ships cost 75% of the AUs and get 133% of the space. [size=3][b]Armor, Shields, and Hit Points[/b][/size] Things that get shot at by default have Hit Points equal to their space. For some reason, ships have space available equal to one less than their listed space; the amount of damage to distroy a hull with a listed space of 200 is 200 points, but you can only put 199 space of stuff in the hull (and Orbitals and System ships have more HP than starships). Fighters have HP equal to their base space (modified by weapon mods), which is 66% of the space the interceptor form takes up and 33% of the space that the SCF form takes up; this is entirely dependent upon the weapon type of the fighter. Missiles have HP equal to the space a single missile takes up (without counting in the +1 per-rack surcharge; missile mods do modify missile HP, though). The number of armor points a ship, fighter, or missile has is based on its armor type and armor thickness. Armor for fighters and missile always has the same "thickness." Armor also has a deflection value, established by armor type and modified by thickness. Armor never takes up space, regardless of its thickness. Shields have three combat-relevant stats, apart from their size and cost. Each shield technology has a stopping percentage (StpPow), a number of shield points (ShdStr), and a recharge rate (Recharge), and except for the Damper Field they all default to consuming 5% of the hull space of the ship they're on (so shielding an Orbital takes up more space than shielding a Starship). Shield generator sizes modify the shield points, the recharge rate, and the space, but don't change the stopping percentage. Missile and fighter shields have their own shield generator "size." Note: Shields and armor for fighters and missiles don't take up space. How damage is applied to a target: 1) Take a particular weapon hit (so, a volley from 2 LFG's that fire 5 times each time they fire would go through this 10 times). 2) First, apply the effects of shields.[list=a][*]The shield absorbs a fraction of the damage equal to its stopping percentage. [*]Subtract that fraction from the shield points remaining on the shield. [*]The remainder, plus any absorbed damage that was in excess of the remaining shield points, is passed on to the next step.[/list=a]3) Now, apply the effects of armor. [list=a][*]Pick a random number between 0 and 1. If the random number is greater than the ArmrPier value of the weapon, skip to step 4. [*]If the amount of damage remaining is less than the deflection value, the remaining damage is wasted. If shields were damaged, display a blue number equal to the number of shield points lost. [*]Take a random number between 0 and 1. If the random number is less than the ratio of the remaining armor to max armor, the remaining damage hits the armor: subtract that many armor points. Display a yellow number equal to the amount of damage that hit armor. If all the armor is destroyed at this point, pass on to hit points all the damage that hit armor (not just that in excess of the amount needed to destroy the armor). [*]If the random number is not less than the ratio, go on to the last step.[/list=a]4) The damage falls on the hit points of the target. Subtract the remaining damage from the hit points. Display the lesser of that number and the number of HP that were present to take the damage. If hit points are reduced to or less than 0, the target blows up. In actuality, you only display damage per-volley, based on the furthest penetration achieved by that volley. Note: the shield recharge rate is misrepresented in game as the number of shield points regenerated per 5 seconds; the actual rate is per second. Note: When you wipe out a target's armor all the damage that hit the armor is passed on to the Hit Points of the target, not just that which is in excess of the armor that was remaining. This strongly suggests to me (though I haven't tested it) that wiping out all the shields points has similar behavior. [size=3][b]Direct Fire Weapons[/b][/size] [b]Accuracy:[/b] The change to hit at or below the minimum range (AccDisSt) for a DF weapon is the listed maximum accuracy for that weapon. The chance to hit scales down linearly to 60% of the maximum value at the maximum range (AccDisEn); beyond this range the weapon will refuse to fire. So, a weapon with an accuracy of .7, or 70%, has a 42% chance of hitting at its maximum range. Some weapons (Stellar Converter, Mauler) have their minimum range set to just under their maximum range so as to produce an effect of no dropoff in accuracy. Having an accuracy of greater than one (once accounting for range dropoff) is treated like having an accuracy of 1. [b]Damage Dropoff:[/b] Most DF weapons don't do their maximum damage when they hit their target. There are two elements to this. First, there's a range-based reduction. At or under a weapon's minimum range for damage purposes (DmgDisSt), this reduction is zero; the Base Damage is equal to the weapon's maximum damage (NearDamg). The Base Damage scales down linearly from there to the minimum damage (FarDamag) over the course of twice the weapon's listed maximum range for damage purposes (DmgDisEn). Thus, the Base Damage for a weapon is its minimum damage at 2*DmgDisEn + DmgDisSt; the default weapons set always has the maximum range for accuracy and damage the same, so the actual minimum Base Damage for a weapon is close to the average of the minimum and maximum damage, shifted towards the maximum damage based on the relationship between the minimum range and the maximum range. The actual damage done is the Base Damage reduced by a random factor. To determine the random factor, take the smaller of the Base Damage and the damage delta (DmgDelta) stat. Multiply this by a random number from between 0 and 1. Subtract the result from the Base Damage to determine how much damage is actually dealt. By default, the damage delta stat is equal to the difference between the maximum and minimum damage stats. Mass-classsed weapons (Mass drivers, Rail guns, and the like), have their minimum range for damage set to be just under the maximum range for damage, so they have no dropoff due to range. Furthermore, they have their damage delta set to 0, so there is no randomized reduction. Mounts change all of the stats mentioned above [i]except[/i] for the damage delta stat. Thus, mounts with larger multiples on the damage stats (e.g. the Spinal series) suffer much smaller proportional reduction in damage dealt from the random factor. (Obviously, mass-classed weapons don't benefit from this effect.) Note: The code is capable of handling cases with stat configurations that are far from the defaults. DmgDelta can be much larger than the NearDamg; FarDamag can be larger than NearDamg; AccDisEn does not have to be the same as DmgDisEn; etc. These cases all behave as described above. [b]Weapon Stats:[/b] Range and damage weapon stats, as well as DmgDelta, are discussed above. Other weapon stats:[list][*]FireDlay: Seconds between weapon fires. There seems to be a floor on this stat; reports suggest it is around 0.5 or 1 second. [*]Multfire: How many times the weapon fires when FireDlay has elapsed. All Multfire shots hit the same target. [*]ShldPen: When hitting shields, the shield's stopping percentage is multipiled by this value; lower is better. If StpPow * ShldPen is greater than one, it is treated as if it is one. [*]ArmrPier: Is a multiplier against the chance to hit armor; the lower the ArmrPier, the greater the chance that a particular shot ignores armor and hits Hit Points directly. [/list][b]Mounts:[/b] Weapon mounts can change the four range stats, the two damage stats, Dmgdelta, size, cost, ShldPen, MacxAccry, but not MultFire. [b]Mods:[/b] Weapon mods are capable of altering: MultFire, the four range stats, FireDlay, the two damage stats, size, DmgDelta, and ShldPen. [size=3][b]IF Weapons[/b][/size] All default missiles have 95% accuracy at all ranges, regardless of what you change about their range stats; they always do max admage, similarly regardless of what you change about their range stats. The rate of fire displayed in the ship design screen is not the actual rate of fire, but the multiplicative modifier to the warhead's rate of fire, which are all 45 seconds by default. The number of racks you have is the number of missiles you fire in a volley; the number of missiles per rack is the total number of volleys you can fire. The space a missile rack takes up is proportional to 1 plus the number of missiles in it. Once you have the tech for missile armor and shields, they are installed by default on all missiles in new designs, but the checkboxes aren't selected. To turn them off, you have to select then deselect the checkboxes. Missiles have Hit Points equal to the space they take up per missile (including chassis and weapon mod effects). MultFire for missiles just generates more missiles; it doesn't require all the missiles to hit the same ship (or missile or fighter). [size=3][b]Fighters[/b][/size] As far as I know, the following fighter stats have no in-game effect: ShieldDmg, MaxShrnk, MinFactr, MinimSize, HullDMod, DamagCap. Fighters have HP equal to the base space, the amount they take up before the *=1.5 multiplier for Interceptors or the *=3.0 multiplier for SCFs is applied (fighter weapon mods [i]do[/i] add to HP, though). The only difference between SCFs and Interceptors is that SCFs take up twice as much space and get a 40% increase in max damage and a 20% increase in min damage. Damage calculations for fighter weapons are handled in the same fashion as for direct fire weapons. However, all fighter weapons are listed with 3000 minimum range, and almost all fighter combat happens under that distance. Carriers wait 90 seconds between launching successive waves of fighters. I have noticed no difference between SCF AI and Interceptor AI. It's conceivable that Interceptors will occasionally deign to shoot at missiles and fighters while SCFs won't. It is commonly reported in these forums that Interceptors will not participate in planetary bombardment, but SCFs will. Modding Note: I've found the following fighter weapon stats to be [i]not[/i] modifiable by the fighter chassis: Armor points, DmgDelta, DmgDisSt, MultFire, ShldPen, MaxAccry. Weapon stats I've found the chassis to modify: UniSpace, SystCost, NearDamg, FarDamag, FireDlay. [size=3][b]ECM/ECCM/Sensors/Cloak[/b][/size] Sensors and ECCM multiplicatively reduce the OffTgtRg stat. ECM and Cloak multiplicatively increase the DefTgtRg stat. Cloak also increases the Cloaking stat. None of this has any impact on weapon accuracy. Apparently, this only affects visual detection. All my tests on the subject have been far too noisy to draw any conclusions. Da_Blade has claimed on these forums that a QS developer has told him that there should be a deterministic visual detection radius and that the randomized behavior is a bug. Assuming Da_Blade's information is correct, this is my ex recto theory as to how this is supposed to work. If I'm correct, the shipbuilding AI's as broken on this subject as it is on every other. Every theory I've come up with that bears any resemblance to the tech stats and various descriptions is fairly broken as a game mechanic... [i]~~~Warning: Completely ex recto speculation follows~~~[/i] a) There is a base detection radius inside which you would by default see anything. Target size may very well frob this (i.e. "leviathans are easier to see than lancers"). b) Sensors increase this radius multiplicatively. c) When a ship is attempting to see a target, their radius for that purpose is reduced by the ECM and Cloak of that target. d) That ship's ECCM will counteract the effects of the cloak and ECM, but will not increase the effective detection radius beyond the base detection radius. e) If any ship on a side in combat can see a ship in a taskforce, that entire taskforce is visible to all ships on the detecting ship's side. [i]~~~Warning: Completely ex recto speculation precedes~~~[/i] [size=3][b]Shipbuilding AI[/b][/size] What the autobuild will pick for you, and thus what your AI opponents use. [b]Armor and Shields[/b] Autobuild always uses the highest-tech class of armor and shields available. The generator size and armor weight used are as follows:[list][*]Class 0: No armor, no shields. Colony and Outpost ships are Class 0. [*]Class 1: Minimal armor, minimal shields. The AI will take use your smallest shield generator and uses a buggy algorithm (you have N armor weights available; if you have more than 2N hull sizes available, assign the heaviest available armor weight to everything; if you have fewer than 2N hull sizes available, assign the second-lightest (counting "none" as the lightest) armor weight to everything; if you have 2N hull sizes available, everything gets the second-lightest weight available except the two smallest hull sizes which get the heaviest) to select armor weight. IF, CV, Recon, and Transport are Class 1. [*]Class 2: Moderate armor, moderate shields. The AI will use the second-smallest shield generator. For armor weight, see below. Point Defense ships are Class 2. [*]Class 3: Maximum armor, maximum shields. It will use your third-largest shield generator, and will select armor as indicated below. LR, SR, and Planet Destroyer ships are Class 3.[/list]For Class 3 ships, armor weight is selected as follows: Ignoring the "no armor" weight and the first two hull sizes (Lancer and Cutter) available, map your weights to hull sizes as evenly as possible, rounding such that the heavier weights get hulls allocated before lighter weights do. The first two hull sizes get the second-lightest armor (using the default game files, they'd get Very Light). So, if you had all size armor weights in addition to "no armor" and you had all the hull sizes except Behemoth and Leviathan, you'd have: Lancers, Cutters, Corvettes get Very Light; Frigates and Destroyers get Light; Light Cruisers get Medium; Cruisers and Battlecruisers get Heavy; Battleships and Dreadnoughts get Very Heavy; Superdreadnoughts and Titans get Ultra Heavy. Orbitals are considered one hull larger than they are; Class 2 ships are considered one hull smaller than they are. Note: "Highest Tech" above actually means "furthest down the listings in TechTables." Since the Damper Field is listed after all other shields, it will be chosen preferentially over all other shields. Changing its position in the sequence will change the preference. Similarly, larger shield generator sizes and heavier armor weights are actually "later listed" in the code; changing sequence will change preference. Nothing actually evaluates the stats of the various weights or techs. "No armor" is merely the first-listed armor weight. [b]ECM/ECCM/Cloak[/b] If a ship is marked Stealth, it'll put the best cloak available on. (Presumably, "best" once again means the one furthest down the TechTables listing.) LR, SR, and PD ships get one copy of a sensor or an ECCM. Recon ships seem to get maxed out on thet highest tech of ECCM available. [b]Weapon and Mount choices[/b] I've not investigated anything about the decisionmaking process of picking which Planet Destroyer weapon to mount on a Planet Destroyer ship. :) Each of SR, LR, and PD ship-types are listed in TaskForceRules as trying to optimize a particular characteristic (NearDamg, AccDisEn, and FireDlay, respectively). For simplicity, I'm going to talk about the decisions based on SR/LR/PD. I've not found another stat that you can plug in there that will work (including FarDamag, which is listed as what IF TF's are supposed to optimize) for DR autobuild choices. The AI will add mods to weapons according to the following scheme:[list][*]Point Defense weapons: No mod that increases space or FireDlay gets used. Other mods that reduce either or both get used. [*]Short Range Weapons: No mod that decreases NearDamg gets used. Other mods that reduce space or increase NearDamg get used. [*]Long Range Weapons: No mod that decreases AccDisEn gets used. Other mods that reduce space or increase AccDisEn get used. [/list] The Autobuild AI will consider the effects of the above mod choices when making decisions according to the following rules: [i]Point Defense ships[/i]: For the type of the primary weapon, it picks the weapon with the smallest FireDlay (in general, every weapon except the New Orion weapons has the same FireDlay of 2.5 seconds). From any ties there, it chooses the weapon with the highest base tech level. From any ties there, it picks the weapon lowest on the TechTables list. It uses the available mount [i]highest[/i] on the list in TechTables. Once it has stuffed as many of those in as it can, it will try to fill in the remaining space by going down its list of "best PD weapons" and finding the best one that will fit at least one weapon in. [i]Long-Range ships[/i]: For the type of the primary weapon, it picks the weapon with the highest AccDisEn. From any ties there, it looks like it prefers the weapon with the smallest InfoWeap number (the order weapons are listed in the weapons table). For the mount, it selects the mount furthest down the TechTables listing (since TechTables lists the PD, then Light, then Standard, then the Heavy Series, then the Spinal series, it will only pick Heavy series mounts for LR ships if there are no Spinal mounts available). If the selected weapon/mount combo is too big to fit, it will try smaller weapons. Some fraction of space is reserved for filling with weapons chosen according to the PD criteria above. [i]Short-Range ships[/i]: For the type of the primary weapon, it picks the weapon with the largest NearDamg. I haven't been able to determine what governs choices between ties in this case. If the selected weapon/mount combo is too big to fit, it will try smaller mounts. It follows the same scheme for weapon mount choice and secondary weapons as it does for LR. [i]Indirect-Fire ships[/i]: It takes the last-listed warhead you've got and puts it on the chassis furthest down TechTables. It then fills in space with PD nukes. I haven't yet tested how it decides to use PD nukes; I assume the PD chassis is selected as the first listed in TechTables, nukes are probably chosen as the first warhead listed in TechTables (and if there were lower-listed warheads with smaller space, they'd presumably be used in any case where the PD nukes wouldn't fit). It builds 5-missile racks. [i]Carriers[/i]: It selects the fighter weapon listed last in TechTables, and fills the carrier with SCFs of this type. It then fills the rest of the space with Laser Interceptors. Predictably, the SCF/interceptor choice is made by position in TechTables, and it's also the case that the weapon used for "padding" is chosen by taking the first figther listed in TechTables. It looks like for the primary fighter, it'll add all available mods and for the "padding" it will ignore mods [b]Engine Speeds[/b] Colony ships, Transport ships, and Outpost ships get autobuilt with 60% of their max speed. IF ships get autobuilt at 80% of max speed. Everything else gets full system engines. [size=3][b]PD bug[/b][/size] Before the 1.2 patch, there was a severe problem that ships usually failed to acquire the first inbound volley of missiles and/or fighters before they hit/start firing. The best workaround that was found is to make sure that every ship you want to have firing PD has a missile rack with missiles remaining. Some people have claimed that loading up your PD ships with sensors and ECCM will fix this; I've found minimal improvement using this method compared to using the missile workaround. The 1.2 patch has largely, but not entirely, alleviated this problem. [size=3][b]TF AI[/b][/size] This information is based on preliminary testing only. Others have done their own tests and found results that contradict my own, so take the following with a grain of salt: TF AI is done by TF type, and does not care about the ship designations within the TF. (This assertion in particular is disputed by the tests performed by Blaze/Renaux.) LR and SR AI: On Watch mode, fighters and missiles are prelaunched (fired before any targets are detected). On Control mode, it auto-launches and auto-fires (fires on targets as soon as detected and in range, without any orders from the player). In Watch mode or when directed to attack a target, it will charge in and circle at short range. IF and CV AI: On Watch mode, it prelaunches fighters and missiles; on Control mode, it autolaunches and autofires at a range that seems based on its DF max range. When in Watch mode or when ordered to attack, it will compare its DF combat stats with the DF stats of the target as to whether it should charge or run away from the target. Colony and Outpost AI: On Watch mode, it prelaunches fighters and missiles; I expect it autofires in Control mode. In Watch mode, I've observed well-armed TFs maintain a moderate distance between them and their target while firing; I expect that this is triggered by the DF stat comparison leading the AI to believe it was more powerful than the target. It seems likely that similar behavior will be seen in Control mode. Recon AI: Seems to take the firing behavior of LR and SR and the movement behavior of IF and CV. The DF stats comparison mentioned above seems to use the same calculations as are used to generate the TF stats that display in the lower right corner during combat, so it is possible to fool the AI into thinking that a TF is better or worse than it actually is. My only hard data point on this is reducing FireDlay to below the apparent effective cap. I currently expect that this is the reason behind the kludges used for Mass-classed weapons, which all have unused FarDamag stats. The same calculations are apparently also used in determining AI retreat behavior and which options the AI defaults to for the pre-combat options ("Blockade Planet", "Intercept Fleet", etc).