Item weight
First part which is a good thing to implement is adding weight to items.You can add different limitations to in-game mechanics based on it:
- Limit inserter's capabilities to lift certain items. Stack inserters will effectively become "heavy lifter inserters" capable of moving heavy items such as pallets or trains or whatever. However heavy inserters can still move certain stacks of common items between containers. Or you can have both - heavy inserter and stack inserter for these 2 different tasks.
- Limit bot capability to lift certain items such as pallets or other heavy items
- Alter bot energy usage based on item weight they carry
- You can introduce (optionally infinite) research for inserter weight capacity which will effectively change the number of different items it can pick at a time.
- You can introduce a special type of a heavy lifter bot which will move slowly or have other limitations like super heavy energy usage but will still be able to carry heavy items.
- You can add speed penalty to a player who is carrying heavy items to encourage automated transportation vs hand held carry
- You can reduce the penalty for a player who uses exoskeleton equipment
And obviously adding weight limitations to bots/inserters is a prerequisite to the following parts of the solution.
Pallets
Pallet is a packed version of a stack of items. By a stack I do not mean current max stack for them but a general stack of items.Bulk items such as intermediates will have 2 new item parameters:
- Pallet stack size
- Pallet item
Pallets are really heavy (weight is set to high value) so obviously common logistic bots can't carry it. Also only heavy inserter can move it and only 1 at a time.
So in the end what is achieved by adding pallets? We have increased thoughput of belts while still leaving all the puzzle intact. We have not made trains worse and they happily have their niche. We have limited logistic bots to a low throughput tasks (while you can still brute force it with them). We have added one new interesting mechanic of managing item packing/unpacking. We have increased train load/unload speed considerably without adding loaders as obviously you can unload pallets directly to belts with a great speed removing the requirement of complex balancers on every station.
I also think pallets are a superior solution to stacks on belts as
- They do not require any complex code changes
- You can create custom icons/models for pallets instead of general methodology which might look bad with certain item icons
- Fixed pallet sizes give you strong control over throughput limits unlike stacked belts (especially with infinite research) do.
Palletizing/unpalletizing
There are several methods to implement this.I have seen mods which use assembler for this process. This method while leaving other obvious pros of pallets is not comfortable to use as it obviously lacks throughput for unpacked items, takes a lot of space and still can't be used in dense production lines.
I do currently see two possible solutions for this.
1. Stack inserters creating pallets on the fly.
As said. A viable option.
In this case stack inserters will pick a fixed amount of items required for pallet and output a single pallet item. Also in case of feeding assemblers they will need to automaticly unpack items from pallets.
However this has several problems:
- Not smoothly usable in mining setups or you will have to do those nasty rows of inserters like on loading/unloading stations or filter setups
- Bad as a transition tool belt-to-belt
- Will require a complex logic on inserter which might result in UPS issues
- Oversimplifies the task making increased throughtput effortless
The entity (Lets call it Palletizer) similar to Klonan's Belt Buffer can be introduced. It will have a filter for an item processed and a direction (packing/unpacking). It will have 2 loaders (input/output) with filters set accordingly and 2 item slots (1 input 1 output). This entity will also be a chest which will accept only input/output items and will be able to provide ones. It can optionally have a recipe set on it or just have a packing/unpacking mode.
The palletizer automatically converts input items to output items and has several uses. Obviously it serves as a transition from / to production lines to compress belt load for big distances and/or provide high volume supply belts for high density builds.
This can also be used as a train unloading device paired with heavy inserters (in case they are supplied by enough storage space).
It will also remove the need for Loaders at all providing all required functionality and also not replacing inserters but supplementing them as they can load any other entity like train or assembler from/to this device.
I do see this as an optimal solution for now as it does not alter any of existing game mechanics and only adds its own.
The question is how big should this one be?
I do find 1x2 inline size the best. In this case it is not too small for its power and is not too large to be a problem. You can still fit a splitter and this device in 3 tiles (assembler size) and will still be able to use 1 such device for 2 assembler for UPS saving purposes. In this case it can also be fit between rows or miners to create dense mining setups or even accept output items in the input to be able to create output chains (I mean when you want to create dense mining outpost which is intended to create palletized output you do output miners into this pelletizer and just chain connect them resulting in only pallets on belts).
However even 2x3 or 3x3 size for such device is still an option which will just serve a transition point between dense (palleted) belts and unpacked versions.
Optional station warehouse
I like the idea of having 2x3 storage building with built in loader. This would be an awesome tool for train loading/unloading turning wagon length of 6 into nice cool 2 belts. Even if having no loader such a building will help loading immensely by balancing things out. This is not a must ofcourse and will remove some puzzle out of the game (like those crazy circuit balanced loading stations) but still... Just QoL.Conclusion
Overall I do find all this idea a nice balancing step overall. If implemented we have:- Buffed belts increasing their potential throughput
- Reduced the amount of belts required for bulk transport -> UPS saved
- Trains will be buffed accordingly for them to retain usefulness for long distances
- Bots don't need to be nerfed. They still allow player to simplify deployment of low throughput solutions for convenience
- Added new mechanic to the game making it one step more interesting. This mechanic is also reflecting real life logistic issue which is a good thing.
- No major code changes at all. One entity (which is already mostly implemented as loader is a major part of it), icon set for pallets + weight limits.
- Balance achieved. Can be heavily tuned by mods.
- No nerfs, everybody happy
- Profit!