Nearly always, when a question is ask about how combat in SMR works, the correct answer is “it depends”. Player level factors in to everything. Port and planet levels are also big modifiers. How many connecting sectors there are might decide the fate of your ship. There's a maneuverability rating factor that changes depending how damaged your ship is. Random numbers are often weighted to reduce the chance of streaks. There is a very lot going on behind the scenes.
Hardpoint weapons deal reliable, customizable damage that scales very well with level. The more of them you can get, the more damage you can do. In the hand of a knowledgeable player, nothing is more deadly.
Attacker Level Accuracy Modifier = alvlMod = ( attLvl2 / 60 ) + ( level / 2 ) + 2
Defender Level Accuracy Modifier = dlvlMod = [ ( defLvl2 / 60 ) + ( level / 2 ) + 2 ] / 2
Ship MR Rating Modifier = mrMod = attMR - defMR
Modified Accuracy = weaponAccuracy x [ 1 + (alvlMod - dlvlMod { + mrMod if negative } ) ]
A couple notes on this:
The purpose of the weighted random algorithm is to make the result of shots more quickly reflect their true accuracy. This limits successive hits or misses that occur naturally when random events are generated. It is best to keep in mind that, while this part of the game may drastically chance your chance to hit, it is doing so to seek the modified accuracy as described above.
The mechanics of this algorithm, while a bit counter intuitive, are quite simple. For each player, for each type of weapon, a weighted random variable is stored. Each shot, not guaranteed to hit or miss, adjusts the weighted random variable. In effect, each miss will increase a chance to hit on the following shot. And each hit will decrease the chance to hit on the following shot. It looks like this:
On a hit: weight = weight + [ (100 - modifiedAccuracy) x 0.50 ]
On a miss: weight = weight + [ ( -1 x modifiedAccuracy / 100) x 0.50 ]
Effective Firing Accuracy = modifiedAccuracy - weight
This adjustment is applied to all hardpoint fire except for when the modified accuracy is 0 or 100. Those guaranteed situations bypass the weighting code completely and do not adjust the variable.
The Attacker Level Accuracy Modifier and weighted random code affect fire at environmental targets.
Beyond that, ports, planets, and forces each have a different defensive modifier:
All of these modifiers are multiplicative. In other words, the adjustments they make are proportionate to the accuracy of the weapon being fired. The final result is a players modifier less whichever defensive bonus applies to the situation.
Combat drones are a much more chaotic weapon system compared to hardpoints. Their performance is quite inconsistent; planets and ports behave one way, ships behave different ways depending on what they're shooting at, and there is often large variation in damage output. These things are downright fearsome when launched from an environmental target and mildly disappointing when launched from a ship.
Combat drones tend to disappoint, from a player perspective, for a few reasons:
That being said, combat drones deal a substantial amount of damage.
The algorithm that determines how many drones are launched is most simple when firing at environmental targets. Player level has no effect. There are no defensive modifiers. That simplicity makes it a good place to start. The equation looks like this:
Drones Launched = random(6 to 57)
The number of drones launched when attacking the environment is a percentage of the total alive on your ship. This is effectively a random number generated between 6% and 57%. On average, 31.5% of drones launch. They always hit. They always deal 2 damage. Given these facts, combat drones can be modeled as dealing 63 DPS per 100 drones alive at the time of firing. The variation is quite extreme, but eventually the law of large numbers will bring the average to 31.5%.
Now, a bit about where that 6-57% came from. A ship firing drones has, before modifiers, a 3% base accuracy. A random number is generated between 3 and 54. That random number is added to the base accuracy which gives us a minimum possible of 6 and a max possible of 57. Environmental targets have no offensive or defensive modifiers concerning combat drones. We press attack, we get somewhere between 6 and 57 percent launched, we deal between 12 and 114 damage per hundred drones. It's simple, boring damage.
Players versus player combat is where drones get a little complicated. That 6 to 57% random is still the same. But now we have modifiers based on attacker level, defender level, and ship maneuverability rating. They look like this:
Attacker Modifier = attMod = random(half player level to player level)
Level Modifier = lvlMod = (Attacker Level - Defender Level) / 3
Ship MR Rating Modifier = mrMod = attMR - defMR
And these modifiers affect the launch % as follows:
PvP Drones Launched = { [ (random(6 to 57) + attMod + lvlMod) / 1.5 ] + (MRmod if number is negative) } ( x 0.66 if drone scrambler is equipped on defender)
Some notes on this:
Environmental weapons are generally simple but every circumstance has slightly different rules. For that reason, this section looks like a big list of caveats.
Maneuverability rating is not factored in to planet, port, or dropped force fire. This may be because none of those environmental things have MR and the existing algorithms are designed around a MR delta.
Drones launched from ports and planets are simple and dangerous. They fire everything they have, they always hit, and they do 1 damage each. The only modifier possible is a drone scrambler which brings the damage down to 75% of normal.
Structural planetary turret receive half of the planet level as an additive accuracy bonus.
Protoplanet hardpoints do not receive planet level based bonuses. They only improve accuracy through radar station structures which provide an additive bonus.
Port turrets fire at a flat 90% before defensive modifiers.
Defensive level bonuses are applied when receiving damage from stationary turrets. Accuracy is reduced by the entire level accuracy modifier; not just half like in PvP combat. This brings turret accuracy all the way down to 31.3% of normal at level 50.
Scout drones have a base launch rate of 100%, minus a random(1 to 7) squared, minus 1 point per player level. Any scout that launches will kamikazi a ship for 20 damage.
Dropped combat drones launch a random(6 to 57) percent of whatever is in sector. Each that is launched hits for 2 damage. There are no modifiers factored in beyond that.
Mines are a little bit complex:
Mines are usually mild damage. However, the force size mod is painful in a sector where there's several hundred mines. And dead end sectors really bring the damage up. Plus, once in a while, the squared random will provide a baseline 49% of mines hitting. Best to always treat mines with a bit of caution.
Let us have an imaginary ITMS piloted by a level 20 trader. They're duking it out with a level 15 Devastator. The mothership fires first.
Hardpoints fire first, of course. The SMR code receives a call for one Planetary Pulse Laser to fire. Several things now happen in approximately this order:
That's the only hardpoint. Drones are checked for. We have a lot of drones. They're called to fire and this happens:
The MS is now out of weapons to shoot and the dev returns fire. A Thevian Shield Disperser in hardpoint 1 fires:
Hardpoint 2 also fires a TSD:
Hardpoint 3 fires another TSD:
The miss adjusted the weight variable by ( 48.7 x -0.5 ) = -24.35. The next TSD shot will be adjusted by 28.95.
Hardpoint 4 fires a Photon Torpedo:
Hardpoint 5 fires at Torpedo Launcher:
Hardpoint 6 fires an Anti-Ship Missile (Guided):
Hardpoint 7 launches a Nuke:
And the dev is out of weapons to shoot. The shot results come back to the combat screen. The traders glance at them while bashing the F key.