loki79uk / FS22_UniversalAutoload

Mod for FS22. Please download latest release below.
123 stars 35 forks source link

[Enhancement] Overhaul of manual loading #238

Open ak131554 opened 1 month ago

ak131554 commented 1 month ago

First if all, I really like your Mod. It totally deserves the name Universal, because to my knowledge it is the most universal Autoloader available for FS22. But I think, it could be even more universal.

User Story (maybe a bit long)

I'm playing with friends online that have different levels of skills or different dedications to realism. Some really love to manually load pallets, Big Bags and bales, even if this takes quite some time to get it proper. But due to the lack of depth information (2D monitors) and the tedious controls of FS22 it's really hard to stack everything perfectly straight. Then I have friends that want to load manually with some support. They would love to use your manual loading, that means lift the pallet above the trailer and let the magic sort it to the proper place. And last but not least there are those friends that only want to have a good time with FS22 without getting too deeply involved. They would use autoload from the ground.

It would be perfect if the Universal Autoloader serves every play style. But as far as I understand the settings at most two player types gets served. If I set disableManualLoading to true, than player 1 and 3 are satisfied. P3 can use autoloading and P1 can drill into the task to proper stack every pallet. But P2 has to choose whether he uses autoload which is not that challenging or use complete manual loading which might be too challenging for him. If I set disableManualLoading to false and configure every trailer so that side and rear loading is enabled (so that manual loading is enabled on every trailer) then P2 and P3 are happy, but for P1 the manual manual loading is not working because for stacks of pallets on the fork only the bottom gets loaded (as described in #232).

Feature Request

Of course, it would be good to have a) client mod settings in MP or b) the possibility (via keybindings) to change the UA behavior for a trailer in-game. But I want to request something that goes further, something that I don't know whether this is even possible:

I want to propose the option to just manually load the trailer without magically sorting every loaded pallet to a proper place within the loading zone. Then, there should be a key binding to rearrange every container to a proper place. This keybinding should be different from the normal Load Keybinding because maybe I want to straighten up everything I've just loaded before I finish loading. In this case I don't want to load every pallet that is still on the ground. The optimum would be, if this rearrangement take the relative position of the container to each other into account, so that a pallet that is manually stacked on top of another pallet will also be stacked after the rearrangement.

I have no knowledge in scripting (allthought I can read lua and more or less understand what happens there). But maybe I can help in developing algorithms. So, if you need to talk about possible solutions, you can contact me (in German or English).

loki79uk commented 1 month ago

I am currently working on Universal Autoload 2.0 (ahead of FS25 release), which will hopefully have "per-player" MP settings. It has a long way to go and may not be ready in time. When complete it would either replace the current FS22 version, or maybe some of the features could be applied. Either way, manual loading preferences are something I would like to add, but there are other features I'm already working on like automatic detection of pallet sizes, and automatic vehicle configurations too.

The main reason for not doing it in the first place is that because the server is responsible for all of the autoloading, I originally simplified it so that all properties and settings are either global or defined for each trailer. In order to maintain a player state in MP, I would need to store/update the settings for each player on the server (which is easy enough to do, but harder to test properly). Also, with the manual loading it currently adds or removes the side and rear loading triggers completely depending if they are needed or not. Instead I will need to always create these triggers, but then check the player settings before loading or not (again should be easy enough, but resonably high risk for breaking something).

I could possibly add the option to "repack" or "re-stack" the trailer as well (like the GIANTS storage does), but it is just yet another option (and another key binding). Personally I don't like it as much as it seems even less realistic (i.e. you can imagine the autoloading is a worker loading the trailer, but in real life they would not re-arrange again just to put things together). However, I don't mind adding any features that people will use, even if I don't.

Anyway, I think it is mostly all possible, but there could be some edge cases with the per-user settings. E.g., I am thinking about having per-player loading volume definitions and maybe stacking preferences (stacked vs horizontal), BUT what if a new player starts driving a vehicle halfway through loading? So possibly certain things like that will only be customisable in single player.

If you want to chat more on Discord or help with new algorithms, then I am: loki_79 (originally Loki_79#2864)