The title mentions two features, but the loading type would be much more useful, so I am writing my thoughts about that down below, though I believe that the unloading variant would be similar (and similarly useful), except the condition for unloading would be by percentage of total cargo to unload. Although at first glance it might seem like conditional orders already fill this job, but I did my testing, asked around and ascertained, that it does not, and also there is no such feature, forcing people to go through hoops and set up all kinds of fancy conditionally ordered & timetabled order bundles, which are in my opinion unnecessarily complex just to get a similar result working.
So, for the conditional loading: the condition to be set (in a similar fashion to the options of conditional orders) would be based on the vehicle's total capacity fill percentage. For example: a train's loading behavior could be set to something like "conditional loading", then logical operator options for the condition would become available alongside a write-in field for a number representing the percentage of carry capacity fullness. Basically it would be a conditional "full-load" which would automatically end based on the set fill percentage condition.
This is how I imagined it to work:
Currently, when you select a station in a vehicle's order list, there is a dropdown menu for loading behavior. This feature would add a new option to that dropdown list, called for example "Conditional load".
(1) open loading behavior dropdown panel.
(2) pick option "Conditional load".
(3) a condition dropdown and an integer value field appears where a similar list and field is found for conditional orders.
(3.1) the list offers four logic options: Greater than, Less than, Greater than or equal to, Less than or equal to.
(3.2) the value field is restricted to numbers from 0 to 100, representing the percentage of capacity fullness.
(4) the final text string generated would look something like this: "Go to Cotton Woods and Load until Filled Capacity >= 75%".
This would make te train in this example wait and load cargo in Cotton Woods station until its capacity is filled to at least 75% and it would keep doing so if there would be more stuff to load within "reasonable" time-fame (since the last unit of cargo was loaded), otherwise, if its capacity is filled at least up to 75% and there is no more cargo to be loaded within "reasonable" time-fame, then and only then will the train switch to the next order in the list.
I believe, that this feature would be very useful and it would solve an issue which right now is handled through (in my opinion a completely unnecessary) complex timetabling and order list method.
Here are two use-case examples:
(1) A 7+ length steel train sits at a steel mill with 89% fullness, but the mill has run out of ore and stops production. Under present behavior options, that expensive train might very well sit there eating operational costs for several days or weeks just waiting for the last 11% of capacity to be filled. With this feature, they could be set to load until capacity is >= 80%, whereupon it would grab the the cargo available and if no more would be loaded in a day or so it would begin the next order, not wasting time and operation costs.
(2) If you set up an chain-loading order list (cumulatively load cargo at one station after another before unloading it all somewhere else) you might not want the vehicle either waiting to be full-loaded nor leaving with barely anything (or empty), instead you might want the vehicle to stop and load at least about 20% at the first stop, at least about 50% at the second stop and maybe at least up to 90% at a third stop, to then unload all elsewhere (or with a paired conditional unload feature maybe chain-unload at several stations bit by bit). Thus, setting the vehicle to load until their capacity is >= 20%, >= 50% and >= 90% would ensure, that they never get bogged down for too long at any station while always carrying a decent load, and moving fast enough to maintain reasonable enough servicing frequency.
Conditional fullness loading (& unloading) behavior
Moderator: OpenTTD Developers
Who is online
Users browsing this forum: No registered users and 0 guests
