Whats up CFX neighborhood. Right here is our newest script for FiveM; Level Of Sale . At the moment it really works just for ESX & QBCore i feel. However i can attempt it in any Framework in case you guys recommend me any in close to future. Hope you guys find it irresistible!

📑 Config
Config = {}

Config.Keys = {
    ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57,
    ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177,
    ["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18,
    ["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182,
    ["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81,
    ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70,
    ["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178,
    ["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173,
    ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
}


--== # FRAMEWORK
Config.Framework = {}

Config.FrameworkTriggers = {                        --You may change the esx/qbcore occasions (IF NEEDED).
    SharedObject="esx:getSharedObject",           -- ESX = 'esx:getSharedObject'   QBCORE = 'QBCore:GetObject'
    SharedName = "ESX",                             -- ESX = "ESX"                   QBCORE = "QBCORE"
    job = 'esx:setJob',                             -- ESX = 'esx:setJob'            QBCORE = 'QBCore:Shopper:OnJobUpdate'
}

Config.KeySettings = {}
Config.KeySettings.AcceptKey = "ENTER"
Config.KeySettings.RejectKey = "DELETE"
Config.KeySettings.OpenPOS = "E"


Config.RequestTimeout = 10000 -- Milisecond

--== # ITEMS
Config.Framework.SQL = "mysql-async"                        -- [ 'mysql"https://forum.cfx.re/"ghmattimysql"https://forum.cfx.re/"oxmysql' ].
Config.Framework.SQLType = true                             -- in case your objects in shared folder simply make true
Config.Framework.TableName = "objects"                        -- Your SQL objects desk title
Config.InventoryImagePath = "stock/html/photographs/"     -- Objects icon folder
Config.WeaponImage = true                                   -- If weapon merchandise icons accommodates "weapon_" in any other case set it false
--== # MORE
Config.HowerMarker = {
    Measurement = 0.6,                             -- Measurement of the marker.
    Colour = {R = 255, G = 0, B = 0},        -- https://htmlcolorcodes.com
    MarkerType = 20                         -- https://docs.fivem.internet/docs/game-references/markers/
}

Config.Classes = {

    hamburgers = {                                  -- Class config. Thats is utilized by script (DOESN'T use in-game).
        title = "hamburgers",                        -- Class title additionally utilized by script NOT in-game. 
        label = "Hamburgers",                       -- Class label will proven in-game.
        icon = "fas fa-hamburger",                  -- Class icon will proven in-game. https://fontawesome.com/v5.15/icons?d=gallery&p=2
    },

    drinks = {
        title = "drinks",
        label = "Drinks",
        icon = "fab fa-gulp",
    },

    fries = {
        title = "fries",
        label = "Fries",
        icon = "fas fa-bacon",
    }


}

Config.Areas = {

    Burgershot = {                                                          
        ["shop_name"] = "Burgershot",                                                -- UI Header title
        ["billingadress"] = "society_burgershot",                                    -- Billing perform.
        ["job"] = "burgershot",                                                      -- Job test.
        ["categories"] = {"hamburgers", "drinks", "fries"},                          -- Classes that you just wish to proven on this menu.
        ["location"] = {
            vector3(-1195.5142, -893.5614, 13.9742),
        },
        ["items"] = {                                                                   -- Objects that you just wish to proven on this menu.
            ["bandage"] = {class = "hamburgers", worth = 5 },                    -- An precise merchandise with worth.
        }
    },

    -- Take away the brackets in case you want an instance for the create a brand new location.

    --[[Anotherplace = {
        ["shop_name"] = "Burgershot",
        ["billingadress"] = "society_burgershot",
        ["job"] = "burgershot",
        ["categories"] = {"hamburgers", "drinks", "fries"},
        ["location"] = {
            vector3(-1195.5142, -893.5614, 13.9742),
        },
        ["items"] = {
            ["bandage"] = {class = "example1", worth = 5 },
            ["phone"] = {class = "example1", worth = 100 },
        }
    }]]

}

Config.BillSettings = perform(PlayerPed, Value, society, Shopname, knowledge)
    TriggerServerEvent('esx_billing:sendBill', GetPlayerServerId(NetworkGetPlayerIndexFromPed(PlayerPed)), society, Shopname, Value)
    --Set this place such as you need.
finish

Config.Notify = perform(msg)
    --Notification set off/export with (msg)
finish

Config.Messages = {
    ["no_job"] = "Your job just isn't right",
    ["receive_bill"] = "From ~r~%s~w~nPrice: ~g~$%s~w~nAccept ~b~[~w~%s~b~]~w~nReject: ~b~[~w~%s~b~]",
    ["openpos"] = "Press ~b~[~r~%s~b~]~w~ for open PoS",
    ["timeout"] = "You might be so gradual.",
    ["cancel_selection"] = "Press ~r~[~w~ESCAPE~r~]~w~ to cancel",
    ["accepted_bill"] = "Buyer accepted the invoice.",
    ["rejected_bill"] = "Buyer rejected the invoice."
}



Looking for paid scripts? Click here