Configuration

This page contains all information you need to configure gfg_contractkiller, if you have any questions feel free to reach out to us on our discord.

Variables that are marked as (Optional) do not need to be set (but can be in the case of further customization).

Config

Config = {
    language = "en",               
    debug = false,                  
    enhancedDebug = false,          
    interactionMethod = "target",  
    interactionDistance = 2,       
    target = "ox_target",          
    inventory = "ox_inventory",    
    cooldown = {                   
        enable = true,             
        type = "personal",         
        minAmount = 20,             
        maxAmount = 30              
    },
    copsNeeded = {                 
        enable = true,             
        amount = 1                 
    }
}

language

Language sets which Locale to use, you can find available locales in [gfg_crafting/locale/], we will add more as they become available but feel free to add your own.

language = "en",

debug

Debug should only used in a development environment.

Determines whether to send debug print statements to the client and server when using the script.

debug = false

enhancedDebug

Enhanced Debug should only be used in a development environment.

Determines whether to send enhanced debug print statements to the client and server when using the script.

enhancedDebug = false,

interactionMethod

Determines the method in which players interact with a bench. Currently supported options are: "target", "textui", "3dtext".

interactionMethod = "target",

interactionDistance

Determines the distance from the bench that the interaction is activated.

interactionDistance = 2,

target

Determines wich target resource to use.

Currently supported options are"

  • "ox_target"

  • "qb_target"

  • "custom"

target = "ox_target",

inventory

Determines wich inventory resource to use.

Currently supported options are:

  • "ox_inventory"

  • "qb_inventory"

  • "custom"

inventory = "ox_inventory",

cooldown

Determines the cooldown variables.

  • enable = Set to 'true' if you wish to enable cooldowns.

  • type = Determines the cooldown 'type' Available options are "global" (Only one contract can be active in the entire server) or "personal" (Cooldowns are individual to each player).

  • minAmount = Determines the minimum cooldown time (in Minutes).

  • maxAmount = Determines the maximum cooldown time (in Minutes).

cooldown = {                   
    enable = true,             
    type = "personal",         
    minAmount = 20,             
    maxAmount = 30              
},

copsNeeded

Determines the variables for needed amount of police.

  • enable = If set to 'true' checks for the amount of police online.

  • amount = Determines the amount of police needed for a contract to be granted.

copsNeeded = {                 
    enable = true,             
    amount = 1                 
}

Config.Defaults

Configuration for default values.

Config.Defaults = {        
    timer = {              
        enable = true,     
        timerMin = 30,     
        timerMax = 30,     
    },
    payout = {             
        type = 'item',     
        itemName = 'money',
        minAmount = 10000, 
        maxAmount = 20000, 
    },
}

timer

Default Contract Timer variables.

  • enable = If set to 'true' the player only has a certain amount of time to complete the contract (from when the player gets the contract from the client to when they turn in the kill confirmation).

  • timerMin = Determines the minimum timer time (in Minutes).

  • timerMax = Determines the maximum timer time (in Minutes).

timer = {              
    enable = true,     
    timerMin = 30,     
    timerMax = 30,     
},

payout

Default Payout variables.

  • type = Determines the payout 'type' available options are "item" (pays the player via an item) or "bank" (triggers the bankPayout function in sv_customize.lua).

  • itemName = Determines the item to be given to the player if 'type' is set to "item".

  • minAmount = Determines the minimum payout amount.

  • maxAmount = Determines the maximum payout amount.

payout = {             
    type = 'item',     
    itemName = 'money',
    minAmount = 10000, 
    maxAmount = 20000, 
},

Config.Brokers

Configuration for contract brokers.

Config.Brokers = {                                       
    blip = {                                             
        enable = false,                                  
        sprite = 119,                                    
        scale = 1.0,                                     
        color = 1,                                       
        label = "Contract Broker"                        
    },  
    interactAnimation = {                                
        scenario = "WORLD_HUMAN_STAND_IMPATIENT",        
        duration = 3000,                                 
    },
    pedAnimation = {                                     
        scenario = "WORLD_HUMAN_STAND_IMPATIENT"         
    },  
    locations = {                                        
        {
            coords = vec3(707.3157, -966.9925, 30.41285),
            interactAnimation = {                        
                dict = 'lester_1_int-0',                 
                anim = 'prop_cs_keyboard_01-0',          
                duration = 5000                          
            },
        },
        {
            coords = vec3(705.0999, -960.9101, 30.3953),
            ped = {                                      
                heading = 268.5773,                      
                model = 'a_m_m_mlcrisis_01',             
                pedAnimation = {                         
                    scenario = 'WORLD_HUMAN_SMOKING'     
                }
            },
        }
    },
}

blip

Broker blip variables.

  • enable = If set to 'true' the broker blips will be created.

  • sprite = Determines the blip sprite.

  • scale = Determines the blip scale.

  • color = Determines the blip color.

  • label = Determines the blip label.

blip = {                                             
    enable = false,                                  
    sprite = 119,                                    
    scale = 1.0,                                     
    color = 1,                                       
    label = "Contract Broker"                        
}, 

interactionAnimation

Determines the default player animation when interacting with a broker.

  • scenario = Determines the animation or scenario.

  • duration = Determines the interaction duration.

interactAnimation = {                                
    scenario = "WORLD_HUMAN_STAND_IMPATIENT",        
    duration = 3000,                                 
},

pedAnimation

Determines the default ped scenario (If that broker has a ped).

  • scenario = Determines the scenario.

pedAnimation = {                                     
    scenario = "WORLD_HUMAN_STAND_IMPATIENT"         
}, 

locations

Determines the broker locations.

  • coords = Determines the coordinates of the broker.

  • interactAnimation = Determines the interaction animation (Optional)

    • dict = Determines the animation dict (Optional).

    • anim = Determines the animation (Optional).

    • duration = Determines the interaction duration (Optional).

  • ped = Determines the broker ped (Optional).

    • heading = Determines the broker ped heading.

    • model = Determines the broker ped model.

    • pedAnimation = Determines the broker ped scenario (Optional).

      • scenario = Determines the scenario

locations = {                                        
    {
        coords = vec3(707.3157, -966.9925, 30.41285),
        interactAnimation = {                        
            dict = 'lester_1_int-0',                 
            anim = 'prop_cs_keyboard_01-0',          
            duration = 5000                          
        },
    },
    {
        coords = vec3(705.0999, -960.9101, 30.3953),
        ped = {                                      
            heading = 268.5773,                      
            model = 'a_m_m_mlcrisis_01',             
            pedAnimation = {                         
                scenario = 'WORLD_HUMAN_SMOKING'     
            }
        },
    }
},

Config.Clients

Configuration for contract clients.

Config.Clients = {                                          
    minimumSafeSpawnDistance = 50.0,                        
    blip = {                                                
        enable = true,                                      
        sprite = 480,                                       
        scale = 1.0,                                        
        color = 46,                                         
        label = "Client",                                   
        setWaypoint = true                                  
    },
    turnInKillConfirmation = {                              
        timer = {                                           
            timerMin = 1000,                                
            timerMax = 2000                                 
        },
    },
    ped = {
        models = {
        'a_f_m_beach_01', 'a_f_m_bevhills_01', 'a_f_m_bevhills_02', 'a_f_m_bodybuild_01', 'a_f_m_business_02', 'a_f_m_downtown_01', 
        'a_f_m_eastsa_01', 'a_f_m_eastsa_02', 'a_f_m_fatbla_01', 'a_f_m_fatcult_01', 'a_f_m_fatwhite_01', 'a_f_m_ktown_01', 'a_f_m_ktown_02', 
        'a_f_m_prolhost_01', 'a_f_m_salton_01', 'a_f_m_skidrow_01', 'a_f_m_soucent_01', 'a_f_m_soucent_02', 'a_f_m_soucentmc_01', 'a_f_m_tourist_01', 
        'a_f_m_tramp_01', 'a_f_m_trampbeac_01', 'a_f_o_genstreet_01', 'a_f_o_indian_01', 'a_f_o_ktown_01', 'a_f_o_salton_01', 'a_f_o_soucent_01', 
        'a_f_o_soucent_02', 'a_f_y_beach_01', 'a_f_y_bevhills_01', 'a_f_y_bevhills_02', 'a_f_y_bevhills_03', 'a_f_y_bevhills_04', 'a_f_y_business_01', 
        'a_f_y_business_02', 'a_f_y_business_03', 'a_f_y_business_04', 'a_f_y_clubcust_01', 'a_f_y_clubcust_02', 'a_f_y_clubcust_03', 'a_f_y_eastsa_01',
        'a_f_y_eastsa_02', 'a_f_y_eastsa_03', 'a_f_y_epsilon_01', 'a_f_y_femaleagent', 'a_f_y_fitness_01', 'a_f_y_fitness_02', 'a_f_y_genhot_01', 
        'a_f_y_golfer_01', 'a_f_y_hiker_01', 'a_f_y_hippie_01', 'a_f_y_hipster_01', 'a_f_y_hipster_02', 'a_f_y_hipster_03', 'a_f_y_hipster_04', 
        'a_f_y_indian_01', 'a_f_y_juggalo_01', 'a_f_y_runner_01', 'a_f_y_rurmeth_01', 'a_f_y_scdressy_01', 'a_f_y_skater_01', 'a_f_y_soucent_01', 
        'a_f_y_soucent_02', 'a_f_y_soucent_03', 'a_f_y_tennis_01', 'a_f_y_topless_01', 'a_f_y_tourist_01', 'a_f_y_tourist_02', 'a_f_y_vinewood_01', 
        'a_f_y_vinewood_02', 'a_f_y_vinewood_03', 'a_f_y_vinewood_04', 'a_f_y_yoga_01', 'a_f_y_gencaspat_01', 'a_f_y_smartcaspat_01',
        'a_m_m_acult_01', 'a_m_m_afriamer_01', 'a_m_m_beach_01', 'a_m_m_beach_02', 'a_m_m_bevhills_01', 'a_m_m_bevhills_02', 'a_m_m_business_01', 
        'a_m_m_eastsa_01', 'a_m_m_eastsa_02', 'a_m_m_farmer_01', 'a_m_m_fatlatin_01', 'a_m_m_genfat_01', 'a_m_m_genfat_02', 'a_m_m_golfer_01', 
        'a_m_m_hasjew_01', 'a_m_m_hillbilly_01', 'a_m_m_hillbilly_02', 'a_m_m_indian_01', 'a_m_m_ktown_01', 'a_m_m_malibu_01', 'a_m_m_mexcntry_01', 
        'a_m_m_mexlabor_01', 'a_m_m_og_boss_01', 'a_m_m_paparazzi_01', 'a_m_m_polynesian_01', 'a_m_m_prolhost_01', 'a_m_m_rurmeth_01', 
        'a_m_m_salton_01', 'a_m_m_salton_02', 'a_m_m_salton_03', 'a_m_m_salton_04', 'a_m_m_skater_01', 'a_m_m_skidrow_01', 'a_m_m_socenlat_01', 
        'a_m_m_soucent_01', 'a_m_m_soucent_02', 'a_m_m_soucent_03', 'a_m_m_soucent_04', 'a_m_m_stlat_02', 'a_m_m_tennis_01', 'a_m_m_tourist_01', 
        'a_m_m_tramp_01', 'a_m_m_trampbeac_01', 'a_m_m_tranvest_01', 'a_m_m_tranvest_02', 'a_m_o_acult_01', 'a_m_o_acult_02', 'a_m_o_beach_01', 
        'a_m_o_genstreet_01', 'a_m_o_ktown_01', 'a_m_o_salton_01', 'a_m_o_soucent_01', 'a_m_o_soucent_02', 'a_m_o_soucent_03', 'a_m_o_tramp_01', 
        'a_m_y_acult_01', 'a_m_y_acult_02', 'a_m_y_beach_01', 'a_m_y_beach_02', 'a_m_y_beach_03', 'a_m_y_beachvesp_01', 'a_m_y_beachvesp_02', 
        'a_m_y_bevhills_01', 'a_m_y_bevhills_02', 'a_m_y_breakdance_01', 'a_m_y_busicas_01', 'a_m_y_business_01', 'a_m_y_business_02', 
        'a_m_y_business_03', 'a_m_y_clubcust_01', 'a_m_y_clubcust_02', 'a_m_y_clubcust_03', 'a_m_y_cyclist_01', 'a_m_y_dhill_01', 'a_m_y_downtown_01', 
        'a_m_y_eastsa_01', 'a_m_y_eastsa_02', 'a_m_y_epsilon_01', 'a_m_y_epsilon_02', 'a_m_y_gay_01', 'a_m_y_gay_02', 'a_m_y_genstreet_01', 
        'a_m_y_genstreet_02', 'a_m_y_golfer_01', 'a_m_y_hasjew_01', 'a_m_y_hiker_01', 'a_m_y_hippy_01', 'a_m_y_hipster_01', 'a_m_y_hipster_02', 
        'a_m_y_hipster_03', 'a_m_y_indian_01', 'a_m_y_jetski_01', 'a_m_y_juggalo_01', 'a_m_y_ktown_01', 'a_m_y_ktown_02', 'a_m_y_latino_01', 
        'a_m_y_methhead_01', 'a_m_y_mexthug_01', 'a_m_y_motox_01', 'a_m_y_motox_02', 'a_m_y_musclbeac_01', 'a_m_y_musclbeac_02', 'a_m_y_polynesian_01', 
        'a_m_y_roadcyc_01', 'a_m_y_runner_01', 'a_m_y_runner_02', 'a_m_y_salton_01', 'a_m_y_skater_01', 'a_m_y_skater_02', 'a_m_y_soucent_01', 
        'a_m_y_soucent_02', 'a_m_y_soucent_03', 'a_m_y_soucent_04', 'a_m_y_stbla_01', 'a_m_y_stbla_02', 'a_m_y_stlat_01', 'a_m_y_stwhi_01', 
        'a_m_y_stwhi_02', 'a_m_y_sunbathe_01', 'a_m_y_surfer_01', 'a_m_y_vindouche_01', 'a_m_y_vinewood_01', 'a_m_y_vinewood_02', 'a_m_y_vinewood_03', 
        'a_m_y_vinewood_04', 'a_m_y_yoga_01', 'a_m_m_mlcrisis_01', 'a_m_y_gencaspat_01', 'a_m_y_smartcaspat_01',
        },
        scenarios = {                                       
            'WORLD_HUMAN_AA_COFFEE', 'WORLD_HUMAN_AA_SMOKE', 'WORLD_HUMAN_BUM_STANDING', 'WORLD_HUMAN_VALET', 'WORLD_HUMAN_CAR_PARK_ATTENDANT', 
            'WORLD_HUMAN_CLIPBOARD', 'WORLD_HUMAN_COP_IDLES', 'WORLD_HUMAN_DRINKING', 'WORLD_HUMAN_DRUG_DEALER', 'WORLD_HUMAN_DRUG_DEALER_HARD', 
            'WORLD_HUMAN_GUARD_STAND', 'WORLD_HUMAN_HANG_OUT_STREET', 'WORLD_HUMAN_SMOKING', 'WORLD_HUMAN_SMOKING_CLUBHOUSE', 'WORLD_HUMAN_SMOKING_POT',
            'WORLD_HUMAN_SMOKING_POT_CLUBHOUSE', 'WORLD_HUMAN_STAND_IMPATIENT', 'WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE', 
            'WORLD_HUMAN_STAND_IMPATIENT_FACILITY', 'WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT', 'WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT_FACILITY', 
            'WORLD_HUMAN_STAND_MOBILE', 'WORLD_HUMAN_STAND_MOBILE_CLUBHOUSE', 'WORLD_HUMAN_STAND_MOBILE_FACILITY', 'WORLD_HUMAN_STAND_MOBILE_UPRIGHT', 
            'WORLD_HUMAN_STAND_MOBILE_UPRIGHT_CLUBHOUSE',
        },
    },
    locations = {                                           
        {coords = vec4(714.0477, -716.7358, 26.1345, 184.7042)},
        {coords = vec4(748.7374, -529.1055, 27.7778, 82.3532)},
        {coords = vec4(743.4658, -1797.3104, 29.2916, 90.3683)},
        {coords = vec4(892.4183, -2172.1731, 32.2862, 178.2663)},
        {coords = vec4(466.2290, -735.8327, 27.3645, 89.4824)},
        {coords = vec4(450.1326, -787.0790, 27.3578, 278.5528)},
        {coords = vec4(29.4900, -1018.7399, 29.3794, 253.0295)},
        {coords = vec4(158.9216, -1087.0206, 29.1923, 3.6918)},
        {coords = vec4(-545.9033, -873.4942, 27.1986, 182.3827)},
        {coords = vec4(-584.3311, -809.1799, 26.3608, 94.2468)},
        {coords = vec4(-1131.2710, -1551.9731, 4.3381, 133.1790)},
        {coords = vec4(-1171.0496, -1380.8845, 4.9688, 53.8665)},
        {coords = vec4(-1267.9873, -812.0983, 17.1077, 129.5155)},
        {coords = vec4(-1190.7872, -742.8149, 20.2471, 309.6977)},
        {coords = vec4(-874.1345, -225.4383, 39.4992, 309.6977)},
        {coords = vec4(-773.3749, -187.8543, 37.2836, 128.6673)},
        {coords = vec4(-598.9026, 170.5925, 66.0599, 6.3210)},
        {coords = vec4(-477.8156, 298.2921, 83.7914, 46.8957)},
        {coords = vec4(159.9377, 292.9284, 110.8390, 14.8574)},
        {coords = vec4(399.9715, 67.1092, 97.9779, 168.7914)},
        {coords = vec4(814.9595, -109.4994, 80.6025, 81.9081)},
        {coords = vec4(1099.5093, -345.7188, 67.1835, 314.1356)},
        {coords = vec4(1152.7114, -431.8334, 67.0128, 78.9407)},
        {coords = vec4(143.6453, -1656.3026, 29.3314, 238.3613)},
        {coords = vec4(206.5612, -1851.4531, 27.4813, 142.4971)},
        {coords = vec4(-220.3584, -1285.9303, 31.2929, 142.9025)},
        {coords = vec4(340.7369, -1270.7273, 31.9980, 90.6708)},
    }
}

minimumSafeSpawnDistance

Determines the client minimum spawn distance (how far players need to be for this client to be selected).

minimumSafeSpawnDistance = 50.0,

blip

Client blip variables.

  • enable = If set to 'true' creates a blip for the client.

  • sprite = Determines the blip sprite.

  • scale = Determines the blip scale.

  • color = Determines the blip color.

  • label = Determines the blip label.

  • setWaypoint = If set to 'true' draws a waypoint to the client.

blip = {                                                
    enable = true,                                      
    sprite = 480,                                       
    scale = 1.0,                                        
    color = 46,                                         
    label = "Client",                                   
    setWaypoint = true                                  
},

turnInKillConfirmation

Turning in Kill Confirmation variables.

  • timer = Timer variables.

    • timerMin = Determines the timer time (in Milliseconds).

    • timerMax = Determines the timer time (in Milliseconds).

turnInKillConfirmation = {                              
    timer = {                                           
        timerMin = 1000,                                
        timerMax = 2000                                 
    },
},

ped

Determines the variables for client peds.

  • models = Determines possible peds for the client ped (One will be chosen randomly).

  • scenarios = Determines possible scenarios for the client ped (One will be chosen randomly).

ped = {
    models = {
    'a_f_m_beach_01', 'a_f_m_bevhills_01', 'a_f_m_bevhills_02', 'a_f_m_bodybuild_01', 'a_f_m_business_02', 'a_f_m_downtown_01', 
    'a_f_m_eastsa_01', 'a_f_m_eastsa_02', 'a_f_m_fatbla_01', 'a_f_m_fatcult_01', 'a_f_m_fatwhite_01', 'a_f_m_ktown_01', 'a_f_m_ktown_02', 
    'a_f_m_prolhost_01', 'a_f_m_salton_01', 'a_f_m_skidrow_01', 'a_f_m_soucent_01', 'a_f_m_soucent_02', 'a_f_m_soucentmc_01', 'a_f_m_tourist_01', 
    'a_f_m_tramp_01', 'a_f_m_trampbeac_01', 'a_f_o_genstreet_01', 'a_f_o_indian_01', 'a_f_o_ktown_01', 'a_f_o_salton_01', 'a_f_o_soucent_01', 
    'a_f_o_soucent_02', 'a_f_y_beach_01', 'a_f_y_bevhills_01', 'a_f_y_bevhills_02', 'a_f_y_bevhills_03', 'a_f_y_bevhills_04', 'a_f_y_business_01', 
    'a_f_y_business_02', 'a_f_y_business_03', 'a_f_y_business_04', 'a_f_y_clubcust_01', 'a_f_y_clubcust_02', 'a_f_y_clubcust_03', 'a_f_y_eastsa_01',
    'a_f_y_eastsa_02', 'a_f_y_eastsa_03', 'a_f_y_epsilon_01', 'a_f_y_femaleagent', 'a_f_y_fitness_01', 'a_f_y_fitness_02', 'a_f_y_genhot_01', 
    'a_f_y_golfer_01', 'a_f_y_hiker_01', 'a_f_y_hippie_01', 'a_f_y_hipster_01', 'a_f_y_hipster_02', 'a_f_y_hipster_03', 'a_f_y_hipster_04', 
    'a_f_y_indian_01', 'a_f_y_juggalo_01', 'a_f_y_runner_01', 'a_f_y_rurmeth_01', 'a_f_y_scdressy_01', 'a_f_y_skater_01', 'a_f_y_soucent_01', 
    'a_f_y_soucent_02', 'a_f_y_soucent_03', 'a_f_y_tennis_01', 'a_f_y_topless_01', 'a_f_y_tourist_01', 'a_f_y_tourist_02', 'a_f_y_vinewood_01', 
    'a_f_y_vinewood_02', 'a_f_y_vinewood_03', 'a_f_y_vinewood_04', 'a_f_y_yoga_01', 'a_f_y_gencaspat_01', 'a_f_y_smartcaspat_01',
    'a_m_m_acult_01', 'a_m_m_afriamer_01', 'a_m_m_beach_01', 'a_m_m_beach_02', 'a_m_m_bevhills_01', 'a_m_m_bevhills_02', 'a_m_m_business_01', 
    'a_m_m_eastsa_01', 'a_m_m_eastsa_02', 'a_m_m_farmer_01', 'a_m_m_fatlatin_01', 'a_m_m_genfat_01', 'a_m_m_genfat_02', 'a_m_m_golfer_01', 
    'a_m_m_hasjew_01', 'a_m_m_hillbilly_01', 'a_m_m_hillbilly_02', 'a_m_m_indian_01', 'a_m_m_ktown_01', 'a_m_m_malibu_01', 'a_m_m_mexcntry_01', 
    'a_m_m_mexlabor_01', 'a_m_m_og_boss_01', 'a_m_m_paparazzi_01', 'a_m_m_polynesian_01', 'a_m_m_prolhost_01', 'a_m_m_rurmeth_01', 
    'a_m_m_salton_01', 'a_m_m_salton_02', 'a_m_m_salton_03', 'a_m_m_salton_04', 'a_m_m_skater_01', 'a_m_m_skidrow_01', 'a_m_m_socenlat_01', 
    'a_m_m_soucent_01', 'a_m_m_soucent_02', 'a_m_m_soucent_03', 'a_m_m_soucent_04', 'a_m_m_stlat_02', 'a_m_m_tennis_01', 'a_m_m_tourist_01', 
    'a_m_m_tramp_01', 'a_m_m_trampbeac_01', 'a_m_m_tranvest_01', 'a_m_m_tranvest_02', 'a_m_o_acult_01', 'a_m_o_acult_02', 'a_m_o_beach_01', 
    'a_m_o_genstreet_01', 'a_m_o_ktown_01', 'a_m_o_salton_01', 'a_m_o_soucent_01', 'a_m_o_soucent_02', 'a_m_o_soucent_03', 'a_m_o_tramp_01', 
    'a_m_y_acult_01', 'a_m_y_acult_02', 'a_m_y_beach_01', 'a_m_y_beach_02', 'a_m_y_beach_03', 'a_m_y_beachvesp_01', 'a_m_y_beachvesp_02', 
    'a_m_y_bevhills_01', 'a_m_y_bevhills_02', 'a_m_y_breakdance_01', 'a_m_y_busicas_01', 'a_m_y_business_01', 'a_m_y_business_02', 
    'a_m_y_business_03', 'a_m_y_clubcust_01', 'a_m_y_clubcust_02', 'a_m_y_clubcust_03', 'a_m_y_cyclist_01', 'a_m_y_dhill_01', 'a_m_y_downtown_01', 
    'a_m_y_eastsa_01', 'a_m_y_eastsa_02', 'a_m_y_epsilon_01', 'a_m_y_epsilon_02', 'a_m_y_gay_01', 'a_m_y_gay_02', 'a_m_y_genstreet_01', 
    'a_m_y_genstreet_02', 'a_m_y_golfer_01', 'a_m_y_hasjew_01', 'a_m_y_hiker_01', 'a_m_y_hippy_01', 'a_m_y_hipster_01', 'a_m_y_hipster_02', 
    'a_m_y_hipster_03', 'a_m_y_indian_01', 'a_m_y_jetski_01', 'a_m_y_juggalo_01', 'a_m_y_ktown_01', 'a_m_y_ktown_02', 'a_m_y_latino_01', 
    'a_m_y_methhead_01', 'a_m_y_mexthug_01', 'a_m_y_motox_01', 'a_m_y_motox_02', 'a_m_y_musclbeac_01', 'a_m_y_musclbeac_02', 'a_m_y_polynesian_01', 
    'a_m_y_roadcyc_01', 'a_m_y_runner_01', 'a_m_y_runner_02', 'a_m_y_salton_01', 'a_m_y_skater_01', 'a_m_y_skater_02', 'a_m_y_soucent_01', 
    'a_m_y_soucent_02', 'a_m_y_soucent_03', 'a_m_y_soucent_04', 'a_m_y_stbla_01', 'a_m_y_stbla_02', 'a_m_y_stlat_01', 'a_m_y_stwhi_01', 
    'a_m_y_stwhi_02', 'a_m_y_sunbathe_01', 'a_m_y_surfer_01', 'a_m_y_vindouche_01', 'a_m_y_vinewood_01', 'a_m_y_vinewood_02', 'a_m_y_vinewood_03', 
    'a_m_y_vinewood_04', 'a_m_y_yoga_01', 'a_m_m_mlcrisis_01', 'a_m_y_gencaspat_01', 'a_m_y_smartcaspat_01',
    },
    scenarios = {                                       
        'WORLD_HUMAN_AA_COFFEE', 'WORLD_HUMAN_AA_SMOKE', 'WORLD_HUMAN_BUM_STANDING', 'WORLD_HUMAN_VALET', 'WORLD_HUMAN_CAR_PARK_ATTENDANT', 
        'WORLD_HUMAN_CLIPBOARD', 'WORLD_HUMAN_COP_IDLES', 'WORLD_HUMAN_DRINKING', 'WORLD_HUMAN_DRUG_DEALER', 'WORLD_HUMAN_DRUG_DEALER_HARD', 
        'WORLD_HUMAN_GUARD_STAND', 'WORLD_HUMAN_HANG_OUT_STREET', 'WORLD_HUMAN_SMOKING', 'WORLD_HUMAN_SMOKING_CLUBHOUSE', 'WORLD_HUMAN_SMOKING_POT',
        'WORLD_HUMAN_SMOKING_POT_CLUBHOUSE', 'WORLD_HUMAN_STAND_IMPATIENT', 'WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE', 
        'WORLD_HUMAN_STAND_IMPATIENT_FACILITY', 'WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT', 'WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT_FACILITY', 
        'WORLD_HUMAN_STAND_MOBILE', 'WORLD_HUMAN_STAND_MOBILE_CLUBHOUSE', 'WORLD_HUMAN_STAND_MOBILE_FACILITY', 'WORLD_HUMAN_STAND_MOBILE_UPRIGHT', 
        'WORLD_HUMAN_STAND_MOBILE_UPRIGHT_CLUBHOUSE',
    },
},

locations

Needs to be a vector4.

Determines possible locations for the client (One will be chosen randomly if no players are within the minimumSafeSpawnDistance).

locations = {                                           
    {coords = vec4(714.0477, -716.7358, 26.1345, 184.7042)},
    {coords = vec4(748.7374, -529.1055, 27.7778, 82.3532)},
    {coords = vec4(743.4658, -1797.3104, 29.2916, 90.3683)},
    {coords = vec4(892.4183, -2172.1731, 32.2862, 178.2663)},
    {coords = vec4(466.2290, -735.8327, 27.3645, 89.4824)},
    {coords = vec4(450.1326, -787.0790, 27.3578, 278.5528)},
    {coords = vec4(29.4900, -1018.7399, 29.3794, 253.0295)},
    {coords = vec4(158.9216, -1087.0206, 29.1923, 3.6918)},
    {coords = vec4(-545.9033, -873.4942, 27.1986, 182.3827)},
    {coords = vec4(-584.3311, -809.1799, 26.3608, 94.2468)},
    {coords = vec4(-1131.2710, -1551.9731, 4.3381, 133.1790)},
    {coords = vec4(-1171.0496, -1380.8845, 4.9688, 53.8665)},
    {coords = vec4(-1267.9873, -812.0983, 17.1077, 129.5155)},
    {coords = vec4(-1190.7872, -742.8149, 20.2471, 309.6977)},
    {coords = vec4(-874.1345, -225.4383, 39.4992, 309.6977)},
    {coords = vec4(-773.3749, -187.8543, 37.2836, 128.6673)},
    {coords = vec4(-598.9026, 170.5925, 66.0599, 6.3210)},
    {coords = vec4(-477.8156, 298.2921, 83.7914, 46.8957)},
    {coords = vec4(159.9377, 292.9284, 110.8390, 14.8574)},
    {coords = vec4(399.9715, 67.1092, 97.9779, 168.7914)},
    {coords = vec4(814.9595, -109.4994, 80.6025, 81.9081)},
    {coords = vec4(1099.5093, -345.7188, 67.1835, 314.1356)},
    {coords = vec4(1152.7114, -431.8334, 67.0128, 78.9407)},
    {coords = vec4(143.6453, -1656.3026, 29.3314, 238.3613)},
    {coords = vec4(206.5612, -1851.4531, 27.4813, 142.4971)},
    {coords = vec4(-220.3584, -1285.9303, 31.2929, 142.9025)},
    {coords = vec4(340.7369, -1270.7273, 31.9980, 90.6708)},
}

Config.DeadDrops

Configuration for dead drops

Config.DeadDrops = {
    blip = {
        enable = true,
        sprite = 457,
        scale = 1.0,
        color = 2,
        label = "Dead Drop",
        setWaypoint = true,
    },
    locations = {
        vector3(788.6252, -775.4433, 26.42369), 
        vector3(827.8407, -1070.048, 28.48918),
        vector3(831.1832, -1991.972, 29.30136),
        vector3(957.2404, -2366.238, 30.54342),
        vector3(398.5865, -739.6891, 29.27672),
        vector3(452.3307, -750.3677, 27.35764),
        vector3(-6.226191, -1086.709, 26.67207),
        vector3(37.28276, -1023.795, 29.48148),
        vector3(-606.6549, -1029.191, 21.78756),
        vector3(-713.226, -824.2436, 23.5449),
        vector3(-1131.964, -1567.947, 4.413927),
        vector3(-1146.4, -1626.857, 4.280537),
        vector3(-1216.429, -806.9036, 16.37718),
        vector3(-1454.858, -591.7869, 30.9483),
        vector3(-896.6103, -247.3401, 40.04118),
        vector3(-624.3991, -200.6885, 37.54574),
        vector3(-618.7264, 304.8151, 82.25268),
        vector3(-169.0197, 216.5543, 89.48821),
        vector3(-52.65391, -98.52388, 57.81428),
        vector3(478.6129, 46.69759, 92.95871),
        vector3(795.5706, -80.90009, 80.59615),
        vector3(837.1632, -262.2335, 65.62377),
        vector3(1174.146, -298.8404, 69.02161),
        vector3(1195.71, -485.3098, 65.80621),
        vector3(107.1236, -1692.928, 29.26395),
        vector3(309.6383, -1545.083, 29.41008),
        vector3(10.5759, -1531.4991, 29.2876),
        vector3(-171.1004, -1344, 31.29586),
        vector3(143.3138, -955.4326, 29.66306),
        vector3(177.1713, -908.1945, 30.69225),
        vector3(52.1823, -830.9993, 31.08337),
        vector3(-222.5493, -934.3334, 29.28791),
    }
}

blip

Dead Drop blip variables.

  • enable = If set to 'true' creates a blip for the dead drop.

  • sprite = Determines the blip sprite.

  • scale = Determines the blip scale.

  • color = Determines the blip color.

  • label = Determines the blip label.

  • setWaypoint = If set to 'true' draws a waypoint to the dead drop.

blip = {
    enable = true,
    sprite = 457,
    scale = 1.0,
    color = 2,
    label = "Dead Drop",
    setWaypoint = true,
},

locations

Determines possible locations for the dead drop (One will be chosen randomly).

locations = {
    vector3(788.6252, -775.4433, 26.42369), 
    vector3(827.8407, -1070.048, 28.48918),
    vector3(831.1832, -1991.972, 29.30136),
    vector3(957.2404, -2366.238, 30.54342),
    vector3(398.5865, -739.6891, 29.27672),
    vector3(452.3307, -750.3677, 27.35764),
    vector3(-6.226191, -1086.709, 26.67207),
    vector3(37.28276, -1023.795, 29.48148),
    vector3(-606.6549, -1029.191, 21.78756),
    vector3(-713.226, -824.2436, 23.5449),
    vector3(-1131.964, -1567.947, 4.413927),
    vector3(-1146.4, -1626.857, 4.280537),
    vector3(-1216.429, -806.9036, 16.37718),
    vector3(-1454.858, -591.7869, 30.9483),
    vector3(-896.6103, -247.3401, 40.04118),
    vector3(-624.3991, -200.6885, 37.54574),
    vector3(-618.7264, 304.8151, 82.25268),
    vector3(-169.0197, 216.5543, 89.48821),
    vector3(-52.65391, -98.52388, 57.81428),
    vector3(478.6129, 46.69759, 92.95871),
    vector3(795.5706, -80.90009, 80.59615),
    vector3(837.1632, -262.2335, 65.62377),
    vector3(1174.146, -298.8404, 69.02161),
    vector3(1195.71, -485.3098, 65.80621),
    vector3(107.1236, -1692.928, 29.26395),
    vector3(309.6383, -1545.083, 29.41008),
    vector3(10.5759, -1531.4991, 29.2876),
    vector3(-171.1004, -1344, 31.29586),
    vector3(143.3138, -955.4326, 29.66306),
    vector3(177.1713, -908.1945, 30.69225),
    vector3(52.1823, -830.9993, 31.08337),
    vector3(-222.5493, -934.3334, 29.28791),
}

Config.TargetSets

Configuration for target sets.

Config.TargetSets = {                                          
    minimumSpawnDistance = 100.0,                              
    blip = {                                                   
        enable = true,                                         
        radius = 200.0,                                        
        alpha = 150,                                           
        color = 1,                                             
        offsetPercentage = 0.95,                               
    },
    camera = {                                                 
        enable = true,                                         
        distance = 4.0,                                        
        fov = 30.0,                                            
        zOffset = 1.0,                                         
        timerMin = 10,                                          
        timerMax = 10,                                          
    },
    headshot = {                                               
        enable = true,                                         
        title = "Contract Killer",                             
        subtitle = "Target Details",                           
        duration = 1.0,                                        
    },
    prompt = {
        enable = false,
    },
    killConfirmation = {                                       
        itemName = 'killconfirmation',                         
        timer = {                                              
            timerMin = 1000,                                   
            timerMax = 2000,                                   
        },
        animation = {                                          
            scenario = "CODE_HUMAN_MEDIC_TEND_TO_DEAD"         
        }
    },
    targetSets = {
        {
            name = "Sample Target",                            
            prompt = "Take out the target",                    
            difficulty = 1,                                    
            minimumSpawnDistance = 50,                         
            targetModels = {                                   
                "a_f_y_business_01", "a_f_y_business_02", 
                "a_f_y_business_03", "a_f_y_business_04", 
                "a_m_y_business_01", "a_m_y_business_02", 
                "a_m_y_business_03"
            }, 
            targetCoords = vector4(198.5164, -919.1954,30.6874, 240.0001),
            targetArmed = true,                                
            targetWeapon = {                                   
                "weapon_pistol", "weapon_switchblade", "weapon_unarmed"
            }, 
            targetScenarios = {                                
                "WORLD_HUMAN_AA_COFFEE", "WORLD_HUMAN_HANG_OUT_STREET", "WORLD_HUMAN_AA_SMOKE", "PROP_HUMAN_STAND_IMPATIENT"
            }, 
            conditionalWeaponEnabled = true,                   
            conditionalWeapons = {                             
                {
                    name = "weapon_unarmed",                   
                    label = "your Fists",                      
                    multiplier = 5                             
                },
                {name = "weapon_bat", label = "a Bat", multiplier = 4},
                {name = "weapon_knife", label = "a Knife", multiplier = 4},
                {name = "weapon_pistol", label = "a Pistol", multiplier = 3},
                {name = "weapon_microsmg", label = "a Micro SMG", multiplier = 2},
                {name = "weapon_machinepistol", label = "a Machine PIstol", multiplier = 2},
                {name = "weapon_sawnoffshotgun", label = "a Sawn-Off Shotgun", multiplier = 2},
                {name = "weapon_assaultrifle", label = "an Assault Rifle", multiplier = 2},
                {name = "weapon_molotov", label = "a Molotov Cocktail", multiplier = 6},
            },
            guardChance = 100,                                 
            guardNumberMin = 1,                                
            guardNumberMax = 2,                                
            guardModels = {                                    
                "a_f_y_business_01", "a_f_y_business_02", 
                "a_f_y_business_03", "a_f_y_business_04", 
                "a_m_y_business_01", "a_m_y_business_02", 
                "a_m_y_business_03"
            }, 
            guardCoords = {                                    
                [1] = {coords = vector4(198.85845947266,-920.49157714844,30.6877784729,340.00012207031), used = false},
                [2] = {coords = vector4(199.87644958496,-918.99334716797,30.67737197876,130.00004577637), used = false},
            },
            guardWeapons = {                                   
                "weapon_pistol", "weapon_switchblade", "weapon_unarmed"
            }, 
            guardScenarios = {                                 
                "WORLD_HUMAN_AA_COFFEE", "WORLD_HUMAN_HANG_OUT_STREET", "WORLD_HUMAN_AA_SMOKE", "PROP_HUMAN_STAND_IMPATIENT"
            },
        },
    }
}

minimumSpawnDistance

Determines the default minimumSpawnDistance (how far players need to be for this targetset to be selected).

minimumSpawnDistance = 100.0,

blip

Target blip variables.

  • enable = If set to 'true' a blip will be created for the target.

  • radius = Determines the radius of the blip.

  • alpha = Determines the alpha (opacity) of the blip.

  • color = Determines the blip color.

  • offsetPercentage = Determines the offset percentage of the blip (i.e If set to "0.75" the target will be somewhere up to 75% of the way to the edge of the blip).

blip = {                                                   
    enable = true,                                         
    radius = 200.0,                                        
    alpha = 150,                                           
    color = 1,                                             
    offsetPercentage = 0.95,                               
},

camera

Target camera variables.

  • enable = If set to 'true' creates a visual camera preview of the target.

  • distance = Determines the distance the camera is from the target.

  • fov = Determines the Field of View for the camera.

  • zOffset = Determines the Height offset of the camera compared to the target, this places the camera slightly above the target eyeline.

  • timerMin = Determines the minimum time to display the target camera to the player (In Seconds).

  • timerMax = Determines the maximum time to display the target camera to the player (In Seconds).

camera = {                                                 
    enable = true,                                         
    distance = 4.0,                                        
    fov = 30.0,                                            
    zOffset = 1.0,                                         
    timerMin = 10,                                          
    timerMax = 10,                                          
},

headshot

Target headshot variables.

  • enable = If set to 'true' a small picture of the target and the target prompt is shown to the player, as well as the conditional weapon if enabled for that target.

  • title = Determines the title of the headshot notification.

  • subtitle = Determines subtitle of the headshot notification (Can be empty).

  • duration = Determines the duration to show the headshot notification (If camera is also enabled, the headshot is shown for the duration of the camera).

headshot = {                                               
    enable = true,                                         
    title = "Contract Killer",                             
    subtitle = "Target Details",                           
    duration = 1.0,                                        
},

prompt

Target Prompt variables

  • enable = If set to 'true' the target prompt is shown to the player, not needed if headshot.enable is also set to 'true'.

prompt = {
    enable = false,
},

killConfirmation

Target Kill Confirmation variables.

  • itemName = Determines the item that is used for the kill confirmation.

  • timer = Kill Confirmation timer.

    • timerMin = Determines the minimum time it takes to confirm the kill (In Milliseconds).

    • timerMax = Determines the maximum time it takes to confirm the kill (In Milliseconds).

  • animation = Kill Confirmation animation.

    • scenario = Determines the scenario the player will use while confirming the kill.

killConfirmation = {                                       
    itemName = 'killconfirmation',                         
    timer = {                                              
        timerMin = 1000,                                   
        timerMax = 2000,                                   
    },
    animation = {                                          
        scenario = "CODE_HUMAN_MEDIC_TEND_TO_DEAD"         
    }
},

targetSets

List of potential target sets (one will be chosen at random if no players are nearby).

  • name = The name of the target set (Only used for debugging.)

  • prompt = The target set prompt that is shown to the player when they receive the contract.

  • difficulty = Target set difficulty, This is the number the base payout is multiplied by when they complete the contract ("base payout = 1", "difficulty = 3", means "total payout = 3")

  • minimumSpawnDistance = This is the distance all player must be from the target in order for it to be selected (To prevent targets from being spawned on or in sight of other players).

  • targetModels = Ped Models used for the Target, one will be randomly selected. A list of available ped models can be found here (https://docs.fivem.net/docs/game-references/ped-models/).

  • targetCoords = The coordinates of where to spawn the target (Must be a vector 4 or the heading of the target will be 0).

  • targetArmed = Determines whether or not the target is armed.

  • targetWeapon = If the target is armed one of these weapons will be given to the target (if the target is given "weapon_unamerd" they will flee when attacked). A list of default GTA weapons can be found here (https://www.vespura.com/fivem/weapons/stats/).

  • targetScenarios = Scenario played when the target is created (one will be randomly selected).

  • conditionalWeaponEnabled = Whether or not to include a conditional weapon. If true the player has a chance to earn more by killing the target with specified weapon.

  • conditionalWeapons = List of potential conditional weapons (one will be randomly selected).

    • name = The name of the weapon, A list of default GTA weapons can be found here (https://www.vespura.com/fivem/weapons/stats/).

    • label = What is shown to the player when he receives the contract details.

    • multiplier = The amount the (base payout * difficulty) is multiplied by.

  • guardChance = The chance of creating guards (100 = 100%, 50 = 50%, 0 = 0%).

  • guardNumberMin = The minimum number of guards to create for the target.

  • guardNumberMax = The maximum number of guards to create for the target.

  • guardModels = Potential guard ped models, one will be chosen randomly from the list for each guard. A list of available ped models can be found here (https://docs.fivem.net/docs/game-references/ped-models/).

  • guardCoords = List of guard coordinates, for each guard one of these will be randomly selected.

    • coords = The coordinates of this guard.

    • used = Keep this set to "false"

  • guardWeapons = List of potential guard weapons, for each guard created they will receive one of these weapons. A list of default GTA weapons can be found here (https://www.vespura.com/fivem/weapons/stats/).

  • guardScenarios = Scenario played when each guard is created (one will be randomly selected).

targetSets = {
    {
        name = "Sample Target",                            
        prompt = "Take out the target",                    
        difficulty = 1,                                    
        minimumSpawnDistance = 50,                         
        targetModels = {                                   
            "a_f_y_business_01", "a_f_y_business_02", 
            "a_f_y_business_03", "a_f_y_business_04", 
            "a_m_y_business_01", "a_m_y_business_02", 
            "a_m_y_business_03"
        }, 
        targetCoords = vector4(198.5164, -919.1954,30.6874, 240.0001),
        targetArmed = true,                                
        targetWeapon = {                                   
            "weapon_pistol", "weapon_switchblade", "weapon_unarmed"
        }, 
        targetScenarios = {                                
            "WORLD_HUMAN_AA_COFFEE", "WORLD_HUMAN_HANG_OUT_STREET", "WORLD_HUMAN_AA_SMOKE", "PROP_HUMAN_STAND_IMPATIENT"
        }, 
        conditionalWeaponEnabled = true,                   
        conditionalWeapons = {                             
            {
                name = "weapon_unarmed",                   
                label = "your Fists",                      
                multiplier = 5                             
            },
            {name = "weapon_bat", label = "a Bat", multiplier = 4},
            {name = "weapon_knife", label = "a Knife", multiplier = 4},
            {name = "weapon_pistol", label = "a Pistol", multiplier = 3},
            {name = "weapon_microsmg", label = "a Micro SMG", multiplier = 2},
            {name = "weapon_machinepistol", label = "a Machine PIstol", multiplier = 2},
            {name = "weapon_sawnoffshotgun", label = "a Sawn-Off Shotgun", multiplier = 2},
            {name = "weapon_assaultrifle", label = "an Assault Rifle", multiplier = 2},
            {name = "weapon_molotov", label = "a Molotov Cocktail", multiplier = 6},
        },
        guardChance = 100,                                 
        guardNumberMin = 1,                                
        guardNumberMax = 2,                                
        guardModels = {                                    
            "a_f_y_business_01", "a_f_y_business_02", 
            "a_f_y_business_03", "a_f_y_business_04", 
            "a_m_y_business_01", "a_m_y_business_02", 
            "a_m_y_business_03"
        }, 
        guardCoords = {                                    
            [1] = {coords = vector4(198.85845947266,-920.49157714844,30.6877784729,340.00012207031), used = false},
            [2] = {coords = vector4(199.87644958496,-918.99334716797,30.67737197876,130.00004577637), used = false},
        },
        guardWeapons = {                                   
            "weapon_pistol", "weapon_switchblade", "weapon_unarmed"
        }, 
        guardScenarios = {                                 
            "WORLD_HUMAN_AA_COFFEE", "WORLD_HUMAN_HANG_OUT_STREET", "WORLD_HUMAN_AA_SMOKE", "PROP_HUMAN_STAND_IMPATIENT"
        },
    },
}

Example Config

Config = {
    language = "en",                                           
    debug = true,                                              
    enhancedDebug = true,                                      
    interactionMethod = "target",                              
    interactionDistance = 2,                                   
    target = "ox_target",                                      
    inventory = "ox_inventory",                                
    cooldown = {                                               
        enable = true,                                         
        type = "personal",                                     
        minAmount = 20,                                         
        maxAmount = 30                                          
    },
    copsNeeded = {                                             
        enable = true,                                         
        amount = 1                                             
    }
}

Config.Defaults = {                                            
    timer = {                                                  
        enable = true,                                         
        timerMin = 30,                                         
        timerMax = 30,                                         
    },
    payout = {                                                 
        type = 'item',                                         
        itemName = 'money',                                    
        minAmount = 10000,                                     
        maxAmount = 20000,                                     
    },
}

Config.Brokers = {                                             
    blip = {                                                   
        enable = false,                                        
        sprite = 119,                                          
        scale = 1.0,                                           
        color = 1,                                             
        label = "Contract Broker"                              
    },  
    interactAnimation = {                                      
        scenario = "WORLD_HUMAN_STAND_IMPATIENT",              
        duration = 3000,                                       
    },
    pedAnimation = {                                           
        scenario = "WORLD_HUMAN_STAND_IMPATIENT"               
    },  
    locations = {                                              
        {
            coords = vec3(707.3157, -966.9925, 30.41285),      
            interactAnimation = {                              
                dict = 'lester_1_int-0',                       
                anim = 'prop_cs_keyboard_01-0',                
                duration = 5000                                
            },
        },
        {
            coords = vec3(705.0999, -960.9101, 30.3953),
            ped = {                                            
                heading = 268.5773,                            
                model = 'a_m_m_mlcrisis_01',                   
                pedAnimation = {                               
                    scenario = 'WORLD_HUMAN_SMOKING'           
                }
            },
        }
    },
}

Config.Clients = {                                             
    minimumSafeSpawnDistance = 50.0,                           
    blip = {                                                   
        enable = true,                                         
        sprite = 480,                                          
        scale = 1.0,                                           
        color = 46,                                            
        label = "Client",                                      
        setWaypoint = true                                     
    },
    turnInKillConfirmation = {                                 
        timer = {                                              
            timerMin = 1000,                                   
            timerMax = 2000                                    
        },
    },
    ped = {                                                    
        models = {                                             
        -- Ambient Female Peds
        'a_f_m_beach_01', 'a_f_m_bevhills_01', 'a_f_m_bevhills_02', 'a_f_m_bodybuild_01', 'a_f_m_business_02', 'a_f_m_downtown_01', 
        'a_f_m_eastsa_01', 'a_f_m_eastsa_02', 'a_f_m_fatbla_01', 'a_f_m_fatcult_01', 'a_f_m_fatwhite_01', 'a_f_m_ktown_01', 'a_f_m_ktown_02', 
        'a_f_m_prolhost_01', 'a_f_m_salton_01', 'a_f_m_skidrow_01', 'a_f_m_soucent_01', 'a_f_m_soucent_02', 'a_f_m_soucentmc_01', 'a_f_m_tourist_01', 
        'a_f_m_tramp_01', 'a_f_m_trampbeac_01', 'a_f_o_genstreet_01', 'a_f_o_indian_01', 'a_f_o_ktown_01', 'a_f_o_salton_01', 'a_f_o_soucent_01', 
        'a_f_o_soucent_02', 'a_f_y_beach_01', 'a_f_y_bevhills_01', 'a_f_y_bevhills_02', 'a_f_y_bevhills_03', 'a_f_y_bevhills_04', 'a_f_y_business_01', 
        'a_f_y_business_02', 'a_f_y_business_03', 'a_f_y_business_04', 'a_f_y_clubcust_01', 'a_f_y_clubcust_02', 'a_f_y_clubcust_03', 'a_f_y_eastsa_01',
        'a_f_y_eastsa_02', 'a_f_y_eastsa_03', 'a_f_y_epsilon_01', 'a_f_y_femaleagent', 'a_f_y_fitness_01', 'a_f_y_fitness_02', 'a_f_y_genhot_01', 
        'a_f_y_golfer_01', 'a_f_y_hiker_01', 'a_f_y_hippie_01', 'a_f_y_hipster_01', 'a_f_y_hipster_02', 'a_f_y_hipster_03', 'a_f_y_hipster_04', 
        'a_f_y_indian_01', 'a_f_y_juggalo_01', 'a_f_y_runner_01', 'a_f_y_rurmeth_01', 'a_f_y_scdressy_01', 'a_f_y_skater_01', 'a_f_y_soucent_01', 
        'a_f_y_soucent_02', 'a_f_y_soucent_03', 'a_f_y_tennis_01', 'a_f_y_topless_01', 'a_f_y_tourist_01', 'a_f_y_tourist_02', 'a_f_y_vinewood_01', 
        'a_f_y_vinewood_02', 'a_f_y_vinewood_03', 'a_f_y_vinewood_04', 'a_f_y_yoga_01', 'a_f_y_gencaspat_01', 'a_f_y_smartcaspat_01',
        -- Ambient Male Peds
        'a_m_m_acult_01', 'a_m_m_afriamer_01', 'a_m_m_beach_01', 'a_m_m_beach_02', 'a_m_m_bevhills_01', 'a_m_m_bevhills_02', 'a_m_m_business_01', 
        'a_m_m_eastsa_01', 'a_m_m_eastsa_02', 'a_m_m_farmer_01', 'a_m_m_fatlatin_01', 'a_m_m_genfat_01', 'a_m_m_genfat_02', 'a_m_m_golfer_01', 
        'a_m_m_hasjew_01', 'a_m_m_hillbilly_01', 'a_m_m_hillbilly_02', 'a_m_m_indian_01', 'a_m_m_ktown_01', 'a_m_m_malibu_01', 'a_m_m_mexcntry_01', 
        'a_m_m_mexlabor_01', 'a_m_m_og_boss_01', 'a_m_m_paparazzi_01', 'a_m_m_polynesian_01', 'a_m_m_prolhost_01', 'a_m_m_rurmeth_01', 
        'a_m_m_salton_01', 'a_m_m_salton_02', 'a_m_m_salton_03', 'a_m_m_salton_04', 'a_m_m_skater_01', 'a_m_m_skidrow_01', 'a_m_m_socenlat_01', 
        'a_m_m_soucent_01', 'a_m_m_soucent_02', 'a_m_m_soucent_03', 'a_m_m_soucent_04', 'a_m_m_stlat_02', 'a_m_m_tennis_01', 'a_m_m_tourist_01', 
        'a_m_m_tramp_01', 'a_m_m_trampbeac_01', 'a_m_m_tranvest_01', 'a_m_m_tranvest_02', 'a_m_o_acult_01', 'a_m_o_acult_02', 'a_m_o_beach_01', 
        'a_m_o_genstreet_01', 'a_m_o_ktown_01', 'a_m_o_salton_01', 'a_m_o_soucent_01', 'a_m_o_soucent_02', 'a_m_o_soucent_03', 'a_m_o_tramp_01', 
        'a_m_y_acult_01', 'a_m_y_acult_02', 'a_m_y_beach_01', 'a_m_y_beach_02', 'a_m_y_beach_03', 'a_m_y_beachvesp_01', 'a_m_y_beachvesp_02', 
        'a_m_y_bevhills_01', 'a_m_y_bevhills_02', 'a_m_y_breakdance_01', 'a_m_y_busicas_01', 'a_m_y_business_01', 'a_m_y_business_02', 
        'a_m_y_business_03', 'a_m_y_clubcust_01', 'a_m_y_clubcust_02', 'a_m_y_clubcust_03', 'a_m_y_cyclist_01', 'a_m_y_dhill_01', 'a_m_y_downtown_01', 
        'a_m_y_eastsa_01', 'a_m_y_eastsa_02', 'a_m_y_epsilon_01', 'a_m_y_epsilon_02', 'a_m_y_gay_01', 'a_m_y_gay_02', 'a_m_y_genstreet_01', 
        'a_m_y_genstreet_02', 'a_m_y_golfer_01', 'a_m_y_hasjew_01', 'a_m_y_hiker_01', 'a_m_y_hippy_01', 'a_m_y_hipster_01', 'a_m_y_hipster_02', 
        'a_m_y_hipster_03', 'a_m_y_indian_01', 'a_m_y_jetski_01', 'a_m_y_juggalo_01', 'a_m_y_ktown_01', 'a_m_y_ktown_02', 'a_m_y_latino_01', 
        'a_m_y_methhead_01', 'a_m_y_mexthug_01', 'a_m_y_motox_01', 'a_m_y_motox_02', 'a_m_y_musclbeac_01', 'a_m_y_musclbeac_02', 'a_m_y_polynesian_01', 
        'a_m_y_roadcyc_01', 'a_m_y_runner_01', 'a_m_y_runner_02', 'a_m_y_salton_01', 'a_m_y_skater_01', 'a_m_y_skater_02', 'a_m_y_soucent_01', 
        'a_m_y_soucent_02', 'a_m_y_soucent_03', 'a_m_y_soucent_04', 'a_m_y_stbla_01', 'a_m_y_stbla_02', 'a_m_y_stlat_01', 'a_m_y_stwhi_01', 
        'a_m_y_stwhi_02', 'a_m_y_sunbathe_01', 'a_m_y_surfer_01', 'a_m_y_vindouche_01', 'a_m_y_vinewood_01', 'a_m_y_vinewood_02', 'a_m_y_vinewood_03', 
        'a_m_y_vinewood_04', 'a_m_y_yoga_01', 'a_m_m_mlcrisis_01', 'a_m_y_gencaspat_01', 'a_m_y_smartcaspat_01',
        },
        scenarios = {
            'WORLD_HUMAN_AA_COFFEE', 'WORLD_HUMAN_AA_SMOKE', 'WORLD_HUMAN_BUM_STANDING', 'WORLD_HUMAN_VALET', 'WORLD_HUMAN_CAR_PARK_ATTENDANT', 
            'WORLD_HUMAN_CLIPBOARD', 'WORLD_HUMAN_COP_IDLES', 'WORLD_HUMAN_DRINKING', 'WORLD_HUMAN_DRUG_DEALER', 'WORLD_HUMAN_DRUG_DEALER_HARD', 
            'WORLD_HUMAN_GUARD_STAND', 'WORLD_HUMAN_HANG_OUT_STREET', 'WORLD_HUMAN_SMOKING', 'WORLD_HUMAN_SMOKING_CLUBHOUSE', 'WORLD_HUMAN_SMOKING_POT',
            'WORLD_HUMAN_SMOKING_POT_CLUBHOUSE', 'WORLD_HUMAN_STAND_IMPATIENT', 'WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE', 
            'WORLD_HUMAN_STAND_IMPATIENT_FACILITY', 'WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT', 'WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT_FACILITY', 
            'WORLD_HUMAN_STAND_MOBILE', 'WORLD_HUMAN_STAND_MOBILE_CLUBHOUSE', 'WORLD_HUMAN_STAND_MOBILE_FACILITY', 'WORLD_HUMAN_STAND_MOBILE_UPRIGHT', 
            'WORLD_HUMAN_STAND_MOBILE_UPRIGHT_CLUBHOUSE',
        },
    },
    locations = {
        -- La Mesa
        {coords = vec4(714.0477, -716.7358, 26.1345, 184.7042)},
        {coords = vec4(748.7374, -529.1055, 27.7778, 82.3532)},
        -- Cypress Flats
        {coords = vec4(743.4658, -1797.3104, 29.2916, 90.3683)},
        {coords = vec4(892.4183, -2172.1731, 32.2862, 178.2663)},
        -- Textile City
        {coords = vec4(466.2290, -735.8327, 27.3645, 89.4824)},
        {coords = vec4(450.1326, -787.0790, 27.3578, 278.5528)},
        -- Downtown
        {coords = vec4(29.4900, -1018.7399, 29.3794, 253.0295)},
        {coords = vec4(158.9216, -1087.0206, 29.1923, 3.6918)},
        -- Little Seoul
        {coords = vec4(-545.9033, -873.4942, 27.1986, 182.3827)},
        {coords = vec4(-584.3311, -809.1799, 26.3608, 94.2468)},
        -- Vespucci
        {coords = vec4(-1131.2710, -1551.9731, 4.3381, 133.1790)},
        {coords = vec4(-1171.0496, -1380.8845, 4.9688, 53.8665)},
        -- Del Perro
        {coords = vec4(-1267.9873, -812.0983, 17.1077, 129.5155)},
        {coords = vec4(-1190.7872, -742.8149, 20.2471, 309.6977)},
        -- Rockford Hills
        {coords = vec4(-874.1345, -225.4383, 39.4992, 309.6977)},
        {coords = vec4(-773.3749, -187.8543, 37.2836, 128.6673)},
        -- West Vinewood
        {coords = vec4(-598.9026, 170.5925, 66.0599, 6.3210)},
        {coords = vec4(-477.8156, 298.2921, 83.7914, 46.8957)},
        -- Downtown Vinewood
        {coords = vec4(159.9377, 292.9284, 110.8390, 14.8574)},
        {coords = vec4(399.9715, 67.1092, 97.9779, 168.7914)},
        -- East Vinewood
        {coords = vec4(814.9595, -109.4994, 80.6025, 81.9081)},
        -- Mirror Park
        {coords = vec4(1099.5093, -345.7188, 67.1835, 314.1356)},
        {coords = vec4(1152.7114, -431.8334, 67.0128, 78.9407)},
        -- Davis
        {coords = vec4(143.6453, -1656.3026, 29.3314, 238.3613)},
        {coords = vec4(206.5612, -1851.4531, 27.4813, 142.4971)},
        -- Strawberry
        {coords = vec4(-220.3584, -1285.9303, 31.2929, 142.9025)},
        {coords = vec4(340.7369, -1270.7273, 31.9980, 90.6708)},
    }
}

Config.DeadDrops = {        
    blip = {                
        enable = true,      
        sprite = 457,       
        scale = 1.0,        
        color = 2,          
        label = "Dead Drop",
        setWaypoint = true, 
    },
    locations = {           
        -- La Mesa
        vector3(788.6252, -775.4433, 26.42369), 
        vector3(827.8407, -1070.048, 28.48918),
        -- Cypress Flats
        vector3(831.1832, -1991.972, 29.30136),
        vector3(957.2404, -2366.238, 30.54342),
        -- Textile City
        vector3(398.5865, -739.6891, 29.27672),
        vector3(452.3307, -750.3677, 27.35764),
        -- Downtown
        vector3(-6.226191, -1086.709, 26.67207),
        vector3(37.28276, -1023.795, 29.48148),
        -- Little Seoul
        vector3(-606.6549, -1029.191, 21.78756),
        vector3(-713.226, -824.2436, 23.5449),
        -- Vespucci
        vector3(-1131.964, -1567.947, 4.413927),
        vector3(-1146.4, -1626.857, 4.280537),
        -- Del Perro
        vector3(-1216.429, -806.9036, 16.37718),
        vector3(-1454.858, -591.7869, 30.9483),
        -- Rockford Hills
        vector3(-896.6103, -247.3401, 40.04118),
        vector3(-624.3991, -200.6885, 37.54574),
        -- West Vinewood
        vector3(-618.7264, 304.8151, 82.25268),
        vector3(-169.0197, 216.5543, 89.48821),
        -- Downtown Vinewood
        vector3(-52.65391, -98.52388, 57.81428),
        vector3(478.6129, 46.69759, 92.95871),
        -- East Vinewood
        vector3(795.5706, -80.90009, 80.59615),
        vector3(837.1632, -262.2335, 65.62377),
        -- Mirror Park
        vector3(1174.146, -298.8404, 69.02161),
        vector3(1195.71, -485.3098, 65.80621),
        -- Davis
        vector3(107.1236, -1692.928, 29.26395),
        vector3(309.6383, -1545.083, 29.41008),
        -- Strawberry
        vector3(10.5759, -1531.4991, 29.2876),
        vector3(-171.1004, -1344, 31.29586),
        -- Legion Square
        vector3(143.3138, -955.4326, 29.66306),
        vector3(177.1713, -908.1945, 30.69225),
        -- Pillbox Hill
        vector3(52.1823, -830.9993, 31.08337),
        vector3(-222.5493, -934.3334, 29.28791),
    }
}

Config.TargetSets = {                                           
    minimumSpawnDistance = 100.0,                               
    blip = {                                                    
        enable = true,                                          
        radius = 200.0,                                         
        alpha = 150,                                            
        color = 1,                                              
        offsetPercentage = 0.95,                                
    },
    camera = {                                                  
        enable = true,                                          
        distance = 4.0,                                         
        fov = 30.0,                                             
        zOffset = 1.0,                                          
        timerMin = 1,                                           
        timerMax = 1,                                           
    },
    headshot = {                                                
        enable = true,                                          
        title = "Contract Killer",                              
        subtitle = "Target Details",                            
        duration = 1.0,                                         
    },
    prompt = {
        enable = false,
    },
    killConfirmation = {                                        
        itemName = 'killconfirmation',                          
        timer = {                                               
            timerMin = 1000,                                    
            timerMax = 2000,                                    
        },
        animation = {                                           
            scenario = "CODE_HUMAN_MEDIC_TEND_TO_DEAD"          
        }
    },
    targetSets = {                                              
        {
            name = "Sample Target",                             
            prompt = "Take out the target",                     
            difficulty = 1,                                     
            minimumSpawnDistance = 50,                          
            targetModels = {                                    
                "a_f_y_business_01", "a_f_y_business_02", 
                "a_f_y_business_03", "a_f_y_business_04", 
                "a_m_y_business_01", "a_m_y_business_02", 
                "a_m_y_business_03"
            }, 
            targetCoords = vector4(198.5164, -919.1954,30.6874, 240.0001), 
            targetArmed = true,                                 
            targetWeapon = {                                    
                "weapon_pistol", "weapon_switchblade", "weapon_unarmed"
            }, 
            targetScenarios = {                                 
                "WORLD_HUMAN_AA_COFFEE", "WORLD_HUMAN_HANG_OUT_STREET", "WORLD_HUMAN_AA_SMOKE", "PROP_HUMAN_STAND_IMPATIENT"
            }, 
            conditionalWeaponEnabled = true,                    
            conditionalWeapons = {                              
                {
                    name = "weapon_unarmed",                    
                    label = "your Fists",                       
                    multiplier = 5                              
                },
                {name = "weapon_bat", label = "a Bat", multiplier = 4},
                {name = "weapon_knife", label = "a Knife", multiplier = 4},
                {name = "weapon_pistol", label = "a Pistol", multiplier = 3},
                {name = "weapon_microsmg", label = "a Micro SMG", multiplier = 2},
                {name = "weapon_machinepistol", label = "a Machine PIstol", multiplier = 2},
                {name = "weapon_sawnoffshotgun", label = "a Sawn-Off Shotgun", multiplier = 2},
                {name = "weapon_assaultrifle", label = "an Assault Rifle", multiplier = 2},
                {name = "weapon_molotov", label = "a Molotov Cocktail", multiplier = 6},
            },
            guardChance = 100,                                  
            guardNumberMin = 1,                                 
            guardNumberMax = 2,                                 
            guardModels = {                                     
                "a_f_y_business_01", "a_f_y_business_02", 
                "a_f_y_business_03", "a_f_y_business_04", 
                "a_m_y_business_01", "a_m_y_business_02", 
                "a_m_y_business_03"
            }, 
            guardCoords = {                                     
                [1] = {coords = vector4(198.85845947266,-920.49157714844,30.6877784729,340.00012207031), used = false},
                [2] = {coords = vector4(199.87644958496,-918.99334716797,30.67737197876,130.00004577637), used = false},
            },
            guardWeapons = {                                    
                "weapon_pistol", "weapon_switchblade", "weapon_unarmed"
            }, 
            guardScenarios = {                                  
                "WORLD_HUMAN_AA_COFFEE", "WORLD_HUMAN_HANG_OUT_STREET", "WORLD_HUMAN_AA_SMOKE", "PROP_HUMAN_STAND_IMPATIENT"
            },
        },
    }
}

Last updated