Full Config Reference
The complete default configs/shared/event.lua for Dead Drop. Use this as a reference or starting point for your own configuration.
TIP
This is the full unedited config file. For a detailed explanation of each option, see the Configuration page.
lua
return {
-- No auto-scheduler on purpose: a drop only happens when a crew runs the full relay intrusion
-- (breach -> calldrop) or an admin forces one via /deaddrop_start.
-- Drop intel visibility. false (default) = PRIVATE: only the triggering crew and snitch buyers
-- get the search-circle map mark. true = everyone is marked the moment a drop is called. The
-- plane, descent and containers stay world-visible either way; this gates only the map blip.
PublicDropIntel = false,
-- Containers per drop, randomised Min..Max (no player scaling).
Containers = {
Min = 2,
Max = 3,
-- Minimum metres between any two container landing spots. The picker prefers curated
-- DropZones at least this far apart; if the pool can't satisfy it, the farthest-spread
-- spot is used instead (best effort, logged). 0 = off: the anchor's nearest spots (compact drop).
MinDistance = 500,
},
-- Breach pacing. One base-game synced scene (Tuners train robbery): the ped saws the lock off
-- and the doors swing open. Single-person - parallelism comes from multiple containers.
Breach = {
BreachTime = 10000, -- ms for the breach scene; matches the clip length (DON'T TOUCH unless you change the anim)
-- Tool required to breach, checked client-side AND re-checked server-side (so calling the
-- callbacks directly can't skip it). false/nil = no tool required.
RequiredItem = 'powersaw',
-- Label in the "you don't have a ___ on you" refusal; nil/blank falls back to the item's
-- ox_inventory label, then the raw item name.
RequiredItemLabel = 'Power Saw',
NameRequiredItem = false, -- true = the refusal names the item; false = generic "nothing to break the lock with"
-- What happens to RequiredItem after a successful breach. Pick exactly ONE Mode:
-- 'off' = untouched, 'durability' = docks Durability points off metadata.durability
-- (0..100, shown as the icon's wear bar), 'remove' = always consumed, 'chance' =
-- BreakChance odds it's consumed.
Wear = {
Mode = 'durability',
Durability = 10, -- 'durability' mode: points docked per breach
BreakChance = 0.33, -- 'chance' mode: 0..1 odds the tool breaks on a successful breach
-- 'durability' mode only: true = remove the tool the moment it hits 0 (with a "broke"
-- notification); false = it stays at 0% and is refused as broken.
RemoveAtZero = false,
},
},
-- Phase pacing: seconds the event sits in each lead-in phase before auto-advancing.
-- /deaddrop_advance bypasses these for instant manual stepping.
Phases = {
LeadSeconds = 200, -- SCHEDULED: signal out -> plane launches
FlightSeconds = 120, -- INBOUND: corridor flight to the drop point
DropSeconds = 110, -- DROPPING: package glide time (fall speed follows from World.Drop.Altitude)
SettleSeconds = 15, -- ON_GROUND dwell before the ContestSeconds clock arms (breaching/looting is already allowed)
ResolveSeconds = 8, -- RESOLVING dwell: how long the finished site still stands before the cleanup broadcast wipes it
},
-- Timers (seconds unless noted).
ContestSeconds = 20 * 60, -- max CONTESTED lifetime before the event abandons and cleans up
CooldownSeconds = 5 * 60, -- COOLDOWN dwell: how long the finished event RECORD lingers before IDLE/teardown (the physical site + rivals are already cleared at resolve)
CooldownMinutes = 30, -- global drop lockout (minutes) after a resolve; relays show "high security" until it elapses
ContainerCleanupSeconds = 180, -- delay before a fully-looted (EMPTY) box is deleted
-- Entity time-to-live watchdog: anything older than this is nuked even if the state machine
-- wedged. Keep comfortably above ContestSeconds.
EntityTTLSeconds = 40 * 60,
}