Prototype/Unit: Difference between revisions
(Set prototype parent) |
(Updated styling of prototype doc migration note) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<div class="stub"><p>'''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 https://lua-api.factorio.com/latest/prototypes/UnitPrototype.html] | |||
</p><p>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 [https://forums.factorio.com/viewforum.php?f=233 on the forums].</p></div> | |||
Entity that attacks | |||
{{Prototype parent|Prototype/EntityWithOwner}} | |||
Entity that moves around and attacks players, for example [[enemies#Creatures|biters and spitters]]. | |||
{{Prototype TOC|unit}} | |||
== Usage in base== | == Usage in base== | ||
Line 10: | Line 14: | ||
== Mandatory properties == | == Mandatory properties == | ||
This prototype inherits all the properties from [[Prototype/ | This prototype inherits all the properties from [[Prototype/EntityWithOwner]]. | ||
{{Prototype property|run_animation|[[Types/RotatedAnimation|RotatedAnimation]]}} | |||
{{Prototype property|attack_parameters|[[Types/AttackParameters|AttackParameters]]}} | |||
Requires animation in attack_parameters. Requires ammo_type in attack_parameters. | Requires animation in attack_parameters. Requires ammo_type in attack_parameters. | ||
{{Prototype property|movement_speed|[[Types/float|float]]}} | |||
Movement speed of the unit in the world, in tiles per tick. | |||
Must be equal to or greater than 0. | Must be equal to or greater than 0. | ||
{{Prototype property|distance_per_frame|[[Types/float|float]]}} | |||
How fast the <code>run_animation</code> frames are advanced. The animations are advanced animation_speed frames per <code>distance_per_frame</code> that the unit moves. | |||
= | frames_advanced = (distance_moved ÷ distance_per_frame) * animation_speed | ||
{{Prototype property|pollution_to_join_attack|[[Types/float|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. | 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. | ||
{{Prototype property|distraction_cooldown|[[Types/uint32|uint32]]}} | |||
{{Prototype property|vision_distance|[[Types/double|double]]}} | |||
Max is 100. | 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. | 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 == | == Optional properties == | ||
{{Prototype property|rotation_speed|[[Types/float|float]]|0.025|optional=true}} | |||
{{Prototype property|dying_sound|[[Types/Sound|Sound]]|optional=true}} | |||
The sound file to play when entity dies. | The sound file to play when entity dies. | ||
{{Prototype property|min_pursue_time|[[Types/uint32|uint32]]|10 * 60|optional=true}} | |||
{{Prototype property|has_belt_immunity|[[Types/bool|bool]]|false|optional=true}} | |||
If the unit is immune to movement by belts. | If the unit is immune to movement by belts. | ||
{{Prototype property|spawning_time_modifier|[[Types/double|double]]|1|optional=true}} | |||
{{Prototype property|max_pursue_distance|[[Types/double|double]]|50|optional=true}} | |||
{{Prototype property|radar_range|[[Types/uint32|uint32]]|0|optional=true}} | |||
{{Prototype property|ai_settings|[[Types/UnitAISettings|UnitAISettings]]|optional=true}} | |||
{{Prototype property|move_while_shooting|[[Types/bool|bool]]|false|optional=true}} | |||
{{Prototype property|can_open_gates|[[Types/bool|bool]]|false|optional=true}} | |||
{{Prototype property|affected_by_tiles|[[Types/bool|bool]]|false|optional=true}} | |||
{{Prototype property|render_layer|[[Types/RenderLayer|RenderLayer]]|"object"|optional=true}} | |||
{{Prototype property|light|[[Types/LightDefinition|LightDefinition]]|optional=true}} | |||
{{Prototype property|walking_sound|[[Types/Sound|Sound]]|optional=true}} | |||
{{Prototype property|alternative_attacking_frame_sequence|[[Types/table|table]]|optional=true}} | |||
Table with the following mandatory properties: | |||
= | |||
* warmup_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation. | |||
* warmup2_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation. | |||
* attacking_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation. | |||
* cooldown_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation. | |||
* prepared_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation. | |||
* back_to_walk_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation. | |||
* warmup_animation_speed - [[Types/float|float]] | |||
* attacking_animation_speed - [[Types/float|float]] | |||
* cooldown_animation_speed - [[Types/float|float]] | |||
* prepared_animation_speed - [[Types/float|float]] | |||
* back_to_walk_animation_speed - [[Types/float|float]] | |||
{{Prototype property|running_sound_animation_positions|[[Types/table|table]] (array) of [[Types/float|float]]|optional=true}} | |||
Ignored if <code>walking_sounds</code> 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. | |||
* | |||
* | |||
Latest revision as of 10:43, 21 September 2023
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.