accuracy: Accuracy of the weapon (0.0–1.0) Each time the weapon is fired a random number between 0 and 1 is generated, if it's less than the accuracy then the shot hits. Note that it is still possible for projectiles to miss even if this test says they should hit. Targets are fairly slow though and the projectiles almosts always hit.
accuracy_reduction_when_moving: Some weapons are less accurate while moving. If the reduction takes the accuracy below 0 then the weapon can't fire while moving and will go through the setup time each time the parent unit stops.
area_affect: See area_effect_table
attack_priorities: See type_armour_table
cost: see time_cost_table
death_motion_value
melee_weapon
reload_time
requirements : requirement_table
setup_time
ui_effective_against
ui_hotkey_name
ui_info: ui_info_table
weapon_spawned_event_name: Art effect played when the weapon is given to a unit.
Melee
All the base are used, only thing that’s are some of the attribute values. Nothing new is added.
Ranged
fire_cone_angle: The firecone angle of this weapon. It's not really a cone, more of a pyramid. It's used to see if the weapon can fire at a target even if it's not pointing straight at the target.
fired_projectile: This is the projectile that the weapon will fire. Valid entries are those found under entity_blueprint/projectiles, in the attribute editor. Without a projectile the weapon deals instant damage and usually has art effects to simulate a projectile. Projectiles are fairly expensive but they do give you synchronised bullet and hit effects.
horizontal_traverse_speed: The speed at which the weapoin turn horizontally, primarily used for turrets.
linger_on_target_after_fire_time: time that the unit will linger on the target it just fired upon before choosing another (new) target. This is used mainly for beam weapons as the damage is done as soon as the beam appears, without this set the beam would flick out, kill the target and then sweap across the terrain to the next target.
max_range: The maximum range of the weapon in metres:
max_traverse_down: the maximum angle that this weapon can fire down
max_traverse_left: the maximum angle that this weapon can fire to the left
max_traverse_right: the maximum angle that this weapon can fire to the right
max_traverse_up: the maximum angle that this weapon can fire up at.
min_range: The mimum range of this weapon.
miss_events (terrain_footfall_based_event_table): The events that are associated with a missed shot, and the bullet hitting one of the terrain types. See the terrain_footfall_based_event_table) for more details.
move_aim_to_home: : moves the weapon to the default “home” position (horizontal and vertical angles at 0), is set to false, then will only move the vertical angle home. Examples of this in game include the turret emplacements, they stay pointing at whatever they were last firing at.
move_to_home_position_event: time it takes before we move to the home position. Suspect typo here :)
obey_terrain_line_of_sight: Determines if this weapon obeys terrain light of sight. Note that this is expensive and should not be done with every weapon.
random_aim_on_create: Sets a random horinzontal rotation to the weapon.
stationary_horizontal_multiplier: multiplier that gets used if the entity holding the gun is not moving. More of a hack to placate the ravenous animator hordes. Troops can aim to the side while moving but when they are statoinary it looks better if they face the target fully, so this is set to 0.1 for all infantry.
vertical_traverse_speed: The speed at which the weapon moves vertically. (Degrees per second)
Note on tracking
In warhammer a unit can't fire at a target unless it's in range and the gun is pointing at the target in the horizontal (taking in to account the fire cone). But! The vertical doesn't matter, the weapon will try to track but if it has reached the tracking limit and the target is still too high/low it will fire anyway.
Note on Damage Calculation
Physical damage (as opposed to morale damage) is calculated as follows:
Multiply the damage rolled above by the armor piercing value associated with the entry above divided by 100 (the armor piercing value represents a percentage).
The final damage is the larger of the previous result and min_damage_value.
Morale damage is fairly straightforward, but has some important unexpected side effects.
The base morale damage dealt by a weapon is given by morale_damage.
Each unit in the squad hit (if you're using splash weapons) counts toward the total morale damage the squad takes.
Each squad type has a morale_armour that is used to reduce the damage taken (via multiplication). For most squads this is 0.5, meaning most weapons only do half the listed morale damage. Notable exceptions are Chaos Slaves with 1.0 (full morale damage), Chaos Possesed with 0.3, Space Marine Scouts with 0.7, and Space Marine Servitors with 1.0.