I would suggest updating that to wiki.
I found some items that recycle to itself but it is mostly by luck/misstake

Biolab
Biter Egg
What are another items that recycle to itself? I haven't found a list..
They're made in chemical plants, but the chemical reaction takes place when they're used, not in their manufacture. (Reusable batteries, not disposable ones.) That's how it makes sense to me. (If anything, I think batteries should just be made in assemblers.CyberCider wrote: Mon Nov 11, 2024 6:43 am batteries are an exception to rule 1! They are made in chemical plants, but can be recycled.
Then I double-checked other chemical plant recipes than batteries, and ended up more confused :BlueTemplar wrote: [2.0.21] Tungsten Carbide uses a simplified recycling recipe instead of its normal one
AFAIK the only items that have a simplified recycling process, by which items are recycled into themselves rather than their components, are :
1.) the results of furnace smelting recipes : iron, copper, steel... (the foundry isn't a furnace)
2.) items which don't have (solid) items as ingredients in their basic recipes : holmium plates, biter eggs, all the ores, solid fuel, spoilage...
3.) items which don't have a basic recipe (only alternative recipes or no recipes) : ice, (fish?), all the ores, solid fuel, spoilage...
(I guess in game logic it's more something like a single rule, and is the other way around ?
I.) To use complex recycling, by which ingredients rather than the item itself are returned, an item must have a basic recipe inside a machine with a configurable recipe selector, and that basic recipe must require at least one (solid) item.)
The only other item that seems to break these recycling rules, and also gets a simplified recycling recipe is Superconductor :
2.0.7: Superconductors recyclable?
And the reason given for both :But in both cases, this exception, if kept, should be probably communicated to the player (hence the 'bug' category).V453000 wrote:The reason they aren’t is because all tier 3 modules have their unique ingredient not recycle into ingredients but into itself. We could revisit for the suprconductor though.
Also :This is wrong (see above).Lochar wrote: [...]
The four tier 3 modules components are spoilage, biter eggs, tungsten carbide, and Superconductors. Of the four of those, only Superconductors comes from a non smelting/chemistry(biology) item so the Recycler seems like it should give back it's ingredients, rather than act as if Superconductors came out of a smelting/chemistry recipe.
But this is a misconception directly spelled out in the game«Chemistry» to mean only items with no (solid) ingredients is quite misleading :The recycler reverses most processes, except smelting and chemistry.
- A bunch of recipes are made in the chemical plant(s), but
thanI.) To use complex recycling, by which ingredients rather than the item itself are returned, an item must have a basic recipe inside a machine with a configurable recipe selector, and that basic recipe must require at least one (solid) item.
(multi-result incompatibility added, thanks for reminding me)To use complex recycling, by which ingredients rather than the item itself are returned, an item must have a basic recipe inside a machine with a configurable recipe selector, and that basic recipe must require at least one (solid) item and only output a single (solid) item.
Code: Select all
if recipe.category == "recycling" then return end
Code: Select all
-- Allow recipes to opt-out
if recipe.auto_recycle == false then return end
Code: Select all
if recipe.subgroup == "empty-barrel" then return end
Code: Select all
if recipe.category == "smelting" then return end
Code: Select all
if recipe.category == "chemistry" then return end
Code: Select all
if recipe.category == "chemistry-or-cryogenics" and recipe.name ~= "battery" then return end
Code: Select all
space-age/base-data-updates.lua:data.raw.recipe["sulfuric-acid"].category = "chemistry-or-cryogenics"
space-age/base-data-updates.lua:data.raw.recipe.sulfur.category = "chemistry-or-cryogenics"
space-age/base-data-updates.lua:data.raw.recipe["plastic-bar"].category = "chemistry-or-cryogenics"
space-age/base-data-updates.lua:data.raw.recipe.explosives.category = "chemistry-or-cryogenics"
space-age/base-data-updates.lua:data.raw.recipe.battery.category = "chemistry-or-cryogenics"
Code: Select all
if recipe.category == "crushing" then return end
Code: Select all
local recycling_metallurgy = {["big-mining-drill"]=true, ["turbo-transport-belt"]=true, ["turbo-underground-belt"]=true, ["turbo-splitter"]=true}
if recipe.category == "metallurgy" and recycling_metallurgy[recipe.name] == nil then return end
Code: Select all
if recipe.category == "organic" then return end
Code: Select all
category = "organic-or-assembling"
Code: Select all
if recipe.category == "cryogenics" and recipe.name ~= "railgun-turret" and recipe.name ~= "railgun" and recipe.name ~= "cryogenic-plant" and recipe.name ~= "fusion-reactor" and recipe.name ~= "fusion-generator" then return end
Code: Select all
if string.find(recipe.name, "science") and string.find(recipe.name, "pack") then return end
Code: Select all
-- Items which go into T3 modules recycle into themselves
if recipe.name == "tungsten-carbide" then return end
if recipe.name == "superconductor" then return end
Code: Select all
if recipe.name == "biolab" then return end
Code: Select all
-- Allow recipes to opt-out
if recipe.auto_recycle == false then return end
Code: Select all
grep -R "auto_recycle = false" | wc -l
Code: Select all
space-age/base-data-updates.lua:data.raw.recipe.sulfur.auto_recycle = false
space-age/base-data-updates.lua:data.raw.recipe.landfill.auto_recycle = false
space-age/base-data-updates.lua:data.raw.recipe["copper-plate"].auto_recycle = false
space-age/base-data-updates.lua:data.raw.recipe["iron-plate"].auto_recycle = false
space-age/base-data-updates.lua:data.raw.recipe["uranium-processing"].auto_recycle = false
space-age/base-data-updates.lua:data.raw.recipe["kovarex-enrichment-process"].auto_recycle = false
space-age/base-data-updates.lua:data.raw.recipe["nuclear-fuel-reprocessing"].auto_recycle = false
space-age/base-data-updates.lua:data.raw.recipe["uranium-fuel-cell"].auto_recycle = false
space-age/base-data-updates.lua:data.raw.recipe["plastic-bar"].auto_recycle = false
That refers to the fluid barrel emptying recipes (I.e. those that take a filled barrel, and produce a fluid and an empty-barrel). Of course this exclusion is redundant.BlueTemplar wrote: Tue Nov 26, 2024 5:24 pmI don't understand what this is about, filled barrels recycle into empty barrels (and empty barrels into steel) just fine ??Code: Select all
if recipe.subgroup == "empty-barrel" then return end
Code: Select all
recipe.ingredients = {{type = "item", name = item.name, amount = 1, ignored_by_stats = 1}}
recipe.results = {{type = "item", name = item.name, amount = 1, probability = 0.25, ignored_by_stats = 1}}
That may be because things with no recipe recycle to themselves (see https://github.com/wube/factorio-data/b ... es.lua#L12)BlueTemplar wrote: Tue Nov 26, 2024 10:35 pm Spoilage itself follows simple recycling too (it doesn't have any recipe !), but where is that logic located in the files ??
Hmm, but it actually is a complex recipe : if it was a simple recipe, they would return filled barrels, not empty ones !IsaacOscar wrote: Tue Nov 26, 2024 11:17 pmThat refers to the fluid barrel emptying recipes (I.e. those that take a filled barrel, and produce a fluid and an empty-barrel). Of course this exclusion is redundant.BlueTemplar wrote: Tue Nov 26, 2024 5:24 pmI don't understand what this is about, filled barrels recycle into empty barrels (and empty barrels into steel) just fine ??Code: Select all
if recipe.subgroup == "empty-barrel" then return end
I honestly don't know why recycling is par of the quality mod when the code shows no relation between the two, I reckon the recycler should be in space age with all the other planet specific buildingsBlueTemplar wrote: Wed Nov 27, 2024 10:44 am Ah, thanks.
Sigh, it's a shame this is hidden in data-updates... (the reason being, that complex recycling seems to actually require that 'mod' ?!)
Same, but you can always use it on a separate save if you're curios about specific recycling recipes.BlueTemplar wrote: Wed Nov 27, 2024 10:44 am
Thanks a lot for the mod, but I'm playing vanilla for my first SA game.
Hmm after-reading https://github.com/wube/factorio-data/b ... ng.lua#L75, it seems that if a recipe has multiple outputs, as long as only one of them is not a fluid, it can be recycled. Other than barrel emptying, are there any such recipes?BlueTemplar wrote: Wed Nov 27, 2024 10:44 am Hmm, but it actually is a complex recipe : if it was a simple recipe, they would return filled barrels, not empty ones !
that looks like the devs didn't intend that behaviour, but don't care about fixing it as its the mods fault (i.e. there shouldn't be any items in vanilla thar can't be inserted into a recycling machine)BlueTemplar wrote: Wed Nov 27, 2024 12:27 pm BTW, you say, «can be recycled» to mean «has a complex recycling recipe», but there also seem to be cases where items cannot be recycled at all : obviously fluids, but then also it's seems that mods can also screw it up (or deliberately design it like this ?) and end up with no recycling recipes at all even for solid items :
viewtopic.php?f=23&t=122635
Yes you are right, modders can also change all the recycling recipes if they want, e.g. to allow recycling fluids.BlueTemplar wrote: Wed Nov 27, 2024 12:38 pm In case there was a misunderstanding, that bit was about the modder : I meant a modder could design it like this (even if this one did not).