AddFireArmsPosition sets from where the firearm shoots. Multiple firearm positions can be defined. If SetAsynchronyFire is set to true, the weapon will fire from each position in turn (e.g. the Katyusha). If it is false, the weapon will fire from all positions at once.
Source and more details
This property defines the position and rotation of a fired projectile. If there is a dummy object (e.g. a bomb attached to an aircraft), it will be placed at the defined position but the rotation setting will not affect it. As the MDT mentions, multiple positions can be defined, simply by reusing the property. To globally offset the fired projectile from this setting for the firearm, see ObjectTemplate.ProjectilePosition.
This property must be defined with both position and rotation (x/y/z x/y/z) in order to work.
ObjectTemplate.VisibleBarrelTemplate depends on this property.