From Official Factorio Wiki
Jump to navigation Jump to search

The prototype docs have moved to a new website with an improved format. This documentation page can now be found here:

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/ResourceEntity

A mineable/gatherable entity. Its collision_mask must contain "resource-layer" if it should be minable with a Prototype/MiningDrill.

Prototype/ResourceEntity — resource
stage_counts::table of uint32
category::string (optional)
effect_animation_period::float (optional)
effect_animation_period_deviation::float (optional)
effect_darkness_multiplier::float (optional)
highlight::bool (optional)
infinite::bool (optional)
infinite_depletion_amount::uint32 (optional)
map_grid::bool (optional)
max_effect_alpha::float (optional)
min_effect_alpha::float (optional)
minimum::uint32 (optional)
mining_visualisation_tint::Color (optional)
normal::uint32 (optional)
randomize_visual_position::bool (optional)
resource_patch_search_radius::uint32 (optional)
stages_effect::AnimationVariations (optional)
tree_removal_max_distance::double (optional)
tree_removal_probability::double (optional)
walking_sound::Sound (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
localised_description::LocalisedString (optional)
localised_name::LocalisedString (optional)
order::Order (optional)

Mandatory properties

This prototype inherits all the properties from Prototype/Entity.


Type: AnimationVariations
Entity's graphics, using a graphic sheet, with variation and depletion. At least one stage must be defined.

When using Types/AnimationVariations#sheet, frame_count is the amount of frames per row in the spritesheet. variation_count is the amount of rows in the spritesheet. Each row in the spritesheet is one stage of the animation.


Type: table of uint32
Number of stages the animation has.

Optional properties


Type: bool
Default: false
If the ore is infinitely minable, or if it will eventually run out of resource.


Type: bool
Default: false
If the resource should be highlighted when holding a mining drill that can mine it (holding a pumpjack highlights crude-oil in the base game).


Type: bool
Default: true
If there is a slight offset to graphics of the resource. Used to make patches a little less uniform in appearance.


Type: bool
Default: true
Whether the resource should have a grid pattern on the map instead of a solid map color.


Type: uint32
Default: 0
Must be not 0 when infinite = true.


Type: uint32
Default: 1
Must be not 0 when infinite = true.


Type: uint32
Default: 1
Every time an infinite-type resource "ticks" lower it's lowered by that amount. -- Rseding91


Type: uint32
Default: 3
When hovering over this resource in the map view: How far to search for other resource patches of this type to display as one (summing amount, white outline).


Type: string
Default: "basic-solid"
The category for the resource. Available categories in vanilla can be found here: Data.raw#resource-category


Type: Sound
Sound played when the player walks over this resource.


Type: AnimationVariations
An effect that can be overlayed above the normal ore graphics. Used in the base game to make uranium ore glow.


Type: float
Default: 0.0
How long it takes stages_effect to go from min_effect_alpha to max_effect_alpha.


Type: float
Default: 0.0
How much effect_animation_period can deviate from its original value. Used to make the stages effect alpha change look less uniform.


Type: float
Default: 1.0
How much the surface darkness should affect the alpha of stages_effect.


Type: float
Default: 0.0
Minimal alpha value of stages_effect.


Type: float
Default: 1.0
Maximal alpha value of stages_effect.


Type: double
Default: 0
Must be positive.


Type: double
Default: 0
Must be positive when tree_removal_probability is set.


Type: Color
Default: unset
Defaults to the resources map color if left unset and map color is set, otherwise defaults to white if left unset.


    type = "resource",
    name = "crude-oil",
    icon = "__base__/graphics/icons/crude-oil.png",
    icon_size = 32,
    flags = {"placeable-neutral"},
    category = "basic-fluid",
    infinite = true,
    highlight = true,
    minimum = 60000,
    normal = 300000,
    infinite_depletion_amount = 10,
    resource_patch_search_radius = 12,
    tree_removal_probability = 0.7,
    tree_removal_max_distance = 32 * 32,
    minable =
      mining_time = 1,
      results =
          type = "fluid",
          name = "crude-oil",
          amount_min = 10,
          amount_max = 10,
          probability = 1
    collision_box = {{ -1.4, -1.4}, {1.4, 1.4}},
    selection_box = {{ -0.5, -0.5}, {0.5, 0.5}},
    autoplace = resource_autoplace.resource_autoplace_settings{
      name = "crude-oil",
      order = "c", -- Other resources are "b"; oil won't get placed if something else is already there.
      base_density = 8.2,
      base_spots_per_km2 = 1.8,
      random_probability = 1/48,
      random_spot_size_minimum = 1,
      random_spot_size_maximum = 1, -- don't randomize spot size
      additional_richness = 220000, -- this increases the total everywhere, so base_density needs to be decreased to compensate
      has_starting_area_placement = false,
      resource_index = resource_autoplace.resource_indexes["crude-oil"],
      regular_rq_factor_multiplier = 1
    stage_counts = {0},
    stages =
      sheet =
        filename = "__base__/graphics/entity/crude-oil/crude-oil.png",
        priority = "extra-high",
        width = 75,
        height = 61,
        frame_count = 4,
        variation_count = 1
    map_color = {r=0.78, g=0.2, b=0.77},
    map_grid = false