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 Permissions Module

Centralized permission system for career actions. Other modules hook into `onCheckPermission` to grant or restrict actions based on active gameplay state (e.g., missions, deliveries, tutorials).

Centralized permission system for career actions. Other modules hook into onCheckPermission to grant or restrict actions based on active gameplay state (e.g., missions, deliveries, tutorials).


Public API

FunctionSignatureDescription
M.getStatusForTag(tags, additionalData) → tableQueries all extensions for permission on given tag(s); returns highest-priority restriction

Permission Levels

Ordered by priority (higher overrides lower):

LevelPriorityMeaning
"allowed"0Normal behaviour, no restriction
"warning"1Action allowed but shows a warning (may have gameplay consequences)
"forbidden"2Action visible but disabled
"hidden"3Action not shown at all

Default Permission Tags

TagControls
vehicleModificationRepairing, parts, tuning, painting
vehicleSellingSelling a vehicle
vehicleStoragePutting vehicles into storage
vehicleRetrievalRetrieving vehicles from storage
vehicleShoppingBuying vehicles
interactRefuelRefueling POI
interactMissionStarting missions
interactDeliveryStarting delivery mode
recoveryFlipUprightFlip upright recovery
recoveryTowToRoadTow to road recovery
recoveryTowToGarageTow to garage recovery

Return Format

{
  allow      = true,         -- true only for "allowed" or "warning"
  permission = "forbidden",  -- the permission level string
  label      = "...",        -- human-readable reason
  type       = "text",
  penalty    = nil,          -- optional penalty info
}

Hook Integration

Extensions respond to onCheckPermission(tags, permissions, additionalData) by inserting entries into the permissions table:

-- Example hook handler (not part of this extension):
local function onCheckPermission(tags, permissions, additionalData)
  if tableContains(tags, "vehicleModification") and myCondition then
    table.insert(permissions, {
      permission = "forbidden",
      label = "Cannot modify vehicle during active mission"
    })
  end
end

Usage Example

local status = career_modules_permissions.getStatusForTag(
  {"painting", "vehicleModification"},
  {inventoryId = invId}
)
if not status.allow then
  button.disabled = true
  button.reason = status
end

See Also

  • painting, partShopping, tuning - Consumers of permission checks

Career Payment Module

M.dependencies = {'career_career'}

Career Playbook Writer Module

M.dependencies = {'career_career'}

On this page

Public APIPermission LevelsDefault Permission TagsReturn FormatHook IntegrationUsage ExampleSee Also