Prototype/Unit
The prototype docs have moved to a new website with an improved format. This documentation page can now be found here: https://lua-api.factorio.com/latest/prototypes/UnitPrototype.html
This wiki page is no longer updated and will be removed at some point in the future, so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback on the forums.
Prototype definitions » PrototypeBase » Prototype/Entity » Prototype/EntityWithHealth » Prototype/EntityWithOwner » Prototype/Unit
Entity that moves around and attacks players, for example biters and spitters.
Usage in base
Mandatory properties
This prototype inherits all the properties from Prototype/EntityWithOwner.
run_animation
Type: RotatedAnimation
attack_parameters
Type: AttackParameters
Requires animation in attack_parameters. Requires ammo_type in attack_parameters.
movement_speed
Type: float
Movement speed of the unit in the world, in tiles per tick.
Must be equal to or greater than 0.
distance_per_frame
Type: float
How fast the run_animation
frames are advanced. The animations are advanced animation_speed frames per distance_per_frame
that the unit moves.
frames_advanced = (distance_moved ÷ distance_per_frame) * animation_speed
pollution_to_join_attack
Type: float
The amount of pollution that has to be absorbed by the unit's spawner before the unit will leave the spawner and attack the source of the pollution.
distraction_cooldown
Type: uint32
vision_distance
Type: double
Max is 100.
Note: Setting to 50 or above can lead to undocumented behavior of individual units creating groups on their own when attacking or being attacked.
Optional properties
rotation_speed
Type: float
Default: 0.025
dying_sound
Type: Sound
The sound file to play when entity dies.
min_pursue_time
Type: uint32
Default: 10 * 60
has_belt_immunity
Type: bool
Default: false
If the unit is immune to movement by belts.
spawning_time_modifier
Type: double
Default: 1
max_pursue_distance
Type: double
Default: 50
radar_range
Type: uint32
Default: 0
ai_settings
Type: UnitAISettings
move_while_shooting
Type: bool
Default: false
can_open_gates
Type: bool
Default: false
affected_by_tiles
Type: bool
Default: false
render_layer
Type: RenderLayer
Default: "object"
light
Type: LightDefinition
walking_sound
Type: Sound
alternative_attacking_frame_sequence
Type: table
Table with the following mandatory properties:
- warmup_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
- warmup2_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
- attacking_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
- cooldown_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
- prepared_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
- back_to_walk_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
- warmup_animation_speed - float
- attacking_animation_speed - float
- cooldown_animation_speed - float
- prepared_animation_speed - float
- back_to_walk_animation_speed - float
running_sound_animation_positions
Type: table (array) of float
Ignored if walking_sounds
is not defined.
Mandatory values
Units have additional requirements for the properties inherited from Prototype/EntityWithOwner:
- Prototype/EntityWithOwner#is_military_target must be true.
- Prototype/EntityWithOwner#allow_run_time_change_of_is_military_target must be false.