Money Wash 💸 (Realistic Animations)

2023-11-13 17-45-59 (1)


money_wash


Money Wash Resource :money_mouth_face::money_with_wings:

  • Support multiple dirty money types at once
  • Unlimited Locations, place anywhere on the map
  • Customization (How long it takes to wash, percentage taken, etc)
  • Server-sided (only one player can use the machine at a time)
  • Realistic washing animations

Frameworks:

  • QB
  • ESX
  • Custom

Do I need to use a target resource? (qb-target, ox_target)

  • No, there is an option to use Text UI if you prefer

Get it here :point_right: Money Wash (Click Here) :shopping_cart:

Preview: [LINK]


Gallery








Config
config = {}

config.target = { -- only one of these should be true
    qb = true,
    ox = false, 
    textUI = false,
}

config.wash_time = 30 -- how long it takes to wash a load of money (in seconds)
config.wash_percentage = 0.85 -- how much money you get back from washing [0.85 = 85%] (wash $100 dirty, receive $85 clean)

config.dirtymoney_types = {
    'dirty_money',
    'markedbills',
    'black_money',
}

config.loading = {
    [1] = {
        prop = 'ch_prop_ch_laundry_machine_01a', -- closed
        prop2 = 'bkr_prop_prtmachine_dryer_op', -- open
        prop3 = 'bkr_prop_prtmachine_dryer_spin', -- spinning
        prop_coords = vec4(29.738420, -2678.724609, 11.040356, 0), -- where the machine spawns
        anim_coords = vector4(29.71, -2679.92, 12.04, 359.35) -- where the player stands to wash / load money
    },
    -- add more locations:

    -- [2] = {
    --     prop = 'ch_prop_ch_laundry_machine_01a', -- closed
    --     prop2 = 'bkr_prop_prtmachine_dryer_op', -- open
    --     prop3 = 'bkr_prop_prtmachine_dryer_spin', -- spinning
    --     prop_coords = vec4(0, 0, 0, 0), -- where the machine spawns
    --     anim_coords = vector4(0, 0, 0, 0) -- where the player stands to wash / load money
    -- },
}

config.notify = function(msg, status) -- customize your notifications
    lib.notify({
        description = msg,
        type = status, -- success, error
        position = 'center-right',
    })
end




-- only edit if you know what you're doing, here you can customize item checks (optional):

config.ItemCheck = function()
    local has_item = {}
    local framework = nil
    local items = nil

    local qb = GetResourceState('qb-core') == 'started'
    local esx = GetResourceState('es_extended') == 'started'
    --local custom = exports['custom_framework']:getSharedObject() == 'started' -- change this and uncomment if you're using a custom framework
    if qb then 
        framework = exports['qb-core']:GetCoreObject()
        items = framework.Functions.GetPlayerData().items
    end
    if esx then
        framework = exports['es_extended']:getSharedObject()
        items = framework.GetPlayerData().inventory
    end
    -- if not custom then 
    --     return 
    -- else 
    --     framework = exports['custom_framework']:getSharedObject()
    --     items = framework.GetPlayerData().inventory
    -- end

    for k, v in pairs(items) do
        for _, moneyitems in pairs(config.dirtymoney_types) do
            if v.name == moneyitems then
                local amount = v.amount or v.count
                table.insert(has_item, {
                    item = v.name, 
                    label = v.label,
                    count = amount,
                })
            end
        end
    end
    return has_item
end

Other Resources:


Code is accessible Mostly
Subscription-based No
Lines (approximately) ~500
Requirements ox_lib
Support Yes

nice script do you have it open source

open ticket in discord

The purchase link does not work

good now, thank you

[UPDATE]: Config Option added for Clean Money to be added as an item or as Player Data.

Great Script!

had a couple questions and had immediate help.
definitely recommend this script.

Top tier support, top tier script

1 Like

Amazing script efficient and reliable support

would 100% recommend this money wash as is cheap too

1 Like

is this portable?

no webhook ?