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
Career BranchesCareer System CoreCareer Save System
Career Computer MenuCareer Fuel SystemInspect VehicleVehicle InventoryLinear TutorialLoaner VehiclesCareer LogLogbookMarketplaceMission WrapperCareer Painting ModuleCareer Part Inventory ModuleCareer Part Shopping ModuleCareer Payment ModuleCareer Permissions ModuleCareer Playbook Writer ModuleCareer Player Abstract ModuleCareer Player Attributes ModuleCareer Player Driving ModuleCareer Quick Travel ModuleCareer Rentals ModuleCareer Reputation ModuleCareer Spawn Points ModuleCareer Speed Traps ModuleCareer Test Drive ModuleCareer Tether ModuleCareer Tuning ModuleCareer UI Utils ModuleCareer Unlock Flags ModuleCareer Value Calculator ModuleVehicle Class GroupingVehicle Deletion ServiceVehicle PerformanceVehicle Shopping

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 Extensionscareermodules

Career Painting Module

M.dependencies = {"career_career"}

Dependencies

M.dependencies = {"career_career"}

Vehicle paint shop system for career mode. Allows players to repaint vehicles at garage computers with tiered paint classes (gloss, metallic, matte, chrome, custom) and optional clearcoat.


Public API

FunctionSignatureDescription
M.start(inventoryId, originComputerId)Opens painting UI for a vehicle; auto-repairs broken parts first
M.apply()Pays for and applies the chosen paint, saves vehicle
M.close(closeMenuAfterSaving)Exits painting mode, restores walking/camera state
M.getPaintData() → tableReturns current colors, price table, and color-class data
M.setPaints(paints, paintOptions, partName)Previews paint on the vehicle (up to 3 paint slots)
M.getFactoryPaint() → tableReturns model's original factory paints
M.getPrimerColor() → tableReturns a flat grey primer paint definition
M.onComputerAddFunctions(menuData, computerFunctions)Registers "Painting" button on garage computers
M.onUIOpened()Enters vehicle, sets orbit camera, freezes vehicle
M.onVehicleSaveFinished()Closes menu after autosave completes

Dependencies

  • career_career (required)
  • career_modules_inventory - vehicle data and spawning
  • career_modules_payment - payment validation and execution
  • career_modules_valueCalculator - broken-parts check before painting
  • career_modules_insurance_insurance - auto-repair before painting
  • career_modules_partInventory - clear primered flag on painted parts
  • career_modules_permissions - check painting/vehicleModification permission

Key Data Structures

Price Table

prices.basePrices = {
  factory    = {money = {amount = 600}},
  gloss      = {money = {amount = 1500}},
  metallic   = {money = {amount = 2500}},
  chrome     = {money = {amount = 3400}},
  custom     = {money = {amount = 4000}},
  -- ...
}
prices.clearcoatBase          -- 500
prices.clearcoatPolishFactor  -- 1000 × polish level

Color Class Data

colorClassData.metallic = {metallic = 1, roughness = 0.5}
colorClassData.chrome   = {metallic = 1, roughness = 0}

Usage Example

-- Start painting from a computer
career_modules_painting.start(inventoryId, computerId)

-- Preview a paint set
career_modules_painting.setPaints(newPaints, paintOptions)

-- Apply and pay
career_modules_painting.apply()

Hooks Emitted

HookWhen
onCareerPaintingStartedPainting session begins
onVehiclePaintingUiOpenedCamera/vehicle ready for UI

See Also

  • payment - Currency check and deduction
  • partInventory - Part primer state
  • permissions - Tag-based permission checks

Mission Wrapper

M.dependencies = {'career_career'}

Career Part Inventory Module

M.dependencies = {'career_career'}

On this page

DependenciesPublic APIDependenciesKey Data StructuresPrice TableColor Class DataUsage ExampleHooks EmittedSee Also