I have released a second video explaining how to add in the "stack amount request" that I alluded to in the video. ua-cam.com/video/GQiZGUVpCug/v-deo.html Functions you can use in parameterization: lua-api.factorio.com/latest/concepts/MathExpression.html Absolute value: abs() binary logarithm: log2() Return sign (or 0, for 0): sign() max & min of up to 255 arguments: max(), min()
Reminder to folks that you'll need the "Show parameters in selection lists" option enabled from Settings->Interface->Interaction to see the parameters when customising.
Factorio now looks more like my work than my actual work. I was doing this parameter stuff to schedule data pipelines in Databricks, with even a similar looking parameter tooltip.
yeah while I was watching, I was like "I feel like I should at least understand how to do it before I copy the blueprint" which is exactly what I thought when I would copy homework lmao
I think this can be further improved by using storage chest, which will allow bots to put items back into the mall when they're destroyed. Also I prefer to connect chest with inserter and set enable/disable conditions instead of relying on logistic network conditions. The advantages to that is that it works before bots & also that it separates each chests inventory, so if I have 5 assemblers crafting artillery shells, then each of them will craft 10 shells instead of having a total of 10 shells in my logistic network. Great tips on usage of min function and reusing it for other crafting machines.
You sir, just earned a sub. I'm a retired electronic technician (not an engineer) so just fine with math/troubleshooting, but I find some of the engineering side of this game you practically need a formal education for. I was able to follow this tutorial now problem, and even understand what the parameters were indicating. Thanks man! I'm actually encouraged to try some more recipes.
It's funny, because I solved the same problem of not being able to parametrize crafting ingredients by using a single arithmetic combinator wired to the output. Assemblers can send signals for their crafting ingredients, so I just multiply that number by some constant. It makes it easy to change if I decide to alter the request sizes. No need to paste another blueprint. I've also got a circuit condition to control the amount of items produced. That way, I can easily change the requests based on my logistics demands at the current moment.
I watched this the other day and it was so overwhelming. But it's early in the morning I am refreshed and it seems to be a whole lot better to understand. Thank you for a deep and dive into this method of your blueprints. It was awesome video you did explain it pretty good.
How would you go about changing the parameterized blueprint, if I want to extend an existing parameterized blueprint, without having to recreate all the parameters again?
Thanks for the tutorial! i finally got my paratensized quality mall (up to rare) setup with ease after some tinkering. If you use the 0 number with the rarity turned on it you can setup all the storage with ease aswell!
This is great, but there's another small tweak you can make to make it better if you use the logistics storage function on the inserter pulling out of the machine and set the amount to
I repeated those steps with slight adjustments to my own preference. This is absolutely brilliant and although complex it was explained very well. This is incredible that we can do this without any circuits, I actually made zero wires on my version. It all just reads and controls itself depending if logistic network have one stack of specified item. Also made a copy with additional question for number of stacks. +Sub
@@curious_blank I made a similar blueprint for myself, the process is as follows: 1. add a 7th parameter into request chest, make it also an ingredient of #0 (this way it won't ask player input when placing blueprint). It actually will be removed when you place the blueprint, since there's no 7th ingredient in recipes, but it allows you to add the variable itself. Too bad we can't just create a new parameter in blueprint editor. 2. make a count of #7 item a parameter with variable name 'stacks', and without formula. This will make this number a parameter when you place the blueprint. Note that if you set the default value to 1 and your #1 parameter count is also 1, saving the blueprint will merge these variables, so I recommend using count 101-106 for #1-#6 items so it would never mix with stack/item count, then set default value for this stack count to 1 (how many stacks you want by default). 3. In the end, for the variable which is actual item limit set formula like p0_s*stacks, don't forget to rearrange variables so your stacks variable (#7 count) is higher than item limit
I added a constant combinator with some random signal and used this as a parameter. After placing blueprint the combinator does exactly nothing and can be removed. You can find this and other parametrized blueprints on Factorioprints "SIMPLEST MALL - no circuits!" I posted a little book but don't have a link on the phone.
@@aatsiii the solution proposed by the op is also pretty good, just add a deconstruction planner as another request with a separate number and parameterize it as a stack size variable.
You can just add another item to the requester chest as a place holder for your stack count, it then gets removed when you select your crafted item, pastebin ID for the blueprint is 9iSCKfnc
Ohhhh! That's how you do it! I was using one of the new Selector Combinators to get the stack sizes! This will be SOOOO much easier! Thank you thank you thank you thank you THANK YOU!
Im glad that something like this exists even if im not likely to use it over the default shift-clicking reqs I can imagine the new combinator functions are gonna get wild
Seeing this for the first time in Nilaus' video was hella confusing, even as a programmer. I understood the general concept, but the UI for it looked weird. Now I understand it past the overall concept. Though how do you know what functions are available for you to use, like min() for example. Is it listed in-game anywhere, or do you just have to look it up online?
I found out from others in the beta discord, it sure isn't easy to find. lua-api.factorio.com/latest/concepts/MathExpression.html The only functions we can use are: Absolute value: abs() binary logarithm: log2() Return sign (or 0, for 0): sign() max & min of up to 255 arguments: max(), min()
Thank you so much for this video, I needed to make one of these myself, and I refuse to make and use blueprints that I don't understand / can make myself. Now I can continue on Vulcanus, hehe. TY VM !!!!
Came to see if there was anything I didn’t know about parametrization, but I’m glad I stayed until the end blew my mind by flipping the buildings to daisy chain pipe inputs…. I’d only recently discovered you could do that with buildings like the recycler and it hadn’t occurred to me to do it for pipe inputs.
one thing I added to my design is a arithmetic combinator that multiplies the required resources by a factor. this way some more items can be buffered in the input. and one combinator fits perfectly into the footprint
If the factor is always the same, you could just put that in the formulas, and skip the combinator altogether. Or even set up a variable to parameterize that you type in whenever you paste the blueprint, if you want it to be changeable. I love how many ways there are to solve these types of problems now!
I'm in early game yet, so I don't know if it is there somewhere already, but where can I find the list of functions that can be used in the formula inputs? For example you used min(), but how did you know you can use that ?
I found out from others in the beta discord, it sure isn't easy to find. lua-api.factorio.com/latest/concepts/MathExpression.html The only functions we can use are: Absolute value: abs() binary logarithm: log2() Return sign (or 0, for 0): sign() max & min of up to 255 arguments: max(), min()
I like to wire the requester chest to the assembler. Then check read ingredients on the assembler, and set requests on the requester chest. Now it will automatically request whatever the assembler needs. No need for more than the single parameter of what item is being made.
You need a combinator to multiply the requests though. Requesting just enough for one recipe is generally way less than the assembler needs. Though it does work!
So this is an incredibly modular version of a mall which can just create any thing you want for x seconds and be plopped anywhere within the logistic network. So this is esentially crafting with a bit more steps for the Lazy Bastard? Amazing! Although I do wonder what other benefits there's to parametrs outside of logistics networks, I think you can use them for trains as well, but other than that if you don't have bots unlocked yet they aren't that useful no?
@@shroomer3867 parameterization is quite powerful. It's also useful to make circuit controlled stuff! What's crazy though is you can play the game just fine without any of it! I love that we have these powerful tools but don't necessarily need them!
Great, thanks to his I managed to make a Parametised Trainstop. They really need to make the possible parameters and functions more visible. Maybe like a button that opens a list next in an attached window and/or better just is there by default so you can't miss it. Like where did you even find the function?
Thanks I was looking for exactly this. Also I like to use buffer chests instead of passive providers, and if you stick a value in there, you can have it auto request (I have it set to 40, buffer chests have 48 slots) stacks of whatever it is you are crafting so like when you replace a bunch of belt all the old belt goes back to the buffer instead of storage to wait to be requested again, and you won't make anymore until all the old stuff gets used! And the main reason I was looking for this is it takes so long to setup a bot mall when you have to configure the buffer chests to request 40 stacks and the output inserter to only place 1 stack in the buffer chest. Also I just thought of something, I always want to be able to request something to platforms incase I need something on a different planet, would that mean I use max(p0_s,p0_r) so if a rocket can hold more than 1 stack it will make up to 1 rocket worth?
I found out from others in the beta discord, it sure isn't easy to find. lua-api.factorio.com/latest/concepts/MathExpression.html The only functions we can use are: Absolute value: abs() binary logarithm: log2() Return sign (or 0, for 0): sign() max & min of up to 255 arguments: max(), min()
I put the max(p0_s,p0_r) because some ingredients (like electrical engines) have a smaller stack size (200) than the rocket capacity (1000). So they would never go to a rocket otherwise
Wouldn't replacing red chest with yellow chest and parametrizing the logistic filter on yellow chest to parameter of produced item be better? That way you have better storage organization and bots have easier time running between chests as the time for picking up products will be the same all the time.
I mean you could use yellow red or green depending on your personal logistics setup. I prefer using red, because logistics bots will utilize stuff in yellows before reds, so by putting produced items in reds, I will always use what's in storage first.
I'll copy a comment I made for someone else too: You could add another request to the requester chest (7 of say, deconstruction planners), set that value to be a variable (let's say x). And then in the formulas, you add a "*x" into the stack size part. so [p1_s*x]. The problem here is that then you have weird requests for deconstruction planners everywhere, so if that bothers you, you'd need to do like givani said and add a constant combinator into the build, that has some signal with "7" of it selected. Then you can use that 7 as the variable, and the actual signal won't do anything since you don't have it hooked up. Hope this wasn't too confusing. This stuff is REALLY hard to explain over text.
@@Krydax8 It's really weird to me that we have to throw a random constant combinator to have another variable in parameters. Hopefully Wube will add something like "Add new parameter" option in the future
*EDIT* I'm wrong - the formula is the same as Krydax8 states. The maths functions are commutative in this instance. The formulae are exactly equivalent. Doh! Leaving this here as exercise in humility... This is an absolutely great video, but I think maybe the formula is wrong for computing a minute of ingredients. Shouldn't it be p0_i1*(60/p0_t) You want to compute the number of item 0 produced per minute: so that's 60 seconds divided by the crafting time in seconds Then you want to multiply this number by the number of ingredient 1 in 1 craft. Which yields min(p1_s,p0_i1*(60/p0_t)) min(p2_s,p0_i2*(60/p0_t)) min(p3_s,p0_i3*(60/p0_t)) min(p4_s,p0_i4*(60/p0_t)) min(p5_s,p0_i5*(60/p0_t)) min(p6_s,p0_i6*(60/p0_t))
@@Krydax8 Oh God I think I'm making myself more confused looking at this now. Will look again tomorrow with fresh eyes. Really loved your vid - total game-changer in factorio.
I ran into an issue where attempting to change the crafting station from something like an assembler to an electromagnetic plant. If I don't select a crafting recipe the requester chest parameters are all set to a quantity of 1, which makes the parameter setup not copy over. This was easily fixed by creating a logistics group of parameters though. That way I can easily replace the crafting station, select parameter 0 as the output, and then open the requester chest and click the parameters logistics group, then you can take a copy of the assembler blueprint and select new contents.
I just tested in the newest version of factorio and I'm not having that issue. So I'm not sure where things are going wrong for you! But you found a good workaround it sounds like!
I have managed to do this by adding a constant combinator to the blueprint. You can set an arbitrary item here, with a amount not yet used. Configure the value (the numerical one) as a variable, so give it a name. I also made the default value 1 here. Then, use that variable in the output line, so "p0_s*variable". This should work
Yeah, you could add another request to the requester chest (7 of say, deconstruction planners), set that value to be a variable (let's say x). And then in the formulas, you add a "*x" into the stack size part. so [p1_s*x]. The problem here is that then you have weird requests for deconstruction planners everywhere, so if that bothers you, you'd need to do like givani said and add a constant combinator into the build, that has some signal with "7" of it selected. Then you can use that 7 as the variable, and the actual signal won't do anything since you don't have it hooked up. Hope this wasn't too confusing. This stuff is REALLY hard to explain over text.
@@Krydax8 I got it to work without the combinator, i basically just used the 6th value as it. i had to do some trial and error and i got something nice working for it. If you have somewhere i can share the string/ screenshots id be more than happy to.
hmm.. i am having problems, fallowed all stepts but when i put the bp down in the request it just shows Parameter 1, Parameter 2 etc... can't seem to find a fix
@krydax Im struggling to figure out a good way to parameterize the number of stacks of the output inserter into the active provider chest... currently, you have it set to 1 stack, but i cant figure out a way to parametrize that so that you specify a number to say how many stacks....how would i do that?
constant combinator with a dummy signal set to 7, use that as a variable in the parameterization menu ("X"), drag it above the spot you want to use it, then multiply p0_s by X
Where did you get all functions that can be used in formula? I'm trying to get value under 0 (p0_s * 48 (size of chest) * 4 (num of chests) * -1 (to pass it to combinator that will automatically call needed resources)) and my value is always something like 2.1G (max int value possible), but without * -1 everything works fine. And I don't know how to fix it without using another combinators to multiply needed values by -1.
check the pinned comments for the functions! As far as your particular problem, I honestly have no idea why its going to integer maximum. There's probably something going on that we're not aware of. Maybe formulas can't do negatives? Not really sure. I haven't played with negatives. Or there's some other issue. Try debugging by removing some terms or changing p0_s to something else, etc.
@@Krydax8 Thanks, I tried everything. The only problem is when all value becomes negative (even if i divide it by -1). Soo, I guess, it's formuals problem.
This doesn't seem to be working for me, even though I've copied exactly what you do. I can't set the parameters to be ingredients of parameter 0, which I have definitely set to be the solar panel. I click the ingredient of box and it just says nothing found :(
MizuhoChan@@MizuhoChan you need to change the solar panel to be parameter 0 (at the top) before you can change other parameters to be ingredients of it. It also needs to be set as a recipe in an assembler to allow other things to be set as ingredients.
Any idea how to get this to work with Foundry recipes? If I select iron pates for instance, it doesn't correctly set the recipe because the recipe is called "Casting iron" when inside a foundry, but there's also no way to actually select "Casting iron" when placing down the blueprint (it's not in the symbol list). This is interesting because if I use a constant combinator with iron plate signal, and then the foundry set to "Set Recipe", then it accurately sets the recipe as "Casting iron". Just wondering if there is a way to do it without using a constant combinator.
Hm. I'd really have liked to see how it works if the user sets the requested amount of stacks manually. I can't get this extra parameter without it ending up in the request logistic slot.
I used a request for deconstruction planners in the requester chest to then set that amount to a variable and you use that variable to multiply the stack limit of the output.
I don't believe it's possible to change out the assembler for a different machine now. Can't select the parameter variable for the new machines and all the formulas in the new BP are wiped.
this isn't working for me, I get as far as setting everything as a parameter and I cant sent "ingredient of" to parameter 0. Don't know what I'm doing wrong
You can just remove the request from the requester chest. As far as parameterizing it, you could just not have the 2nd ingredient, etc. But that will remove a different ingredient depending on the recipe.
You don't need to request enough for one craft. They'll bring 100, it'll get shoved in, they'll bring another 100, rinse and repeat. For anything where you just need some, this works great!
ok when you started to set up the requester chest. you have a tab that says unsorted, and it has the parameter signs in it. i dont have that tab so what am i missing?
Every time I try to set the parameters up on a simple device it literally just doesn't save it and breaks. No matter what I do it seems radically buggy. I know exactly what I want to do but it won't save in this list! it's infuriating
you could just put the parameter icon in when you create the initial layout so you dont have to actually put different items and press those parameter check boxes
How the f we are expected to know what functions/syntax these fields accept? I spent a good while googling and this is the first source I found on how to make a logical expression work there. I don't think any in-game tips actually clarify this...
@@Krydax8 Oh, I somehow even missed it. Thanks. So it's not actually that bad and it's only a handful of functions and more of an undocumented feature than actual part of the game. Fine, I guess.
The simplest way is to add another signal in a constant comginator (not connected to anything). Say, 7 fish. And then you set that to be a variable "x", and then you can multiply the stack size of the item by x.
@Krydax8 I had to go into the settings and check the parameters box now everything is working. When you put down the EMP plant you went in and set the plant to parameter to signal 0. I didn't have that option.
That's gonna be quite a lot more work and required circuits to design! I will probably tackle it at some point, but I haven't started figuring it out for myself yet in my own playthrough.
@@Krydax8 Not really? You can just wire an assembler to whatever sets requests. Like a Roboport, a silo or just a combinator. Use a second different color wire to have the assembler set the mats it needs from a requestor chest (you don't want the signal to bleed over). If you are not just wiring it to a Roboport to request what's needed for construction add a arithmetic combinator that *-1 the signal of the storage so you deduct whateve you have stored from what you want. You can also repeat this to read the requests of the constructor itself (using an extra combinator to read and forward the signal to avoid unwanted feedback) The new combinator can be used to index the requests (like set them to output the 0, 1 , 2 ,3 etc. signal) to split multiple requests to different assemblers. It's only complicated if you try to make it multilayered (though that's just a reapeating pattern of forwarding the request) and/or if you try to include liquids. A basic version just needs 2 wires for reading construction requests from a roboport + and arithmetic combinator to deduct existing stock if you read silo requests (optionally an extra arithmetic one to request more than 1 set of mats). This will work fine if you make sure your bot net has access to the mats it needs.
@@Zero-w1c ah. thats one way to do it. imma try it, thanks captain! @Krydax8 no problem, bro. its more fun to fail on my own then to fail tryin to replicate what others did lol
I enjoy the DLC so far. But they clearly depend on the community and YT to make guides for the game. There is no way you would make this setup based on the in-game information alone. Which kinda sucks. I want to play the game myslef and not just repeat what other people are doing. But then I would not be able to use some of the features... A small dilema for myself :)
I have released a second video explaining how to add in the "stack amount request" that I alluded to in the video. ua-cam.com/video/GQiZGUVpCug/v-deo.html
Functions you can use in parameterization:
lua-api.factorio.com/latest/concepts/MathExpression.html
Absolute value: abs()
binary logarithm: log2()
Return sign (or 0, for 0): sign()
max & min of up to 255 arguments: max(), min()
min(p1_s,p0_i1/p0_t*60)
min(p2_s,p0_i2/p0_t*60)
min(p3_s,p0_i3/p0_t*60)
min(p4_s,p0_i4/p0_t*60)
min(p5_s,p0_i5/p0_t*60)
min(p6_s,p0_i6/p0_t*60)
feels like stackoverflow. thanks
Praise the Omnissiah
@@BinarySecond you could extend it to have a minimum of one craft `max(p0_i1,min(p1_s,p0_i1/p0_t*60))`
I love how YT helpfully offers to translate it to English XD
many spanks!
Reminder to folks that you'll need the "Show parameters in selection lists" option enabled from Settings->Interface->Interaction to see the parameters when customising.
Thank you
goat
mvp
i was just struggling with this. came to see if anyone else has said something so I'm glad I saw this comment, thanks!
Thank you! I was wondering what I was missing.
this is gonna be one of those features that 1 years time people are gonna be asking how we even lived without it
Its only been a few weeks and I already feel like this
Factorio now looks more like my work than my actual work. I was doing this parameter stuff to schedule data pipelines in Databricks, with even a similar looking parameter tooltip.
yeah while I was watching, I was like "I feel like I should at least understand how to do it before I copy the blueprint" which is exactly what I thought when I would copy homework lmao
This simple game continues to blow my mind. Thank you
I think this can be further improved by using storage chest, which will allow bots to put items back into the mall when they're destroyed. Also I prefer to connect chest with inserter and set enable/disable conditions instead of relying on logistic network conditions. The advantages to that is that it works before bots & also that it separates each chests inventory, so if I have 5 assemblers crafting artillery shells, then each of them will craft 10 shells instead of having a total of 10 shells in my logistic network.
Great tips on usage of min function and reusing it for other crafting machines.
Thank you for posting this.. I’ve been waiting for this for a long time.
Thanks for making a separate video about this. Scrubbing through that live stream was a pain (:
Haha yeah I figured this would be a good one to get it's own video.
You sir, just earned a sub. I'm a retired electronic technician (not an engineer) so just fine with math/troubleshooting, but I find some of the engineering side of this game you practically need a formal education for. I was able to follow this tutorial now problem, and even understand what the parameters were indicating. Thanks man! I'm actually encouraged to try some more recipes.
It's funny, because I solved the same problem of not being able to parametrize crafting ingredients by using a single arithmetic combinator wired to the output. Assemblers can send signals for their crafting ingredients, so I just multiply that number by some constant. It makes it easy to change if I decide to alter the request sizes. No need to paste another blueprint.
I've also got a circuit condition to control the amount of items produced. That way, I can easily change the requests based on my logistics demands at the current moment.
I watched this the other day and it was so overwhelming. But it's early in the morning I am refreshed and it seems to be a whole lot better to understand. Thank you for a deep and dive into this method of your blueprints. It was awesome video you did explain it pretty good.
THAT is pure genius. Thank you. You have opened my eyes to parametrized blueprints.
How would you go about changing the parameterized blueprint, if I want to extend an existing parameterized blueprint, without having to recreate all the parameters again?
Thank you very much. This guide is very helpful, at first the parametrisation seems confusing and there isn't many guides about it yet
Definitely adding a couple of these on each planet before i leave for the next for remote management.
Thanks for the tutorial! i finally got my paratensized quality mall (up to rare) setup with ease after some tinkering.
If you use the 0 number with the rarity turned on it you can setup all the storage with ease aswell!
This is great, but there's another small tweak you can make to make it better if you use the logistics storage function on the inserter pulling out of the machine and set the amount to
I repeated those steps with slight adjustments to my own preference. This is absolutely brilliant and although complex it was explained very well. This is incredible that we can do this without any circuits, I actually made zero wires on my version. It all just reads and controls itself depending if logistic network have one stack of specified item. Also made a copy with additional question for number of stacks. +Sub
How did you set it so it asks you how many stacks you want?
@@curious_blank I made a similar blueprint for myself, the process is as follows:
1. add a 7th parameter into request chest, make it also an ingredient of #0 (this way it won't ask player input when placing blueprint). It actually will be removed when you place the blueprint, since there's no 7th ingredient in recipes, but it allows you to add the variable itself. Too bad we can't just create a new parameter in blueprint editor.
2. make a count of #7 item a parameter with variable name 'stacks', and without formula. This will make this number a parameter when you place the blueprint. Note that if you set the default value to 1 and your #1 parameter count is also 1, saving the blueprint will merge these variables, so I recommend using count 101-106 for #1-#6 items so it would never mix with stack/item count, then set default value for this stack count to 1 (how many stacks you want by default).
3. In the end, for the variable which is actual item limit set formula like p0_s*stacks, don't forget to rearrange variables so your stacks variable (#7 count) is higher than item limit
I added a constant combinator with some random signal and used this as a parameter. After placing blueprint the combinator does exactly nothing and can be removed. You can find this and other parametrized blueprints on Factorioprints "SIMPLEST MALL - no circuits!" I posted a little book but don't have a link on the phone.
@@aatsiii the solution proposed by the op is also pretty good, just add a deconstruction planner as another request with a separate number and parameterize it as a stack size variable.
You can just add another item to the requester chest as a place holder for your stack count, it then gets removed when you select your crafted item, pastebin ID for the blueprint is 9iSCKfnc
Ohhhh! That's how you do it! I was using one of the new Selector Combinators to get the stack sizes! This will be SOOOO much easier! Thank you thank you thank you thank you THANK YOU!
Im glad that something like this exists even if im not likely to use it over the default shift-clicking reqs
I can imagine the new combinator functions are gonna get wild
thanks for making such a clear and concise tutorial for such a useful feature.
earned my sub for sure
Seeing this for the first time in Nilaus' video was hella confusing, even as a programmer. I understood the general concept, but the UI for it looked weird. Now I understand it past the overall concept. Though how do you know what functions are available for you to use, like min() for example. Is it listed in-game anywhere, or do you just have to look it up online?
I found out from others in the beta discord, it sure isn't easy to find. lua-api.factorio.com/latest/concepts/MathExpression.html
The only functions we can use are:
Absolute value: abs()
binary logarithm: log2()
Return sign (or 0, for 0): sign()
max & min of up to 255 arguments: max(), min()
Absolute value: abs()
binary logarithm: log2()
Return sign (or 0, for 0): sign()
max & min of up to 255 arguments: max(), min()
Same, feels like Nilaus is rushing through to show as much content as possible in the shortest amount of time. This explanation is great!
Every factorio player should know this. Thanks for this.
Thank you so much for this video, I needed to make one of these myself, and I refuse to make and use blueprints that I don't understand / can make myself. Now I can continue on Vulcanus, hehe. TY VM !!!!
Glad to help!
Thanks so much for this! Now you can really build on fulgora without any problems and it's compact af.
This is very cool, automation within an automation
Came to see if there was anything I didn’t know about parametrization, but I’m glad I stayed until the end blew my mind by flipping the buildings to daisy chain pipe inputs….
I’d only recently discovered you could do that with buildings like the recycler and it hadn’t occurred to me to do it for pipe inputs.
I wish I could say I thought of it myself :P
@ what’s an original idea anyway? :P
This is the best guide video ever! This's exactly what I need! Thank you a lot!
Thank you! I didn't realize how much you could do with the formulas
Usually , I dont steal blueprints.
But this is beyond my paygrade to do by myself.
So ... thank you ... yoink !
one thing I added to my design is a arithmetic combinator that multiplies the required resources by a factor. this way some more items can be buffered in the input. and one combinator fits perfectly into the footprint
If the factor is always the same, you could just put that in the formulas, and skip the combinator altogether. Or even set up a variable to parameterize that you type in whenever you paste the blueprint, if you want it to be changeable.
I love how many ways there are to solve these types of problems now!
@@Krydax8 i just put a default factor of 10 (as a parameter).
and yes, the new blueprints are amazing!
Thats so cool. I didnt even know that was possable. I have been using bot malls for a long time but never done anything like that.
Thank you so much for this!
You're welcome!
this shit has been changing my life one blueprint at a time
This feature is so wonderful for future proofing. I can only imagine playing Nullius again with this feature.
Badass, concise. Thanks dogg
Fantastic explanation. Thank you so much.
This is actually really cool, thank you for this video!
This is so nice, thanks for making this video!
Thank you for this video! This UX is wild wtf were Wube thinking with this one.
I'm in early game yet, so I don't know if it is there somewhere already, but where can I find the list of functions that can be used in the formula inputs? For example you used min(), but how did you know you can use that ?
I found out from others in the beta discord, it sure isn't easy to find. lua-api.factorio.com/latest/concepts/MathExpression.html
The only functions we can use are:
Absolute value: abs()
binary logarithm: log2()
Return sign (or 0, for 0): sign()
max & min of up to 255 arguments: max(), min()
@@Krydax8 Thank you so much for this, both of you! Exactly the question I wanted to ask, and the answer I hoped to get! :)
I like to wire the requester chest to the assembler. Then check read ingredients on the assembler, and set requests on the requester chest. Now it will automatically request whatever the assembler needs. No need for more than the single parameter of what item is being made.
You need a combinator to multiply the requests though. Requesting just enough for one recipe is generally way less than the assembler needs. Though it does work!
So this is an incredibly modular version of a mall which can just create any thing you want for x seconds and be plopped anywhere within the logistic network.
So this is esentially crafting with a bit more steps for the Lazy Bastard? Amazing! Although I do wonder what other benefits there's to parametrs outside of logistics networks, I think you can use them for trains as well, but other than that if you don't have bots unlocked yet they aren't that useful no?
@@shroomer3867 parameterization is quite powerful. It's also useful to make circuit controlled stuff! What's crazy though is you can play the game just fine without any of it! I love that we have these powerful tools but don't necessarily need them!
Great, thanks to his I managed to make a Parametised Trainstop. They really need to make the possible parameters and functions more visible. Maybe like a button that opens a list next in an attached window and/or better just is there by default so you can't miss it. Like where did you even find the function?
Yeah it's definite a somewhat hidden feature. I think they debated a lot about even adding it into the game, but I love it!
Thanks I was looking for exactly this. Also I like to use buffer chests instead of passive providers, and if you stick a value in there, you can have it auto request (I have it set to 40, buffer chests have 48 slots) stacks of whatever it is you are crafting so like when you replace a bunch of belt all the old belt goes back to the buffer instead of storage to wait to be requested again, and you won't make anymore until all the old stuff gets used! And the main reason I was looking for this is it takes so long to setup a bot mall when you have to configure the buffer chests to request 40 stacks and the output inserter to only place 1 stack in the buffer chest. Also I just thought of something, I always want to be able to request something to platforms incase I need something on a different planet, would that mean I use max(p0_s,p0_r) so if a rocket can hold more than 1 stack it will make up to 1 rocket worth?
Correct. That will make one rockets worth!
I see this button and i ignore it, but it is a wonderful thing!!!!! Thanks for the explanation
Genius. Big brain moves
Great video, thanks for sharing.
Excellent guide, thank you
@Krydax how did you discover that you can use the "min" method in the formula? Is there a list of all available methods somewhere by any chance?
I found out from others in the beta discord, it sure isn't easy to find. lua-api.factorio.com/latest/concepts/MathExpression.html
The only functions we can use are:
Absolute value: abs()
binary logarithm: log2()
Return sign (or 0, for 0): sign()
max & min of up to 255 arguments: max(), min()
I put the max(p0_s,p0_r) because some ingredients (like electrical engines) have a smaller stack size (200) than the rocket capacity (1000). So they would never go to a rocket otherwise
Carlos-ux7gvux7gv yeah if the goal is to make things that might load a rocket, that's a good idea!
That is so smart! Thank you!
Just awesome!
Oh, this is cool, gonna try it.
Wouldn't replacing red chest with yellow chest and parametrizing the logistic filter on yellow chest to parameter of produced item be better? That way you have better storage organization and bots have easier time running between chests as the time for picking up products will be the same all the time.
I mean you could use yellow red or green depending on your personal logistics setup. I prefer using red, because logistics bots will utilize stuff in yellows before reds, so by putting produced items in reds, I will always use what's in storage first.
@@Krydax8 Ah got ya, I thought it was the other way around
Very usefull, thank you!
Thank you so much!
That's sick!
Great overview :) Could you comment more about setting a "how many stack sizes do you want?" parameter?
I'll copy a comment I made for someone else too:
You could add another request to the requester chest (7 of say, deconstruction planners), set that value to be a variable (let's say x). And then in the formulas, you add a "*x" into the stack size part. so [p1_s*x]. The problem here is that then you have weird requests for deconstruction planners everywhere, so if that bothers you, you'd need to do like givani said and add a constant combinator into the build, that has some signal with "7" of it selected. Then you can use that 7 as the variable, and the actual signal won't do anything since you don't have it hooked up.
Hope this wasn't too confusing. This stuff is REALLY hard to explain over text.
@@Krydax8 It's really weird to me that we have to throw a random constant combinator to have another variable in parameters. Hopefully Wube will add something like "Add new parameter" option in the future
@@Krydax8 It's a great explanation, thank you (sorry for spamming questions before trying to find an answer on here lol xD)
thank you 💚💚💚
DAMN, You good! THANKS A LOT!
Thank you. I was trying to figure this one out myself and failed miserably.
Very nice!
nice, thanks for sharing
*EDIT* I'm wrong - the formula is the same as Krydax8 states. The maths functions are commutative in this instance. The formulae are exactly equivalent. Doh! Leaving this here as exercise in humility...
This is an absolutely great video, but I think maybe the formula is wrong for computing a minute of ingredients.
Shouldn't it be
p0_i1*(60/p0_t)
You want to compute the number of item 0 produced per minute:
so that's 60 seconds divided by the crafting time in seconds
Then you want to multiply this number by the number of ingredient 1 in 1 craft.
Which yields
min(p1_s,p0_i1*(60/p0_t))
min(p2_s,p0_i2*(60/p0_t))
min(p3_s,p0_i3*(60/p0_t))
min(p4_s,p0_i4*(60/p0_t))
min(p5_s,p0_i5*(60/p0_t))
min(p6_s,p0_i6*(60/p0_t))
@@HydrogenAlpha the order doesn't matter for multiplication and division, so that's the same formula :D
@@Krydax8 Oh God I think I'm making myself more confused looking at this now. Will look again tomorrow with fresh eyes.
Really loved your vid - total game-changer in factorio.
@@Krydax8 Okay now I get it 🙂
Excellent.
I ran into an issue where attempting to change the crafting station from something like an assembler to an electromagnetic plant. If I don't select a crafting recipe the requester chest parameters are all set to a quantity of 1, which makes the parameter setup not copy over.
This was easily fixed by creating a logistics group of parameters though. That way I can easily replace the crafting station, select parameter 0 as the output, and then open the requester chest and click the parameters logistics group, then you can take a copy of the assembler blueprint and select new contents.
I just tested in the newest version of factorio and I'm not having that issue. So I'm not sure where things are going wrong for you! But you found a good workaround it sounds like!
er meh gerd. amazing what you can do in this game
I get as far as setting the stack size at 2:40, But when i click "ingredient of" It says nothing found.
having this same issue, would like a fix
"Move on with your life"
LMAO... what life?
Me watching this: wow! it's easy.
Me trying to build something with it: Wow! It doesn't work
Howdy, do you know how to add the parameter of asking how many stacks of a item we want that is being crafted?
I have managed to do this by adding a constant combinator to the blueprint. You can set an arbitrary item here, with a amount not yet used. Configure the value (the numerical one) as a variable, so give it a name. I also made the default value 1 here. Then, use that variable in the output line, so "p0_s*variable". This should work
Yeah, you could add another request to the requester chest (7 of say, deconstruction planners), set that value to be a variable (let's say x). And then in the formulas, you add a "*x" into the stack size part. so [p1_s*x]. The problem here is that then you have weird requests for deconstruction planners everywhere, so if that bothers you, you'd need to do like givani said and add a constant combinator into the build, that has some signal with "7" of it selected. Then you can use that 7 as the variable, and the actual signal won't do anything since you don't have it hooked up.
Hope this wasn't too confusing. This stuff is REALLY hard to explain over text.
@@Krydax8 I got it to work without the combinator, i basically just used the 6th value as it. i had to do some trial and error and i got something nice working for it. If you have somewhere i can share the string/ screenshots id be more than happy to.
thanks for the explanation
do you have a reference for all the possible mathematical commands besides +,-,/,* etc?
like the min(,) function youve used
Yeah check the pinned comment!
@@Krydax8 ty
Welp, time to redo my bot mall
Interesting, I just set requests via a circuit cable reading ingredients
hmm.. i am having problems, fallowed all stepts but when i put the bp down in the request it just shows Parameter 1, Parameter 2 etc... can't seem to find a fix
@krydax Im struggling to figure out a good way to parameterize the number of stacks of the output inserter into the active provider chest... currently, you have it set to 1 stack, but i cant figure out a way to parametrize that so that you specify a number to say how many stacks....how would i do that?
constant combinator with a dummy signal set to 7, use that as a variable in the parameterization menu ("X"), drag it above the spot you want to use it, then multiply p0_s by X
Where did you get all functions that can be used in formula? I'm trying to get value under 0 (p0_s * 48 (size of chest) * 4 (num of chests) * -1 (to pass it to combinator that will automatically call needed resources)) and my value is always something like 2.1G (max int value possible), but without * -1 everything works fine. And I don't know how to fix it without using another combinators to multiply needed values by -1.
check the pinned comments for the functions!
As far as your particular problem, I honestly have no idea why its going to integer maximum. There's probably something going on that we're not aware of. Maybe formulas can't do negatives? Not really sure. I haven't played with negatives. Or there's some other issue. Try debugging by removing some terms or changing p0_s to something else, etc.
@@Krydax8 Thanks, I tried everything. The only problem is when all value becomes negative (even if i divide it by -1). Soo, I guess, it's formuals problem.
my brain exploded
This doesn't seem to be working for me, even though I've copied exactly what you do. I can't set the parameters to be ingredients of parameter 0, which I have definitely set to be the solar panel. I click the ingredient of box and it just says nothing found :(
MizuhoChan@@MizuhoChan you need to change the solar panel to be parameter 0 (at the top) before you can change other parameters to be ingredients of it. It also needs to be set as a recipe in an assembler to allow other things to be set as ingredients.
Any idea how to get this to work with Foundry recipes? If I select iron pates for instance, it doesn't correctly set the recipe because the recipe is called "Casting iron" when inside a foundry, but there's also no way to actually select "Casting iron" when placing down the blueprint (it's not in the symbol list). This is interesting because if I use a constant combinator with iron plate signal, and then the foundry set to "Set Recipe", then it accurately sets the recipe as "Casting iron". Just wondering if there is a way to do it without using a constant combinator.
@@uwillbegme I didn't properly test this with foundries. So that might be the only way to do it, unfortunately.
Hm. I'd really have liked to see how it works if the user sets the requested amount of stacks manually. I can't get this extra parameter without it ending up in the request logistic slot.
I used a request for deconstruction planners in the requester chest to then set that amount to a variable and you use that variable to multiply the stack limit of the output.
I don't believe it's possible to change out the assembler for a different machine now. Can't select the parameter variable for the new machines and all the formulas in the new BP are wiped.
this isn't working for me, I get as far as setting everything as a parameter and I cant sent "ingredient of" to parameter 0. Don't know what I'm doing wrong
Do we know if we take an ingredient out of the parameter so we could direct insert say copper cables or gears?
You can just remove the request from the requester chest.
As far as parameterizing it, you could just not have the 2nd ingredient, etc. But that will remove a different ingredient depending on the recipe.
@@Krydax8 Cheers for the answer and thanks for the vid keep them coming.
1 stack of concrete isnt enough to craft a silo, need to max the min with craft amount
You don't need to request enough for one craft. They'll bring 100, it'll get shoved in, they'll bring another 100, rinse and repeat. For anything where you just need some, this works great!
ok when you started to set up the requester chest. you have a tab that says unsorted, and it has the parameter signs in it. i dont have that tab so what am i missing?
I believe that might just be a game setting.
I have a minimum of 48 stacks of everything.
Now I know why.
@@morwar_?
What do you remove to make the machine run continuously and I can just limit the provider chest. I just want automatic request.
Just don't set the solar panel limit on the inserter! Then you can just limit the chest
Every time I try to set the parameters up on a simple device it literally just doesn't save it and breaks. No matter what I do it seems radically buggy. I know exactly what I want to do but it won't save in this list! it's infuriating
I'd head to the factorio discord and ask for help there. It's hard to provide assistance via YT comments!
so i dont have the unsorted tab like you do. i went into a constant combinator and have a unsorted tab but no parameter settings. now i'm lost
@@hayzersolar you may need to go into settings to show the parameters.
@Krydax8 thanks it was the issue. I had to spend a few min but found it and turned it on.
you could just put the parameter icon in when you create the initial layout so you dont have to actually put different items and press those parameter check boxes
When a game isn’t a game any more…
How the f we are expected to know what functions/syntax these fields accept? I spent a good while googling and this is the first source I found on how to make a logical expression work there. I don't think any in-game tips actually clarify this...
They don't. I share this frustration with you. See my pinned comment for the full list.
@@Krydax8 Oh, I somehow even missed it. Thanks. So it's not actually that bad and it's only a handful of functions and more of an undocumented feature than actual part of the game. Fine, I guess.
Dat inserted won’t get stuck?
Nope. Why would they?
For some reason, i can never fill out "ingredient of:" its always emtpy
@@piotrduda8030 you have to have an assembler with the recipe set as a parameter and ABOVE the other rows. Rows can only see stuff above them.
How do I make it so I can select how many stacks I want it to limit (make)?
The simplest way is to add another signal in a constant comginator (not connected to anything). Say, 7 fish. And then you set that to be a variable "x", and then you can multiply the stack size of the item by x.
now when i replace the assembler with the em plant it diesn't give me the option to set the parameter. any help be awesome.
Not sure what you mean. You set the recipe in the em plant to parameter zero.
@Krydax8 I had to go into the settings and check the parameters box now everything is working. When you put down the EMP plant you went in and set the plant to parameter to signal 0. I didn't have that option.
how to make one that crafts requests and then diables when no requests are present?
That's gonna be quite a lot more work and required circuits to design! I will probably tackle it at some point, but I haven't started figuring it out for myself yet in my own playthrough.
@@Krydax8 Not really? You can just wire an assembler to whatever sets requests. Like a Roboport, a silo or just a combinator. Use a second different color wire to have the assembler set the mats it needs from a requestor chest (you don't want the signal to bleed over).
If you are not just wiring it to a Roboport to request what's needed for construction add a arithmetic combinator that *-1 the signal of the storage so you deduct whateve you have stored from what you want.
You can also repeat this to read the requests of the constructor itself (using an extra combinator to read and forward the signal to avoid unwanted feedback)
The new combinator can be used to index the requests (like set them to output the 0, 1 , 2 ,3 etc. signal) to split multiple requests to different assemblers.
It's only complicated if you try to make it multilayered (though that's just a reapeating pattern of forwarding the request) and/or if you try to include liquids.
A basic version just needs 2 wires for reading construction requests from a roboport + and arithmetic combinator to deduct existing stock if you read silo requests (optionally an extra arithmetic one to request more than 1 set of mats). This will work fine if you make sure your bot net has access to the mats it needs.
@@Zero-w1c "not really" ->proceeds to write 6 paragraphs. :) I think I stand by my point. It certainly is beyond the scope of the video I made here!
@@Zero-w1c ah. thats one way to do it. imma try it, thanks captain!
@Krydax8 no problem, bro. its more fun to fail on my own then to fail tryin to replicate what others did lol
I enjoy the DLC so far. But they clearly depend on the community and YT to make guides for the game. There is no way you would make this setup based on the in-game information alone. Which kinda sucks. I want to play the game myslef and not just repeat what other people are doing. But then I would not be able to use some of the features... A small dilema for myself :)
@@vetev I agree. The in game documentation needs to be quite a bit more comprehensive!