Currently, setting the maximum on a logistic request to "inf" does not actually behave as if the request has a maximum of infinity. Rather, it behaves as if there is no maximum set. The difference is relevant when Trash Unrequested is enabled, as a request from N to inf will auto trash anything over N, when logically it should disable trashing for that item (because trashing occurs when the amount in the inventory is greater than the maximum).
So my suggestion is that a new "none" value should be added and used as the default maximum when creating a new logistic request. Dragging the slider all the way to the right should still result in a value of "inf," which should be changed to disable trashing in all cases as you would expect it to.
Logistic requests - "inf" behaves as "none" rather than infinity
Moderator: ickputzdirwech
- IsaacOscar
- Filter Inserter
- Posts: 843
- Joined: Sat Nov 09, 2024 2:36 pm
- Contact:
Re: Logistic requests - "inf" behaves as "none" rather than infinity
So your "none" would differ from 0?
I think the default maximum should just equal the minimum, and make inf the same as 2^31-1 (or is it 2^32 - 1?)
I think the default maximum should just equal the minimum, and make inf the same as 2^31-1 (or is it 2^32 - 1?)
Re: Logistic requests - "inf" behaves as "none" rather than infinity
"None" would work exactly the way "inf" currently works, which is that if Trash Unrequested is disabled the item is never trashed, and if it's enabled anything above the minimum is trashed.
"Inf" being the same as 2^32 - 1 is how it should work, but it currently doesn't work that way if Trash Unrequested is enabled.
"Inf" being the same as 2^32 - 1 is how it should work, but it currently doesn't work that way if Trash Unrequested is enabled.
- IsaacOscar
- Filter Inserter
- Posts: 843
- Joined: Sat Nov 09, 2024 2:36 pm
- Contact:
Re: Logistic requests - "inf" behaves as "none" rather than infinity
Sorry, I meant people will fet confused between "none" and 0.nzer wrote: Thu Nov 21, 2024 10:56 pm "None" would work exactly the way "inf" currently works, which is that if Trash Unrequested is disabled the item is never trashed, and if it's enabled anything above the minimum is trashed.
"Inf" being the same as 2^32 - 1 is how it should work, but it currently doesn't work that way if Trash Unrequested is enabled.
Also is there a use case where you would want "none" instead of setting the maximum to equal the minimum?
Re: Logistic requests - "inf" behaves as "none" rather than infinity
I mean, it's for the maximum. I don't think people will get confused between "maximum of 0" and "no maximum."IsaacOscar wrote: Thu Nov 21, 2024 11:16 pmSorry, I meant people will fet confused between "none" and 0.
Also is there a use case where you would want "none" instead of setting the maximum to equal the minimum?
And from reading other threads about this, a lot of people apparently like that they can use Trash Unrequested as an on demand "trash down to minimum" button. I don't really get it, but to each their own.
-
- Burner Inserter
- Posts: 13
- Joined: Thu Oct 31, 2024 7:52 pm
- Contact:
Re: Logistic requests - "inf" behaves as "none" rather than infinity
To whom it may concern.
Just came across this issue. I quickly added some requests for boilers as "from 0 to inf" with goal of refactoring my power plant. I wanted to prohibit robots from immediately taking away picked up machines. Well, it didn't work. I had to manually set the maximum limit to some arbitrary finite value.
I'd say that the behaviour doesn't make sense. Technically, infinity is bigger than any number and thus any amount of items in inventory should be considered correct.
But logic aside, this is UI and users want to be able to do everything and also have clear interface. So there's option for some people to use "trash unrequested" as "reset to minimum" when they use "inf". And there's option to keep surplus within range when maximum is finite. I can't say this is intuitive UI but I definitely appreciate simplicity.
Just came across this issue. I quickly added some requests for boilers as "from 0 to inf" with goal of refactoring my power plant. I wanted to prohibit robots from immediately taking away picked up machines. Well, it didn't work. I had to manually set the maximum limit to some arbitrary finite value.
I'd say that the behaviour doesn't make sense. Technically, infinity is bigger than any number and thus any amount of items in inventory should be considered correct.
But logic aside, this is UI and users want to be able to do everything and also have clear interface. So there's option for some people to use "trash unrequested" as "reset to minimum" when they use "inf". And there's option to keep surplus within range when maximum is finite. I can't say this is intuitive UI but I definitely appreciate simplicity.
Re: Logistic requests - "inf" behaves as "none" rather than infinity
Presumably you had "Trash unrequested items" enabled (otherwise this would have done nothing). "Trash unrequested" does not mean "trash anything over the maximum" because anything over the maximum is *always* trashed regardless of whether "Trash unrequested" is enabled or not - it means "trash everything except exactly what i am requesting right now".Niedzwiedzislaw wrote: Wed Jan 22, 2025 12:18 am Just came across this issue. I quickly added some requests for boilers as "from 0 to inf" with goal of refactoring my power plant. I wanted to prohibit robots from immediately taking away picked up machines. Well, it didn't work. I had to manually set the maximum limit to some arbitrary finite value.
The current UI presents the two numbers as a minimum and maximum because it solved the problem of people being able to accidentally set the autotrash threshold to *less* than the request amount (they used to be two entirely separate UI widgets and nothing stopped you doing this, which resulted in silly bot behavior), but the behavior is still that what looks like a "minimum" is the actual request amount, and the "maximum" is the autotrash threshold - two separate behaviors configured in the same place for UI convenience.
-
- Burner Inserter
- Posts: 13
- Joined: Thu Oct 31, 2024 7:52 pm
- Contact:
Re: Logistic requests - "inf" behaves as "none" rather than infinity
I think it's a little bit more nuanced than you described. Certain configurations allow you to keep only minimum requested items while others just make sure to keep it under maximum.torne wrote: Wed Jan 22, 2025 1:16 am Presumably you had "Trash unrequested items" enabled (otherwise this would have done nothing). "Trash unrequested" does not mean "trash anything over the maximum" because anything over the maximum is *always* trashed regardless of whether "Trash unrequested" is enabled or not - it means "trash everything except exactly what i am requesting right now".
I made a graph:
Re: Logistic requests - "inf" behaves as "none" rather than infinity
Ah, you are correct, sorry! I had never noticed that case before, and I must have tested it wrong.
So, yeah, "trash unrequested" does handle requested items with no autotrash threshold differently than requested items with a specific autotrash threshold, and thus the two thresholds are not handled entirely independently of each other like I said.
My expectations were still *different* than the others in this thread, though. The other posters (and your "what one could expect" flowchart) assumed that "trash unrequested" would only affect the handling of items that don't appear in the logistics section *at all* and that it would otherwise just treat the two defined numbers as an upper and lower bound. But, I was surprised in the other direction: I expected the bots to throw away everything except the minimum in all cases (where the minimum for unlisted items is zero), because I still think of them as being a separate request amount and autotrash threshold like it used to be.
I think the current behavior is quite reasonable, though: if I've explicitly specified a range then it does make sense to always respect that range even when "trash unrequested" is turned on (even though that's not what I assumed would happen), but I would find it extremely annoying if "trash unrequested" actually ignored items with no explicitly set maximum.
Almost all of my personal logistics requests either have no maximum (construction materials where I want to keep some around but if I temporarily have more then that's probably fine), or have a maximum of zero (wood, ore, etc), and I only have a few things that I set a range on (like coal early-game where I don't want to constantly accumulate more in my inventory from messing around with belts, but I do want to keep a stack or two around to use as fuel for any vehicle I plop down). If my inventory gets too full because I've picked up a lot of excess building materials, then I toggle "trash unrequested" on for a moment, let all the excess get moved to trash slots, then turn it back off again right away.
If "trash unrequested" just did nothing for items with no maximum then that would make it impossible to get the effect I want: if I set a very high number for every item then I'd have no way to get rid of them sensibly when my inventory was full, and if I set a lower limit for every item then items would start getting autotrashed when in the middle of cut&pasting a large build. The same applies to the default maximum being the same as the minimum; I'd just have to change virtually all my requests back to having an infinite maximum.
Having both "none" and "infinity" also seems like it would be very confusing ; I think "none means trash unrequested throws away everything but the minimum, but normally nothing gets trashed at all; infinite means this item never gets trashed under any circumstances" is even harder to understand than the current behavior, because in most contexts saying "there is no maximum" and "the maximum is infinity" seem like they should mean the same thing.
I think the expectation of the game here is "usually you would only turn trash unrequested on temporarily, and if you leave it on all the time then it's up to you to define a specific maximum limit for every item", and that works fine for players who use the system the way I do; I suspect that is a fairly common way to use it, especially for players who played with the old logistics UI where these were more separated. There's probably some way to improve the tooltips/etc here to make it clearer what the behavior actually is, still.
So, yeah, "trash unrequested" does handle requested items with no autotrash threshold differently than requested items with a specific autotrash threshold, and thus the two thresholds are not handled entirely independently of each other like I said.
My expectations were still *different* than the others in this thread, though. The other posters (and your "what one could expect" flowchart) assumed that "trash unrequested" would only affect the handling of items that don't appear in the logistics section *at all* and that it would otherwise just treat the two defined numbers as an upper and lower bound. But, I was surprised in the other direction: I expected the bots to throw away everything except the minimum in all cases (where the minimum for unlisted items is zero), because I still think of them as being a separate request amount and autotrash threshold like it used to be.
I think the current behavior is quite reasonable, though: if I've explicitly specified a range then it does make sense to always respect that range even when "trash unrequested" is turned on (even though that's not what I assumed would happen), but I would find it extremely annoying if "trash unrequested" actually ignored items with no explicitly set maximum.
Almost all of my personal logistics requests either have no maximum (construction materials where I want to keep some around but if I temporarily have more then that's probably fine), or have a maximum of zero (wood, ore, etc), and I only have a few things that I set a range on (like coal early-game where I don't want to constantly accumulate more in my inventory from messing around with belts, but I do want to keep a stack or two around to use as fuel for any vehicle I plop down). If my inventory gets too full because I've picked up a lot of excess building materials, then I toggle "trash unrequested" on for a moment, let all the excess get moved to trash slots, then turn it back off again right away.
If "trash unrequested" just did nothing for items with no maximum then that would make it impossible to get the effect I want: if I set a very high number for every item then I'd have no way to get rid of them sensibly when my inventory was full, and if I set a lower limit for every item then items would start getting autotrashed when in the middle of cut&pasting a large build. The same applies to the default maximum being the same as the minimum; I'd just have to change virtually all my requests back to having an infinite maximum.
Having both "none" and "infinity" also seems like it would be very confusing ; I think "none means trash unrequested throws away everything but the minimum, but normally nothing gets trashed at all; infinite means this item never gets trashed under any circumstances" is even harder to understand than the current behavior, because in most contexts saying "there is no maximum" and "the maximum is infinity" seem like they should mean the same thing.
I think the expectation of the game here is "usually you would only turn trash unrequested on temporarily, and if you leave it on all the time then it's up to you to define a specific maximum limit for every item", and that works fine for players who use the system the way I do; I suspect that is a fairly common way to use it, especially for players who played with the old logistics UI where these were more separated. There's probably some way to improve the tooltips/etc here to make it clearer what the behavior actually is, still.