ESX/QB Vehicleshop, Car Dealer, Dealership

Introducing the best Vehicleshop for Fivem!
Our feature-rich solution is the perfect addition to any server looking to upgrade their vehicle dealership options.

Here’s what you can expect from our top-of-the-line script:

  • High Performance (Idle 0.0ms Server & Client)
  • Responsive design that looks great on all resolutions (CSS editable)
  • Quick and easy vehicle search with fast selection up/down
  • Create multiple dealerships to fit your server’s needs
  • Drag and drop camera and vehicle rotation for ultimate control
  • Change vehicle colors to match your desired look
  • Automatic creation of specifications for easy inventory management
  • Modal window with signature pad for streamlined transactions
  • Discord webhook when purchase was successfull or not

Our customizable configuration options allow you to tailor the Vehicleshop to your exact needs, including:

  • Change language settings for both frontend and backend
  • Adjust camera offset for the perfect viewing angle
  • Add more specifications
  • Change helpnotifications to suit your needs
  • Add custom notification triggers
  • Customize vehicle colors
  • Set up multiple dealerships with unique names, locations, blips, NPCs, and vehicles

Client:

ES = {}

ES.language = {
    ['success'] = 'Congratulations! You have successfully purchased the %s. It has been delivered to your garage.',
    ['error'] = 'Insufficient funds. You do not have enough money to purchase this vehicle.',
    ['action_to_open'] = 'Press ~INPUT_CONTEXT~ to open the dealership menu'
}

ES.camera_offset = -2.0 --[[
    0.0 = camera will be pointed directly to the front of the vehicle.
    You can play around a bit with this option, if you dont like the current camera postion.
    It can also be negative.
]]

ES.getVehicleSpecifications = function(vehicle, model)
    return {
        {
            ['name'] = 'Max. Speed',
            ["value"] = math.floor(GetVehicleEstimatedMaxSpeed(vehicle) * 3.6),
            ["unit"] = 'km/h',
            ["max"] = 300
        },
        {
            ['name'] = 'Seats',
            ["value"] = GetVehicleModelNumberOfSeats(model),
            ["unit"] = 'Seats',
            ["max"] = 4
        },
        {
            ['name'] = 'Gewicht',
            ["value"] = GetVehicleHandlingFloat(vehicle, 'CHandlingData', 'fMass'),
            ["unit"] = 'kg',
            ["max"] = 1850
        }
    }
end

ES.DisplayHelpText = function(str)
    SetTextComponentFormat("STRING")
	AddTextComponentString(str)
	DisplayHelpTextFromStringLabel(0, 0, 1, -1)

    --[[
        You can also include your own HelpText.
        Just remove the functions above and insert your own Trigger.
    ]]
end

ES.notify = function(msg)
    --TriggerEvent("notify", "info", "Information", msg, 7000)
    
    TriggerEvent('notifications', 'grey', 'info', msg)
end

ES.colors = {
    --[[
        Colors have to be rgb().
        hex or such other thing wont work and will output errors.
    ]]

    "rgb(255, 255, 255)",
    "rgb(255, 108, 108)",
    "rgb(255, 203, 101)",
    "rgb(163, 255, 222)",
    "rgb(125, 193, 255)",
    "rgb(154, 74, 255)",
    "rgb(135, 135, 135)",
    "rgb(255, 52, 52)",
    "rgb(255, 186, 52)",
    "rgb(54, 255, 183)",
    "rgb(26, 145, 255)",
    "rgb(135, 41, 255)",
    "rgb(0, 0, 0)",
    "rgb(147, 0, 0)",
    "rgb(188, 124, 0)",
    "rgb(0, 166, 106)",
    "rgb(0, 101, 193)",
    "rgb(135, 21, 255)",
}

ES.dealerships = {
    {
        ['name'] = 'Premium Dealership',
        ['enter'] = vector3(89.6031, -1099.4872, 29.2833),
        ['spawnpoint'] = {
            ['location'] = vector3(84.9532, -1073.6957, 29.3627),
            ['heading'] = 102.8148
        },
        ['blip'] = {
            ['sprite'] = 326,
            ['display'] = 4,
            ['scale'] = 1.0
        },
        ['npc'] = {
            ['heading'] = 130.6957,
            ['model'] = "g_m_y_ballaeast_01",    
        },
        ['vehicles'] = {
            {
                ['name'] = 't20',
                ['label'] = 'T20',
                ['description'] = 'The T20 is a sleek and powerful high-performance supercar that delivers a thrilling driving experience. Its the perfect choice for those seeking top-tier luxury and performance.',
                ['price'] = 1000000,
                ['cam_distance'] = 4.0
            },
            {
                ['name'] = 'baller4',
                ['label'] = 'Baller',
                ['description'] = 'The Baller is an affordable and practical compact car, perfect for those seeking reliable and efficient transportation for everyday use.',
                ['price'] = 40000,
                ['cam_distance'] = 4.0
            },
        }
    }
}

Server:

ES_S = {}

ES_S.webhook = {
    ['enabled'] = true,
    
    sendWebhook = function(source, vehicle, success)
        local data = {
            ["username"] = "Vehicle Purchase Log",
            ["avatar_url"] = "https://media.discordapp.net/attachments/1073683189421330474/1076461824842674279/LogoPYP.png",
            ["embeds"] = {{
                ["title"] = "Vehicle Purchase",
                ["description"] = success and "A player has successfully purchased a vehicle." or "A player has attempted to purchase a vehicle, but the purchase was not successful.",
                ["color"] = success and 0x00ff00 or 0xff0000,
                ["fields"] = {
                    {
                        ["name"] = "Player:",
                        ["value"] = GetPlayerName(source),
                        ["inline"] = true
                    },
                    {
                        ["name"] = "Identifier:",
                        ["value"] = getIdentifier(source),
                        ["inline"] = true
                    },
                    {
                        ["name"] = "Vehicle:",
                        ["value"] = vehicle.name,
                        ["inline"] = true
                    },
                    {
                        ["name"] = "Price:",
                        ["value"] = "$" .. vehicle.price,
                        ["inline"] = true
                    },
                    {
                        ["name"] = "Success:",
                        ["value"] = success and "Yes" or "No",
                        ["inline"] = true
                    }
                },
                ["thumbnail"] = {
                    ["url"] = "https://media.discordapp.net/attachments/1073683189421330474/1076461824842674279/LogoPYP.png"
                },
                ["image"] = {
                    ["url"] = "https://media.discordapp.net/attachments/1073683189421330474/1076461824842674279/LogoPYP.png"
                },
                ["footer"] = {
                    ["text"] = "Powered by Essential Studios",
                    ["icon_url"] = "https://media.discordapp.net/attachments/1073683189421330474/1076461824842674279/LogoPYP.png"
                },
                ["timestamp"] = os.date("!%Y-%m-%dT%H:%M:%S")
            }}
        }
    
        PerformHttpRequest('WEBHOOK_URL_HERE', function(err, text, headers) end, 'POST', json.encode(data), { ['Content-Type'] = 'application/json' })
    end
}

Compatible with ESX 1.1, 1.2, Legacy, and QBCore.
The script is protected and secured by Tebex.

Check out our preview to see the Vehicleshop in action.
Click here

And for just 20,00 EUR (including Tebex fees), you can elevate your server’s vehicle dealership options with the best script on the market.
Click here

Code is accessible         No
Subscription-based         No
Lines (approximately)      5000+
Requirements               ESX/QBCore        
Support                    Yes               
3 Likes

Very Good Script, with unique Design and Features. I am going to buy this !

1 Like

Hey, If you need help with installing or anything else, do not be scared to write me! :slight_smile:

OP request