config.lua

Full View

Config = {}

-- Choose your framework: 'esx' or 'qbcore'
Config.Framework = 'esx'
Config.InteractionType = "ox_target" -- Options: "ox_target" or "qb-target"

-- Dealers configuration
Config.Dealers = {
    ["misha"] = {
        name = "Big Misha", -- NPC's display name
        model = "u_m_y_militarybum", -- NPC model used in-game
        activeHours = { start = 0, finish = 24 }, -- NPC in-game time appearance
    
        locations = { -- Possible spawn locations and associated event for Misha
            {pos = vector4(-1132.0651, -1455.0836, 4.8459, 40.8937), event = "carMisha"}, -- Location with a vehicle event
            {pos = vector4(-1127.1920, -1448.1388, 5.0482, 229.4608), event = "anim"}, -- Location with only an animation
            {pos = vector4(-1137.5962, -1448.5491, 4.7740, 330.0268), event = "extraPedsMisha"}, -- Location with extra ambient peds
        },
    
        changeInterval = 3600, -- Time interval (in seconds) after which the dealer changes position (3600 sec = 60 min)
    
        introItem = { -- Initial task/item required to gain dealer's trust
            item = "cocaine", -- The required item
            label = "Earn my trust with a little cocaine. | + 5 RP point", -- Message shown to the player
            rewardRep = 5 -- Reputation gained upon completion
        },

        money = "money", -- item name or black_money
    
        items = { -- Items available for purchase from this dealer
            ["lockpick"] = {
                label = "Lockpick", -- Display name
                price = 500, -- Price in in-game currency
                repRequired = 5, -- Minimum rep required to buy
                repReward = 1 -- Reputation gained per purchase
            },
            ["weed"] = {
                label = "Weed",
                price = 200,
                repRequired = 25,
                repReward = 2
            },
            ["joint"] = {
                label = "Joint",
                price = 500,
                repRequired = 70,
                repReward = 4
            }
        },
    
        task = { -- Package retrieval mission
            label = "Retrieve a lost package | + 3 RP point", -- Task description
            rewardRep = 3, -- Reputation gained for success
            badRep = 2, -- Reputation lost for failure
            repRequired = 10, -- Minimum rep required to take the task
            cooldown = 600, -- Cooldown (600 sec = 10 min)
            pedmodel = "a_m_m_eastsa_02",
            locations = { -- Possible task locations (randomly chosen)
                vec4(845.3121, 2123.0591, 52.4249, 95.8381),
                vec4(524.3218, 3079.4460, 40.4882, 157.9958),
            },
            item = "suspicious_package", -- Item to be retrieved and returned
            rewardItem = "money", -- "money" or "black_money", or even item name e.g. "goldbar"
            baseReward = 50, -- base reward amount
            repMultiplier = 10, -- each RP point adds this much (e.g. if you have 15 RP: baseReward + (15*repMultiplier) = reward) 
            maxReward = 500, -- maximum amount
        },
    
        cameratask = { -- Task to disable a surveillance camera
            label = "Disable a security camera | + 4 RP point", -- Task description
            rewardRep = 4, -- Reputation gained for success
            badRep = 3, -- Reputation lost for failure
            repRequired = 20, -- Minimum rep required to accept task
            cooldown = 600, -- Time in seconds before the task can be repeated    
            locations = { -- Camera locations
                vec4(-36.8850, -1677.8348, 29.4917, 330.2531),
                vec4(539.9756, -168.8345, 54.4813, 270.0784),
               -- vec4(-1130.0450, -1446.2714, 5.1336, 314.8862),  -- teszt
            },
            item = "lockpick", -- Item required to disable the camera
            duration = 30000, -- cut process time (30000 milisec = 30 sec)
            rewardItem = "money",
            baseReward = 50, 
            repMultiplier = 10,  
            maxReward = 600, 
        }, 
    
        --[[ 
        vehicletask and assassintask example at miss irin
        Optional vehicle retrieval task (currently disabled)
        vehicletask = {
            label = "Recover the stolen car", -- Task description
            rewardRep = 10, -- Reputation gained for success
            badRep = 8, -- Reputation lost for failure
            repRequired = 0, -- Minimum rep required to start the task
            cooldown = 1200,-- cooldown
            locations = { -- Potential vehicle locations
                vector4(-1142.3857, -1444.8462, 4.6392, 130.2496),
                vector4(-1125.8811, -1434.4235, 5.0689, 302.8758),
            },
            vehicleModel = {"sultan", "adder", "zentorno"}, -- Vehicle model to retrieve
            item = "lockpick", -- Required item to complete the task
            rewardItem = "money", -- vagy "money" vagy "black_money", vagy akár item név pl. "goldbar"
            baseReward = 250, -- alap pénzjutalom
            repMultiplier = 20, -- minden RP pont ennyit ad hozzá (pl. ha 15 RP-je van: 1000 + (15*20) = 1300)  
            maxReward = 1500, -- maximum kifizethető összeg
        },

        Optional vehicassasin task (currently disabled)
        assassintask = {
            label = "Eliminate the target and bring the package | + 15 RP points", -- Task description
            rewardRep = 15, -- Reputation gained for success
            badRep = 10, -- Reputation lost for failure
            repRequired = 30, -- Minimum rep required to start the task
            cooldown = 3600, -- (3600 sec = 60 min) cooldown
            timeLimit = 600, -- (600 sec = 10 min) 10 min time limit to eliminate the target (in seconds)           
            duration = 5000, -- trunk search process (5000 = 5 sec)
            item = "suspicious_package", -- item
            vehicleModel = {"baller", "surano", "premier"}, -- vehicle Model
            driverModel = "a_m_m_eastsa_01", -- driver ped Model
            spawnLocations = { -- spawnLocations
            vector4(1561.6110, 870.9858, 77.4601, 354.2561),
            vector4(-742.0011, 2307.0894, 72.6889, 41.9539),
            },
            blip = { -- Blip config
            sprite = 1, -- Blip sprite
            color = 5, -- Blip színe
            scale = 0.8, -- Blip méret
            updateInterval = 1000, -- (1000 milisec = 1 sec)
            },
            rewardItem = "black_money",
            baseReward = 750,
            repMultiplier = 20, 
            maxReward = 2500, 
        },     
        ]]
    },
    ["irin"] = {
        name = "Miss Irin",
        model = "u_f_y_jewelass_01",
        activeHours = { start = 21, finish = 5 }, -- only at night

        locations = {
            {pos = vector4(-1134.5690, -1440.9974, 4.9332, 172.8068), event = "carIrin"},
          --  {pos = vector4(-1127.1920, -1448.1388, 5.0482, 229.4608), event = "anim"},
          --  {pos = vector4(-1137.5962, -1448.5491, 4.7740, 330.0268), event = "extraPeds"},
        },

        changeInterval = 3600,

        --[[
        introItem = {
            item = "cocaine",
            label = "Earn my trust with a little cocaine. | + 5 RP point",
            rewardRep = 5
        },
        ]]

        money = "black_money", -- item name or black_money

        items = {
            ["lockpick"] = {label = "Lockpick", price = 500, repRequired = 10, repReward = 1},
            ["drill"] = {label = "Mini Drill", price = 1200, repRequired = 25, repReward = 2},
            ["gps_scrambler"] = {label = "GPS Scrambler", price = 2500, repRequired = 50, repReward = 4}
        },
        task = {
            label = "Retrieve a lost package | + 3 RP point",
            rewardRep = 3,
            badRep = 2,
            repRequired = 0,
            cooldown = 600,
            pedmodel = "a_m_m_mlcrisis_01",
            locations = { 
                vec4(-773.8186, -188.1690, 37.2836, 118.1972),
                vec4(581.0443, 138.8388, 99.4748, 165.9374),
            },
            item = "suspicious_package",
            rewardItem = "black_money",
            baseReward = 100,
            repMultiplier = 20, 
            maxReward = 500,
        },
        cameratask = {
            label = "Disable a security camera | + 4 RP point",
            rewardRep = 4,
            badRep = 3,
            repRequired = 10,
            cooldown = 600,
            locations = {
                vec4(488.9845, -1004.5175, 28.0650, 92.7272),
                vec4(-1142.2302, -842.6447, 14.5865, 222.9192),
              --  vec4(-1130.0450, -1446.2714, 5.1336, 314.8862),
            },
            item = "lockpick",
            duration = 30000,
            rewardItem = "black_money", 
            baseReward = 100, 
            repMultiplier = 20,  
            maxReward = 600, 
        }, 
        vehicletask = {
            label = "Recover the stolen car | + 10 RP point",
            rewardRep = 10,
            badRep = 8,
            repRequired = 20,
            cooldown = 1200,
            locations = {
                vector4(-521.4178, 574.1274, 121.0696, 104.3682),
                vector4(1064.8621, 2663.7388, 39.5513, 273.5230),
            },
            vehicleModel = {"sultan", "adder", "zentorno"}, 
            item = "lockpick",
            rewardItem = "black_money",
            baseReward = 250,
            repMultiplier = 20, 
            maxReward = 1500, 
        },    
        assassintask = {
            label = "Eliminate the target and bring the package | + 15 RP points",
            rewardRep = 15,
            badRep = 10,
            repRequired = 30,
            cooldown = 3600,
            timeLimit = 600,            
            duration = 5000, 
            item = "suspicious_package",
            vehicleModel = {"baller", "surano", "premier"},
            driverModel = "a_m_m_eastsa_01",
            spawnLocations = {
            vector4(1561.6110, 870.9858, 77.4601, 354.2561),
            vector4(-742.0011, 2307.0894, 72.6889, 41.9539),
            },
            blip = {
            sprite = 1,
            color = 5,
            scale = 0.8,
            updateInterval = 1000,
            },
            rewardItem = "black_money",
            baseReward = 750,
            repMultiplier = 20, 
            maxReward = 2500, 
        },               
    }
}

-- Events determine how dealer scenes play out (animations, vehicles, etc.)
Config.Events = {
    ["carIrin"] = {
        vehicle = {
            model = "baller",
            offset = vector3(2.0, -3.0, 0.0),
            headingOffset = 180.0,
            openTrunk = true,
            color = {primary = 0, secondary = 0}
        },
        pedAnim = {
            dict = "amb@world_human_aa_smoke@male@idle_a",
            name = "idle_c"
        }
    },
    ["carMisha"] = {
        vehicle = {
            model = "chino",
            offset = vector3(2.0, -3.0, 0.0),
            headingOffset = 180.0,
            openTrunk = true,
            color = {primary = 88, secondary = 88}
        },
        pedAnim = {
            dict = "amb@world_human_aa_smoke@male@idle_a",
            name = "idle_c"
        }
    },
    ["anim"] = {
        pedAnim = {
            dict = "amb@world_human_aa_smoke@male@idle_a",
            name = "idle_c"
        }
    },
    ["extraPedsMisha"] = {        
        pedAnim = {
            dict = "amb@world_human_aa_smoke@male@idle_a",
            name = "idle_c"
        },
        extraPeds = {
            {
                model = "g_f_y_vagos_01",
                offset = vector3(-1.5, -1.0, -1.0),
                anim = {
                    dict = "amb@world_human_hang_out_street@male_b@idle_a",
                    name = "idle_b"
                }
            },
            {
                model = "g_m_importexport_01",
                offset = vector3(1.5, -1.0, -1.0),
                anim = {
                    dict = "amb@world_human_hang_out_street@male_c@idle_a",
                    name = "idle_d"
                }
            }
        }
    },
}

Config.NotifyMessages = {
    -- Menu titles
    TalkNPC = "Talk - ",
    statsMenu = "📊 Your Stats at this Dealer",
    vehicleTaskStartedTitle = "Task Started",
    vehicleTaskStarted = "Go to the marked location and steal the vehicle!",
    vehicleLockpickSuccess = "You successfully lockpicked the vehicle! Deliver the vehicle to the dealer. GPS will mark its location.",
    vehicleWrong = "This is not the correct vehicle!",
    vehicleLockpicking = "Lockpicking Vehicle",
    vehicleLockpickingProgress = "Lockpicking in progress...",
    packageReceiving = "Receiving a package",
    wireCutting = "Cutting Wire",
    wireCuttingProgress = "Camera cable cutting in progress",

    PackageLocation = "Package Location Blip",
    TargetVehicle = "Target Vehicle Blip",
    Dealer = "Dealer Blip",
    CameraBlip = "Camera Blip",   

    -- Menu sections
    trustLevel = "⭐ [TRUST] Level: ",
    trustDesc = "📈 Higher trust unlocks more options!",
    buyItems = "🛒 Shop",
    buyItemsDesc = "View available items",
    necessarytrust = "Necessary trust: ",
    giveGift = "🎁 Give Gift",
    startTask = "📦 Package Delivery",
    deliverPackage = "📤 Deliver Package",
    deliverDesc = "Hand over the acquired package",
    startCameraTask = "📷 Disable Camera",
    cancelCameraTask = "📷 Finish Camera Task",
    cancelCameraDesc = "Finish task!",
    startVehicleTask = "🚗 Vehicle Theft Task",
    deliverVehicle = "🚗 Deliver Vehicle",
    deliverVehicleDesc = "Hand over the stolen vehicle",
    statsOption = "📊 My Stats",
    statsOptionDesc = "Detailed statistics for this dealer",

    -- Stats titles
    deliveredPackages = "📦 Delivered Packages: ",
    stolenVehicles = "🚗 Stolen Vehicles: ",
    disabledCameras = "📷 Disabled Cameras: ",
    givenGifts = "🎁 Given Gifts: ",
    purchasedItem = "🛒 Purchased: ",
    assassinTasks = "🗡️ Assassin Missions: ",

    -- General errors/statuses
    notEnoughTrust = "You don't have enough trust!",
    notEnoughMoney = "You don't have enough money!",
    purchaseSuccess = "Purchase successful!",
    noItem = "You don't have the required item: ",
    introSuccess = "%s has accepted your goods!",
    taskNoTrust = "You're not trusted enough for this task.",
    taskActive = "You already have an active task!",
    noActiveTask = "You don't have an active task for this dealer!",
    taskInCooldown = "You need to wait another %d seconds before starting this task again.",
    taskInCooldownCamera = "You can take this task again in %d seconds!",
    taskInCooldownVehicle = "You need to wait another %d seconds before starting this vehicle task again.",
    taskActiveVehicle = "You already have an active vehicle task!",
    taskActiveGeneral = "You already have an active task!",
    noActiveTaskDealer = "You don't have an active task for this dealer!",
    taskNoDealer = "No such dealer or task exists.",
    
    -- Lack of equipment
    missingItemLockpickTitle = "Missing Tool",
    missingItemLockpick = "You need a %s to lockpick the vehicle!",
    missingItemCameraTitle = "Missing Tool",
    missingItemCamera = "You need a %s to cut the wire!",

    -- Task status
    PackageLocationStartTitle = "Task Start",
    PackageLocationStart = "Go to the address, pick up the package and bring it back to the dealer!",
    packageTaskSuccessTitle = "Task Completed",
    packageTaskSuccess = "Package delivered successfully! You earned +%d RP trust.",
    PackageDeliver = "Deliver the package to the dealer. GPS will mark its location.",
    packageTaskFailTitle = "Task Failed",
    packageTaskFail = "The package is missing! You lost -%d RP trust.",
    vehicleTaskSuccessTitle = "Task Completed",
    vehicleTaskSuccess = "Vehicle delivered successfully! You earned +%d RP trust.",
    vehicleTaskFailTitle = "Task Failed",
    vehicleTaskFail = "The vehicle is missing! You lost -%d RP trust.",
    cameraTaskStartedTitle = "Camera Task Started",
    cameraTaskStarted = "Go to the marked GPS location and cut the camera wire inside the electrical box.",
    cameraTaskCompleted = "Go to the dealer and claim your reward. The GPS will show you its location.",
    cameraTaskSuccessTitle = "Task Completed",
    cameraTaskSuccess = "Camera task completed! +%d RP trust.",
    cameraTaskCancelledTitle = "Task Cancelled",
    cameraTaskCancelled = "Task cancelled. -%d RP trust.",    
    assassinTaskStartedTitle = "Assassin Task Started",
    assassinTaskStarted = "A target has been located. Eliminate the target and retrieve the package!",
    assassinTargetLostTitle = "Target Lost",
    assassinTargetLost = "The target disappeared! Mission failed.",
    assassinTargetDeadTitle = "Target Eliminated",
    assassinTargetDead = "The target is dead. Take the package from the trunk!",
    assassinPackageLabel = "Take Package from Trunk",
    assassinPackage3DText = "~g~[E]~w~ Take Package from Trunk",
    assassinPackageTakenTitle = "Package Retrieved",
    assassinPackageTaken = "You took the package! Return it to the dealer.",
    assassinDealerBlip = "Return Package to Dealer",
    assassinTaskSuccessTitle = "Task Completed",
    assassinTaskSuccess = "You successfully delivered the assassin package! +%d RP trust.",
    assassinTaskFailTitle = "Task Failed",
    assassinTaskFail = "You lost the package! -%d RP trust.",
    assassinTaskCooldown = "You must wait another %d seconds before starting this assassin task again.",
    assassinTaskNoTrust = "You don't have enough reputation for this assassin task!",
    assassinTaskNoActive = "You don't have an active assassin task!",
    assassinTaskActive = "You already have an active assassin task!",
    assassinTaskNoItem = "You don't have the assassin package!",
    assassinTaskReward = "Target eliminated and package delivered. +%d RP trust.",
    assassinTrunkProgress = "Taking package...",
    assassinTaskTitle = "Assassin Mission",
    assassinTaskDescription = "Eliminate the target and retrieve the package | +15 RP points",
    assassinTaskNotEnoughRep = "You don't have enough reputation for this mission! Required rep: ",
    assassinTaskStarted = "You have received the target's location. Eliminate them and secure the package!",
    assassinTaskCancelledTitle = "Mission Cancelled",
    assassinTaskCancelled = "You have cancelled the assassin mission.",
    cancelAssassin = "Finish Assassin Mission",

    -- Admin RP commands
    setrpUsage = "Usage: /setrp [id] [dealer] [+/-points]",
    getrpUsage = "Usage: /getrp [id] [dealer]",
    noPermission = "You do not have permission to use this command!",
    playerNotFound = "Target player not found.",
    setrpSuccess = "RP updated: %s → %s (%s points)",
    getrpResult = "Player %s reputation at %s: %s RP",
}

Last updated