Allow setting recipies on factories before research

Moderator: ickputzdirwech

factoriouzr
Filter Inserter
Filter Inserter
Posts: 685
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Allow setting recipies on factories before research

Post by factoriouzr »

It would be great if you allowed setting unresearched recipes on factories before the research is ready, the factory just wouldn't produce the product. This would help with setting up the factories while the research is in progress, so by the time the research is done, the factory would be ready. This also affects importing blueprints using one of the available blueprint string type mods. If the research isn't ready and you import a blueprint and plop it down, the factory won't be set to produce the good specified in the blueprint, but if the research is ready, it will be set up correctly.
factoriouzr
Filter Inserter
Filter Inserter
Posts: 685
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: Allow setting recipies on factories before research

Post by factoriouzr »

I would really like this feature.

Thanks
User avatar
Deadly-Bagel
Smart Inserter
Smart Inserter
Posts: 1498
Joined: Wed Jul 13, 2016 10:12 am
Contact:

Re: Allow setting recipies on factories before research

Post by Deadly-Bagel »

A lot of the stuff I build is forward planning, such as research packs or advanced circuits, so I can plan out more of my base (so I don't come back and find I have no room for the next tier science). I don't find it too big a deal to need to go back and copy the recipe around but a visual would help plan and so I don't forget what is what later.

There's two problems I can think of, firstly this would confuse newbies. I can only craft a few things from my inventory but this machine can craft loads! I'll try to craft that, why isn't it working?? For consistency it's better to stay as it is. Secondly there is realism. As the engineer you are presumably programming each assembler to turn x into y, with the ability to store and copy this information. It doesn't make sense to be able to program these recipes before you even know the process, or for your assemblers to magically know what to do when the research is finished.

I'm not saying it shouldn't be done, just that these are things that should be thought of first.
Money might be the root of all evil, but ignorance is the heart.
User avatar
HL65536
Inserter
Inserter
Posts: 30
Joined: Sat Aug 20, 2016 8:21 pm
Contact:

Re: Allow setting recipies on factories before research

Post by HL65536 »

I would also like to have this.
For the newbie confusion problem i would suggest adding an option "show unresearched recipes" to the assembler/chemical plant gui that is off per default.
And realism - this game is not realistic: I can carry 100 trains in my pocket - no problem.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Allow setting recipies on factories before research

Post by ssilk »

Similar suggestion was also to place ghosts, that are no researched yet. Or filter items, that doesn't exists yet...
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Rseding91
Factorio Staff
Factorio Staff
Posts: 14337
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: Allow setting recipies on factories before research

Post by Rseding91 »

Setting the recipe is akin to crafting the recipe. Making it work otherwise would just waste CPU time having to check it constantly in the crafting machine update loop.
If you want to get ahold of me I'm almost always on Discord.
factoriouzr
Filter Inserter
Filter Inserter
Posts: 685
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: Allow setting recipies on factories before research

Post by factoriouzr »

Rseding91 wrote:Setting the recipe is akin to crafting the recipe. Making it work otherwise would just waste CPU time having to check it constantly in the crafting machine update loop.
Why would you have to check it constantly?

By your logic, right now you have to check if a recipe is set on the machine in your crafting loop before crafting it (ie. you can't craft null/nothing). How is this different then checking that the machine is "enabled" instead of recipe != null? Then the only time the enabled has to change is when you set a recipe and when a research is completed. Both of these are constant time operations that don't have to be checked in the crafting loop. When you set a recipe on a machine, you enable or disable the machine at that time based on if the item is researched or not. You also attach a listener at this time to the research that would enable crafting this item. Then when the research is complete, the listeners get informed in constant time and there is no looping though all factories or anything like that required.

It sounds like it wasn't implemented this way, but I remember you added a listener architecture in the past for inserters or something related like belts to optimize the performance. Please consider doing this for factories as well. This would add to gameplay and possibly speed up your crafting loop.
factoriouzr
Filter Inserter
Filter Inserter
Posts: 685
Joined: Sat Jun 06, 2015 2:23 am
Contact:

[0.15.2] Recipes not set on assembling mach. from blueprints

Post by factoriouzr »

Recipes are not set on assembling machines when placed from blueprints if the recipe is not yet researched.

Other entities like requester chests have their requests set to not yet researched items, same with filters on inserters. We should have the same behaviour for assembling machines and other factories. The current behaviour is inconsistent, confusing, and frustrating. When I place a blueprint and it's built (Ie. I have the factories, etc needed), the factories show up blank (they also show up blank in the placed ghost).

All factories should allow setting their recipes before the research is done, same as all other entities that can request, filter etc, have conditions etc.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: [0.15.2] Recipes not set on assembling mach. from blueprints

Post by ssilk »

Added to viewtopic.php?f=80&t=45635 Improvements for the Construction-Phase (Handling of Blueprints / Ghosts / Copy / Pre-Configuration)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
factoriouzr
Filter Inserter
Filter Inserter
Posts: 685
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: [0.15.2] Recipes not set on assembling mach. from blueprints

Post by factoriouzr »

Can this please be prioritized for 0.15. This is a big sore point in how blueprints work. Everything else has their filters, limits, requester slots set (eg logistics chests, interters, filter inserters etc), but factories don't have their recipes set. Just gray out the recipe picture if it's not researched and don't enable the factory if it's not researched, but allow the recipe to be set on the factories.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: [0.15.2] Recipes not set on assembling mach. from blueprints

Post by ssilk »

This is then a bug. Is there not already such a bug posted?
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Rseding91
Factorio Staff
Factorio Staff
Posts: 14337
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [0.15.2] Recipes not set on assembling mach. from blueprints

Post by Rseding91 »

ssilk wrote:This is then a bug. Is there not already such a bug posted?
It's not a bug, it's working this way by design.

Setting a recipe in an assembling machine is the same as allowing that recipe to be used. If you could load a blueprint with power armor 2 at the start of a map you could craft everything the game had to offer without ever researching the recipes.

So, this is not going to change. You can't make a ghost with a recipe you haven't unlocked because you haven't unlocked it yet.

Things like requester chests don't matter because they can request all day long but that doesn't make the items magically appear.
If you want to get ahold of me I'm almost always on Discord.
mophydeen
Filter Inserter
Filter Inserter
Posts: 529
Joined: Sun Nov 22, 2015 5:02 pm
Contact:

Re: [0.15.2] Recipes not set on assembling mach. from blueprints

Post by mophydeen »

Rseding91 wrote:
ssilk wrote:This is then a bug. Is there not already such a bug posted?
It's not a bug, it's working this way by design.

Setting a recipe in an assembling machine is the same as allowing that recipe to be used. If you could load a blueprint with power armor 2 at the start of a map you could craft everything the game had to offer without ever researching the recipes.

So, this is not going to change. You can't make a ghost with a recipe you haven't unlocked because you haven't unlocked it yet.

Things like requester chests don't matter because they can request all day long but that doesn't make the items magically appear.

I understand why you are doing it this way. But it's not blueprint friendly. A blueprint friendly way would be to allow the recipe to be set by the blueprint but not craftable in game till unlocked.
eg. I have a blueprint with all science (2bottles/color/sec) when I place it down at the start of a new game only the red/green are placed&set. The others are placed&not-set. After unlocking the recipe I have to manually set the assemblers.

possible solution:
- ghost recipes
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: [0.15.2] Recipes not set on assembling mach. from blueprints

Post by ssilk »

mophydeen wrote: - ghost recipes
That is also a suggestion made more than twice in the last weeks: To be able to set a receipe before it enabled.

In my eyes this is still more like a bug, not just an issue, cause it makes blueprints much more useless and is an unawaiteable issue....
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
User avatar
Lav
Filter Inserter
Filter Inserter
Posts: 384
Joined: Mon Mar 27, 2017 10:12 am
Contact:

Re: [0.15.2] Recipes not set on assembling mach. from blueprints

Post by Lav »

As someone who made a similar suggestion, I concur.

Please note that it's not necessary to enable unresearched recipes in assemblers. What is necessary is to enable unresearched recipes in ghost assemblers, highlight them to indicate they're not yet available, and prevent bots from automatically constructing them before the recipe is researched.

Essentially, remove restrictions on anything ghostly.

This ties into the suggestion to automatically transfer ghost settings onto items manually placed over the ghosts. If player is placing an item of the same type over the ghost, ghost settings/recipes should automatically transfer to the placed items if it's possible given player's research state. If it's not possible, then player should lose those settings/recipes, that's fair. Ideally, the game should be able to recognize non-identical items of the same type (placing Assembler II over a ghost Assembler III, or a fast inserter over stack one) - that's extra, but would make using late-game blueprints easier in the early game. Plus there won't be any need to create several blueprints of the same setup in different game stages.
factoriouzr
Filter Inserter
Filter Inserter
Posts: 685
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: [0.15.2] Recipes not set on assembling mach. from blueprints

Post by factoriouzr »

Rseding91 wrote:
ssilk wrote:This is then a bug. Is there not already such a bug posted?
It's not a bug, it's working this way by design.

Setting a recipe in an assembling machine is the same as allowing that recipe to be used. If you could load a blueprint with power armor 2 at the start of a map you could craft everything the game had to offer without ever researching the recipes.

So, this is not going to change. You can't make a ghost with a recipe you haven't unlocked because you haven't unlocked it yet.

Things like requester chests don't matter because they can request all day long but that doesn't make the items magically appear.

You may have designed it that way at some point, but now it's not working well with other game features (such as blueprints, both before blueprint sharing and especially now with blueprint sharing). It's inconsistent with other entities that do keep their settings and frustrates players.

I think you should take a softer stance on this as it's clearly not a desired way for it to work and, as I said, it's inconsistent with other blueprintable entities.

I don't see why it's such a big deal to add an "enabled" property to all factorioes that is not visible to the user. When you set a recipe on a factory (from ghost, placed by robots or set by the player), you simply check if the recipe is researched already (O(1) operation, constant time, fast, just a hash table lookup). If the reciipe is researched, you set "enabled=true) on that factory and the factory produces the good if all it's other conditions are met (ie. has resources). If the recipe is not yet researched, then you set "enabled=false" (or don't do anything, as the default is already false) and the factory doesn't produce anything. The only other thing to do is when a new research is done, just check all the factories with that recipe already set and set them to "enabled=true". This doesn't have to be done in one tick either, just do a few per tick (what you already do for roboports for eg as you don't check every entity every tick).

This is all fast, constant time operations, and shouldn't be difficult to implement (granted I don't know your code, but I assume you have objects for each assembly machine and other factories, as each can be configured independenty, and contain different resources at any one time, so you just add another property to one class). Right now you must have logic saying that if a recipe is not set, you disable the input fields and don't allow production from that machine. Thus that if statement just has to be changed to "if (enabled == true) { <...produce...>}". This is the same cost as the current check, so there is no performance hit.
factoriouzr
Filter Inserter
Filter Inserter
Posts: 685
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: [0.15.2] Recipes not set on assembling mach. from blueprints

Post by factoriouzr »

Can we have this implemented now that blueprints are being reworked/improved.

It's completely contradictory to allow placing blueprint ghosts of buildings, inserters, rails, lights, walls, gates, turrets etc that are not yet researched, yet not allow placing recipes in buildings that are not yet researched.

This feature will improve the game and is consistent with the way factorio is played. If a player has blueprinted a building with a recipe, and they place that blueprint down, in all cases, they want that blueprint set on that building. It should not be necessary for the player to constantly place down the same blueprints over and over after researches are done.
ethernal
Inserter
Inserter
Posts: 27
Joined: Fri Jan 05, 2018 7:07 am
Contact:

Allow blueprinting unresearched recepies in factories via option toggle

Post by ethernal »

TL;DR
Placing down the blueprint that has unresearched tech in the factory should show that tech with (obligatory) indication that it's not yet researched so you do not confuse the player.

What ?
Sorry I cannot provide the images at the moment.

idea is simple - currently if the tech is not researched and the blueprint is placed down with the factory making it places empty factory.
It should: place a factory with "ghost recipe" like it's done for modules. There must be an indication that this requires research to prevent "bugs" like "my blueprints are not being built". This is the only thing I can think of why it is not implemented. Also please allow users to ENABLE this behavior (disabled by default) see below why.

This would have to allow as well to select the recipe manually after the factory was built (so all items could be seen as unlocked) but only when option is enabled.I would also go as far as allow users to select options to enable unresearched tech in: none, blueprints, recipes, blueprints and recipes.
Why ?
With markets and bigger blueprints this is very annoying as ex. markets tend to have products up to end game so we end up re-plopping BP few times. It's inefficient and does not fit well in game were you should automate everything in my view.

Consistency and makes the game for experienced players less annoying - no need to lookup the blueprint to see what was supposed to be here or re-plop it again (and God forbid if I made changes to the plopped down blueprint and it's now completely messed up after re-plopping it, so I tear down whole market and redo it again - that is exaggeration I know but still happens all the time). It could be even beneficial to new players as when they do start using BP and get factories with no recipes it is also confusing.

I have seen: viewtopic.php?f=38&t=43208&p=253666&hil ... ed#p253628
But it was long time ago and NPE is evolving also what you did learn through many many FFFs is that giving people options to customize the game to their liking is the best option indeed - that is a bit more recent FFF.
Post Reply

Return to “Implemented in 2.0”