I've done some experiments with three rank fire. The standard musket weapon can be set to not fire through friendlies (after copying changes in the weapon.script and misc.script pioneered by Cavalli). If a friend is "on line", the musket will not fire. This means that of 2 or more ranks in formation only the front rank will fire. A simple change in the unit.script in the function _unit_TryAttack can make three ranks of infantry fire but not more than three ranks. Here is the changed line; FriendOnLine := _misc_IsBuildingInRay(goHnd, px, py+0.92, pz, tx, ty+0.5, tz); The original py value is py+0.5. Lifting it to py+0.92 is the right amount to get infantry (tested on State vs. Country fusiliers on flat ground) to three-rank fire for the most part. Sometimes a few, mostly in the third rank, will fail to fire. Sometimes the odd musket in a 4th rank will fire, especially if on the edge of the formation and thus having a clear shot. These results are dependent on other factors. I am using State vs. Country as the basis for testing and the range of muskets has been doubled, reload times are four times longer and head-shots percent has been raised much higher (about 40%). Lifting the "py" to py+0.92 lifts the FriendOnLine check start point to just above the musketeers head (I guess). Then on flat ground the shot angles down to ty_0.5. This angle is just right, on flat ground, for the shots of the 2nd and 3rd ranks to "clear the heads", as it were, of the units in front. Because of the long weapon range, the formation can get another volley in before infantry pikes close on them. However, this second volley is front rank only (1 rank) due to the angle of aim declination dropping as the enemy troops come closer. Clearly, on a forward slope more ranks should fire. On a reverse slope I am guessing only the front rank would fire. The change is not so effective for arquebusiers. It seems to allow about two ranks to fire on flat ground. This change does not work at all for dragoons. They must have a higher unit box, I guess.