From 552a6e7f1c6cac89f7d6766122eaf20717764351 Mon Sep 17 00:00:00 2001 From: Mysteryem Date: Fri, 18 Apr 2025 17:41:46 +0100 Subject: [PATCH] Stardew Valley: Precollect building items in deterministic order (#4883) #4239 refactored buildings, but introduced iteration of a set when precollecting the building items into start inventory. The iteration order of sets varies between separate Python processes due to set order being partially based on the hashes of the objects in the set and because Python processes each have a random hash seed by default. --- worlds/stardew_valley/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/worlds/stardew_valley/__init__.py b/worlds/stardew_valley/__init__.py index bf900742b9..bad0ab9e68 100644 --- a/worlds/stardew_valley/__init__.py +++ b/worlds/stardew_valley/__init__.py @@ -206,7 +206,8 @@ class StardewValleyWorld(World): if not building_progression.is_progressive: return - for building in building_progression.starting_buildings: + # starting_buildings is a set, so sort for deterministic order. + for building in sorted(building_progression.starting_buildings): item, quantity = building_progression.to_progressive_item(building) for _ in range(quantity): self.multiworld.push_precollected(self.create_item(item))