> For the complete documentation index, see [llms.txt](https://patriot-studios.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://patriot-studios.gitbook.io/docs/scripts/money-wash/lite-config.md).

# Lite Config

1.0.0

This is the default config.lua code for the most up to date version of the Patriot Money Wash: Lite script. As part of the config file are code comments which explain the settings & allow you to customise the script how you see fit.

```lua
Config = {}

Config.Debug = false

Config.Framework = 'auto'     -- 'auto', 'esx', 'qbcore', 'qbox'
Config.Inventory = 'auto'     -- 'auto', 'ox_inventory', 'qb-inventory', 'framework'

Config.MenuColor = '#D12DFF'  -- Main Color for UI (must be in hex code form)
Config.NotifyDurationSecs = 5 -- how long notifications stay visible

-- Clean money payout account for NPC washes (cash by default)
Config.CleanMoneyAccount = 'cash' -- ESX: 'money' mapped in bridge when 'cash'

-- Dirty money sources (bridge sums all configured entries)
Config.DirtyMoneyItems = {
    { item = 'black_money', type = 'item' },
    { item = 'markedbills', type = 'item', worthKey = 'worth' },
}

Config.WashingMachineItem = 'washing_machine'

-- Interaction distances (meters)
Config.InteractDistance = 2.5
Config.ApproachDistance = 10.0

-- Cooldown between wash/deposit attempts (seconds)
Config.ActionCooldownSecs = 0.5

-- Money Wash NPC
Config.NPC = {
    model = 'a_m_y_downtown_01',
    interactionLabel = 'Talk to Washer',
    coords = vector4(105.9375, -1566.5363, 29.6027, 268.7397),
    taxRate = 0.20,
    processTimeSecs = 10,
    minAmount = 10,
    maxAmount = 10000000,

    policeAlertChance = 10,
    washMaxDistance = 10,  -- cancels wash & refunds dirty money if player goes farther than this from NPC
    scenario = 'WORLD_HUMAN_SMOKING',
    machinePrice = 150000, -- how much dirty money it cost to buy a portable washing machine

    blipEnabled = true,
    blipSprite = 77,
    blipColor = 27,
    blipScale = 0.85,
    blipVisibleDistance = 150.0,                        -- how many meters before the blip appears on the minimap (always visible on pause map)
    blipLabel = 'Laundromat (Search Area)',
    blipCoords = vector3(83.5788, -1551.4508, 29.5978), -- map blip position (independent of NPC coords)

    blipArrivalHintEnabled = true,
    blipArrivalRadius = 35.0, -- how many meters from blipCoords before the arrival hint is shown
    blipArrivalHint = "You've reached the laundromat. Look around the building to find the washer.",
}

-- Portable washing machine
Config.Machine = {
    model = 'patriot_moneywash_machine',
    taxRate = 0.10,
    processTimeSecs = 300,

    soundEnabled = true,
    soundRadius = 40.0,
    soundVolume = 0.35, -- max volume (0.0–1.0)
    soundFile = 'washing_machine_sound.ogg',
    -- soundUrl = '', -- optional external URL (xsound only)

    packUpTimeSecs = 3,
    placementForwardOffset = 1.75,       -- how many meters in front of player during placement preview
    placementRotationLockDefault = true, -- starts with 90° rotation snap enabled
    minAmount = 10,
    maxAmount = 300000,
    payoutAccount = 'cash', -- clean money account for completed machine washes
    maxPlacedPerPlayer = 3, -- max machines placed in the world per player; 0 = unlimited
    allowPublicUse = true,  -- false = only the owner can wash at their machine
}

-- Police
Config.Police = {
    Jobs = { 'police' },
    PolicePerm = 'police.alert',
    DispatchMode = 'integrated', -- 'integrated' or 'external'

    BlipSprite = 58,
    BlipColor = 1,
    BlipScale = 1.0,
    blipDurationSecs = 30,

    SearchCircleRadius = 150.0,
    searchCircleDurationSecs = 90,

    confiscateRewardEnabled = true,
    confiscateRewardAmount = 1500,
    confiscateRewardAccount = 'cash', -- 'cash' or 'bank'

    -- false (default): machine & any dirty money in an active wash is destroyed
    -- true: machine item & dirty money are added to the confiscating officer's inventory (evidence)
    confiscateEvidenceMode = false,
}

-- Noise complaint (the portable washing machine alerts to police)
Config.NoiseComplaint = {
    zones = {
        { label = 'industrial1',            coords = vector3(850.4526, -2235.6946, 30.2646),   radius = 400.0, complaintChance = 0 },
        { label = 'industrial2',            coords = vector3(913.0782, -1571.9706, 30.7631),   radius = 300.0, complaintChance = 0 },
        { label = 'industrial3',            coords = vector3(1045.3336, -1041.3014, 27.9009),  radius = 300.0, complaintChance = 0 },
        { label = 'industrial4',            coords = vector3(1240.5522, -1364.8113, 35.1436),  radius = 200.0, complaintChance = 0 },
        { label = 'industrial5',            coords = vector3(698.9337, -1207.4415, 27.8386),   radius = 200.0, complaintChance = 0 },
        { label = 'industrial6',            coords = vector3(768.0790, -803.2810, 26.3421),    radius = 200.0, complaintChance = 0 },
        { label = 'industrial7',            coords = vector3(707.6125, -3041.4609, 6.2550),    radius = 800.0, complaintChance = 0 },
        { label = 'industrial8',            coords = vector3(-515.2653, -2433.9924, 20.9834),  radius = 700.0, complaintChance = 0 },
        { label = 'industrial9',            coords = vector3(219.7840, -2256.8367, 10.7159),   radius = 200.0, complaintChance = 0 },
        { label = 'industrial10',           coords = vector3(-1573.7504, -2973.4805, 14.3139), radius = 600.0, complaintChance = 0 },
        { label = 'industrial11',           coords = vector3(-891.9996, -3356.3098, 14.2728),  radius = 500.0, complaintChance = 0 },
        { label = 'industrial12',           coords = vector3(-1280.3103, -2119.5310, 13.9249), radius = 300.0, complaintChance = 0 },
        { label = 'industrial zone',        coords = vector3(2767.7205, 1531.9485, 30.7861),   radius = 200.0, complaintChance = 0 },
        { label = 'commercial',             coords = vector3(200.0, -900.0, 30.0),             radius = 500.0, complaintChance = 10 },
        { label = 'commercial2',            coords = vector3(240.5770, -43.7856, 69.7196),     radius = 450.0, complaintChance = 10 },
        { label = 'commercial3',            coords = vector3(986.2874, 10.3386, 80.9903),      radius = 300.0, complaintChance = 10 },
        { label = 'commercial4',            coords = vector3(-1285.3434, -507.4314, 33.1250),  radius = 300.0, complaintChance = 10 },
        { label = 'commercial5',            coords = vector3(-539.3151, -325.9439, 35.1148),   radius = 400.0, complaintChance = 10 },
        { label = 'grapeseed commercial',   coords = vector3(1678.1383, 4766.8857, 41.9955),   radius = 200.0, complaintChance = 10 },
        { label = 'paleto bay commercial1', coords = vector3(-367.1426, 6011.7900, 31.2775),   radius = 100.0, complaintChance = 10 },
        { label = 'paleto bay commercial2', coords = vector3(-223.7904, 6155.1309, 31.1994),   radius = 100.0, complaintChance = 10 },
    },
    defaultChance = 20, -- the chance outside defined zones; 0 = none
    dispatchMessage = 'Noise complaint: residents report a loud appliance noise near %s.',

    previewEnabled = true,
    previewCommand = 'previewnoisezones',
    previewAce = 'command.previewnoisezones',
    previewDurationSecs = 60,

    blipLabel = 'Noise Complaint',
    blipColor = 3,
    -- blipSprite / blipScale optional — falls back to Config.Police.BlipSprite / BlipScale
}

-- Admin
Config.Admin = {
    removeMachineCommand = 'removewashmachine', -- /removewashmachine (removes machine you are facing)
    removeMachineAce = 'command.removewashmachine',
    removeMachineMaxDistance = 5.0,             -- meters
}

-- Staff Discord logging (single webhook, four embed categories)
Config.Logs = {
    enabled = true,
    webhook = 'place your webhook here', -- paste your Discord webhook URL here (keep private — rotate if exposed)
    console = false,                     -- set true if you want to print logs to server console / txAdmin
    botName = 'Patriot Money Wash',
    colors = {
        civilian = 10181046, -- purple in decimal
        police = 3447003,    -- blue in decimal
        staff = 15158332,    -- red in decimal
    },
    events = {
        -- Civilian
        npc_wash_start = true,
        npc_wash_complete = true,
        npc_wash_cancel = true,
        machine_purchase = true,
        machine_place = true,
        machine_pack = true,
        machine_steal = true,
        machine_wash_start = true,
        machine_wash_complete = true,

        -- Police
        police_npc_alert = true,
        police_machine_area = true,
        police_confiscate = true,

        -- Staff
        admin_remove_machine = true,
    },
}

```
