Version: 0.1.26, Factorio 2.1.19
Symptom:
In the character's logistics tab, every request keeps getting moved into the topmost section/group.
Any additional section is emptied on the next update cycle. Happens on every edit of personal logistic requests.
Cause (from reading the mod code):
- scripts/requester.lua, is_requester(entity) only checks entity.get_requester_point and entity:get_requester_point() ~= nil. There is no entity type check.
- The player character (and spidertrons) also have a requester point, so is_requester() returns true for them.
- scripts/events.lua, handle_logistic_slot_changed: on_entity_logistic_slot_changed fires with entity = character when the player edits personal requests. The handler calls requester.track_requester(character), so the character ends up in storage.requesters.
- scripts/reconcile.lua then treats the character like a requester chest and calls filters.apply_effective_requests(), which writes all filters into sections[1] and sets sections[i].filters = {} for every other manual section (scripts/filters.lua, apply_effective_requests). That is exactly what the player sees.
Side effect:
personal requests also get throttled by the priority logic when supply is contested, same as a low-priority chest.
Suggested fix:
restrict is_requester() to chests, e.g. add and entity.type == "logistic-container".
register_existing_requesters() already filters on type = "logistic-container", so on_configuration_changed after a version bump will purge stale character records automatically.