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 Value Calculator Module

M.dependencies = {'career_career'}

Dependencies

M.dependencies = {'career_career'}

Calculates vehicle and part monetary values based on age, mileage, damage, modifications, and primer state. Central to selling, insurance, and repair cost calculations.


Public API

FunctionSignatureDescription
M.getInventoryVehicleValue(inventoryId, ignoreDamage) → numberFull vehicle value including mods, mileage, damage
M.getPartValue(part) → numberSingle part value adjusted for age, mileage, primer, repairs
M.getAdjustedVehicleBaseValue(value, condition) → numberBase value adjusted for age + mileage depreciation
M.getVehicleMileageById(inventoryId) → numberOdometer reading for a vehicle
M.getBrokenPartsThreshold() → numberReturns 3 (broken parts needed to flag vehicle for repair)
M.getRepairDetails(invVehInfo) → tableRepair cost, time, and part count for damaged vehicle
M.getNumberOfBrokenParts(partConditions) → numberCount of parts with integrityValue == 0
M.partConditionsNeedRepair(partConditions) → boolWhether broken parts ≥ threshold (3)
M.getPartDifference(originalParts, newParts, changedSlots) → added, removedDiff between original and current part configurations

Dependencies

  • career_career (required)
  • career_modules_inventory - vehicle data access
  • career_modules_partInventory - part lookups for value calculations

Depreciation Model

Age Depreciation

96-entry table depreciationByYear - early years lose value, later years appreciate:

YearsAnnual Change
1-20%
2-15%
3-4-10%
5-7%
10-3%
23-0.5%
24-250% (floor)
26++0.5% to +2.5% (classic appreciation)

Mileage Depreciation

lossPerKmRelative = 0.0000025
valueLoss = baseValue × (mileage/1000) × lossPerKmRelative

Scrap Value Floor

scrapValueRelative = 0.05 (5% of age-adjusted value)

Part Value Modifiers

  • Primer: -5% value
  • Repair count: -value × (repairCount / (repairCount + 1)) × 0.2

Vehicle Value Formula

adjustedBase = getValueByAge(configBaseValue, age)
 - mileageLoss + scrapFloor
 + Σ(added parts × 0.5 × partValue)
 - Σ(removed parts × 0.5 × partValue)
 - repairCost (unless ignoreDamage)
minimum = min(500, configBaseValue × 0.05)

Damage / Repair

  • Broken part: integrityValue == 0
  • Threshold: 3 broken parts → vehicle "needs repair"
  • Repair time: 20 seconds per broken part
  • Repair cost: part.value × 0.6 per broken part
  • Exceptions (not blocking): bumper, door, mirror, fascia

Usage Example

-- Get vehicle sell value
local value = career_modules_valueCalculator.getInventoryVehicleValue(inventoryId)

-- Check if vehicle needs repair
local needsRepair = career_modules_valueCalculator.partConditionsNeedRepair(vehicle.partConditions)

-- Get part value for selling
local partValue = career_modules_valueCalculator.getPartValue(part)

See Also

  • partInventory - Part data and selling
  • playerAttributes - Money from sales
  • painting - Primer state affects value

Career Unlock Flags Module

M.dependencies = {"career_saveSystem"}

Vehicle Class Grouping

M.dependencies = {"gameplay_vehiclePerformance"}

On this page

DependenciesPublic APIDependenciesDepreciation ModelAge DepreciationMileage DepreciationScrap Value FloorPart Value ModifiersVehicle Value FormulaDamage / RepairUsage ExampleSee Also