Quick answer: On the new-day event, clear each tile's watered flag (unless rain occurred) and require crops to be watered to advance growth that day.

Players water their farm once and never again, yet everything keeps growing. The soil's watered flag is set but nothing ever resets it when the day rolls over.

How to fix it

1. Reset moisture on day change

In your day-rollover handler, loop tilled tiles and clear the watered flag, then re-apply it for tiles that received rain. Without a reset the flag is sticky forever.

2. Gate growth on daily watering

Only advance a crop's growth for a day if its tile was watered during or at the start of that day. This makes the watering loop meaningful.

3. Handle rain as auto-watering

If it rained overnight, set every outdoor tile as watered so players are not punished for weather they did not control.

Catching the ones you can't reproduce

The hardest version of this to fix is the one you can't reproduce — it only happens on a player's hardware, OS, driver, or save state, under conditions that simply aren't present on your machine. A report that says “it crashed” or “it froze” gives you nothing to act on, so the bug survives release after release while quietly costing you players.

Automatic error capture closes that gap. Each failure arrives with its full stack trace, the device and OS, the build number, and a breadcrumb trail of what the player did right before it broke, so even a failure you have never seen becomes a specific, reproducible issue. Fold identical failures into one signature ranked by how many players each hits, and your worklist sorts itself worst-first instead of arriving as a stream of vague complaints.

This is where a tool like Bugnet earns its place. Its SDK captures every GameMaker error automatically with the full stack trace plus device, OS, memory, build, and game-state context, folds duplicates into one grouped issue with an occurrence count, and ties each to the build it first appeared on — so you fix the problem that hurts the most players first and confirm it is gone when its signature disappears from the next release.

Reproduce it once with full context and the fix writes itself. The hunt is the expensive part.