Prototype/Module: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Updated styling of prototype doc migration note)
 
(5 intermediate revisions by 3 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/ModulePrototype.html https://lua-api.factorio.com/latest/prototypes/ModulePrototype.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/Item}}
{{Prototype parent|Prototype/Item}}
A [[module]].
A [[module]].
Line 8: Line 14:


{{Prototype property|category|[[Types/string|string]]}}
{{Prototype property|category|[[Types/string|string]]}}
The name of a module category. Used when upgrading modules. Must match the name of a registered [[Prototype/ModuleCategory]].
The name of a [[Prototype/ModuleCategory]]. Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules of the same category with higher tier modules.


{{Prototype property|tier|[[Types/uint32|uint32]]}}
{{Prototype property|tier|[[Types/uint32|uint32]]}}
Tier of the module inside its category. Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules with higher tier modules if they have the same category.


{{Prototype property|effect|[[Types/Effect|Effect]]}}
{{Prototype property|effect|[[Types/Effect|Effect]]}}


== Optional properties ==
== Optional properties ==
{{Prototype property|requires_beacon_alt_mode|[[Types/bool|bool]]|true|optional=true}}


{{Prototype property|limitation|[[Types/table|table]] of [[Types/string|string]]|optional=true}}
{{Prototype property|limitation|[[Types/table|table]] of [[Types/string|string]]|optional=true}}
Array of recipe names this module can be used on. If empty, the module can be used on all recipes.
Array of recipe names this module can be used on. If empty, the module can be used on all recipes.
{{Prototype property|limitation_blacklist|[[Types/table|table]] of [[Types/string|string]]|optional=true}}
Array of recipe names this module can '''not''' be used on, implicitly allowing its use on all other recipes. This property has no effect if set to an empty table.
Note that the game converts this into a normal list of limitations internally, so reading [https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.limitations LuaItemPrototype.limitations] at runtime will be the product of both ways of defining limitations.


{{Prototype property|limitation_message_key|[[Types/string|string]]|optional=true}}
{{Prototype property|limitation_message_key|[[Types/string|string]]|optional=true}}
Mandatory when <code>limitation</code> is present. The locale key of the message that is shown when the player attempts to use the module on a recipe it can't be used on. The locale key will be prefixed with <code>item-limitation.</code> (the "category" of the locale) by the game.
Mandatory when <code>limitation</code> is present. The locale key of the message that is shown when the player attempts to use the module on a recipe it can't be used on. The locale key will be prefixed with <code>item-limitation.</code> (the "category" of the locale) by the game.
{{Prototype property|art_style|[[Types/string|string]]|optional=true}}
Chooses with what art style the module is shown inside beacons. See [[Types/BeaconModuleVisualizations#art_style]]. Vanilla uses "vanilla" here.
{{Prototype property|beacon_tint|[[Types/table|table]] of [[Types/Color|Color]]|optional=true}}
Format:
<syntaxhighlight lang="lua">beacon_tint = { primary = {r=1,g=1,b=1,a=1}, secondary = {r=1,g=1,b=1,a=1}, tertiary = {r=1,g=1,b=1,a=1}, quaternary = {r=1,g=1,b=1,a=1}}</syntaxhighlight>
Each key/value pair is optional and defaults to no color.

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/ModulePrototype.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/Item » Prototype/Module


A module.


Prototype/Module — module
category::string
effect::Effect
tier::uint32
art_style::string (optional)
beacon_tint::table of Color (optional)
limitation::table of string (optional)
limitation_blacklist::table of string (optional)
limitation_message_key::string (optional)
requires_beacon_alt_mode::bool (optional)
Inherited from Prototype/Item
icons, icon, icon_size (IconSpecification)::IconSpecification
stack_size::ItemCountType
burnt_result::string (optional)
close_sound::Sound (optional)
dark_background_icons, dark_background_icon, icon_size (IconSpecification)::IconSpecification (optional)
default_request_amount::ItemCountType (optional)
flags::ItemPrototypeFlags (optional)
fuel_acceleration_multiplier::double (optional)
fuel_category::string (optional)
fuel_emissions_multiplier::double (optional)
fuel_glow_color::Color (optional)
fuel_top_speed_multiplier::double (optional)
fuel_value::Energy (optional)
open_sound::Sound (optional)
pictures::SpriteVariations (optional)
place_as_tile::PlaceAsTile (optional)
place_result::string (optional)
placed_as_equipment_result::string (optional)
rocket_launch_product::ItemProductPrototype (optional)
rocket_launch_products::table (array) of ItemProductPrototype (optional)
subgroup::string (optional)
wire_count::ItemCountType (optional)
Inherited from PrototypeBase
name::string
type::string
localised_description::LocalisedString (optional)
localised_name::LocalisedString (optional)
order::Order (optional)

Mandatory properties

This prototype inherits all the properties from Prototype/Item.

category

Type: string
The name of a Prototype/ModuleCategory. Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules of the same category with higher tier modules.

tier

Type: uint32
Tier of the module inside its category. Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules with higher tier modules if they have the same category.

effect

Type: Effect

Optional properties

requires_beacon_alt_mode

Type: bool
Default: true

limitation

Type: table of string
Array of recipe names this module can be used on. If empty, the module can be used on all recipes.

limitation_blacklist

Type: table of string
Array of recipe names this module can not be used on, implicitly allowing its use on all other recipes. This property has no effect if set to an empty table.

Note that the game converts this into a normal list of limitations internally, so reading LuaItemPrototype.limitations at runtime will be the product of both ways of defining limitations.

limitation_message_key

Type: string
Mandatory when limitation is present. The locale key of the message that is shown when the player attempts to use the module on a recipe it can't be used on. The locale key will be prefixed with item-limitation. (the "category" of the locale) by the game.

art_style

Type: string
Chooses with what art style the module is shown inside beacons. See Types/BeaconModuleVisualizations#art_style. Vanilla uses "vanilla" here.

beacon_tint

Type: table of Color
Format:

beacon_tint = { primary = {r=1,g=1,b=1,a=1}, secondary = {r=1,g=1,b=1,a=1}, tertiary = {r=1,g=1,b=1,a=1}, quaternary = {r=1,g=1,b=1,a=1}}

Each key/value pair is optional and defaults to no color.