Prototype/RollingStock: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(→‎Mandatory properties: add missing line after last change)
(Updated styling of prototype doc migration note)
 
(8 intermediate revisions by 4 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/RollingStockPrototype.html https://lua-api.factorio.com/latest/prototypes/RollingStockPrototype.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>
{{Prototype parent|Prototype/Vehicle}}
{{Prototype parent|Prototype/Vehicle}}
The abstract base of all rolling stock.
The abstract base of all rolling stock.
Line 14: Line 20:


{{Prototype property|max_speed|[[Types/double|double]]}}
{{Prototype property|max_speed|[[Types/double|double]]}}
Maximum speed of the rolling stock in tiles/tick.
In-game, the max speed of a train is <code>min(all_rolling_stock_max_speeds) × average(all_fuel_modifiers_in_all_locomotives)</code>.
This calculated train speed is then silently capped to 7386.3km/h.


{{Prototype property|air_resistance|[[Types/double|double]]}}
{{Prototype property|air_resistance|[[Types/double|double]]}}
Line 22: Line 32:
Maximum joint distance is 15.
Maximum joint distance is 15.


Note: There needs to be border at least 0.2 between the bounding box edge and joint.
Note: There needs to be border at least 0.2 between the [[Prototype/Entity#collision_box|bounding box]] edge and joint. This means that the collision_box must be at least <nowiki>{{-0,-0.2},{0,0.2}}</nowiki>.


{{Prototype property|connection_distance|[[Types/double|double]]}}
{{Prototype property|connection_distance|[[Types/double|double]]}}
Line 28: Line 38:


{{Prototype property|pictures|[[Types/RotatedSprite|RotatedSprite]]}}
{{Prototype property|pictures|[[Types/RotatedSprite|RotatedSprite]]}}
{{Prototype property|wheels|[[Types/RotatedSprite|RotatedSprite]]}}


{{Prototype property|vertical_selection_shift|[[Types/double|double]]}}
{{Prototype property|vertical_selection_shift|[[Types/double|double]]}}
Line 36: Line 44:


{{Prototype property|drive_over_tie_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}
{{Prototype property|drive_over_tie_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}
Usually a sound to play when the rolling stock drives over a tie.
Usually a sound to play when the rolling stock drives over a tie. The rolling stock is considered to be driving over a tie every <code>tie_distance</code> tiles.


{{Prototype property|tie_distance|[[Types/double|double]]|10.0|optional=true}}
{{Prototype property|tie_distance|[[Types/double|double]]|10.0|optional=true}}
In tiles. Used to determine how often <code>drive_over_tie_trigger</code> is triggered.


{{Prototype property|back_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}
{{Prototype property|back_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}


{{Prototype property|stand_by_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}
{{Prototype property|stand_by_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}
{{Prototype property|wheels|[[Types/RotatedSprite|RotatedSprite]]|optional=true}}


{{Prototype property|horizontal_doors|[[Types/Animation|Animation]]|optional=true}}
{{Prototype property|horizontal_doors|[[Types/Animation|Animation]]|optional=true}}

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/RollingStockPrototype.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/Vehicle » Prototype/RollingStock


The abstract base of all rolling stock.


Prototype/RollingStock — abstract
air_resistance::double
connection_distance::double
joint_distance::double
max_speed::double
pictures::RotatedSprite
vertical_selection_shift::double
allow_manual_color::bool (optional)
allow_robot_dispatch_in_automatic_mode::bool (optional)
back_light::LightDefinition (optional)
color::Color (optional)
drive_over_tie_trigger::TriggerEffect (optional)
horizontal_doors::Animation (optional)
stand_by_light::LightDefinition (optional)
tie_distance::double (optional)
vertical_doors::Animation (optional)
wheels::RotatedSprite (optional)
Inherited from Prototype/Vehicle
braking_power or braking_force::Energy or double
energy_per_hit_point::double
friction or friction_force::double
weight::double
allow_passengers::bool (optional)
crash_trigger::TriggerEffect (optional)
equipment_grid::string (optional)
minimap_representation::Sprite (optional)
selected_minimap_representation::Sprite (optional)
sound_minimum_speed::double (optional)
sound_scaling_ratio::double (optional)
stop_trigger::TriggerEffect (optional)
stop_trigger_speed::double (optional)
terrain_friction_modifier::float (optional)
Inherited from Prototype/EntityWithOwner
allow_run_time_change_of_is_military_target::bool (optional)
is_military_target::bool (optional)
Inherited from Prototype/EntityWithHealth
alert_when_damaged::bool (optional)
attack_reaction::AttackReaction (optional)
corpse::string or table of strings (optional)
create_ghost_on_death::bool (optional)
damaged_trigger_effect::TriggerEffect (optional)
dying_explosion::ExplosionDefinition or table of ExplosionDefinition (optional)
dying_trigger_effect::TriggerEffect (optional)
healing_per_tick::float (optional)
hide_resistances::bool (optional)
integration_patch::Sprite4Way (optional)
integration_patch_render_layer::RenderLayer (optional)
loot::Loot (optional)
max_health::float (optional)
random_corpse_variation::bool (optional)
repair_sound::Sound (optional)
repair_speed_modifier::float (optional)
resistances::Resistances (optional)
Inherited from Prototype/Entity
icons, icon, icon_size (IconSpecification)::IconSpecification
additional_pastable_entities::table of string (optional)
alert_icon_scale::float (optional)
alert_icon_shift::vector (optional)
allow_copy_paste::bool (optional)
autoplace::AutoplaceSpecification (optional)
build_base_evolution_requirement::double (optional)
build_grid_size::uint8 (optional)
build_sound::Sound (optional)
close_sound::Sound (optional)
collision_box::BoundingBox (optional)
collision_mask::CollisionMask (optional)
created_effect::Trigger (optional)
created_smoke::CreateTrivialSmokeEffectItem (optional)
drawing_box::BoundingBox (optional)
emissions_per_second::double (optional)
enemy_map_color::Color (optional)
fast_replaceable_group::string (optional)
flags::EntityPrototypeFlags (optional)
friendly_map_color::Color (optional)
hit_visualization_box::BoundingBox (optional)
map_color::Color (optional)
map_generator_bounding_box::BoundingBox (optional)
minable::MinableProperties (optional)
mined_sound::Sound (optional)
mining_sound::Sound (optional)
next_upgrade::string (optional)
open_sound::Sound (optional)
placeable_by::ItemToPlace or table of ItemToPlace (optional)
protected_from_tile_building::bool (optional)
radius_visualisation_specification::RadiusVisualisationSpecification (optional)
remains_when_mined::string or table of string (optional)
remove_decoratives::string (optional)
rotated_sound::Sound (optional)
selectable_in_game::bool (optional)
selection_box::BoundingBox (optional)
selection_priority::uint8 (optional)
shooting_cursor_size::double (optional)
sticker_box::BoundingBox (optional)
subgroup::string (optional)
tile_height::uint32 (optional)
tile_width::uint32 (optional)
trigger_target_mask::TriggerTargetMask (optional)
vehicle_impact_sound::Sound (optional)
water_reflection::WaterReflectionDefinition (optional)
working_sound::WorkingSound (optional)
Inherited from PrototypeBase
name::string
type::string
localised_description::LocalisedString (optional)
localised_name::LocalisedString (optional)
order::Order (optional)

Extensions

Mandatory properties

This prototype inherits all the properties from Prototype/Vehicle.

max_speed

Type: double
Maximum speed of the rolling stock in tiles/tick.

In-game, the max speed of a train is min(all_rolling_stock_max_speeds) × average(all_fuel_modifiers_in_all_locomotives). This calculated train speed is then silently capped to 7386.3km/h.

air_resistance

Type: double

joint_distance

Type: double
The length between this rolling stocks front and rear joints. Joints are the point where connection_distance is measured from when rolling stock are connected to one another. Wheels sprite are placed based on the joint position.

Maximum joint distance is 15.

Note: There needs to be border at least 0.2 between the bounding box edge and joint. This means that the collision_box must be at least {{-0,-0.2},{0,0.2}}.

connection_distance

Type: double
The distance between the joint of this rolling stock and its connected rolling stocks joint.

pictures

Type: RotatedSprite

vertical_selection_shift

Type: double

Optional properties

drive_over_tie_trigger

Type: TriggerEffect
Usually a sound to play when the rolling stock drives over a tie. The rolling stock is considered to be driving over a tie every tie_distance tiles.

tie_distance

Type: double
Default: 10.0
In tiles. Used to determine how often drive_over_tie_trigger is triggered.

back_light

Type: LightDefinition

stand_by_light

Type: LightDefinition

wheels

Type: RotatedSprite

horizontal_doors

Type: Animation

vertical_doors

Type: Animation

color

Type: Color

allow_manual_color

Type: bool
Default: true

allow_robot_dispatch_in_automatic_mode

Type: bool
Default: false