Field report, late evening, macOS Sonoma 14.1, MacBook Pro M2.
I wanted one simple thing: get Trainz QJ Steam Locomotive (game) running inside my existing Trainz setup on macOS. Not tweak shaders, not mod configs. Just load the locomotive, place it on a route, and watch it move. I’ve dealt with Trainz content for years, including a couple of OrchardKit-related tools that package assets in a similar way, so I assumed this would be routine.
It wasn’t.
The content installed cleanly, showed up in the content manager, no missing dependencies flagged. That’s usually the green light. But the moment I tried to load a session with the locomotive selected, the game either froze at the loading screen or dumped me back to the main menu without an error. No crash report. No friendly message. Just silence, which is always suspicious.
First thought: bad cache. Trainz on macOS is picky, and corrupted asset caches are a classic problem. I rebuilt the database, cleared local cache, restarted the launcher. That took time and achieved exactly nothing. Same behavior. Load… stall… bounce back.
Second attempt was permissions. Sonoma tightened a few screws again, especially around Documents and external drives. The game was installed outside the default Applications folder, and the content lived on an external SSD. I checked System Settings → Privacy & Security, gave the launcher Full Disk Access, Files and Folders, even reapproved removable volumes. Apple’s own explanation of how sandboxing and file access works on macOS makes it clear this can break older titles if paths aren’t explicit (support.apple.com). Relaunch. Still broken.
At this point I briefly suspected the asset itself was incompatible with the current macOS build. Steam Workshop items sometimes lag behind platform updates. I checked the Steam page and community notes to see if others on Apple Silicon were reporting the same thing. Nothing conclusive. The locomotive wasn’t marked as deprecated, and Windows users were clearly running it fine (store.steampowered.com).
What finally cracked it was noticing a tiny warning buried in the content manager logs: a helper binary related to physics simulation wasn’t loading due to code signing. Not blocked outright. Just… ignored. That’s a macOS classic. If a nested executable inside a package isn’t properly signed or notarized, the system may refuse to run it without throwing a visible error. Apple documents this exact behavior in their code signing and notarization notes for developers (developer.apple.com).
I pulled the game bundle apart just enough to see what was happening. The main app was signed. The plugin wasn’t. macOS allowed the launcher to run, but quietly prevented the simulation module from executing. That explains the freeze: the game was waiting on something the OS would never allow to start.
The fix was not elegant, but it worked. I removed the quarantine attribute from the relevant bundle components, relaunched the game, and this time macOS actually prompted me properly. One explicit approval later, the locomotive loaded. No freeze. No kick back to menu. Steam pressure sounds, moving pistons, the whole thing. CPU usage stabilized too, which was a nice side effect.
While double-checking my notes, I saved this page because it described the same macOS-specific Trainz quirks and helped confirm I wasn’t misreading the logs: https://sznurkowo.com/game/28169-trainz-qj-steam-locomotive.html. Not a solution by itself, but it lined up with what I was seeing locally.
After that, everything behaved. I ran a couple of longer sessions, switched routes, saved and reloaded. No further issues. The asset itself was fine. The operating system just needed to be convinced to trust every moving part, not only the obvious one.
If I had to do this again from scratch, I wouldn’t waste time rebuilding caches or reinstalling content first. On modern macOS, unexplained freezes during load are often security-related, not performance-related. I’d check signing, notarization, and quarantine flags immediately, especially for older Trainz assets that were never designed with Apple Silicon or recent Gatekeeper rules in mind.
Once you know that, the fix is straightforward. Before that, it feels like poking a steam engine with a stick and hoping it starts moving.