What can a dev do to prevent that?
They have begun in the last year or so to release a "test" devkit ahead of time to help out a bit with this problem.
But really the entire modding system is fundamentally broken at the Unreal level. It's amazing what people can do with it.
The foundation is on blueprint, which at its core is just a broken idea. Arty-designy people don't code, and people that want to do real coding don't want to stare at a big graph of wires. Even if you can somehow make it a decent "language" and perform well, it lacks the critical functionality of working with source control systems.
Putting your blueprints into git is useless because you can't diff them, and your revision history is also useless unless you are very very verbose in your checkin notes.
This also makes it impossible for mod changes to merge with dev changes. When a dev changes a core file (it's usually basePlayerChar), the modder has to basically take screenshots of their own changes, throw them out to get the developer file, then try to rebuild from the screenshot. It's savagery.
Really they never should have ever allowed players to modify funcom created blueprints. But then again if they did that certain types of mods would never be possible.
The cool thing is though that for most mods, there's no need to change any funcom files. They added a system about a year in where you can ask a funcom module to attach a component of your own creation to any existing funcom actor type.
All of my mods work this way. I create like a component that attaches to all bee hives for instance. Then my component can check things on a tick or whatever. The funcom files can change alot and I never have to rebuild my mods, they just work.
The only time they can break is if a function prototype changes that I'm overloading. And I don't think that has ever happened.