The issue is when things rely on stuff like metadata, which can't be called until onStart, which includes getSettings(), which I use for saving profiles, because that calls getMetaData().isLocal(), and it seems like the UI is being set before onStart(), but after initialisation.
This can be remedied by lazyloading the UI, and adding things that rely on metadata in onStart, but that's only if you're guaranteed that it'll be called before onStart. Another thing that could be done, is making the metadata available before setting the UI.
Is the flash you're talking about due to the image disappearing/being pushed down when the UI is loaded during onStart? At the moment I add panes dynamically, which pushes down the image anyway. I was thinking about making the UI fit the space, having static top bar, and putting the panes in a ScrollPane so when they're expanded you can still scroll though them, which would make sure that the image is always absent when there is a UI, and that the runtime and status are always viewable, which
@Savior has already suggested
https://www.runemate.com/community/threads/bot-interface-scaling.5664/
Or if the flash is the where the "This bot has no UI" message disappears, then if you set the property to something empty like a new VBox or Text then that message doesn't appear xD
Either way, I've separated the parts of my UI that require metadata and adding them in onStart, and loading the rest of the UI w/ lazyloading.
TLDR: Make metadata available before loading the UI pls, and mayyybe allow the bot interface to take the dimensions of the bot ui area.