API Reference GE Extensions flowgraph nodes ui Start Screen (Flowgraph Node) - **Node Name:** `Start Screen`
Node Name: Start Screen
Category: (once, singleActive)
File: extensions/flowgraph/nodes/ui/startScreen.lua
Shows the start screen of a scenario/mission with title, description, optional portrait, and a start button. Supports multiple layout modes and mission progress display.
Pin Type Hidden Default Description flowflow no - Inflow resetflow (impulse) no - Resets the node for re-triggering layoutstring no - Layout mode: "portrait", "htmlOnly", or "popup" titlestring / table no - Title text textstring / table (multiTranslationObject) no - Description text (string or multi-description array) buttonTextstring yes "ui.scenarios.start.start"Start button label portraitImgstring yes - Portrait image file path showProgressbool yes - Show mission progress data progressKeystring yes - Custom progress key (defaults to current)
Pin Type Description flowflow Fires when the start button is pressed
Field Purpose self.openWhether the start screen is displayed self.doneWhether the user has pressed start self._activeInternal active state self._storedDataCached screen data for onScenarioUIReady re-trigger
work() - Main loop:
If reset impulse: closes dialogue, resets state, clears outputs.
If done: returns early (once behaviour).
If flow active and not open: calls openDialogue().
openDialogue() - Builds start screen data:
Sets introType from the layout pin (defaults to "htmlOnly").
If text is a table, uses multiDescription; otherwise uses description.
Sets button text, title, portrait image.
If showProgress is true and there's an active mission, formats progress data via gameplay_missions_progress.
Builds a callObj and readyHook Lua string for the UI callback.
Triggers guihooks.trigger('ChangeState', {state = 'scenario-start', params = {data = data}}).
onScenarioUIReady(state) - Re-sends stored data via guihooks.trigger('ScenarioChange', data) when the UI is ready.
started() - Called from the UI button. Closes dialogue, fires flow output, marks as done.
closeDialogue() - Resets open/active flags.
Mode Description portraitShows a portrait image alongside the text htmlOnlyText-only layout (default) popupCompact popup-style layout
_onDeserialized() - Handles legacy portraitMode boolean format, converting to the new layout string format.
-- Trigger a scenario start screen:
guihooks. trigger ( 'ChangeState' , {
state = 'scenario-start' ,
params = {
data = {
showDataImmediately = true ,
introType = "htmlOnly" ,
description = "Complete the race in under 2 minutes." ,
buttonText = "ui.scenarios.start.start" ,
name = "Time Trial" ,
callObj = 'core_flowgraphManager.getManagerGraphNode(1, 2, 3)' ,
readyHook = '...:started()' ,
}
}
})
guihooks.trigger('ChangeState', {state = 'scenario-start', ...}) - Opens the start screen UI
guihooks.trigger('ScenarioChange', data) - Updates scenario data when UI is ready
gameplay_missions_progress.formatSaveDataForUi() - Progress formatting
gameplay_missions_progress.formatStars() - Star display formatting
core_input_bindings - Listed dependency
C:buttonPushed(action) - Function handling buttonPushed logic
C:getCmd(action) - Function handling getCmd logic
C:onFilteredInputChanged(devName, action, value) - Function handling onFilteredInputChanged logic