Here is the google drive link if you want to use it as well:
https://drive.google.com/file/d/1C90KIgy758XLxSMW_iW6BtL7hy_NeDvL/view?usp=sharing
There are three files, one is the sql script, there is a modified ServerStartup.bat file that you can use in place of the default one, which will execute the script before starting up the server when restarting. Place both of them in the same directory where the original ServerStartup.bat file and the server executable are. Remember to back up the original. There is also a StartGame.bat file that will run the script then start the game for game clients if you play single player.
Copying the files and running them doesn’t require any mods to make the fix work, so you can run your server or single player un-modded and still have stuff continue producing or training on game or server restart.
Note: The fix for Wells, Beehives, and Fish Traps works permanently for any placed items from one execution of the script, while the fix for wheels of pain requires the script to run every restart. Any newly placed fish traps, wells, ect. will still break after the next restart if you don’t run the script again.
I’ve tested the fix on all the items, and they work after restart.
In Depth Explanation:
Fish Traps, Wells, and Beehives all have a HasBeenPlacedInWorld flag that isn’t saved properly, adding the flag in the properties table for any of the items that exist in the actor_position table (and thus exist in the world) fixes the issue, and the property persists on server restart for those items from then on.
For thrall wheels, and in fact for every crafting station, there is a CraftingQueue object used to track crafting progress. There are IsStarted and IsRunning flags, but the IsRunning flag is not saved, while the IsStarted flag is. For thrall wheels at least, the flags seem to do the same thing, so the script I added just adds the IsRunning flag to the properties table for any CraftingQueue that is started and belongs to a wheel of pain. I limited the fix to just thrall wheels because I don’t know if some of the crafting stations do something different based on IsStarted vs IsRunning, but feel free to make edits and test with the other crafting stations if you are feeling adventurous.