cannot read recipe subgroup from data.raw
-
- Inserter
- Posts: 23
- Joined: Fri Jun 14, 2024 12:33 am
- Contact:
cannot read recipe subgroup from data.raw
I'm trying to copy recipes in data-final-fixes.lua, and I need to be able to read the subgroup. None of the recipes in data.raw["recipe"] have the subgroup member present. If I deepcopy a recipe, it still has the original subgroup. I can change the subgroup, but i need to be able to modify the subgroup based on the original name.
Re: cannot read recipe subgroup from data.raw
I think I can help you, but I don't understand the explanation.
Can you give me a code or before and after data?
Can you give me a code or before and after data?
Solo entiendo español, pero si tu también lo entiendes, escríbeme


Everything i write in English is translated by Deepl.

-
- Inserter
- Posts: 23
- Joined: Fri Jun 14, 2024 12:33 am
- Contact:
Re: cannot read recipe subgroup from data.raw
Code: Select all
local function process_recipe(name, recipe)
if not recipe.results or next(recipe.results) == nil then return end
if ends_with(name,"_rcomb") then return end
local new_recipe=table.deepcopy(recipe)
new_recipe.name=new_recipe.name.."_rcomb"
new_recipe.hide_from_signal_gui = false
new_recipe.show_amount_in_title = true
local sg = new_recipe.subgroup
-- SG is nil here
new_recipe.subgroup="recipe-subgroup"
--but i can assign it here.
new_recipe.localised_name=recipe.name
data.raw.recipe[name.."_rcomb"]=new_recipe
Re: cannot read recipe subgroup from data.raw
I don't see any error in your code, I think you are missing information.
I suggest changing this line
Code: Select all
new_recipe.localised_name=recipe.name
Code: Select all
new_recipe.localised_name={recipe.name}
--------------------------------------------------------------------------------------
I think your problem is that you have not created the subgroup.
The following is an example of the code to create a sub-group
Code: Select all
data:extend({
{
[ 'type' ] = 'item-subgroup',
[ 'name' ] = 'recipe-subgroup',
[ 'group' ] = 'logistics',
[ 'order' ] = 'a'
}
})
The following is an example of the code of a group
Code: Select all
{
[ 'type' ] = 'item-group',
[ 'name' ] = 'logistics',
[ 'order' ] = 'a',
[ 'icon' ] = '__base__/graphics/item-group/logistics.png',
[ 'icon_size' ] = 128
}
Code: Select all
data.raw["item-group"]
data.raw["item-subgroup"]
I hope I've been helpful, and if not, I'll look forward to hearing from you.
Solo entiendo español, pero si tu también lo entiendes, escríbeme


Everything i write in English is translated by Deepl.

-
- Inserter
- Posts: 23
- Joined: Fri Jun 14, 2024 12:33 am
- Contact:
Re: cannot read recipe subgroup from data.raw
I've created a group and subgroup for my new recipes. I don't have any problem assigning them into that subgroup. The problem though, is that i want to create similarly named subgroups inside my group as the original recipe. However, i can't figure out how to get the original subgroup from the old recipe.
Putting the recipe name in brackets doesn't work, i get unknown key errors
trying
works for some recipes, but not all of them.
Putting the recipe name in brackets doesn't work, i get unknown key errors
trying
Code: Select all
new_recipe.localised_name={"recipe-name."..recipe.name}
Re: cannot read recipe subgroup from data.raw
Is this code complete because a final "end" is missing, whatever.scruffyvoltherder wrote: Fri May 16, 2025 12:48 amCode: Select all
local function process_recipe(name, recipe) if not recipe.results or next(recipe.results) == nil then return end if ends_with(name,"_rcomb") then return end local new_recipe=table.deepcopy(recipe) new_recipe.name=new_recipe.name.."_rcomb" new_recipe.hide_from_signal_gui = false new_recipe.show_amount_in_title = true local sg = new_recipe.subgroup -- SG is nil here new_recipe.subgroup="recipe-subgroup" --but i can assign it here. new_recipe.localised_name=recipe.name data.raw.recipe[name.."_rcomb"]=new_recipe
Some of recipe name is based on the product.
With your function, is your recipe fully functional or what is missing ? Only subgroup ? Did you see recipe in game ?
-
- Inserter
- Posts: 23
- Joined: Fri Jun 14, 2024 12:33 am
- Contact:
Re: cannot read recipe subgroup from data.raw
Yes, they do show up in-game. right now i'm just adding the copied recipes into a subgroup called "recipe-subgroup". What i want to do is create subgroups based on the original recipe's subgroup.
for example, if the original recipe had the "circuit-network" subgroup, i want the copied recipe to have the subgroup "circuit-network-rcomb". all of the rcomb recipes are going to sit in their own tab.
The problem is though, that I cannot read the subgroup from the original recipe. If i were to deepcopy the recipe, and not assign any values to the subgroup member, my copied recipe would end up right next to the original. I don't understand how that information can get transferred from the old recipe to the copy when i do a deepcopy, but cannot be read by my lua script.
deepcopying a recipe gives the new recipe the same subgroup as the old one, but if i try
recipe_subgroup comes back as null, therefore therefore there is no way to derive a name for the subgroup that the new recipe will be in.
for example, if the original recipe had the "circuit-network" subgroup, i want the copied recipe to have the subgroup "circuit-network-rcomb". all of the rcomb recipes are going to sit in their own tab.
The problem is though, that I cannot read the subgroup from the original recipe. If i were to deepcopy the recipe, and not assign any values to the subgroup member, my copied recipe would end up right next to the original. I don't understand how that information can get transferred from the old recipe to the copy when i do a deepcopy, but cannot be read by my lua script.
deepcopying a recipe gives the new recipe the same subgroup as the old one, but if i try
Code: Select all
local recipe_subgroup = recipe.subgroup
local new_recipe_subgroup=recipe_subgroup.."-rcomb"
--check if subgroup for new recipe exists already
--create new subgroup if not
new_recipe.subgroup=new_recipe_subgroup
Re: cannot read recipe subgroup from data.raw
According to your code If recipe_subgroup comes back as nil, you get an error because concatenate nil and string is not possible.(Line 2)
If you get an error when loading, send us the error if it pass can you send us the newly named subgroup
Copying with deepcopy copy all the table, there is no reason you can't access the subgroup or comes back as nil (if it exists)
If you get an error when loading, send us the error if it pass can you send us the newly named subgroup
Copying with deepcopy copy all the table, there is no reason you can't access the subgroup or comes back as nil (if it exists)