Configuration
All configuration for legends_airdrop is done in the config.lua file. The props_config.lua file contains building prop definitions.
General Settings
Config.Language
Config.Language = 'en'Description: Language file to use for notifications and UI text.
Type: string
Default: 'en'
Language files are located in lang/. To add a new language, create a new JSON file (e.g., lang/es.json).
Config.Debug
Config.Debug = trueDescription: Enable debug prints in console.
Type: boolean
Default: true
Config.Cooldowns
Config.Cooldowns = {
success = 120, -- Minutes after successful airdrop
failure = 30 -- Minutes after failed minigame
}| Property | Type | Description |
|---|---|---|
success | number | Cooldown in minutes after successfully calling an airdrop |
failure | number | Cooldown in minutes after failing the minigame |
Interaction Methods
Config.InteractionMethod
Config.InteractionMethod = {
adminCommand = true,
scheduledAirdrops = false,
interactableNPC = true,
}| Property | Type | Description |
|---|---|---|
adminCommand | boolean | Enable /airdrop admin command |
scheduledAirdrops | boolean | Enable automatic scheduled airdrops |
interactableNPC | boolean | Enable NPC interaction to request airdrops |
Config.ScheduledAirdrops
Config.ScheduledAirdrops = {
{time = "12:00", locationId = nil}, -- Noon - random location
{time = "18:00", locationId = 2}, -- 6 PM - location 2
{time = "00:00", locationId = nil}, -- Midnight - random location
}Format: 24-hour time format (server time)
| Property | Type | Description |
|---|---|---|
time | string | Time in "HH:MM" format |
locationId | number or nil | Specific location (1-7) or nil for random |
Scheduled airdrops only trigger when Config.InteractionMethod.scheduledAirdrops = true
Player Blip Settings
Config.PlayerBlip
Config.PlayerBlip = {
showPlayerBlip = true,
timeForBlipDisplay = 5, -- minutes
blipSprite = 303,
blipColor = 1,
blipScale = 1.2
}| Property | Type | Description |
|---|---|---|
showPlayerBlip | boolean | Show blip on player who looted the crate |
timeForBlipDisplay | number | Duration to show blip in minutes |
blipSprite | number | GTA V blip sprite ID |
blipColor | number | GTA V blip color ID |
blipScale | number | Blip size multiplier |
The player blip marks the player who collected the airdrop for all other players to see. This creates a "hunt the looter" scenario.
NPC Settings
Config.NPCSettings
Config.NPCSettings = {
model = `csb_cletus`,
location = vec3(-419.85, -2618.92, 7.76),
heading = 272.68,
scenario = 'WORLD_HUMAN_CLIPBOARD',
minigame = {
type = 'skillCheck',
difficulty = {'easy', 'easy', 'medium'},
inputs = {'W', 'A', 'S', 'D'}
}
}| Property | Type | Description |
|---|---|---|
model | hash | Ped model hash |
location | vec3 | NPC spawn coordinates |
heading | number | NPC facing direction (0-360) |
scenario | string | Animation scenario name |
minigame.type | string | Minigame type (default: skillCheck) |
minigame.difficulty | table | Array of difficulty levels |
minigame.inputs | table | Keys used in the minigame |
Config.RequiredItem
Config.RequiredItem = 'usb_airdrop'Description: Item required to request an airdrop from the NPC.
Type: string
Set to nil or false to disable item requirement.
Plane Settings
Config.PlaneSettings
Config.PlaneSettings = {
startingLocation = vec3(-2077.67, -4619.47, 342.59),
speed = 60.0,
height = 400.0,
model = `titan`,
blip = {
sprite = 307,
color = 40,
scale = 1.5,
label = "Airdrop Plane"
},
removeAfterDrop = 10,
updateInterval = 35,
}| Property | Type | Description |
|---|---|---|
startingLocation | vec3 | Where the plane spawns |
speed | number | Plane flight speed |
height | number | Flight altitude |
model | hash | Plane model hash |
blip | table | Blip configuration for the plane |
removeAfterDrop | number | Seconds to wait before deleting plane |
updateInterval | number | Milliseconds between position updates |
Location Configuration
Config.Locations
Each location is a complete airdrop zone with crate, guards, flares, and optional building props.
Config.Locations = {
[1] = {
crateSettings = { ... },
flares = { ... },
guards = { ... },
blip = { ... },
buildingSet = { ... }
},
}crateSettings
crateSettings = {
prop = `ex_prop_crate_ammo_bc`,
fallingProp = `ex_prop_adv_case_sm_flash`,
location = vec3(-1139.68, -498.25, 49.35),
progressbarDuration = 30,
duration = 30,
rewards = {
['bandage'] = {
chance = 75,
min = 5,
max = 10,
},
}
}| Property | Type | Description |
|---|---|---|
prop | hash | Crate prop model (on ground) |
fallingProp | hash | Prop model while falling |
location | vec3 | Where crate lands |
progressbarDuration | number | Seconds to collect crate |
duration | number | Minutes before crate despawns |
rewards | table | Loot table (see below) |
Reward Format
['item_name'] = {
chance = 75, -- Percentage chance (0-100)
min = 5, -- Minimum quantity
max = 10, -- Maximum quantity
}flares
flares = {
prop = `prop_flare_01`,
duration = 60,
locations = {
vec3(-1182.18, -497.26, 35.57),
-- more locations...
}
}| Property | Type | Description |
|---|---|---|
prop | hash | Flare prop model |
duration | number | Seconds flares burn |
locations | table | Array of flare positions |
guards
guards = {
peds = {`s_m_y_marine_01`, `s_m_y_marine_02`, `s_m_y_marine_03`},
weapons = {`weapon_pistol`, `weapon_assaultrifle`, `weapon_smg_mk2`},
health = 200,
armor = 100,
accuracy = 75,
duration = 30,
locations = {
vec3(-1138.52, -513.3, 50.35),
-- more locations...
}
}| Property | Type | Description |
|---|---|---|
peds | table | Array of ped models (random selection) |
weapons | table | Array of weapons (random selection) |
health | number | Guard health (100 = normal) |
armor | number | Guard armor (0-100) |
accuracy | number | Shooting accuracy (0-100) |
duration | number | Minutes before guards despawn |
locations | table | Array of guard spawn positions |
blip
blip = {
color = 1,
radius = 150.0,
duration = 30
}| Property | Type | Description |
|---|---|---|
color | number | GTA V blip color ID |
radius | number | Radius blip size |
duration | number | Minutes before blip disappears |
buildingSet
buildingSet = {
set = 1,
spawningStep = 50,
despawnTime = 30
}| Property | Type | Description |
|---|---|---|
set | number | Building set ID (1-6) from props_config.lua |
spawningStep | number | Props to spawn per tick (higher = faster) |
despawnTime | number | Minutes before props despawn |
Set to false to disable building props for a location:
buildingSet = falseDiscord Webhook
Config.Webhook
Config.Webhook = "YOUR_WEBHOOK_HERE"Description: Discord webhook URL for logging airdrop events.
Replace with your Discord webhook URL to receive logs.
Editable Files
editable/client.lua
Contains customizable functions for:
StartAirdropMinigame()- Replace with your preferred minigameCollectCrateProgress()- Customize progress bar appearanceShowNotification()- Change notification style- Target system functions
editable/server.lua
Contains server-side customization options.
editable/framework.lua
Framework auto-detection logic. Usually doesn't need modification.
Need Help?
Join our Discord for support: discord.gg/lgnds (opens in a new tab)