Skip to content

EcoAtm

EcoATM job — machine interactions, NUI, and a streamed ATM prop. (Resource folder on disk is typically ecoatm.)

Features

  • PolyZone-driven client zones (client/*.lua)
  • Server logic under server/*.lua with oxmysql
  • Streamed prop + ytyp (stream/, DLC_ITYP_REQUEST)
  • NUI in html/

Dependencies

  • qb-core
  • oxmysql
  • PolyZone
  • Optional ox_inventory path when configured in config.lua

Notes

  • config.lua is escrow ignore — tune economy and inventory mode there.
  • Keep the ytyp request if you rely on the custom prop.

Inventory items

Config.ItemsToSell references device names players sell; ScrapItemIron / ScrapItemCopper are given when emptying a full machine. Skip any line your server already defines (e.g. phone, tablet).

qb-inventory

Add to qb-core/shared/items.lua (merge with existing items).

["phone"]                      = { name = "phone", label = "Phone", weight = 200, type = "item", image = "phone.png", unique = true, useable = true, shouldClose = true, description = "Mobile phone (EcoATM sellable)." },
["tablet"]                     = { name = "tablet", label = "Tablet", weight = 500, type = "item", image = "tablet.png", unique = true, useable = true, shouldClose = true, description = "Tablet device (EcoATM sellable)." },
["laptop"]                     = { name = "laptop", label = "Laptop", weight = 1200, type = "item", image = "laptop.png", unique = true, useable = true, shouldClose = true, description = "Laptop (EcoATM sellable)." },
["iphone"]                     = { name = "iphone", label = "iPhone", weight = 200, type = "item", image = "iphone.png", unique = true, useable = true, shouldClose = true, description = "iPhone (EcoATM sellable)." },
["ipad"]                       = { name = "ipad", label = "iPad", weight = 500, type = "item", image = "ipad.png", unique = true, useable = true, shouldClose = true, description = "iPad (EcoATM sellable)." },
["macbook"]                    = { name = "macbook", label = "MacBook", weight = 1200, type = "item", image = "macbook.png", unique = true, useable = true, shouldClose = true, description = "MacBook (EcoATM sellable)." },
["smartwatch"]                 = { name = "smartwatch", label = "Smartwatch", weight = 80, type = "item", image = "smartwatch.png", unique = true, useable = true, shouldClose = true, description = "Smartwatch (EcoATM sellable)." },
["iron"]                       = { name = "iron", label = "Iron", weight = 100, type = "item", image = "iron.png", unique = false, useable = false, shouldClose = false, description = "Scrap iron (EcoATM empty payout)." },
["copper"]                     = { name = "copper", label = "Copper", weight = 100, type = "item", image = "copper.png", unique = false, useable = false, shouldClose = false, description = "Scrap copper (EcoATM empty payout)." },
ox_inventory

Add to ox_inventory/data/items.lua. Rename images to match your web/images icons.

['phone'] = {
    label = 'Phone',
    weight = 200,
    stack = false,
    close = true,
    description = 'Mobile phone (EcoATM sellable).',
},

['tablet'] = {
    label = 'Tablet',
    weight = 500,
    stack = false,
    close = true,
    description = 'Tablet (EcoATM sellable).',
},

['laptop'] = {
    label = 'Laptop',
    weight = 1200,
    stack = false,
    close = true,
    description = 'Laptop (EcoATM sellable).',
},

['iphone'] = {
    label = 'iPhone',
    weight = 200,
    stack = false,
    close = true,
    description = 'iPhone (EcoATM sellable).',
},

['ipad'] = {
    label = 'iPad',
    weight = 500,
    stack = false,
    close = true,
    description = 'iPad (EcoATM sellable).',
},

['macbook'] = {
    label = 'MacBook',
    weight = 1200,
    stack = false,
    close = true,
    description = 'MacBook (EcoATM sellable).',
},

['smartwatch'] = {
    label = 'Smartwatch',
    weight = 80,
    stack = false,
    close = true,
    description = 'Smartwatch (EcoATM sellable).',
},

['iron'] = {
    label = 'Iron',
    weight = 100,
    stack = true,
    close = false,
    description = 'Scrap iron (EcoATM empty payout).',
},

['copper'] = {
    label = 'Copper',
    weight = 100,
    stack = true,
    close = false,
    description = 'Scrap copper (EcoATM empty payout).',
},

Installation

How to install

  1. Copy ecoatm to resources/ecoatm.
  2. Configure config.lua (inventory mode, zones, payouts).
  3. ensure qb-core, oxmysql, PolyZone, then ecoatm.
  4. Restart.

YouTube Video

YouTube Video