OK I am really stuck for real again.
I couldn't get the thing to load when packaged from onMissionLoaded(), nothing was happening. I figured out that onMissionLoaded() is called within createMission(), so I have a package with function createMission() {
Parent::createMission();
my_initialization_function();
}
That at least gets the bricks loading, so something happens between onMissionLoaded() and the rest of createMission() to let loading work. But then BL freaks the forget out, and I think it's because multiple loading commands are overlapping, either temporally or just in terms of variables being changed. It gives an error of how the loading bricks brickgroup doesn't exist, and then the next load doesn't work right, but then other loads do. I think.
Well, I don't actually have any idea what's happening, but obviously I am short-circuiting some kind of global boolean or repeating scheduled process, or otherwise cutting in on initialization somehow.
So I thought, OK, I'll let the save.bls load completely finish before I start my first load. It wouldn't try to load the gamemode's save.bls before it's possible, right? So after that's completely done has gotta be safe.
So when I package ServerLoadSaveFile_End() to wait for save.bls to finish, nothing happens. Apparently as far as I can tell, the automatic load of save.bls isn't calling ServerLoadSaveFile_End() at any point, either because the file is completely empty or because loading is different for gamemode initialization. If I just stick an echo in ServerLoadSaveFile_End(), it echoes for all loading except for that automatic one.
So I have a special case where I think I need to wait for loading to finish, maybe? but once again I don't know when it's finishing.