> For the complete documentation index, see [llms.txt](https://eyestore.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://eyestore.gitbook.io/documentation/packages/vipsystem.md).

# VIPSYSTEM

## Example VIP Car List:

* **model**: Vehicle model.
* **label**: Vehicle label.
* **count**: Number of vehicles.
* **price**: Price of the vehicle.
* **category**: Vehicle category.

```
carlist = {
    { model = "adder", label = "Adder", count = 1, price = 78933333, category = "SUPER" },
    { model = "zentorno", label = "Zentorno", count = 1, price = 534, category = "SUPER" },
    -- More vehicles...
},
```

## VIP

Defines VIP settings, including categories and car lists.

**Example VIP Category:**

* **category**: List of vehicle categories.

```
VIP = {
    car = {
        category = {
            { category = 'ALL' },
            { category = 'SUPER' },
            { category = 'COMPACT' },
            -- More categories...
        },
        -- More settings...
    },
    -- More VIP settings...
},
```

## Categories

A list of categories for the items.

**Example Category:**

* **name**: Name of the category.

```
Categories = {
    { name = 'Home' },
    { name = 'Vehicle' },
    { name = 'Money' },
    { name = 'Weapon' },
    { name = 'House' },
    { name = 'Bundle' },
    { name = 'Customize' },
},
```

## Card

A list of coin packages available for purchase.

**Example Coin Package:**

* **coin**: Number of coins in the package.

```
Card = {
    { coin = 500 },
    { coin = 400 },
    { coin = 300 },
},
```

## Home

A list of vehicles available for purchase.

**Example Vehicle:**

* **model**: Vehicle model.
* **label**: Vehicle label.
* **count**: Number of vehicles.
* **price**: Price of the vehicle.
* **category**: Vehicle category.

```
Home = {
    { model = "adder", label = "Adder", count = 1, price = 789, category = "Super" },
    { model = "zentorno", label = "Zentorno", count = 1, price = 534, category = "Super" },
    -- More vehicles...
},
```

## Bundles

Defines bundles available for purchase, including vehicle packs, weapon packs, and currency packs.

**Example Bundle:**

* **price**: Cost of the bundle.
* **label**: Label for the bundle.
* **title**: Title of the bundle.
* **count**: Number of items in the bundle.
* **items**: List of items in the bundle.

```
Bundles = {
    {
        price = 100,
        label = 'VEHICLE PACK',
        title = 'Vehicles',
        count = 6,
        items = {
            { image = './assets/img/car/t20.png', name = 'T20', category = 'SUPER', quantity = 1, model = 't20', type = 'vehicle' },
            { image = './assets/img/car/zentorno.png', name = 'Zentorno', category = 'SUPER', quantity = 1, model = 'zentorno', type = 'vehicle' },
            -- More vehicle items...
        },
    },
    {
        price = 200,
        label = 'WEAPON PACK',
        title = 'Weapons',
        count = 6,
        items = {
            { image = './assets/img/weapon/WEAPON_PISTOL.png', name = 'Pistol', category = 'HANDGUN', quantity = 1, code = 'weapon_pistol', type = 'weapon' },
            { image = './assets/img/weapon/WEAPON_COMBATPISTOL.png', name = 'Combat Pistol', category = 'HANDGUN', quantity = 1, code = 'weapon_combatpistol', type = 'weapon' },
            -- More weapon items...
        },
    },
    {
        price = 300,
        label = 'PRICE PACK',
        title = 'Prices',
        count = 6,
        items = {
            { image = './assets/img/coin/100000.png', name = 'Cash Bundle', category = 'CURRENCY', quantity = 1, amount = 10000, type = 'currency' },
            { image = './assets/img/coin/100000.png', name = 'Gold Bar', category = 'CURRENCY', quantity = 1, amount = 5000, type = 'currency' },
            -- More currency items...
        },
    },
},
```

## SetVehicleKeys

Sets the owner of the vehicle with the specified license plate.

```
function SetVehicleKeys(plate)
    TriggerEvent('vehiclekeys:client:SetOwner', plate)
end
```

## GeneratePlate

Generates a vehicle license plate based on the specified format.

```
function GeneratePlate()
    local plate = Config.PlateFormat
    local nums = "0123456789"

    plate = plate:gsub("#", function()
        return nums:sub(math.random(1, #nums), math.random(1, #nums))
    end)

    return plate
end
```

## GetFramework

```
function GetFramework()
    local Get = nil
    if Config.Framework == "ESX" then
        while Get == nil do
            TriggerEvent('esx:getSharedObject', function(Set) Get = Set end)
            Citizen.Wait(0)
        end
    elseif Config.Framework == "NewESX" then
        Get = exports['es_extended']:getSharedObject()
    elseif Config.Framework == "QBCore" then
        Get = exports["qb-core"]:GetCoreObject()
    elseif Config.Framework == "OLDQBCore" then
        while Get == nil do
            TriggerEvent('QBCore:GetObject', function(Set) Get = Set end)
            Citizen.Wait(200)
        end
    end
    return Get
end
```

## GetDiscordAvatar

Fetches the Discord avatar for a user.

```
function GetDiscordAvatar(userID, callback)
    DiscordRequest("GET", "users/"..userID, {}, function(data, error)
        if not error and data and data.avatar then
            local avatarURL = string.format("https://cdn.discordapp.com/avatars/%s/%s.png", userID, data.avatar)
            callback(avatarURL)
        else
            callback(nil)
        end
    end)
end
```

## DiscordRequest

Performs an HTTP request to the Discord API.

```
function DiscordRequest(method, endpoint, jsondata, callback)
    PerformHttpRequest("https://discord.com/api/"..endpoint, function(errorCode, resultData, resultHeaders)
        if errorCode == 200 then
            local data = json.decode(resultData)
            callback(data, nil)
        else
            callback(nil, errorCode)
        end
    end, method, #jsondata > 0 and json.encode(jsondata) or "", {["Content-Type"] = "application/json", ["Authorization"] = "Bot " .. Config.Discord})
end
```

## Overview

This documentation provides an overview of the configuration settings for a script that integrates various elements like vehicle bundles, weapon packs, and currency packs within a QBCore or ESX framework. It also includes functionality for setting vehicle keys, generating license plates, and interacting with the Discord API.

Configuration Settings

## Framework

* **Framework**: Specifies the framework being used. Possible values are 'QBCore', 'ESX', 'OLDQBCore', or 'NewESX'.

## Plate Format

* **PlateFormat**: Format for vehicle license plates. Example: "VIP####" where # is replaced by a random number.

## Phone System

* **Phone**: Specifies the phone system being used. Possible values are "qb-phone", "gksphone", or "gcphone".

## Discord

* **Discord**: Your Discord bot token for interacting with the Discord API. Obtain it from <https://discord.com/developers/applications>.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://eyestore.gitbook.io/documentation/packages/vipsystem.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
