What is safe to put in the Pre Construct event in UMG?

The engine already has localization built in, you don’t need to / shouldn’t hardcode a bunch of switches for each language, you should readup on our localization scraping system.

Locally owned - does all the data exist on the widget, or does it need to access external game systems to determine the state? If it needs to access anything external, don’t put it in pre-construct. If it does crash, you can always disable it in the editor preferences so you can open the asset and fix it, then re-enable it.