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/*.luawithoxmysql - Streamed prop + ytyp (
stream/,DLC_ITYP_REQUEST) - NUI in
html/
Dependencies¶
qb-coreoxmysqlPolyZone- Optional ox_inventory path when configured in
config.lua
Notes¶
config.luais 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¶
- Copy
ecoatmtoresources/ecoatm. - Configure
config.lua(inventory mode, zones, payouts). ensure qb-core,oxmysql,PolyZone, thenecoatm.- Restart.
YouTube Video¶
YouTube Video