A "fun" new map.
Posted: Wed Aug 02, 2023 1:56 am
I've been working on solving a specific problem for quite a while now, and I think that this map is the perfect way to show the culmination of my efforts. With some dubious modifications and 20-30 hours, I've solved the problem! Unfortunately, it ended up creating another problem, which I think this map documents well. This map never had any mods installed, and I only ran some rudimentary commands to give myself items, research all the technologies, and activate cheat mode. I hope you like fish.
Also, I think I'll post an explanation of what's probably going on here. Basically, there's a request for exactly 1000 fish on the 101st row of the logistic request GUI. However, the GUI only has 100 rows, so this can't actually be displayed. There are two ways I can think of to set these requests: modifying the map data directly (which I'll never even try doing), or by creating a modified Factorio executable that has more than 100 rows. I chose the latter, and I'll eventually explain how it works in a post elsewhere. The broken request in the map data is actually perfectly functional from the logistic network's point of view, and it still works as normal. However, the GUI for setting a request shows that a fish request has not been set yet, and still allows the "set maximum and minimum values" box to show up. The problem occurs when attempting to finalize this request, and from here on I don't exactly know what's going on. Basically, the error sound plays (like when trying to craft something that is only craftable in an assembler), and two messages appear almost simultaneously: "Fish is already requested in a different slot", and "Fish is already set in a different slot". My guess is that when deciding whether the player can enter the "set maximum and minimum values" menu, the GUI only references with itself, which doesn't know that a fish request exists. However, when the player exits the menu, it attempts to finalize the maximum and minimum values. This finalization references with the logistic network, which doesn't expect a request for something that already exists because the GUI normally prevents that, so it plays both error messages. I assume these are from the finalization of the maximum and minimum values failing separately. This bugged request thus cannot be modified or removed in any way by an unmodified executable once set, which is what the fish request is. Any request on a row beyond 100 is bugged in this way.
Also, I think I'll post an explanation of what's probably going on here. Basically, there's a request for exactly 1000 fish on the 101st row of the logistic request GUI. However, the GUI only has 100 rows, so this can't actually be displayed. There are two ways I can think of to set these requests: modifying the map data directly (which I'll never even try doing), or by creating a modified Factorio executable that has more than 100 rows. I chose the latter, and I'll eventually explain how it works in a post elsewhere. The broken request in the map data is actually perfectly functional from the logistic network's point of view, and it still works as normal. However, the GUI for setting a request shows that a fish request has not been set yet, and still allows the "set maximum and minimum values" box to show up. The problem occurs when attempting to finalize this request, and from here on I don't exactly know what's going on. Basically, the error sound plays (like when trying to craft something that is only craftable in an assembler), and two messages appear almost simultaneously: "Fish is already requested in a different slot", and "Fish is already set in a different slot". My guess is that when deciding whether the player can enter the "set maximum and minimum values" menu, the GUI only references with itself, which doesn't know that a fish request exists. However, when the player exits the menu, it attempts to finalize the maximum and minimum values. This finalization references with the logistic network, which doesn't expect a request for something that already exists because the GUI normally prevents that, so it plays both error messages. I assume these are from the finalization of the maximum and minimum values failing separately. This bugged request thus cannot be modified or removed in any way by an unmodified executable once set, which is what the fish request is. Any request on a row beyond 100 is bugged in this way.