Actually, note: you should ideally be using CharacterCreationData.setStartingLocationName() in your character creation process. SectorAPI.setCurrentLocation() works too, though.
(If you need to set the starting location to hyperspace, use CharacterCreationData.HYPERSPACE_NAME_TOKEN as the starting location name.)
--- snip ---
I think in 0.54 it did the generation after the CharacterCreation stuff, I'm assuming that is still the case? (haven't really looked)
Given the above assumption is correct, and I'm generating a random sector/systems, I won't know the name of a valid system prior to generation? Could take a guess but...
setStartingLocationName() is new in 0.6a.
Hmm... yeah, this is a problem. What you could do is set that start location to hyperspace, and then use SectorAPI.setCurrentLocation(), and then remove the fleet from hyper + add it to the system you'd like it to be in. Or just leave it starting hyper. Except that won't work til 0.6.1a, so for now the only real solution is to hardcode at least 1 system name and THEN move it to wherever you actually want it to start.
One note: you'll have to do it in onGameLoad() or onEnabled() and then save a flag in the persisted data, or somewhere else. onNewGame is called before the player fleet actually exists.
Is there is a way to have text or other assets displayed on the screen, perhaps underneath the picture that's already there? These UI Panels are making my head spin, and it looks ugly to have it displayed in the text window above.
There is not. The text always goes in the top left section.
Should I call addScript only once onNewGame, or every onGameLoad? (or in onEnabled? I suppose I'm asking where to call sector.addScript() as well as how often )
I'm currently guessing onGameLoad - I don't think anything too terrible will happen if it runs more than once, but eventually it's going to start slowing everything down if it's running multiple times, so I'd like to know for sure please.
Depends on if the script's isTransient() returns true or false. Transient scripts should be added onGameLoad - this is the preferred way to do things because then, if the mod is disabled, the scripts don't stick around and the savegame can be played w/o the mod. If the script is not transient, it should be added onNewGame. (Ideally, onModEnabled(), but right now, due to a bug, that gets called on every load.)