♻️Recyclers

Features

  • Supports Ipls/MLOs

  • Supports multiple warehouse locations

  • Option to use a job check for access to the warehouse

  • Each warehouse can have different times for getting materials, pallet cooldowns

  • Support for drawtext/target to enter or leaving the warehouse

  • Usable recycler prop

  • Recycler prop can be placed anywhere

  • Option to use a job check to recycle certain items

  • Pallet timeouts per player after collecting materials

Showcase

Warehouse Access
Warehouse Access [Job Restriction]
Item with Job Restrictions

Installation

Inventory Items

QBX Items List

The below snippet is to be placed in ox_inventory/data/items

The images are to be placed in ox_inventory/web/images

-- Kevin Recylers Items
["recycler"] = {
    label = "Recycler",
    weight = 10000,
    stack = true,
    close = true,
    description = "A machine to recycle items",
},
['empty_recycleables_crate'] = {
    label = "Empty Recycleables Crate",
    weight = 100,
    stack = true,
    close = true,
    description = "An empty crate for recycleables",
},
["recycleables"] = {
    label = "Recycleables",
    weight = 10000,
    stack = true,
    close = true,
    description = "Items to recycle",
},

QBCore Items List

The below snippet is to be placed in qb-core/shared/items.lua

The images are to be placed in ps or qb inventory/html/images

recycler = {name = "recycler", label = "Recycler", weight = 10000, type = "item", image = "recycler.png", unique = true, useable = true, shouldClose = false, combinable = nil, description = "A machine to recycle items"},
empty_recycleables_crate = {name = "empty_recycleables_crate", label = "Empty Recycleables Crate", weight = 100, type = "item", image = "recycler.png", unique = false, useable = true, shouldClose = false, combinable = nil, description = "An empty crate for recycleables"},
recycleables = {name = "recycleables", label = "Recycleables", weight = 10000, type = "item", image = "recycler.png", unique = true, useable = true, shouldClose = false, combinable = nil, description = "Items to recycle"},

Warehouse Example

{
    enableTeleports = true, -- enable or disable teleporting to this warehouse
    drawtext = {
        -- entrance = 'Press [E] to Enter',
        -- exit = 'Press [E] to Exit',
    },
    target = {
        entrance = {
            icon = 'fas fa-door-open',
            label = 'Enter Warehouse',
            coords = vec3(746.75, -1399.2, 26.85),
            size = vec3(0.5, 1.5, 2.55),
            rotation = 90.0,
        },
        exit = {
            icon = 'fas fa-door-closed',
            label = 'Exit Warehouse',
            coords = vec3(992.0, -3097.8, -39.0),
            size = vec3(0.5, 1.5, 2.55),
            rotation = 0.0,
        },
    },
    bucket = 100,
    job = 'police', -- job required to access this warehouse
    entrance = vector4(746.8, -1399.63, 26.6, 186.97),
    exit = vector4(992.5, -3097.79, -39.0, 272.56),
    zone = {-- made this a zone because some were having difficulty creating the poly
        coords = vector3(1010.36, -3101.25, -39.0), -- center of the warehouse
        radius = 80.0, -- radius of the zone of the warehouse where the pallets are spawned
    },
    ped = {
        coords = vector4(997.84, -3095.67, -39.0, 274.24),
        model = `a_m_m_farmer_01`,
        enableStore = true, -- enable or disable the store for this warehouse
    },
    blip = {
        name = 'LS Recyclers',
        sprite = 365,
        color = 43,
        scale = 0.8,
        shortRange = true,
    },
    shop = {
        name = 'Ls Recyclers',
        items = {
            { name = 'recycler', amount = 40, price = 5000 },
        },
    },
    crateTimeOut = 5, -- minutes until a pallet can be looted again
    emptyCrateTime = 5000, -- time in ms to collect empty crate
    getMaterialsTime = 5000, -- time in ms to get materials from a pallet
    pallets = {
        models = {
            `sm_prop_smug_crate_m_antiques`,
            `ba_prop_battle_crate_m_bones`,
            `ex_prop_crate_pharma_sc`,
            `ex_prop_crate_art_02_sc`,
            `ex_prop_crate_shide`,
            `ex_prop_crate_furjacket_bc`,
            `ex_prop_crate_art_bc`,
        },
        coords = {
            vector4(1003.56, -3097.03, -39.0, 3.01),
            vector4(1003.61, -3102.79, -39.0, 180.71),
            vector4(1003.62, -3108.37, -39.0, 177.31),
            vector4(1003.72, -3091.56, -39.0, 183.88),
            vector4(1006.09, -3091.77, -39.0, 1.07),
            vector4(1006.06, -3096.92, -39.0, 178.59),
            vector4(1006.01, -3102.6, -39.0, 180.44),
            vector4(1006.03, -3108.44, -39.0, 182.12),
            vector4(1008.53, -3108.65, -39.0, 1.0),
            vector4(1008.51, -3102.92, -39.0, 0.49),
            vector4(1008.56, -3097.25, -39.0, 2.55),
            vector4(1008.48, -3091.63, -39.0, 1.67),
            vector4(1011.07, -3091.69, -39.0, 0.48),
            vector4(1010.74, -3096.8, -39.0, 173.98),
            vector4(1010.85, -3102.55, -39.0, 178.55),
            vector4(1010.79, -3108.33, -39.0, 182.06),
            vector4(1013.36, -3108.51, -39.0, 359.03),
            vector4(1013.35, -3102.91, -39.0, 357.75),
            vector4(1013.34, -3097.18, -39.0, 0.39),
            vector4(1013.34, -3091.71, -39.0, 0.53),
            vector4(1015.76, -3091.69, -39.0, 3.08),
            vector4(1015.63, -3096.85, -39.0, 181.92),
            vector4(1015.56, -3102.47, -39.0, 180.56),
            vector4(1015.64, -3108.13, -39.0, 180.12),
            vector4(1018.09, -3108.66, -39.0, 2.16),
            vector4(1018.1, -3102.91, -39.0, 0.22),
            vector4(1018.1, -3097.24, -39.0, 2.13),
            vector4(1018.11, -3091.83, -39.0, 359.44),
            vector4(1026.96, -3091.51, -39.0, 95.66),
            vector4(1026.32, -3094.15, -39.0, 91.5),
            vector4(1026.7, -3096.48, -39.0, 94.04),
            vector4(1026.79, -3106.6, -39.0, 268.35),
            vector4(1026.61, -3108.99, -39.0, 271.53),
            vector4(1026.7, -3111.43, -39.0, 94.21),
            vector4(993.57, -3111.36, -39.0, 90.63),
            vector4(993.52, -3108.87, -39.0, 87.98),
            vector4(993.39, -3106.48, -39.0, 89.85),
        }
    }
},

Warehouse Fields

  • enableTeleports boolean: Enable or disable teleporting to this warehouse.

  • drawtext table: Customizable draw text for entrance and exit prompts.

    • entrance string: Text to display at the entrance (optional).

    • exit string: Text to display at the exit (optional).

  • target table: Target interaction configuration for entrance and exit.

    • entrance table: Entrance target settings.

      • icon string: Icon for the entrance target.

      • label string: Label for the entrance target.

      • coords vector3: Coordinates for the entrance target.

      • size vector3: Size of the entrance target area.

      • rotation number: Rotation of the entrance target.

    • exit table: Exit target settings.

      • icon string: Icon for the exit target.

      • label string: Label for the exit target.

      • coords vector3: Coordinates for the exit target.

      • size vector3: Size of the exit target area.

      • rotation number: Rotation of the exit target.

  • bucket number: Routing bucket ID for the warehouse instance that's not 0.

  • job string: Job required to access this warehouse.

  • entrance vector4: Entrance coordinates and heading.

  • exit vector4: Exit coordinates and heading.

  • zone table: Zone configuration for the warehouse.

    • coords vector3: Center coordinates of the warehouse zone.

    • radius number: Radius of the warehouse zone.

  • ped table: Pedestrian (NPC) configuration.

    • coords vector4: Coordinates and heading for the ped.

    • model hash: Model hash for the ped.

    • enableStore boolean: Enable or disable the store for this warehouse.

  • blip table: Map blip configuration.

    • name string: Name of the blip.

    • sprite number: Sprite ID for the blip.

    • color number: Color ID for the blip.

    • scale number: Scale of the blip

    • shortRange boolean: Whether the blip is short range.

  • shop table: Shop configuration for the warehouse.

    • name string: Name of the shop.

    • items table: List of items available in the shop.

      • name string: Item name.

      • amount number: Quantity available.

      • price number: Price of the item.

  • crateTimeOut number: Minutes until a pallet can be looted again.

  • emptyCrateTime number: Time in milliseconds to collect an empty crate.

  • getMaterialsTime number: Time in milliseconds to get materials from a pallet.

  • pallets table: Pallet configuration.

    • models table: List of model hashes for pallet objects.

    • coords table: List of vector4 coordinates and headings for pallet placements.

Last updated