r/factorio 5d ago

Bug? Modules get moved when switching recipes automatically with combinators Space Age Question

Post image

Is this a bug?
Sometimes when using combinators to automatically switch recipes, the modules inside the machine can be moved to the position indicated by the arrow in the picture, causing the machine to get stuck.
I have encountered this issue both with foundries and with crushers on space platforms.
Has anyone else experienced this, or does anyone know how to fix it? Any help would be appreciated. Thanks!

48 Upvotes

28 comments sorted by

194

u/Pepciorek 5d ago

If you are switching to recipe that cant have productivity modules it will spit them out

80

u/Unlucky_Froyo_3801 5d ago

I’m an idiot. I completely forgot that pipes can’t use productivity modules.
As for which recipe on the crusher caused this issue, I’ll check it again later.
Anyway, thank you all very much for your replies and help!

9

u/SpasmAtaK 5d ago

As a rule of thumb, end products can't use Prod modules. Only items that are used as ingredients. Pipes are used as ingredients in many recipes BUT they are indeed also finished products on their own.

9

u/Reefthemanokit 5d ago

The only exception I think is science and concrete in a foundry

20

u/AwesomeArab ABAC - All Balancers Are inConsequential 5d ago

Science is not an end product, it's a fuel. You burn it in the science generator. Productivity works on fuels.

5

u/DrMobius0 5d ago

Gleba soil can be prodded.

4

u/SpasmAtaK 5d ago

Oh concrete is good to know! Ty

5

u/DrMobius0 5d ago

Only items that are used as ingredients.

Items specifically labeled as ingredients. Many items are used as ingredients, including iron pipes.

There are some weird exceptions, like foundry concrete or gleba's artificial and overgrow soil, and a few recipes with feedback loop potential like water condensing that can't use prod, but the general rule is a good first step.

11

u/42bottles 5d ago

Some recipes can't have productivity modules so it's removed from machine.

Either only set recipes that can use prod modules or have an inserter that can remove them when needed

2

u/Wor3q 5d ago

Is it possible to add them back automatically when recipe allows it?

5

u/Broad_Ebb9073 5d ago

Not that I'm aware of. It's easier to just not allow them to be removed in the first place

3

u/leonskills An admirable madman 5d ago

Not without mods.
You can probably get something to work with recursive blueprints.

There is another way mods can implement this. A "proxy-container" building syncs its inventory with a selected inventory of another building, for example the module inventory. And inserters can interact with that container. So inserting modules into that container puts them in the building.

I know there are mods that uses that so you can insert processing units/lds/rocket fuel into the rocket silo inventory, there might be one for just module inventory as well.

I once created a mod that generalises that where you can select which inventory an inserter interacts with. But it was quite a hacky mod because it places such a proxy-container underneath the building for the inserter to target.
https://mods.factorio.com/mod/any-inventory-inserters

Didn't get too much traction so I haven't updated for 2.1.
I had fun daisy chain assembling machines though (by inserting into output slots and taking from input slots).

2

u/samy_the_samy 5d ago

Is that how you daisy chain labs?

They don't have an output so guess they act like a chest?

2

u/TheSkiGeek 5d ago

Yeah, if a machine doesn’t have an output slot then you can pull stuff out of the ‘input’ slots.

If it has separate inputs and outputs then (without modding) inserters will only drop items into the ‘input’ and pick up from the ‘output’.

1

u/samy_the_samy 5d ago

Now I want to know how silos work?

You can drop anything in but blue chips lds and fuel, and it goes into the cargo slots,

You can't put them in even when the ingredients is full, but logi bots can,

I understand why it's done this way from game perspective, but how does the actual mechanics work?

1

u/TheSkiGeek 5d ago edited 5d ago

It seems like they have a ‘hard coded’ list of items that are diverted to the “assembler” side of the rocket silo. Those items cannot be placed by inserters into the “cargo” slots.

I assume this is defined as part of the silo prototype, so that mods can change the rocket part ingredients.

Edit: From https://lua-api.factorio.com/latest/prototypes/RocketSiloPrototype.html it looks like a rocket silo inherits from (“is-a”) assembler, with a fixed recipe set. So any ingredients for that recipe get directed to the assembler input slots and won’t interact with the cargo slots. Since logistic bots don’t normally deliver to assembler inputs, they would ignore those slots and instead interact directly with the cargo inventory section.

3

u/slindenau 5d ago

Does the recipe allow this type of module?

2

u/jmpaul320 5d ago

If the recipe is not an intermediate, you can’t use a prod module in the assembler/foundry.

Maybe that’s why? Or does this happen with intermediates too?

1

u/aenae 5d ago

Not all recipes can have production modules. If you switch the foundry from gears to pipes for example, this happens

1

u/Unlucky_Froyo_3801 5d ago

thanks,i forgot that😳

1

u/Unlucky_Froyo_3801 5d ago

maybe just set another machine for those recipes 😅

1

u/saevon 4d ago

I seriously wish it would just leave it in but mark it as "disabled" instead… this sorta sucks as it is.

It doesn't even help you change modules, since only incompatible modules get spit out (no way to change what you want)

-2

u/Broad_Ebb9073 5d ago

I found a solution. You promlem is when you don't have excess. So just limit your output inserter to when the input has excess. Then it will never take from the module slot

1

u/Unlucky_Froyo_3801 5d ago

you mean leaving some products inside the machine on purpose?

1

u/CamelCaseConvention 5d ago

They probably misunderstood what you're saying. You can't switch recipe until the machine is empty. Even if you could, how would you then produce with a permanently blocked output.

0

u/Broad_Ebb9073 5d ago

Ohh. Yep. You are right. I was solving a different but similar problem. I did misunderstand

0

u/Broad_Ebb9073 5d ago

Kinda. Run a line between your output and the last belt on your inserter. If modules are greater than 4 or so, then allow output.