Skip to content

Config Settings

Everything below lives in shared/config.lua.

Language#

lua
Locale = 'en',
ValueLanguageValueLanguage
'en'English'es'Spanish
'tr'Turkish'pt'Portuguese
'de'German'ru'Russian
'fr'French'ar'Arabic
'it'Italian

Every language file is complete - all 609 texts are translated. They live in locales/, one file per language.

Players can switch language themselves from the business menu, so this setting is only the default for your server.

Adding your own language#

  1. Copy locales/en.lua to locales/xx.lua
  2. Change the first line to Locales['xx'] = {
  3. Translate the values on the right side only - never the keys in brackets
  4. Restart; the file is picked up automatically and appears in the in-game language list

Keep %s placeholders and ~y~ ~r~ ~g~ ~b~ ~s~ colour codes exactly as they are, or that text will break.

Dirt System#

Vehicles slowly get dirty while driving.

lua
DirtSystem = {
    Enabled = true,
    DirtSpeed = 1.0,
    DirtSpeedPerSurface = {
        road  = 1.0,
        dust  = 1.0,
        mud   = 1.0,
        sand  = 1.0,
        grass = 1.0
    },
    SharedTexture = 'dust'
}
OptionDescription
Enabledfalse uses GTA's own dirt instead
DirtSpeed2.0 = twice as fast, 0.5 = half, 0.0 = never
DirtSpeedPerSurfaceSame multiplier per ground type
SharedTextureLook of the dirt: 'dust', 'mud', 'sand', 'grass'

Default times to get fully dirty: tarmac ~85 minutes, off-road ~2 minutes.

Tarmac is deliberately much slower than off-road. If you want city driving to dirty cars too, raise road to something like 10.0 instead of raising DirtSpeed for everything.

Dirt never builds up while a vehicle is waxed (premium wash), covered in foam, being rinsed, or driving under 4 km/h.

Only one dirt texture can be active server wide - GTA provides a single dirt slot. The ground type changes how fast dirt builds up, not how it looks.

Exports#

lua
exports['frkn-carwash']:SetVehicleRealisticDirt(vehicle, 15.0, 'mud')
exports['frkn-carwash']:CleanVehicleRealisticDirt(vehicle)

Dirt level ranges from 0.0 (clean) to 15.0 (filthy). Profiles: road, dust, mud, sand, grass.

Detailing#

How much work drying and polishing a car is.

lua
Detailing = {
    DryDropletsSide = 26,
    PolishSpotsSide = 16
}
OptionDescription
DryDropletsSideWater drops to wipe away per side
PolishSpotsSidePolish spots per side

Higher numbers make the stage take longer and cost slightly more FPS.

UI#

lua
UI = {
    Menu = 'ui',
    TextUI = 'ox_lib',
    WashMenu = 'auto',
    AutoWashMenu = 'auto',
    DuiMouseSensitivity = 1.8
}
OptionValuesDescription
Menu'ui', 'ox_lib', 'qb', 'esx', 'auto'Business and management menu
TextUI'ox_lib', 'qb', 'esx'In-world texts such as "[E] Wash Vehicle"
WashMenu'dui', 'ox_lib', 'qb', 'esx', 'auto'Wash package selection at manual bays
AutoWashMenu'ox_lib', 'qb', 'esx', 'auto'Wash package selection at automatic bays
DuiMouseSensitivityNumberVirtual mouse speed on the touch screen

WashMenu = 'dui' gives players an in-world touch screen on the wash machine. Setting it to anything else disables that screen, which also removes its performance cost.

Commands & Admins#

lua
Commands = {
    AdminMenu = 'carwashes',
    GiveWash = 'givewash'
},

AdminGroups = {
    'admin',
    'god'
}
CommandWhoDescription
/carwashesAdminCreate, edit, delete and teleport to car washes
/givewash [id]AdminLets one player build a single car wash
/cancelwashEveryoneCancels the wash in progress
/cancelmobileEveryoneCancels the mobile wash mission
JEveryoneShows the task list help during a wash

Business#

lua
Business = {
    EnableJobCheck = true,
    MinWashPrice = 10,
    MaxWashPrice = 500,
    DefaultWashPrice = 50,
    StateOwnedPrice = 100,
    PremiumPriceMultiplier = 2.0,
    ExpenseAccount = 'business',
    PriceLimits = {
        Standard = { Min = 10, Max = 500, Default = 50 },
        Premium = { Min = 20, Max = 1000, Default = 100 },
        Auto = { Min = 25, Max = 1500, Default = 150 }
    },
    PurchasePrice = 50000
}
OptionDescription
EnableJobCheckPlayers with the assigned job can work at the business
StateOwnedPriceWash price while a business has no owner
PremiumPriceMultiplierPremium price suggestion, based on the standard price
ExpenseAccountWho pays for upgrades and refills: 'business', 'cash' or 'bank'
PriceLimitsMin / max price the owner is allowed to set
PurchasePriceCost of buying an unowned business

Public Car Washes#

Car washes that always exist and belong to nobody. Players just pay and wash - no owner, no office, no business menu, and the money is not collected anywhere.

lua
PublicCarwashes = {
    Enabled = true,

    Locations = {
        {
            Enabled = true,
            Name = 'La Mesa Auto Wash',
            Color = 'orenge',
            Blip = true,
            Price = { Standard = 60, Premium = 120, Auto = 150 },
            Props = {
                {model = 'car_wash_mlo_industrial_orange', coords = vector3(-700.2562, -933.3343, 20.5420), rotation = vector3(0.0, 0.0, 0.0)}
            }
        }
    }
}
OptionDescription
Enabledfalse removes every public car wash
Locations[].EnabledTurns a single location off
NameShown on the map blip
ColorBlip colour, see Blip.Colors
BlipShow it on the map
PriceStandard / premium / automatic wash price
PropsWash machines placed at this location

Wash machine models

ModelType
car_wah_map2_orenge, car_wah_map2_a_orenge, car_wah_map2_b_orengeHand wash, 3 bays each
car_wash_mlo_industrial_orange and other car_wash_mlo_*Automatic drive-through

These locations match the ones in frkn-carwashmap. Install that map and keep Enabled = true to get working, ownerless car washes where GTA's default ones used to be.

Office props are never spawned here and nobody can buy, manage or delete these car washes. They are edited only from this config file.

NPC Customers#

lua
NPC = {
    SpawnRadius = 70.0,
    SpawnMinDistance = 28.0,
    SpawnMaxDistance = 55.0,
    SpawnPlayerMinDistance = 22.0,
    Models = { 'a_m_y_business_01', ... },
    Vehicles = { 'blista', 'brioso', ... },
    RewardMin = 100,
    RewardMax = 300
}
OptionDescription
Models / VehiclesWhich customers arrive and what they drive
RewardMin / RewardMaxCash paid to the employee per NPC wash

The reward is multiplied by the business level (see BusinessUpgrades).

Markers#

lua
Marker = {
    DrawDistance = 15.0,
    Type = 28,
    Scale = vector3(0.075, 0.075, 0.075),
    OffsetZ = 0.0,
    Color = { r = 0, g = 180, b = 255, a = 180 },
    BobUpAndDown = false,
    FaceCamera = true,
    Rotate = true
}

The small glowing dot players walk up to. Lowering DrawDistance improves performance in busy areas.

Parking Box#

lua
BayZone = {
    Enabled = true,
    DrawDistance = 12.0,
    ReadyColor = {r = 46, g = 204, b = 113},
    BusyColor = {r = 214, g = 48, b = 49},
    WashPointMarker = true
}
OptionDescription
EnabledPainted parking box on the ground of hand wash bays
DrawDistanceHow far away it starts showing
ReadyColorColour while a vehicle is parked in it
BusyColorColour while that bay is washing or reserved by a customer
WashPointMarkerThe small dot next to the machine, shown once a car is parked

Blips#

lua
Blip = {
    Sprite = 100,
    Scale = 0.8,
    Colors = {
        ['green'] = 52,
        ['iceblue'] = 3,
        ['orenge'] = 47,
        ['purple'] = 27,
        ['white'] = 4
    }
}

Business Upgrades#

lua
BusinessUpgrades = {
    MaxLevel = 3,
    XPGainPerWash = 25,
    Levels = { ... }
}
LevelCostRequired XPWater / FoamWash SpeedNPC Reward
1-01001.0x1.0x
2$5,0001,0001501.25x1.2x
3$15,0003,0002501.5x1.5x

Supplies#

lua
Supplies = {
    WaterRefillCost = 20,
    FoamRefillCost = 30,
    WaterUsagePerWash = 10,
    FoamUsagePerWash = 10
}

A business cannot wash vehicles once it runs out of water or foam. The owner refills from the management menu.

Public car washes ignore supplies completely.

Builder#

lua
Builder = {
    MaxPlacementDistance = 0.0
}

Maximum distance an admin may fly away while placing props. 0.0 removes the limit.

Mobile Missions#

lua
MobileMissions = {
    MissionVehicle = 'speedowash',
    RewardAmount = 500,
    RewardXP = 10,
    Targets = {
        {
            coords = vector4(-361.3536, 513.3343, 119.5003, 134.9074),
            vehicle = 'elegy2',
            texture = 'mud'
        }
    }
}
OptionDescription
MissionVehicleVan the employee drives out
RewardAmountCash paid when the van is returned
RewardXPXP added to the business
TargetsWhere customer vehicles are parked, what they are and how dirty

texture accepts road, mud or dust.