Game version: V 3.0.1 (b4), Build: WindowsPlayer 64 Bit
Summary
Scripts/Buffs/RecipeHasIngredients.cs still calls CraftingManager.GetRecipe(int), but as of game version V3.0.1(b4) CraftingManager.GetRecipe only has a string overload (recipe/item name), not an int (item hash) overload. Every other call site in the SCore codebase already passes a string (e.g. Features/Challenges/Scripts/ChallengeObjectiveCraftWithIngredient.cs:49, Harmony/ItemActions/AdvancedItems.cs:309, Scripts/Items/ItemsUtilities.cs:122) — this one file wasn't updated for the API change.
Because the shipped SCore.dll in the 3.0.25.912 release zip is a stale prebuilt binary, dotnet build/msbuild treats it as already up to date and skips recompilation, so the broken source never actually gets rebuilt by default — a Rebuild (clean + build) is needed to reproduce the compile error:
Scripts\Buffs\RecipeHasIngredients.cs(21,48): error CS1503: Argument 1: cannot convert from 'int' to 'string'
Fix
--- a/Scripts/Buffs/RecipeHasIngredients.cs
+++ b/Scripts/Buffs/RecipeHasIngredients.cs
@@
if (minEventParams.ItemValue.GetMetcipeHash) return false;
-
var recipe = CraftingManager.GetRec
-
var recipeItemClass = ItemClass.list[recipeHash];
-
if (recipeItemClass == null) return
-
var recipe = CraftingManager.GetRecme());
if (recipe == null) return false;
Downstream symptom (why this matters for the release)
Because SCore also carries a separate Harmony Prefix patch on TileEntityWorkstation.HandleRecipeQueue (Features/Recipe/Harmony/TileEntityWorkstatibecause the shipped 3.0.25.912 SCore.dllbinary predates this fix, players running 3.0.25.912 against game V3.0.1(b4) currently see continuous log spam and
broken workstation crafting:
MissingMethodException: Method not found: Reipe()
at TileEntityWorkstation.DMD<...HandleRecipeQueue(System.Single)>(...)
Note: RecipeQueueItem.Recipe itself is fine — it changed from a property to a public field in this game version, and the Prefix already accesses it correctly at blocker is purely the RecipeHasIngredients.cs compile error described above, which prevents a clean rebuild of SCore.dll against the current game assemblies and results in the stale/broken binary being shi
Suggested action: apply the fix above, do a ) against the current Assembly-CSharp.dll,and re-cut the release zip with the freshly built SCore.dll.
Game version: V 3.0.1 (b4), Build: WindowsPlayer 64 Bit
Summary
Scripts/Buffs/RecipeHasIngredients.cs still calls CraftingManager.GetRecipe(int), but as of game version V3.0.1(b4) CraftingManager.GetRecipe only has a string overload (recipe/item name), not an int (item hash) overload. Every other call site in the SCore codebase already passes a string (e.g. Features/Challenges/Scripts/ChallengeObjectiveCraftWithIngredient.cs:49, Harmony/ItemActions/AdvancedItems.cs:309, Scripts/Items/ItemsUtilities.cs:122) — this one file wasn't updated for the API change.
Because the shipped SCore.dll in the 3.0.25.912 release zip is a stale prebuilt binary, dotnet build/msbuild treats it as already up to date and skips recompilation, so the broken source never actually gets rebuilt by default — a Rebuild (clean + build) is needed to reproduce the compile error:
Scripts\Buffs\RecipeHasIngredients.cs(21,48): error CS1503: Argument 1: cannot convert from 'int' to 'string'
Fix
--- a/Scripts/Buffs/RecipeHasIngredients.cs
+++ b/Scripts/Buffs/RecipeHasIngredients.cs
@@
if (minEventParams.ItemValue.GetMetcipeHash) return false;
Downstream symptom (why this matters for the release)
Because SCore also carries a separate Harmony Prefix patch on TileEntityWorkstation.HandleRecipeQueue (Features/Recipe/Harmony/TileEntityWorkstatibecause the shipped 3.0.25.912 SCore.dllbinary predates this fix, players running 3.0.25.912 against game V3.0.1(b4) currently see continuous log spam and
broken workstation crafting:
MissingMethodException: Method not found: Reipe()
at TileEntityWorkstation.DMD<...HandleRecipeQueue(System.Single)>(...)
Note: RecipeQueueItem.Recipe itself is fine — it changed from a property to a public field in this game version, and the Prefix already accesses it correctly at blocker is purely the RecipeHasIngredients.cs compile error described above, which prevents a clean rebuild of SCore.dll against the current game assemblies and results in the stale/broken binary being shi
Suggested action: apply the fix above, do a ) against the current Assembly-CSharp.dll,and re-cut the release zip with the freshly built SCore.dll.