[2.0.15] "Custom minimum payload" treated as absolute value not minimum

Bugs that are actually features.
nyctef
Manual Inserter
Manual Inserter
Posts: 3
Joined: Sun Nov 03, 2024 3:06 pm
Contact:

[2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by nyctef »

I'm currently working on delivering Gleba science back to Nauvis

Setup:

on Gleba I have a rocket silo with the science being directly inserted into the rocket inventory section

on the space platform I have a request for between 300 and ".inf" agricultural science, with a "Custom minimum payload" set to 300. (I chose 300 since that was roughly the amount produced during one platform roundtrip, and we want to keep the platform moving for obvious reasons)

Observed behavior:

This behaves as expected if the platform arrives and there's less than 300 science available in the silo: the platform waits until 300 is available, then receives the rocket and departs back to Nauvis.

However, if there's more than 300 science in the rocket silo inventory at the point the platform arrives, then still only 300 is sent on the rocket.

Expected behavior:

Due to the wording "Custom minimum payload", when the rocket departs from the silo I would expect it to carry as much science to the platform as possible (up to the 1000 per-rocket limit)
Ext3h
Long Handed Inserter
Long Handed Inserter
Posts: 81
Joined: Mon May 19, 2014 12:40 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Ext3h »

That's actually behaving as intended.

Your request is only for 300 units, and the rocket will only ever contain more if the minimum payload is more than the requested amount. E.g. if you still had 299 units in inventory, then you'd still get a rocket with another 300 and end up with 599 units.

300-inf in any logistic system will always try to achieve the lowest possibly number above or equal to the minimum.

What you should be doing, is instead setting the request for the highest number your platform can carry, minimum payload to the lowest amount you are willing to send a rocket for, and then formulate your conditions (possibly by circuit network) to depart when having received a delivery of any size.
nyctef
Manual Inserter
Manual Inserter
Posts: 3
Joined: Sun Nov 03, 2024 3:06 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by nyctef »

Thanks! I changed the settings as you suggested and it seems to be doing the right thing now - I didn't realise it was the logistic request that was actually the problem.

(for completeness's sake:

- switched rocket request from 300-inf to 1k-1k
- switched minimum payload from 300 to 200
- changed the rocket departure condition from "all requests satisfied" to "science > 0")

I feel like this could maybe made a bit clearer somehow, but I don't have any good ideas so happy to close as not a bug for now :)
Ralfinator
Long Handed Inserter
Long Handed Inserter
Posts: 72
Joined: Sun Jun 26, 2016 9:37 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Ralfinator »

I also ran into this behavior, and find it quite confusing and frustrating.
300-inf in any logistic system will always try to achieve the lowest possibly number above or equal to the minimum.
The thing is, if I set "600-inf" on my rocket, it does *not* try to achieve the lowest number above or equal the minimum in a reasonably efficient way. It sends up a rocket with much fewer items than that. This is as if in a robot logistic network, robots would transfer one item at a time even when robot capacity is higher. So the analogy with "300-inf" in other logistic networks does not really hold.
witched rocket request from 300-inf to 1k-1k
This does help to avoid overloading the space platform, but it will send up way too many items and then send the rest down again, which is quite silly. :/
Muche
Smart Inserter
Smart Inserter
Posts: 1006
Joined: Fri Jun 02, 2017 6:20 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Muche »

Ralfinator wrote: Sun Feb 16, 2025 8:14 am This is as if in a robot logistic network, robots would transfer one item at a time even when robot capacity is higher.
If the source chest has one item only, a logistic robot will pick up only that item. It will not go to the neighbor chest to pick up three more items to fill up its capacity.
Thus robots have "custom minimum payload" one.
Ralfinator
Long Handed Inserter
Long Handed Inserter
Posts: 72
Joined: Sun Jun 26, 2016 9:37 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Ralfinator »

Rockets are not robots though so I don't quite follow.

It seems that "custom minimum payload" has two effects:
- It makes the request put in the rocket silo smaller, e.g. in my report, the request is for 360 calcite instead of the usual 500.
- It makes it so that the rocket launches early, before the request is fully satisfied, as long as the minimum payload size is reached. This is not visible anywhere in the rocket silo UI; this looks like a regular request for 360 items but actually it is not.

I like the first part, but I'd prefer if the second part did not happen -- this should work like a regular request for 360 calcite, i.e., only launch the rocket once 360 calcite are loaded.
Muche
Smart Inserter
Smart Inserter
Posts: 1006
Joined: Fri Jun 02, 2017 6:20 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Muche »

The first part (requesting missing amount only) is how a (regular) request works.

Indeed, it doesn't seem to be mentioned in the rocket silo's request tooltip.

However, once the minimum amount is reached within the rocket inventory, trying to wait for some surplus amount, up to min(rocket capacity, request), could run into issues similar to Space platforms with satisfied departure conditions should stop queuing rockets to fulfill requests.
That is, the item is being slowly produced, bots transport it to the rocket. By the time it's inserted into the rocket, another item is produced and starts being transported.

Also see 120756 Rocket launches with deliveries on the way with "custom minimum payload".
Ralfinator
Long Handed Inserter
Long Handed Inserter
Posts: 72
Joined: Sun Jun 26, 2016 9:37 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Ralfinator »

That is, the item is being slowly produced, bots transport it to the rocket. By the time it's inserted into the rocket, another item is produced and starts being transported.
It is already the case that a rocket request will only be created when the logistic network has enough items available. I think it's entirely fine for the rocket to just sit there and wait until that request is actually satisfied, no matter how long that takes. So I don't see a problem here.
Muche
Smart Inserter
Smart Inserter
Posts: 1006
Joined: Fri Jun 02, 2017 6:20 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Muche »

Ralfinator wrote: Tue Feb 18, 2025 10:53 am I think it's entirely fine for the rocket to just sit there and wait until that request is actually satisfied, no matter how long that takes. So I don't see a problem here.
That's how a normal request works.
So now I am confused when you think a rocket should actually launch. You are fine with it waiting in the silo increasing its cargo over the minimum amount and at the same time you want the rocket with that minimum amount to launch.
Are you sure you want to use custom minimum payload in the first place for that type of cargo?
Ralfinator
Long Handed Inserter
Long Handed Inserter
Posts: 72
Joined: Sun Jun 26, 2016 9:37 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Ralfinator »

I tried to be very explicit about the intended behavior, but I guess I failed to properly explain myself. So let me try to make it more concrete: if the space station has a request for 500 explosives with a minimum payload size of 200 (a rocket can fit 500), and there are N items missing, what should happen is that
0. it computes the request size S by clamping N into the range [200, 500]
1. it waits until there are S items available in the planet's logistic network
2. then it creates a rocket that requests S items
3. it waits until the rocket contains S items
4. it launches the rocket

If I didn't set a custom minimum payload, S would be clamped to [500, 500], i.e. it is always 500. The "custom" setting overrides the default minimum value of this range with a custom value. This is to me the "obvious" meaning of "custom minimum payload": it overrides a minimum for the request size S computed in step 0. (The maximum obviously can't be changed, it's whatever fits in a rocket). I guess my notion of "obvious" does not agree with others. ;)

It could also work like this:
0. it waits until there are 200 items available in the planet's logistic network
1. it computes the request size S as min(200, L) where L is the number of items available in the logistic network, again clamped into the range [200, 500]
2. it continues as above with this value of S

That would let a rocket launch early if the planet really just doesn't have enough of this item available, without wasting rockets when enough is available.
Last edited by Ralfinator on Wed Feb 19, 2025 2:44 pm, edited 1 time in total.
Muche
Smart Inserter
Smart Inserter
Posts: 1006
Joined: Fri Jun 02, 2017 6:20 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Muche »

So what you seem to want is a dynamic maximum payload amount (equal to min(rocket_capacity, request_amount)), not a current static minimum one.

Post a new idea/suggestion in Ideas and Suggestions subforum.
Ralfinator
Long Handed Inserter
Long Handed Inserter
Posts: 72
Joined: Sun Jun 26, 2016 9:37 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Ralfinator »

(I edited my post to make it more clear.)
So what you seem to want is a dynamic maximum payload amount (equal to min(rocket_capacity, request_amount)), not a current static minimum one.
Why "maximum"? No, I don't want a maximum anything.

I didn't think of what I described as particularly dynamic, but I think I can see where you are coming from. Internally in the game, but not visible in the UI, what happens currently is that a rocket gets created with a request that has a minimum of 200 and a maximum of what I call S. Only the S can be seen in the UI, so it is surprising that a specific rocket even has a minimum/maximum; it looks to have just a fixed content. The request parameters are already dynamic, but only its maximum is dynamic; I want the minimum to also be dynamic.
Muche
Smart Inserter
Smart Inserter
Posts: 1006
Joined: Fri Jun 02, 2017 6:20 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Muche »

The difference seems to be that the custom minimum payload clamping happens at your step 3, whereas you expect it happen at step 0.

Clamping at step 0 still feels like a maximum to me (rocket capacity 500):
demand: 1000
normal request: delivered 500
custom minimum payload 200: delivered 200 when loaded with robots, 200-500 when loaded with inserters
dynamic maximum payload: delivered 500

demand: 360
normal request: delivered 500
custom minimum payload 200: delivered 200 when loaded with robots, 200-500 when loaded with inserters
dynamic maximum payload: delivered 360

demand: 10
normal request: delivered 500
custom minimum payload 200: delivered 200 when loaded with robots, 200-500 when loaded with inserters
dynamic maximum payload: delivered 10
Were it made compatible with minimum payload, it would be 200 delivered as well.
Loewchen
Global Moderator
Global Moderator
Posts: 10073
Joined: Wed Jan 07, 2015 5:53 pm
Contact:

Re: [2.0.15] "Custom minimum payload" treated as absolute value not minimum

Post by Loewchen »

Make a suggestion or open a gameplay help topic if you want to discuss this further.
Locked

Return to “Not a bug”