- Renaming unique TrainStops leads to updated TrainSchedules.
- Uniqueness is determined over the whole game, not the current surface.
- Updating of TrainSchedules because of TrainStop-renaming should be checked for each surface - not for the whole game.
Test-Environment: Vanilla / no mods / Editor
I've prepared a simplified Blueprint to test this phenomenon.
https://factoriobin.com/post/TIm_bP-i
Test-Setup:
- You have only one Surface.
- You have one (or more) Train with two (or more) TrainStops in it's schedule.
- Train Stop Names: "A", "B" and "C".
- TrainStop A and C are uique on the surface.
- TrainStop B exists twice.
- TrainSchedule: A -> B -> C (wait conditions are irrelevant).
- Rename TrainStop "A" to "Alpha". TrainSchedule is updated to: Alpha -> B -> C.
- Rename one TrainStop "B" to "Beta". TrainSchedule remains unchanged: A -> B -> C.
- Rename TrainStop "C" to "A". TrainSchedule is updated to A -> B -> A.
- Updating can be triggered by "Shift-Copy", Blueprinting or manual renaming.
Bug description:
- If you duplicate the surface and have the exact Test-Setup on both/multiple surfaces, renaming a suface-unique TrainStop will not lead to an updated TrainSchedule.
- Only after renaming a game-unique TrainStop, all Schedules across all surfaces will be updated (to the name of the last TrainStop).
- The interface (TrainStop-Details & Train-Overview) counts the TrainStops per surface.
- There is no indication for the user to determine why the TrainSchedules have not been updated.
- Pathfinding-Behaviour (single-surface) is inconsistent to ScheduleUpdate-Behaviour (multi-surface).
- Consistent Multi-Surface gameplay may be important for a large playerbase.
When having the abovementioned Test-setup on two surfaces the uniqueness of a TrainStop (that triggers an update of the TrainSchedules) should be checked for each surface separately.
Disambiguation:
- "game-unique" = Name exists only once in the whole game.
- "surface-unique" = Name exists once on a surface. It may exist on other surfaces.