Unlocking more logistics slots

Enhance your gameplay with these tools. This category is also the right place for tools useful for modders.
Mod databases, calculators, cheatsheets, multiplayer, scripts, libs and other useful stuff that is not strictly in-game mods.
Post Reply
blobfish1
Manual Inserter
Manual Inserter
Posts: 2
Joined: Wed Aug 02, 2023 12:02 am
Contact:

Unlocking more logistics slots

Post by blobfish1 »

An updated guide to adding logistics slots beyond the hardcoded limit of 1000,
for x86_64 version 1.1.104
1: Editing
Get out a hex editor of any kind (I’d strongly recommend the browser-based hexed.it for this), open the executable file, and paste this into the hex search field: “4181F8E7”. Set the search parameters to only hexadecimal values, and it will take you to this string's location in the file. Click on “E7” in the highlighted region, and in the Data Inspector (little-endian) window, it should display 999 in a number of boxes. Click on any of these, and set it to one less than the number of slots you want (the number must be less than 65536). I wanted 2000 slots, so I typed in 1999. For the remaining bytes, click on “E8”, and type in the exact number of slots you want.
FD81F9E8
B7C13DE8
B8E80300000F
2: Replacement
Export the modified file. This will give a warning in a Safari, which you should ignore. Run this terminal command: chmod +x "/Path/To/File". Now, place this modified file in /Applications/factorio.app/Contents/MacOS after deleting the old executable. Then, delete the _CodeSignature folder in /Applications/factorio.app/Contents. Both the old executable and old _CodeSignature folder should be stored somewhere safe by Copy and Paste (do not drag and drop). Then, run this command: codesign --force --deep --sign - "/Path/To/factorio.app". I’d suggest copying and pasting the new _CodeSignature and executable to a different safe location. Now, the logistics request table should extend and function beyond 1000 items.
3: Notes for how this affects game features
Mods: It works with all mods in the Seablock Pack and Recursive Blueprints, so I’d assume it works with basically all mods.
Save files: Any requests past the first 1000 are saved in the map data, and the modified map data also runs perfectly well on unmodified executables, making saves completely interchangeable with one exception that I detailed elsewhere.
Multiplayer: I haven’t used multiplayer since swapping executables, so I don’t know.
Updates: Mod updates work perfectly fine. However, base game updates require switching back to the unmodified executable, updating the game, then remodifying the new executable that takes its place. It's extremely cumbersome.
As a note to myself, modifications are in these methods:
__ZN20LogisticPointFilters17setLogisticFilterE2IDI13ItemPrototypetEtj
__ZN16AutoTrashFilters9setFilterE2IDI13ItemPrototypetEjt
__ZNK21ControllerLogisticGui20getRequiredSlotCountEv

Post Reply

Return to “Tools”