diff --git a/build/find-game-folder.targets b/build/find-game-folder.targets
index 3164b071..ba7cb26c 100644
--- a/build/find-game-folder.targets
+++ b/build/find-game-folder.targets
@@ -28,15 +28,31 @@
<_SteamLibraryPath>$([MSBuild]::GetRegistryValueFromView('HKEY_CURRENT_USER\SOFTWARE\Valve\Steam', 'SteamPath', null, RegistryView.Registry32))
$(_SteamLibraryPath)\steamapps\common\Stardew Valley
-
+
C:\Program Files\GalaxyClient\Games\Stardew Valley
C:\Program Files\GOG Galaxy\Games\Stardew Valley
C:\Program Files\GOG Games\Stardew Valley
- C:\Program Files\Steam\steamapps\common\Stardew Valley
-
C:\Program Files (x86)\GalaxyClient\Games\Stardew Valley
C:\Program Files (x86)\GOG Galaxy\Games\Stardew Valley
C:\Program Files (x86)\GOG Games\Stardew Valley
+
+
+
+ C:\Program Files\ModifiableWindowsApps\Stardew Valley
+ D:\Program Files\ModifiableWindowsApps\Stardew Valley
+ E:\Program Files\ModifiableWindowsApps\Stardew Valley
+ F:\Program Files\ModifiableWindowsApps\Stardew Valley
+ G:\Program Files\ModifiableWindowsApps\Stardew Valley
+ H:\Program Files\ModifiableWindowsApps\Stardew Valley
+
+
+ C:\Program Files\Steam\steamapps\common\Stardew Valley
C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 3be90208..f37b35f5 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -6,6 +6,7 @@
* Added automatic fix for custom maps which don't have a required tilesheet.
* Added automatic save recovery when the custom farm type isn't available anymore.
* Added the new game build number to the SMAPI console + log.
+ * The installer now detects Xbox app game folders.
* Fixed extra newlines shown in the console in non-developer mode.
* Fixed macOS launch issue when using some terminals (thanks to bruce2409!).
* Fixed Linux/macOS terminal ignoring backspace in Stardew Valley 1.5.5+.
diff --git a/docs/technical/mod-package.md b/docs/technical/mod-package.md
index 41f808a5..5e408168 100644
--- a/docs/technical/mod-package.md
+++ b/docs/technical/mod-package.md
@@ -412,6 +412,9 @@ The NuGet package is generated automatically in `StardewModdingAPI.ModBuildConfi
when you compile it.
## Release notes
+## Upcoming release
+* Added detection for Xbox app game folders.
+
## 4.0.0
Released 30 November 2021.
diff --git a/src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs b/src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs
index 37e4f263..8d4198de 100644
--- a/src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs
+++ b/src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs
@@ -157,7 +157,7 @@ namespace StardewModdingAPI.Toolkit.Framework.GameScanning
yield return Path.Combine(steamPath.Replace('/', '\\'), @"steamapps\common\Stardew Valley");
#endif
- // default paths
+ // default GOG/Steam paths
foreach (string programFiles in new[] { @"C:\Program Files", @"C:\Program Files (x86)" })
{
yield return $@"{programFiles}\GalaxyClient\Games\Stardew Valley";
@@ -165,6 +165,15 @@ namespace StardewModdingAPI.Toolkit.Framework.GameScanning
yield return $@"{programFiles}\GOG Games\Stardew Valley";
yield return $@"{programFiles}\Steam\steamapps\common\Stardew Valley";
}
+
+ // default Xbox app paths
+ // The Xbox app saves the install path to the registry, but we can't use it
+ // here since it saves the internal readonly path (like C:\Program Files\WindowsApps\Mutable\)
+ // instead of the mods-enabled path(like C:\Program Files\ModifiableWindowsApps\Stardew Valley).
+ // Fortunately we can cheat a bit: players can customize the install drive, but they can't
+ // change the install path on the drive.
+ for (char driveLetter = 'C'; driveLetter <= 'H'; driveLetter++)
+ yield return $@"{driveLetter}:\Program Files\ModifiableWindowsApps\Stardew Valley";
}
break;