[PAID] AP5-MoneyWash | Money Washing Script Green Theme | [QBCore / ESX / QBOX]

:camera: In Game Photos



:gear: Features:

  • :brain: Advanced Skill Tree System – RPG-style progression where players earn XP to unlock upgrades for Speed (Efficiency), Tax Reduction (Connections), Capacity (Storage), and Luck (Risk Reduction).
  • :floppy_disk: Persistent Laundering – Active washes are saved to the database, ensuring players never lose their money during server restarts or crashes.
  • :art: Modern Themed UI – A sleek, responsive interface built with Tailwind CSS
  • :shield: Risk & Dispatch Integration – Configurable failure chances based on load capacity. Failed washes can trigger police alerts via ps-dispatch, cd-dispatch, or core-dispatch.
  • :iphone: Phone & Notification Support – Automatically notifies players when their wash is complete via phone mail (supports QB, GKS, OKOK, LB Phone) or standard notifications.
  • :electric_plug: Multi-Framework & Inventory – Ready for ESX, QBCore, and Qbox, with built-in compatibility for Ox, QB, Tgiann, Origen, and Codem inventories.
  • :stopwatch: Dynamic Time Calculations – Washing time can be static or dynamic based on the amount of money being cleaned, configurable in the settings.
  • :round_pushpin: Smart Location System – Choose between static ped locations or randomized spawns that change every restart to keep players searching.
  • :scroll: Comprehensive Logging – Supports Discord Webhooks, Fivemanage, and Fivemerr to track washes, failures, potential exploits, and skill unlocks.
  • :moneybag: Flexible Payment Logic – Supports both item-based (black_money) and metadata-based dirty money, with options for tax-free thresholds on small amounts.

:camera: Preview :camera:

:camera: Preview Video

:money_with_wings: Purchase Links :money_with_wings:

:shopping_cart: Escrowed


:shopping_cart: Open Source

Supports:

Framework: qb-core, qbx_core and es_extended

Target: qb-target and ox_target

Inventory: qb-inventory, ox_inventory, codem-inventory, origen_inventory and tgiann-inventory

Database: oxmysql

Logging: discord, fivemanage and fivemerr


:gear: Installation

  1. Download from Keymaster/Portal
  2. Ensure the folder is named AP5-MoneyWash.
  3. Put the folder in your resources folder.
  4. Restart your server.

Preview config.lua
Config = {}

-- Framework Configuration
-- Options: 'qb', 'qbox', 'esx'
Config.Framework = 'qb'

-- Inventory System Configuration
-- Options: 'ox', 'qb', 'tgiann', 'origen', 'codem'
Config.Inventory = 'ox'

-- Target System Configuration
-- Options: 'ox_target', 'qb-target'
Config.TargetSystem = 'ox_target'

-- Notification Method: 'ox_lib' or 'phone' (simulates SMS)
Config.NotificationMethod = 'ox_lib'

-- Alert Method for "Money Ready"
-- Options: 'notify', 'qb-phone', 'gks-phone', 'okok-phone', 'lb-phone'
Config.AlertMethod = 'qb-phone' 

-- Persistent Washing
-- If true, washes continue through server restarts/crashes.
Config.PersistentWashing = true

Config.Dispatch = {
    -- Enable or Disable Dispatch calls entirely
    Enabled = true,

    -- Options: 'ps-dispatch', 'cd_dispatch','core_dispatch'
    Provider = 'ps-dispatch',
    
    -- Chance (0.0 to 1.0) to alert police when wash fails
    CallChance = 1.0, 
    
    -- Label used in dispatch UI
    Label = "Money Laundering Suspicion"
}

-- Dirty Money Configuration
Config.DirtyMoney = {
    Type = 'item', -- 'item' or 'metadata'
    Item = 'black_money', 
    MetadataKey = 'worth' 
}

-- PED SPAWN SETTINGS
-- 'all'    = Spawns a ped at every location listed below.
-- 'random' = Picks ONE random location from the list below to spawn the ped at (changes on server restart).
Config.PedSpawnMode = 'all'

-- Location Configuration
-- specific model, coords (vec4), icon, and label for each spot
Config.Locations = {
    {
        coords = vec4(1142.6, -986.72, 45.9, 276.56),
        model = 'a_m_m_business_01',
        icon = 'fa-solid fa-sack-dollar',
        label = 'Speak To Cleaner'
    },
    -- Example of a second location:
    -- {
    --     coords = vec4(-100.0, -200.0, 30.0, 90.0),
    --     model = 'g_m_m_chemwork_01',
    --     icon = 'fa-solid fa-soap',
    --     label = 'Start Laundering'
    -- },
}

-- Gameplay Settings
Config.XPPer100Dollars = 10 -- How much XP per $100 washed
Config.PointsPerLevel = 1 -- Points given per 100 XP (1 level)
Config.RiskPerFullLoad = 0.25 -- 25% chance to fail if washing at 100% capacity

-- Base Stats (Tax & Load)
Config.BaseTax = 0.15
Config.BaseMaxLoad = 10000

-- Max Price Before Fee
-- If the amount being washed is less than or equal to this value, NO fee/tax is applied.
Config.MaxPriceBeforeFee = 100

-- Time Configuration
Config.TimeSettings = {
    -- 'fixed': Always takes the same amount of time (Config.TimeSettings.FixedDuration).
    -- 'dynamic': Time increases based on amount washed (BaseSetup + (Amount * PerDollar)).
    CalculationMode = 'dynamic', 

    -- Used ONLY if CalculationMode is 'fixed'
    FixedDuration = 7000, 

    -- Dynamic Calculation Settings
    -- Formula: BaseSetupTime + (Amount_Washed * TimePerDollar)
    -- Example: 3000ms setup + ($10,000 * 2ms) = 3s + 20s = 23 seconds total.
    BaseSetupTime = 3000,    -- (ms) Warming up the machine (added to every wash)
    TimePerDollar = 2.0,     -- (ms) Time added per $1 washed. (2.0 = 2 seconds per $1,000)

    -- Limits (Important for dynamic mode)
    MinDuration = 5000,      -- (ms) Minimum time a wash can take (prevents instant washes)
    MaxDuration = 120000,    -- (ms) Maximum time a wash can take (caps the timer)
}

-- Skill Tree Configuration
Config.Skills = {
    enableSpeed = true,
    enableTax = true,
    enableCapacity = true,
    enableLuck = true,

    speed = {
        { id = 1, label = 'Efficiency I', description = '+10% Speed', cost = 1, val = 0.10 },
        { id = 2, label = 'Efficiency II', description = '+20% Speed', cost = 2, val = 0.20 },
        { id = 3, label = 'Turbo Wash', description = 'Max Speed', cost = 3, val = 0.40 }
    },
    tax = {
        { id = 1, label = 'Connections I', description = '-1% Tax', cost = 1, val = 0.01 },
        { id = 2, label = 'Connections II', description = '-2% Tax', cost = 2, val = 0.02 },
        { id = 3, label = 'Offshore Account', description = '-3% Tax', cost = 3, val = 0.03 }
    },
    capacity = {
        { id = 1, label = 'Storage I', description = '+5k Max', cost = 1, val = 5000 },
        { id = 2, label = 'Storage II', description = '+10k Max', cost = 2, val = 10000 },
        { id = 3, label = 'Vault', description = '+25k Max', cost = 3, val = 25000 }
    },
    luck = {
        { id = 1, label = 'Reliability I', description = '-10% Fail Chance', cost = 1, val = 0.10 },
        { id = 2, label = 'Reliability II', description = '-25% Fail Chance', cost = 2, val = 0.25 },
        { id = 3, label = 'Iron Clad', description = '-50% Fail Chance', cost = 3, val = 0.50 }
    }
}

Other Releases

Scoreboard

Advanced Multi Job

Notify

Custom Plates

Crafting

ATM Hacking

Advanced Shops System

Street Sweeper

Dumpster Diving

Banking

Red Money Wash

:handshake: Support & Community

Need help, updates, or want to suggest features?
Join the AP5 Studios Community on Discord
:point_right: Click here to join: AP5 Studios

Additional Info

Code Access No
Subscription-based No
Lines of Code ~2000
Requirements None
Support Yes