Factorio.com|Forums|Wiki|Mod Portal|API Docs

# Factorio Runtime Docs Version 2.0.77

# ItemPrototypeFilter - Runtime Docs

## ItemPrototypeFilter :: table

#### Table fields

filter | :: `"tool"` or `"mergeable"` or `"hidden"` or `"hidden-in-factoriopedia"` or `"is-parameter"` or `"item-with-inventory"` or `"selection-tool"` or `"item-with-label"` or `"has-rocket-launch-products"` or `"fuel"` or `"place-result"` or `"burnt-result"` or `"place-as-tile"` or `"placed-as-equipment-result"` or `"plant-result"` or `"spoil-result"` or `"name"` or `"type"` or `"flag"` or `"subgroup"` or `"fuel-category"` or `"stack-size"` or `"fuel-value"` or `"fuel-acceleration-multiplier"` or `"fuel-top-speed-multiplier"` or `"fuel-emissions-multiplier"` | The condition to filter on.
The condition to filter on.
mode | :: `"or"` or `"and"`? | How to combine this with the previous filter. Defaults to `"or"`. When evaluating the filters, `"and"` has higher precedence than `"or"`.
How to combine this with the previous filter. Defaults to `"or"`. When evaluating the filters, `"and"` has higher precedence than `"or"`.
invert | :: boolean? | Inverts the condition. Default is `false`.
Inverts the condition. Default is `false`.

Other attributes may be specified depending on `filter`:

#### `place-result`

elem_filters | :: array[EntityPrototypeFilter]? | Filters for the place result.
Filters for the place result.

#### `burnt-result`

elem_filters | :: array[ItemPrototypeFilter]? | Filters for the burnt result.
Filters for the burnt result.

#### `place-as-tile`

elem_filters | :: array[TilePrototypeFilter]? | Filters for the placed tile.
Filters for the placed tile.

#### `placed-as-equipment-result`

elem_filters | :: array[EquipmentPrototypeFilter]? | Filters for the placed equipment.
Filters for the placed equipment.

#### `plant-result`

elem_filters | :: array[EntityPrototypeFilter]? | Filters for the plant result.
Filters for the plant result.

#### `spoil-result`

elem_filters | :: array[ItemPrototypeFilter]? | Filters for the spoil result.
Filters for the spoil result.

#### `name`

For use within nested filters such as the `has-product-item` filter of array[RecipePrototypeFilter].

To get a specific prototype by name, see LuaPrototypes::item.

name | :: string or array[string] | The prototype name, or list of acceptable names.
The prototype name, or list of acceptable names.

#### `type`

Usage example:

    prototypes.get_item_filtered({{filter = "type", type = "armor"}})

type | :: string or array[string] | The prototype type, or a list of acceptable types.
The prototype type, or a list of acceptable types.

#### `flag`

flag | :: ItemPrototypeFlag |

#### `subgroup`

subgroup | :: string | A LuaGroup (subgroup) name
A LuaGroup (subgroup) name

#### `fuel-category`

fuel-category | :: string | A LuaFuelCategoryPrototype name
A LuaFuelCategoryPrototype name

#### `stack-size`

Usage example:

    prototypes.get_item_filtered({{filter = "stack-size", comparison = ">", value = 20}, {filter = "stack-size", comparison = "<", value = 100, mode = "and"}})

comparison | :: ComparatorString |
value | :: uint32 | The value to compare against.
The value to compare against.

#### `fuel-value`

comparison | :: ComparatorString |
value | :: double | The value to compare against.
The value to compare against.

#### `fuel-acceleration-multiplier`

comparison | :: ComparatorString |
value | :: double | The value to compare against.
The value to compare against.

#### `fuel-top-speed-multiplier`

comparison | :: ComparatorString |
value | :: double | The value to compare against.
The value to compare against.

#### `fuel-emissions-multiplier`

comparison | :: ComparatorString |
value | :: double | The value to compare against.
The value to compare against.

Concept used in

- LuaPrototypes::get_item_filtered()
- ItemPrototypeFilter
- PrototypeFilter
- RecipePrototypeFilter