📃Config

Config = {}

-- Locale: 'en' (English) or 'pt' (Português)
Config.Locale = 'en'

-- Framework: 'qbcore', 'esx' or 'auto'
Config.Framework = 'auto'

-- Inventory System: 'ox_inventory', 'qb-inventory' or 'auto'
Config.InventorySystem = 'auto'

-- Target System: 'ox_target', 'qb-target' or 'auto'
Config.TargetSystem = 'auto'

-- Vehicle Keys System: 'qb-vehiclekeys', 'qbx_vehiclekeys', 'cd_garage', 'wasabi_carlock', 'qs-vehiclekeys' or 'auto'
Config.VehicleKeysSystem = 'auto'

-- Auto Database Creation (creates tables automatically on first start)
Config.AutoDatabase = true

-- General Settings
Config.VipshopCurrency = {
    name = "VIP Coins",
    icon = "💎", 
    item = false, -- If you want to use an item as currency, set to true and specify the item name below
    itemName = "vip_coin" -- Item name if using item as currency
}

-- Command to open VIP Shop
Config.Command = 'vipshop'

-- Sound Effects (Enable/Disable client-side sounds)
Config.Sounds = true -- Set to false to disable all UI sounds

-- Online Reward System
-- Gives coins to every player online at a set interval
Config.OnlineReward = {
    enabled = true,         -- Enable/disable the system
    interval = 30,          -- Interval in minutes between each reward
    amount = 50,            -- Coins given per interval
    notifyPlayer = true,    -- Notify the player when they receive coins
    notifyMessage = 'You received %d coins for being online!', -- %d = amount
    requireMinutes = 0,     -- Minimum minutes the player must be online before first reward (0 = immediate)
}

-- Daily Login Reward System
-- Players claim a reward once per day, with increasing rewards over 30 days
Config.DailyReward = {
    enabled = true,
    resetStreak = true,   -- If true, streak resets to day 1 if player misses a day. If false, streak just pauses.
    days = {
        -- Day  = coins
        [1]  = 50,
        [2]  = 50,
        [3]  = 75,
        [4]  = 75,
        [5]  = 100,
        [6]  = 100,
        [7]  = 250,
        [8]  = 75,
        [9]  = 75,
        [10] = 100,
        [11] = 100,
        [12] = 125,
        [13] = 125,
        [14] = 300,
        [15] = 100,
        [16] = 100,
        [17] = 125,
        [18] = 125,
        [19] = 150,
        [20] = 150,
        [21] = 400,
        [22] = 125,
        [23] = 125,
        [24] = 150,
        [25] = 150,
        [26] = 175,
        [27] = 175,
        [28] = 500,
        [29] = 200,
        [30] = 1000,
    }
}

-- VIP Shop Locations (Target zones)
Config.ShopLocations = {
    {
        coords = vector3(-1082.82, -247.54, 37.76),
        heading = 205.34,
        blip = {
            enabled = true,
            sprite = 605,
            color = 5,
            scale = 0.8,
            label = 'VIP Shop'
        },
        ped = {
            enabled = true,
            model = 'a_m_y_business_03',
            scenario = 'WORLD_HUMAN_STAND_MOBILE'
        }
    }
}

-- Test Drive Configuration (Global)
-- Used by both showcase and main menu
Config.TestDrive = {
    enabled = true, -- Enable/disable test drives
    duration = 30, -- Duration in seconds
    spawnLocation = vec4(-1402.17, -3256.03, 12.94, 329.82), -- Where test drive vehicle spawns
    returnLocation = vec3(-1402.17, -3256.03, 12.94), -- Where player returns after test drive
    plateText = 'VIPTEST', -- License plate text
    deleteOnEnd = true, -- Delete vehicle when test drive ends
    refundOnDamage = false, -- Refund if vehicle is damaged during test drive
    maxDamage = 800.0, -- Maximum damage allowed (if refundOnDamage = true)
}

-- Tebex Integration
Config.Tebex = {
    enabled = true
}

-- Vehicle Showcase System
Config.Showcase = {
    enabled = true,
    mode = 'manual', -- 'manual' = use vehicles list below | 'random' = random from SQL
    randomCount = 6, -- How many random vehicles to show (only if mode = 'random')

    -- Teleport locations
    enter = {
        coords = vec3(-1395.02, -3268.53, 13.94),
        heading = 331.20,
        ped = {
            enabled = true,
            model = 'u_m_m_doa_01',
            scenario = 'WORLD_HUMAN_CLIPBOARD'
        }
    },
    exit = {
        coords = vec3(-1267.15, -3012.78, -48.49),
        heading = 180.0,
        ped = {
            enabled = true,
            model = 'u_m_m_doa_01',
            scenario = 'WORLD_HUMAN_CLIPBOARD'
        }
    },
    
    -- Showcase location (where vehicles will spawn)
    location = vector3(-1088.82, -247.54, 37.76), -- Near Legion Square VIP Shop
    
    -- Vehicle spawn positions (relative to location or absolute coords)
    spawnPositions = {
        {coords = vec4(-1267.16, -3001.81, -49.49, 177.04), scale = 1.0},
        {coords = vec4(-1257.95, -3006.84, -49.49, 124.54), scale = 1.0},
        {coords = vec4(-1257.49, -3018.61, -49.49, 57.13), scale = 1.0},
        {coords = vec4(-1267.69, -3023.61, -49.49, 357.11), scale = 1.0},
        {coords = vec4(-1276.4, -3018.53, -49.49, 304.32), scale = 1.0},
        {coords = vec4(-1276.24, -3007.44, -49.49, 249.7), scale = 1.0},
    },
    
    -- Manual vehicle selection (only used if mode = 'manual')
    -- Each vehicle can have: model (required), price (required), label (optional), description (optional)
    vehicles = {
        {model = 'adder', price = 25, label = 'Truffade Adder', description = 'Ultimate luxury supercar'},
        {model = 't20', price = 25, label = 'Progen T20', description = 'Cutting-edge hypercar'},
        {model = 'zentorno', price = 25, label = 'Pegassi Zentorno', description = 'Iconic supercar'},
        {model = 'osiris', price = 25, label = 'Pegassi Osiris', description = 'Premium sports car'},
        {model = 'turismor', price = 25, label = 'Grotti Turismo R', description = 'Italian masterpiece'},
        {model = 'entityxf', price = 25, label = 'Entity XF', description = 'Exclusive sports car'},
    },
    
    -- Showcase settings
    settings = {
        invincible = true,        -- Make vehicles invincible
        locked = true,            -- Lock vehicle doors
        engineOn = false,         -- Engine on/off
        lightsOn = true,          -- Turn lights on
        rotation = true,          -- Slowly rotate vehicles
        rotationSpeed = 0.5,      -- Rotation speed (degrees per frame)
        interactionDistance = 3.0, -- Distance to interact with vehicle
    },

    -- Vehicle spawn after purchase from showcase
    purchaseSpawn = {
        enabled = true,           -- If true, vehicle spawns immediately. If false, goes to garage
        location = vec4(-1399.24, -3260.78, 12.94, 332.05), -- Where purchased vehicle spawns
        warpPlayer = true,        -- Warp player into vehicle after purchase
    },

    ignoreStock = true,           -- Showcase vehicles don't check stock limits
    ignoreDailyLimit = true,      -- Showcase vehicles don't check daily purchase limits
}

-- Admin Settings
Config.Admin = {
    -- List of admin identifiers (license:xxxxx for FiveM, steam:xxxxx, etc)
    identifiers = {
        'license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- Example
        -- Add more admin identifiers here
    },
    -- OR use citizenid for QBCore
    citizenids = {
        'WI72V52P', -- Your citizenid
        -- Add more citizenids here
    },
    commands = {
        giveCoins = {
            enabled = true,
            command = 'givecoins',
            permission = 'admin'
        },
        removeCoins = {
            enabled = true,
            command = 'removecoins',
            permission = 'admin'
        },
        setCoins = {
            enabled = true,
            command = 'setcoins',
            permission = 'admin'
        }
    }
}

-- Debug Mode
Config.Debug = false

Last updated