Config

Configuration file for apartment cleaning.

Config = {}

Config.debug = false

Config.framework = 'esx' -- Options: 'esx' or 'qbcore'

Config.useNewESXExport = true

--Enable this if your vehicle despawns when you leave an apartment
Config.preventCarDespawn = false

-- supported types: 'mysql', 'oxmysql' and 'ghmattimysql'
Config.sqlDriver = 'oxmysql'

-------------------------------------------------
--- DISPATCH
-------------------------------------------------
Config.dispatch = {
    enable = true, -- Whether to enable the dispatch

    alertChance = 10, -- chance in %, how often smash n grab events get called

    system = 'ps-dispatch',  -- Setting for the dispatch system to use 'cd-dispatch', 'core-dispatch-old', 'core-dispatch-new' or 'ps-dispatch'
    policeCode = '10-31',  -- Police code for the smash n grab
    eventName = 'Theft',  -- Name of the theft event
    description = 'Valuable theft by apartment cleaner',  -- Description of the theft event

    blip = {
        sprite = 380,  -- Sprite for the Theft blip
        color = 59,  -- Color for the Theft blip
        scale = 1.0,  -- Scale for the Theft blip

        timeout = 60,  -- Time in seconds for the blip to disappear after the Theft event is over

        showRadar = true,  -- Setting to show the Theft blip on the radar
    },
}

Config.minCountPoliceNeeded = 2 -- Amount of police officers needed for the valuable to spawn

Config.shouldCopsGetNotified = true -- Should police get notified when player gets caught stealing

Config.subtitleShowLength = 10 -- in seconds, how long tutorial subtitles will show on player's screen

Config.bannedTime = 20 -- in minutes

-- If players should receive a notification telling how much they earned after cleaning an apartment
Config.sendSalaryNotification = true

--If fade in and fade out effects should appear when player enters/exits an apartment
Config.fadeEffect = true

--Properties for all drawn markers
Config.markers = {
    scaleX = 1.8,
    scaleY = 1.8,
    scaleZ = 0.7,
    type = 1,
    r = 220,
    g = 160,
    b = 20,
    alpha = 90,
    rotationX = 0.0, -- must be decimal
    rotationY = 0.0, -- must be decimal
    rotationZ = 0.0, -- must be decimal
    textureDictionary = nil,
    textureName = nil,
    bobUpAndDown = false,
    faceCamera = false
}

Config.target = {
    enabled = true,
    system = 'qb-target' -- 'qtarget' or 'qb-target' or 'ox_target'  (Other systems might work as well)
}

Config.cleanerJob = {
    jobOnly = false,
    jobNames = {
        'cleaner'
    }
}

Config.enableBlipRoute = true -- If player should get a route to the apartment

Config.bucketModel = 'prop_tool_mopbucket'

Config.useSellLocations = true -- if sell locations should be accessible to players

Config.payout_account = "bank"

Config.policeJobNames = {
    'police'
}

-- If player's experience should reset if they get caught stealing
Config.playerExpReset = true

-- Enable if you're using an older version of oxmysql
Config.oldOxmysql = false

Config.chanceOfValuableSpawning = 15 -- %

Config.chanceOfCaughtStealing = 20 -- %

-- If player should be able to leave an apartment without cleaning anything (player will receive no payout and no experience)
Config.exitApartmentWithoutCleaning = true

-- Time it takes for the player to receive a new order
Config.timeToFindNewOrder = {
    min = 15, -- in seconds
    max = 45  -- in seconds
}

Config.keybinds = {
    collect = 'G',
    interactMop = 'E',
    interactTrashBag = 'E',
    enterAndExitApartment = 'E',
    startAndEndWork = 'E',
    sellItems = 'E',
    mopFloor = 'G',
    checkExperience = 'H'
}

Config.startJobLocation = {
    x = 707.7,
    y = -960.4,
    z = 30.3,
}
-- Chance of mop successfully cleaning a floor stain (per click)
Config.chanceOfCleaning = 100 -- %

Config.experience = {
    {
        minExp = 0,
        maxExp = 100,
        payBonus = 5, -- %
        name = 'Beginner cleaner',
    },
    {
        minExp = 101,
        maxExp = 200,
        payBonus = 7, -- %
        name = 'Amateur cleaner',
    },
    {
        minExp = 201,
        maxExp = 300,
        payBonus = 12, -- %
        name = 'Advanced cleaner',
    },
    {
        minExp = 301,
        maxExp = 99999,
        payBonus = 15, -- %
        name = 'Expert cleaner',
    },
    minExpGain = 10,
    maxExpGain = 30
}

Config.interiors = {
    ['smallApartment'] = {
        minExpLvl = 1,
        ipl = 'small_apart',
        trashCount = 5,
        decalCount = 2,
        payoutMin = 500,
        payoutMax = 6000,
        valuableSpawnLocation = {
            {
                x = -283.7,
                y = 1212.4,
                z = 275.8,
            },
            {
                x = -271.2,
                y = 1217.6,
                z = 276.3,
            }
        },
        playerSpawnLocation = {
            x = -277.1,
            y = 1204.2,
            z = 275.8,
        },
        mopSpawnLocation = {
            x = -273.1,
            y = 1208.8,
            z = 275.8,
        },
        bucketSpawnLocation = {
            x = -273.5,
            y = 1209.6,
            z = 275.8,
        },
        trashBagSpawnLocation = {
            x = -278.1,
            y = 1211.9,
            z = 275.5,
        },
        mainLocation = {
            x = -283.1,
            y = 1217.8,
            z = 275.8,
        },
        decalLocations = {
            {
                x = -279.1,
                y = 1220.5,
                z = 275.8,
            },
            {
                x = -276.2,
                y = 1222.5,
                z = 275.8,
            }
        },
        presetLocations = {
            {
                x = -273.95,
                y = 1220.1,
                z = 277.06,
            },
            {
                x = -273.9,
                y = 1208.9,
                z = 275.8,
            },
            {
                x = -281.8,
                y = 1222.2,
                z = 276.2,
            },
            {
                x = -276.4,
                y = 1221.1,
                z = 275.8,
            }
        }
    },
    ['lowEndApartment'] = {
        ipl = 'low_apartment',
        minExpLvl = 1,
        trashCount = 5,
        decalCount = 2,
        payoutMin = 500,
        payoutMax = 4500,
        valuableSpawnLocation = {
            {
                x = 261.2,
                y = -1022.8,
                z = -98.4,
            },
            {
                x = 257.1,
                y = -1017.2,
                z = -98.5
            }
        },
        playerSpawnLocation = {
            x = 266.1,
            y = -1025.5,
            z = -101.0,
        },
        mopSpawnLocation = {
            x = 264.6,
            y = -1020.3,
            z = -99.0,
        },
        bucketSpawnLocation = {
            x = 264.8,
            y = -1021.5,
            z = -99.0,
        },
        trashBagSpawnLocation = {
            x = 265.5,
            y = -1017.7,
            z = -99.0,
        },
        mainLocation = {
            x = 259.2,
            y = -1016.2,
            z = -99.0,
        },
        decalLocations = {
            {
                x = 264.3,
                y = -1014.6,
                z = -99.0,
            },
            {
                x = 260.2,
                y = -1021.1,
                z = -99.0,
            }
        },
        presetLocations = {
            {
                x = 262.5,
                y = -1021.1,
                z = -99.0,
            },
            {
                x = 262.1,
                y = -1014.8,
                z = -99.0,
            },
            {
                x = 255.4,
                y = -1019.1,
                z = -99.0,
            },
            {
                x = 257.1,
                y = -1014.2,
                z = -99.0,
            }
        }
    },
    ['executive_office'] = {
        ipl = 'executive_dlc',
        minExpLvl = 3,
        trashCount = 5,
        decalCount = 5,
        payoutMin = 500,
        payoutMax = 15000,
        valuableSpawnLocation = {
            {
                x = -1561.0,
                y = -572.6,
                z = 55.4,
            },
            {
                x = -1556.3,
                y = -576.7,
                z = 55.2,
            }
        },
        playerSpawnLocation = {
            x = -1580.9,
            y = -561.6,
            z = 54.4,
        },
        mopSpawnLocation = {
            x = -1579.5,
            y = -568.4,
            z = 54.4,
        },
        bucketSpawnLocation = {
            x = -1578.6,
            y = -569.8,
            z = 54.4,
        },
        trashBagSpawnLocation = {
            x = -1574.0,
            y = -565.4,
            z = 54.4,
        },
        mainLocation = {
            x = -1562.9,
            y = -579.6,
            z = 54.4,
        },
        decalLocations = {
            {
                x = -1575.8,
                y = -575.2,
                z = 54.4,
            },
            {
                x = -1573.9,
                y = -588.6,
                z = 54.4,
            },
            {
                x = -1569.6,
                y = -570.2,
                z = 54.4,
            },
            {
                x = -1565.0,
                y = -571.3,
                z = 54.4,
            },
            {
                x = -1562.1,
                y = -581.8,
                z = 54.4,
            },
            {
                x = -1567.0,
                y = -581.1,
                z = 54.4,
            },
            {
                x = -1567.1,
                y = -586.5,
                z = 54.4,
            },
            {
                x = -1571.5,
                y = -581.2,
                z = 54.4,
            },
            {
                x = -1576.0,
                y = -580.7,
                z = 54.4,
            },
            {
                x = -1575.4,
                y = -570.2,
                z = 54.4,
            },
            {
                x = -1571.3,
                y = -575.9,
                z = 54.4,
            },
            {
                x = -1582.6,
                y = -558.8,
                z = 54.4,
            },
        },
        presetLocations = {
            {
                x = -1581.7,
                y = -577.0,
                z = 54.4,
            },
            {
                x = -1561.1,
                y = -568.8,
                z = 54.4,
            },
            {
                x = -1564.0,
                y = -565.1,
                z = 54.4,
            },
            {
                x = -1570.2,
                y = -575.2,
                z = 54.4,
            }
        }
    },
    ['mediumGarage'] = {
        ipl = 'medium_garage',
        minExpLvl = 2,
        trashCount = 5,
        decalCount = 3,
        payoutMin = 1500,
        payoutMax = 7000,
        valuableSpawnLocation = {
            {
                x = 190.5,
                y = -920.9,
                z = -98.4,
            },
            {
                x = 206.9,
                y = -916.3,
                z = -97.9,
            }
        },
        playerSpawnLocation = {
            x = 198.3,
            y = -927.7,
            z = -98.9,
        },
        mopSpawnLocation = {
            x = 201.9,
            y = -927.6,
            z = -98.9,
        },
        bucketSpawnLocation = {
            x = 203.58,
            y = -927.8,
            z = -98.9,
        },
        trashBagSpawnLocation = {
            x = 195.2,
            y = -927.6,
            z = -98.9,
        },
        mainLocation = {
            x = 197.2,
            y = -919.3,
            z = -98.9,
        },
        decalLocations = {
            {
                x = 192.0,
                y = -916.2,
                z = -98.9,
            },
            {
                x = 192.1,
                y = -919.8,
                z = -98.9,
            },
            {
                x = 191.1,
                y = -927.0,
                z = -98.9,
            },
            {
                x = 198.2,
                y = -916.23,
                z = -98.9,
            },
            {
                x = 204.3,
                y = -916.3,
                z = -98.9,
            },
            {
                x = 201.7,
                y = -922.9,
                z = -98.9,
            },
            {
                x = 212.0,
                y = -919.5,
                z = -98.9,
            },
        },
        presetLocations = {
            {
                x = 205.7,
                y = -925.4,
                z = -98.9,
            },
            {
                x = 210.5,
                y = -919.3,
                z = -98.9,
            },
            {
                x = 205.6,
                y = -915.1,
                z = -98.9,
            }
        }
    },
}

--All decal types: https://imgur.com/a/fxXTiCC
Config.decal = {
    types = {
        1020,
        1010,
        4100
    },

    colorVariants = {
        {
            r = 0.427,
            g = 0.37,
            b = 0.29
        },
        {
            r = 0.4,
            g = 0.2,
            b = 0.0
        },
        {
            r = 0.2,
            g = 0.6,
            b = 0.2
        }
    },
    --The size of the decal (only integer numbers)
    minScale = 1,
    maxScale = 3
}

Config.locations = {
    {
        interiorKey = 'smallApartment',
        coords = {
            x = -1566.5,
            y = -404.0,
            z = 42.3,
        }
    },
    {
        interiorKey = 'smallApartment',
        coords = {
            x = -201.7,
            y = 186.2,
            z = 80.3,
        }
    },
    {
        interiorKey = 'smallApartment',
        coords = {
            x = 3.7,
            y = -201.1,
            z = 52.7,
        }
    },
    {
        interiorKey = 'smallApartment',
        coords = {
            x = 254.3,
            y = 25.22,
            z = 88.1,
        }
    },
    {
        interiorKey = 'executive_office',
        coords = {
            x = -185.5,
            y = -760.1,
            z = 30.4,
        }
    },
    {
        interiorKey = 'executive_office',
        coords = {
            x = 5.3,
            y = -707.1,
            z = 45.9,
        }
    },
    {
        interiorKey = 'executive_office',
        coords = {
            x = -81.8,
            y = -836.6,
            z = 40.5,
        }
    },
    {
        interiorKey = 'executive_office',
        coords = {
            x = -914.5,
            y = -455.6,
            z = 39.5,
        }
    },
    {
        interiorKey = 'lowEndApartment',
        coords = {
            x = -216.5,
            y = -1649.3,
            z = 34.4,
        }
    },
    {
        interiorKey = 'lowEndApartment',
        coords = {
            x = 431.1,
            y = -1559.4,
            z = 32.7,
        }
    },
    {
        interiorKey = 'lowEndApartment',
        coords = {
            x = 331.2,
            y = -2071.8,
            z = 20.2,
        }
    },
    {
        interiorKey = 'lowEndApartment',
        coords = {
            x = -1102.2,
            y = -1493.0,
            z = 4.8,
        }
    },
    {
        interiorKey = 'lowEndApartment',
        coords = {
            x = -1114.7,
            y = -1068.5,
            z = 2.15,
        }
    },
    {
        interiorKey = 'smallApartment',
        coords = {
            x = 254.3,
            y = 25.22,
            z = 88.1,
        }
    },
    {
        interiorKey = 'mediumGarage',
        coords = {
            x = 468.4,
            y = -1594.0,
            z = 29.2,
        }
    },
    {
        interiorKey = 'mediumGarage',
        coords = {
            x = 1219.5,
            y = -3234.3,
            z = 5.5,
        }
    },
    {
        interiorKey = 'mediumGarage',
        coords = {
            x = 1063.6,
            y = -2410.4,
            z = 29.9,
        }
    },
    {
        interiorKey = 'mediumGarage',
        coords = {
            x = -521.2,
            y = -2900.5,
            z = 6.0,
        }
    },
}

Config.sellLocations = {
    {
        locations = {
            {
                x = 189.6,
                y = -14.5,
                z = 73.2
            },
            {
                x = 189.6,
                y = -14.5,
                z = 73.2
            }
        },
        name = 'Valuable Buyer',
        showOnMap = true,
        useAccount = 'bank',
        blipIcon = 617,
        blipColor = 46,
        blipScale = 0.8,
        items = {
            {
                item = 'ls_watch',
                label = 'Exquisite watch',
                price = 5000,
            },
            {
                item = 'ls_ringset',
                label = 'Set of rings',
                price = 9000,
            },
            {
                item = 'ls_laptop',
                label = 'Laptop',
                price = 2400,
            },
            {
                item = 'ls_necklace',
                label = 'Pearl necklace',
                price = 6000,
            }
        },
    }
}



--Item models that spawn in interiors.
--To make interior specific models, create sub-table with interior key as the name
--IMPORTANT! If you want to add your own models, select non-breakable models as otherwise the trash might break!!!
Config.itemModels = {
    ['lowEndApartment'] = {
        'v_ret_247_ketchup2',
        'v_ret_fh_noodle',
        'ng_proc_sodacan_02b',
        'ng_proc_litter_plasbot2',
        'ng_proc_coffee_02a',
        'v_ret_247_noodle1',
        'v_ret_247_soappowder2',
        'prop_pizza_box_01',
        'prop_old_boot',
    },
    ['mediumGarage'] = {
        'prop_cardbordbox_01a',
        'prop_wheel_rim_05',
        'prop_oilcan_02a',
        'prop_oilcan_01a',
        'ng_proc_litter_plasbot2',
        'p_cs_bottle_01',
        'prop_ld_flow_bottle'
    },
    ['default'] = {
        'v_ret_247_ketchup2',
        'v_ret_fh_noodle',
        'ng_proc_sodacan_02b',
        'ng_proc_litter_plasbot2',
        'ng_proc_coffee_02a',
        'v_ret_247_noodle1',
        'v_ret_247_soappowder2',
        'prop_pizza_box_01',
        'prop_old_boot',
        'p_cs_bottle_01',
        'prop_ld_flow_bottle'
    },
}

Config.valuableItems = {
    {
        model = 'prop_jewel_pickup_new_01',
        item = 'ls_ringset',
        label = 'Set of rings'
    },
    {
        model = 'prop_jewel_02b',
        item = 'ls_watch',
        label = 'Exquisite watch'
    },
    {
        model = 'prop_jewel_04b',
        item = 'ls_ringset',
        label = 'Set of rings'
    },
    {
        model = 'prop_laptop_02_closed',
        item = 'ls_laptop',
        label = 'Laptop'
    },
    {
        model = 'p_jewel_necklace_02',
        item = 'ls_necklace',
        label = 'Pearl necklace'
    }
}

Config.blips = {
    locationBlip = {
        blipIcon = 40,
        blipColor = 26,
        blipScale = 1.0
    },
    HQBlip = {
        blipIcon = 480,
        blipColor = 26,
        blipScale = 1.3,
        blipName = "Cleaning services"
    },
    policeBlip = {
        sprite = 161,
        color = 47,
        scale = 2.0,
        alpha = 150,
        shortRange = false,
    },
}

Last updated

Was this helpful?