This was bothering me so much I chose to dig in and fix it for myself. Firstly, just for clarity: this affects the
compatibility version of the game, which also might be the default Mac version judging from all the reports of Mac users experiencing this, though I'm not certain. The "mainline" version, even on Linux, doesn't have this issue.
Machines such as casks, seed makers and incubators have a property called
MachineItemOutput.OutputMethod
which is a reference to a function in the game code. In the compatibility version of the game, the value of this for seed maker for example is:
StardewValley.Object, Stardew Valley: OutputSeedMaker
. The problem is that this value is wrong, and doesn't exist, so when placing an item into a seed maker it can't find it and essentially just gives up. The correct value is the same thing just with one space between "Stardew" and "Valley" removed:
StardewValley.Object, StardewValley: OutputSeedMaker
.
I successfully fixed it for myself in two separate ways, if you choose to go down this route it's at your own risk:
- Difficult method: first I used dnSpyEx to edit the code of StardewValley.exe to automatically correct for this in
StardewValley.Internal.StaticDelegateBuilder.TryCreateDelegate<TDelegate>
. This worked fine but is pretty technical, if you're a programmer you can probably figure it out but it's probably easier to use the second method.
- Easier method: I unpacked
Content/Data/Machines.xnb
(I used a web xnb editor, not sure if I'm allowed to post links here but it's easy to google), used find and replace to replace all instances of , Stardew Valley:
with , StardewValley:
, re-packed the xnb, then replaced the original (keep a backup just in case!).
Both methods appeared to work perfectly, I've only tested casks and seed makers but I'm pretty sure it fixes incubators, geode crushers and several other machines too :) Here's hoping this gets patched so others don't have to go through this trouble, but if you do, I hope the above info helps.