RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

Server CommandsGE UtilitiesGame Engine MainNavigation GraphScreenshot CaptureServerServer ConnectionSpawnpoint ManagerSimulation TimeVehicle SpawningSuspension Frequency Tester
Flowgraph Base ModuleFlowgraph Base NodeFlowgraph Base State NodeFlowgraph Node BuilderFlowgraph GraphFlowgraph Group HelperFlowgraph LinkFlowgraph ManagerNew Node TemplateFlowgraph PinFlowgraph States ManagerFlowgraph UtilsFlowgraph Variable Storage
Medal / Auto Medal (Flowgraph Node)Clear Messages (Flowgraph Node)Context Translation (Flowgraph Node)ConvertUnit (Flowgraph Node)Set UI Timer / Corner Timer (Flowgraph Node)Custom Button TEST (Flowgraph Node)Custom UI Layout (Flowgraph Node)End Screen (Flowgraph Node)End Stats (Flowgraph Node)Fade From Black (Flowgraph Node)Fade Sequence (Flowgraph Node)Fade To Black (Flowgraph Node)Flash Message (Flowgraph Node)Generic Mission Text (Flowgraph Node)Get Gamestate (Flowgraph Node)Show Editor (Flowgraph Node)Hide Game UI (Flowgraph Node)Message (Flowgraph Node)Mission End Screen (Flowgraph Node)Popup (Flowgraph Node)Monologue (Flowgraph Node)Multi Description (Flowgraph Node)On Bigmap Poi (Flowgraph Node)On Bigmap State Change (Flowgraph Node)Set UI Race Checkpoints (Flowgraph Node)Set UI Race Laps (Flowgraph Node)Set UI Race Recovery (Flowgraph Node)RT Message (Flowgraph Node)Select Buttons (Flowgraph Node)Set UI Layout (Flowgraph Node)Show Apps (Flowgraph Node)Show Monitor (Flowgraph Node)Start Screen (Flowgraph Node)Clear Goals (Flowgraph Node)Tasklist Message (Flowgraph Node)Tasklist Task (Flowgraph Node)Three Element Select (Flowgraph Node)Vehicle Selector (Flowgraph Node)

UI

Resources

BeamNG Game Engine Lua Cheat SheetGE Developer RecipesMCP Server Setup

// RLS.STUDIOS=true

Premium Mods for BeamNG.drive. Career systems, custom vehicles, and immersive gameplay experiences.

Index

HomeProjectsPatreon

Socials

DiscordPatreon (RLS)Patreon (Vehicles)

© 2026 RLS Studios. All rights reserved.

Modding since 2024

API ReferenceGE Extensionsflowgraphnodesui

Start Screen (Flowgraph Node)

- **Node Name:** `Start Screen`

Overview

  • 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 Schema

Input Pins

PinTypeHiddenDefaultDescription
flowflowno-Inflow
resetflow (impulse)no-Resets the node for re-triggering
layoutstringno-Layout mode: "portrait", "htmlOnly", or "popup"
titlestring / tableno-Title text
textstring / table (multiTranslationObject)no-Description text (string or multi-description array)
buttonTextstringyes"ui.scenarios.start.start"Start button label
portraitImgstringyes-Portrait image file path
showProgressboolyes-Show mission progress data
progressKeystringyes-Custom progress key (defaults to current)

Output Pins

PinTypeDescription
flowflowFires when the start button is pressed

Internals

FieldPurpose
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

How It Works

  1. 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().
  2. 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}}).
  3. onScenarioUIReady(state) - Re-sends stored data via guihooks.trigger('ScenarioChange', data) when the UI is ready.
  4. started() - Called from the UI button. Closes dialogue, fires flow output, marks as done.
  5. closeDialogue() - Resets open/active flags.

Layout Modes

ModeDescription
portraitShows a portrait image alongside the text
htmlOnlyText-only layout (default)
popupCompact popup-style layout

Serialization

  • _onDeserialized() - Handles legacy portraitMode boolean format, converting to the new layout string format.

Lua Code Example

-- 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()',
    }
  }
})

Key Dependencies

  • 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

Previously Undocumented (Added by Audit)

  • C:buttonPushed(action) - Function handling buttonPushed logic
  • C:getCmd(action) - Function handling getCmd logic
  • C:onFilteredInputChanged(devName, action, value) - Function handling onFilteredInputChanged logic

See Also

  • Medal / Auto Medal (Flowgraph Node) - Related reference
  • Clear Messages (Flowgraph Node) - Related reference
  • Context Translation (Flowgraph Node) - Related reference
  • FlowGraph Guide - Guide

Show Monitor (Flowgraph Node)

- **Node Name:** `Show Monitor`

Clear Goals (Flowgraph Node)

- **Node Name:** `Clear Goals`

On this page

OverviewPin SchemaInput PinsOutput PinsInternalsHow It WorksLayout ModesSerializationLua Code ExampleKey DependenciesPreviously Undocumented (Added by Audit)See Also