RecipePrototype results and main_product expected values?

Place to get help with not working mods / modding interface.
firebladed3
Burner Inserter
Burner Inserter
Posts: 8
Joined: Fri Jun 30, 2017 5:22 pm
Contact:

RecipePrototype results and main_product expected values?

Post by firebladed3 »

with RecipePrototype what are the "normal" expected values?

Im unsure if this is normal or a bug but when i read the RecipePrototype for "burner-lab"

[Edit] i get LuaRecipePrototype doesn't contain key results.
and
recipe.main_product as a ItemProductPrototype?

Code: Select all

{
  amount = 1,
  name = "burner-lab",
  probability = 1,
  type = "item"
}
This seems odd to me from the descriptions of those in RecipePrototype Docs

results optional :: array[ProductPrototype] A table containing result names and amounts. [...]

main_product optional :: string For recipes with one or more products: Subgroup, localised_name and icon default to the values of the singular/main product, but can be overwritten by the recipe. [...]

Im thinking that either the description of main_product is lacking or there is something odd here

anyone more familar with this have any input?
Last edited by firebladed3 on Tue Oct 29, 2024 8:47 am, edited 1 time in total.
User avatar
Stringweasel
Filter Inserter
Filter Inserter
Posts: 444
Joined: Thu Apr 27, 2017 8:22 pm
Contact:

Re: RecipePrototype results and main_product expected values?

Post by Stringweasel »

If a recipe has any products, then it needs to be in the recipe.results table. If a main_product is defined without products in results then it should fail to load.

I think the example code you're looking at is wrong. Where are you getting the prototype for `burner-lab`?
Alt-F4 Author | Factorio Modder
Probably known for: (Configurable) Valves | Better Victory Screen | Space Spidertron | Fluidic Power
Official Contributor to Space Exploration
firebladed3
Burner Inserter
Burner Inserter
Posts: 8
Joined: Fri Jun 30, 2017 5:22 pm
Contact:

Re: RecipePrototype results and main_product expected values?

Post by firebladed3 »

im getting from prototypes.get_recipe_filtered(filters)

but the result from prototypes.recipe['burner-lab'] is the same error

Both are "[LuaRecipePrototype: burner-lab (recipe)]"

and both error with "LuaRecipePrototype doesn't contain key results"

im testing with

Code: Select all

log(serpent.block(prototypes.recipe['burner-lab'].results))
and

Code: Select all

log(serpent.block(recipe.results))
for the recipe returned from prototypes.get_recipe_filtered(filters)

im going to look at some other recipes

Edit: im getting this error consistently even from LUA Console from multiple items
e.g

Code: Select all

prototypes.recipe['burner-mining-drill'].results

User avatar
Stringweasel
Filter Inserter
Filter Inserter
Posts: 444
Joined: Thu Apr 27, 2017 8:22 pm
Contact:

Re: RecipePrototype results and main_product expected values?

Post by Stringweasel »

Ah, I think I see the problem. You're mixing data-stage with runtime stage. Look at the LifeCycle. During data-stage `results` must exist, just like in the link you originally mentioned. But you're doing the `log` during the runtime (control) stage, where you're interacting with a LuaRecipePrototype, and it has `products` instead of `results`.

If you want the products during control stage you need something like this

Code: Select all

log(serpent.block(prototypes.recipe['burner-lab'].products))
And for reference, assuming the burner-lab you're looking at is from AAI Industries, this is how that recipe is defined in data stage:

Code: Select all

{
    type = "recipe",
    name = "burner-lab",
    category = "crafting",
    enabled = true,
    energy_required = 0.5,
    ingredients =
    {
      {type="item", name="motor", amount=10},
      {type="item", name="copper-plate", amount=10},
      {type="item", name="stone-brick", amount=5}
    },
    results= { {type="item", name="burner-lab", amount=1} }
Last edited by Stringweasel on Tue Oct 29, 2024 10:18 am, edited 1 time in total.
Alt-F4 Author | Factorio Modder
Probably known for: (Configurable) Valves | Better Victory Screen | Space Spidertron | Fluidic Power
Official Contributor to Space Exploration
firebladed3
Burner Inserter
Burner Inserter
Posts: 8
Joined: Fri Jun 30, 2017 5:22 pm
Contact:

Re: RecipePrototype results and main_product expected values?

Post by firebladed3 »

Ok

on further examination there is an inconsistency between

https://lua-api.factorio.com/latest/prototypes/RecipePrototype.html

and

https://lua-api.factorio.com/latest/classes/LuaRecipePrototype.html

the first has results and the second has products

which is somewhat confusing


Edit:

thx, somehow missed post when writing

Im writing code for the control stage, but it seems I incorrectly made the assumption that the classes would mirror the data tables and just searched in the window i had open

the 'burner-lab' is coincidental it just happend to be what the filter produced
Post Reply

Return to “Modding help”