Bob's Logistics mod


Adds logistic related things.

Content
8 months ago
0.13 - 1.1
293K
Logistics

g Space Exploration Compatibility?

3 years ago

Does anyone know if this mod is compatible with Space Exploration and Krastorio 2?
(In the same game, sometimes referred to as SE+K2.)

3 years ago

Krastorio 2 compatibility is hit and miss. I'm going to say no, it isn't, because he renames the fast-replace of storage tanks, which breaks the upgrade planner.

3 years ago

Thanks for the feedback. That sounds like it's generally working with a minor inconvenience, if aside from the upgrade planner there are no other issues.

Do you have any information about Space Exploration as well?

3 years ago

Honestly, it's enough work maintaining my mods, I don't usually play the game myself, so I have very little experience with other people's mods.

3 years ago

I've used Bob Logistics with SE and K2, the only problem I've seen is the pump recipe requires copper pipe which is hidden. I think it's K2 that does it, so I made a compatibility mod to add that recipe back in and it works fine. For SE I would recommend disabling robot recursion as robot attrition is a requirement for SE.

3 years ago
(updated 3 years ago)

robot attrition (the function) is stupid.

Back in the earlier versions of the game, when a robot ran out of power, it used to crash and die, which meant if you wanted to avoid robots dying out over time, you had to make sure you had enough charging and docking capacity to handle them, even during those peak traffic moments.

Removing the robot "out of power" death in favor of them just moving at slow speed is one of the few good changes they made to robots from those early days.

3 years ago
(updated 3 years ago)

I feel the same. I hacked the robot attrition locally, removing explosions and changing the research to a 1-100 repeatable, reducing the chance of crashes by 1% per level. It also affects the internal, but not documented limit of 50 bots not being affected at all and only above that limit as a side effect.
I think (but I have no real experience in Factorio modding) it should be possible to create a mod that unhooks the SE callbacks that are called by robot attrition for a surface and return a zero chance instead. That would allow it to disable robot attrition while it would still be there. As I would have to experiment a lot though and lack the time to dig down into it, I am not sure that will ever happen.
If someone else would want to do something like that though, I'd do my best to help with questions, testing and maybe fixing tough bugs.

Edit: Just leave a note here and we can try to get in touch, maybe via GitHub?

3 years ago

One of the biggest limitations of Factorio modding, is that when it comes to run-time scripts, the only mod that has access to the script is the mod that is running it.

If you want other mods to have access to your scripts, you have to write special interfaces, which are basically functions that another mod calls.

In short, the only way to edit what the script of a mod does, is to edit that mod.

3 years ago

Robot Attrition and Space Exploration use those interfaces, if I recall correctly, I stumbled over this link when trying to understand the code:
https://lua-api.factorio.com/latest/LuaRemote.html

Maybe it would be enough to unregister those interfaces, leading the calls into the void, or replacing those interfaces by identical ones.
Robot attrition would still execute, and still waste UPS on those checks, but would simply multiply everything by 0.
The advantage would be that no code changes would be necessary and that it could be distributed without violating the licenses of the other two mods.
Another approach could be to create a fake robot attrition mod, with the same ID, but no code inside, so the dependencies would be satisfied.

Also, the crash rates, that are stored in global variables could be overwritten, but I think that would have to be done regularly and I don't know when.

I'm not sure yet what would be the best approach though, and what might work and what not, e.g. as in interface remove calls being limited to the registering mod or whatever.

Unfortunately, I can not invest the time required to learn and experiment with those ideas right now. I'll start another SE+K2 with a co-worker soon:tm:. We're both software developers, so maybe if it bothers us enough, we'll put playing aside for a while and look into creating a mod ourselves. Chances are pretty low though I guess, hence my attempt to motivate someone else to do it and provide limited help.

3 years ago
(updated 3 years ago)

(unintended double post)

New response