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

Select Buttons (Flowgraph Node)

- **Node Name:** `Select Buttons`

Overview

  • Node Name: Select Buttons
  • Category: once_instant
  • File: extensions/flowgraph/nodes/ui/selectButtons.lua

Shows the user a dialogue with a configurable number of buttons. Each button has its own flow output pin. Buttons with empty string inputs are hidden. Only one instance can be active at a time.

Pin Schema

Input Pins

PinTypeHiddenDefaultDescription
altModeboolyesfalseAligns popup to the lower part of the screen
titlestringno-Title of the dialogue
descriptionstring / table (multiTranslationObject)no-Description text
hideAppsboolyesfalseHides apps while dialogue is active
(dynamic)stringno-Button label text (one per button)

Output Pins (Dynamic)

Each button name gets a corresponding flow output pin. Default buttons are accept and decline.

Internals

FieldPurpose
self.openWhether the dialogue is currently displayed
self.optionsArray of button names (default: {"accept", "decline"})
self.oldOptionsPrevious button names for pin management

How It Works

  1. workOnce() - Calls openDialogue().
  2. openDialogue() - Builds a buttons table from self.options:
    • Skips buttons whose input pin value is empty or nil.
    • Each button gets an action, text, and cmd (Lua callback string).
    • Uses ui_missionInfo.openDialogue() to show the dialogue.
    • Optionally hides apps via guihooks.trigger('ShowApps', false).
  3. buttonPushed(action) - Called from UI callback. Sets the matching output pin to true and closes the dialogue.
  4. closeDialogue() - Calls ui_missionInfo.closeDialogue() and re-shows apps if they were hidden.
  5. drawCustomProperties() - Editor UI for adding/removing/renaming buttons.
  6. updateButtons() - Dynamically creates/removes input string + output flow pins while preserving links.

Button Action Mapping

The first two buttons map to 'accept' and 'decline' actions for the UI styling. Additional buttons use their name as the action.

Serialization

  • _onSerialize() - Saves options array.
  • _onDeserialized() - Restores options (defaults to {"accept", "decline"}), rebuilds pins.

Lua Code Example

-- What the node does internally:
ui_missionInfo.openDialogue({
  title = "Choose Your Path",
  typeName = "Do you want to take the shortcut?",
  altMode = false,
  buttons = {
    { action = "accept",  text = "Yes, take it!", cmd = '...' },
    { action = "decline", text = "No, full route", cmd = '...' },
  }
})

-- Close:
ui_missionInfo.closeDialogue()

Key Dependencies

  • ui_missionInfo.openDialogue() / closeDialogue() - Mission info dialogue system
  • guihooks.trigger('ShowApps', bool) - App visibility toggle
  • core_flowgraphManager.getManagerGraphNode() - Node callback from UI

Previously Undocumented (Added by Audit)

  • C:getCmd(action) - Function handling getCmd 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

RT Message (Flowgraph Node)

- **Node Name:** `RT Message`

Set UI Layout (Flowgraph Node)

- **Node Name:** `Set UI Layout`

On this page

OverviewPin SchemaInput PinsOutput Pins (Dynamic)InternalsHow It WorksButton Action MappingSerializationLua Code ExampleKey DependenciesPreviously Undocumented (Added by Audit)See Also