RegisterServerEvent('esx_accessories:pay') AddEventHandler('esx_accessories:pay', function() local xPlayer = ESX.Player(source) xPlayer.removeMoney(Config.Price, "Accessory Purchase") TriggerClientEvent('esx:showNotification', source, TranslateCap('you_paid', ESX.Math.GroupDigits(Config.Price))) end) RegisterServerEvent('esx_accessories:save') AddEventHandler('esx_accessories:save', function(skin, accessory) local source = source local xPlayer = ESX.Player(source) TriggerEvent('esx_datastore:getDataStore', 'user_' .. string.lower(accessory), xPlayer.getIdentifier(), function(store) store.set('has' .. accessory, true) local itemSkin = {} local item1 = string.lower(accessory) .. '_1' local item2 = string.lower(accessory) .. '_2' itemSkin[item1] = skin[item1] itemSkin[item2] = skin[item2] store.set('skin', itemSkin) end) end) ESX.RegisterServerCallback('esx_accessories:get', function(source, cb, accessory) local xPlayer = ESX.Player(source) TriggerEvent('esx_datastore:getDataStore', 'user_' .. string.lower(accessory), xPlayer.getIdentifier(), function(store) local hasAccessory = (store.get('has' .. accessory) and store.get('has' .. accessory) or false) local skin = (store.get('skin') and store.get('skin') or {}) cb(hasAccessory, skin) end) end) ESX.RegisterServerCallback('esx_accessories:checkMoney', function(source, cb) local xPlayer = ESX.Player(source) cb(xPlayer.getMoney() >= Config.Price) end)