RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

server/commands - Camera & Input Commandsge_utils - Game Engine Utility Functionsmain.lua - GE Lua Entry Point & Game Loopmap.lua - Navigation Graph (AI Road Map)screenshot.lua - Screenshot Systemserver/server - Level Loading & Game ServerserverConnection - Client-Server Connection Manager`setSpawnpoint` - Default Spawn Point Persistence`simTimeAuthority` - Simulation Time & Bullet Time Control`spawn` - Vehicle Spawning & Safe Placement`suspensionFrequencyTester` - Suspension Natural Frequency Analysis
ui/ambientSound - Ambient Sound Stream PlayerUI Apps ManagerUI AudioBindings LegendCamera Distance AppConsole (consoleNG)Credits MusicExternal App (WebSocket UI Server)Fade ScreenGame BlurGameplay App ContainersGrid SelectorLivery EditorMessages DebuggerMessages/Tasks App ContainersMission InfoPolice InfoTop BarUI ModsUI Navigation / MapVehicle Paint EditorVehicle Vicinity AppUI Visibility
Livery Editor - CameraLivery Editor - ControlsLivery Editor - Edit ModeLivery Editor – Editor (Core)Livery Editor – HistoryLivery Editor – Layer ActionLivery Editor – Layer EditLivery Editor – LayersLivery Editor – ResourcesLivery Editor – SelectionLivery Editor – ToolsLivery Editor – User DataLivery Editor – Utils

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 ExtensionsuiliveryEditor

Livery Editor – History

Thin wrapper around the dynamic decals API undo/redo system that notifies the UI on history changes.

Thin wrapper around the dynamic decals API undo/redo system that notifies the UI on history changes.


Overview

ui_liveryEditor_history exposes undo and redo operations and listens for layer mutations (add, delete, update, move) to push history state to the UI via guihooks.

Extension path: lua/ge/extensions/ui/liveryEditor/history.lua


Exports (M)

FunctionSignatureDescription
undo()Undoes the last operation via api.undo().
redo()Redoes the last undone operation via api.redo().

Hook Listeners

These are called by the dynamic decals API - do not call directly.

HookTrigger
dynamicDecals_onLayerAdded(layerUid)A layer was added
dynamicDecals_onLayerDeleted(layerUid)A layer was deleted
dynamicDecals_onLayerUpdated(layerUid)A layer property changed
dynamicDecals_moveLayer(from, fromParentUid, to, toParentUid)A layer was reordered

All four hooks trigger guihooks.trigger("LiveryEditor_onHistoryUpdated", api.getHistory()).


How It Works

  1. User performs an action (add/delete/move/update layer)
  2. The dynamic decals API fires one of the dynamicDecals_* hooks
  3. This module catches the hook and pushes the full history object to the UI
  4. The UI updates its undo/redo button states accordingly

Example Usage

-- Undo last action
extensions.ui_liveryEditor_history.undo()

-- Redo
extensions.ui_liveryEditor_history.redo()

Additional Exports

The following exports are available but not yet documented in detail:

  • M.dynamicDecals_moveLayer
  • M.dynamicDecals_onLayerAdded
  • M.dynamicDecals_onLayerDeleted
  • M.dynamicDecals_onLayerUpdated
  • M.redo
  • M.undo

Livery Editor – Editor (Core)

Core entry point and API interface for the livery editor UI. Manages editor lifecycle (setup, session, save, exit).

Livery Editor – Layer Action

Dispatches high-level actions (reproject, transform, delete, duplicate, mirror, etc.) on the currently selected layer(s).

On this page

OverviewExports (M)Hook ListenersHow It WorksExample UsageAdditional Exports