This ReadMe functions as a Configuration Guide for the SDZ Utopia Legacy Airdrop Mod. The mod features server-driven airdrops for DayZ. The mod periodically dispatches an aircraft that flies into a designated drop zone, releases a parachuted package, and spawns a crate, container, or vehicle cage on the ground for players to find and loot. Configurable map markers, configurable schedules, three-tier obstruction avoidance, optional AI hostiles, and player-fired flare drops are all included.
Each drop cycle runs the following pipeline:
dropLocations list.heliSpeed m/s at altitude heliHeightFromGround m.dropCrateContainerLifetimeInSeconds.Everything is configured via UtopiaAirdropSettings.json in this folder. Edits take effect on next server restart.
Utopia Airdrop ships as four PBOs. Each goes in a specific place:
| PBO | Where it goes | Why |
|---|---|---|
Utopia_Airdrop.pbo | Client serverpack addons/ | The 224 MB asset PBO (models, textures, particles for planes, parachutes, crates, flares). |
Utopia_Airdrop_Scripts.pbo | Client serverpack addons/ | The gameplay scripts. Both server and clients need it loaded. |
Utopia_Core.pbo | Client serverpack addons/ | The framework PBO (drill rig, radio, marker integration, logger). Required by the airdrop scripts. |
Utopia_CoreServer.pbo | Server-only @Utopia_CoreServer/addons/ | The auth-stub PBO. Server-side only β DO NOT include in your client serverpack. |
@MyServerPack/
addons/
Utopia_Airdrop.pbo // + .bisign next to each
Utopia_Airdrop.pbo.MyKey_v1.bisign
Utopia_Airdrop_Scripts.pbo
Utopia_Airdrop_Scripts.pbo.MyKey_v1.bisign
Utopia_Core.pbo
Utopia_Core.pbo.MyKey_v1.bisign
// + your other mods in the pack (LBmaster, etc.)
keys/
MyKey_v1.bikey
meta.cpp // written by Publisher.exe on first publish
@Utopia_CoreServer/
addons/
Utopia_CoreServer.pbo
Utopia_CoreServer.pbo.MyKey_v1.bisign // optional but recommended
Drop this folder into your server's servers/dayz/<servername>/ directory alongside @CF, @Dabs_Framework, etc.
Client mods (the serverpack) go in -mod=; server-only mods go in -serverMod=:
./DayZServer \ -config=serverDZ.cfg \ -port=2302 \ -profiles=profiles \ -mod=@CF;@Dabs_Framework;@MyServerPack \ -serverMod=@Utopia_CoreServer
Players subscribe to your serverpack on the Steam Workshop. DayZ Launcher resolves the subscription automatically β no manual file copying required on the player side.
@<modname>/ folders. On the CLIENT side, DayZ Launcher passes mods to the engine by Workshop ID. The names just need to be consistent between your serverpack's meta.cpp name = "..." field and the folder name (spaces become underscores).The first server start auto-creates profiles/Utopia_Airdrop/UtopiaAirdropSettings.json with defaults. Edit that file (see Quick start) and restart.
Open the file UtopiaAirdropSettings.json in any text editor. The JSON is annotated with _comment_* keys describing each section β these are ignored by the mod, safe to keep or remove. Make changes, save, restart the server.
{
"heliSpeed": 50.0,
"heliHeightFromGround": 250,
"startDelayMin": 10,
"pkgIntervalMin": 30,
"dropCrateContainerLifetimeInSeconds": 1800,
"minPlayersToStartAirdrop": 1,
"validateDropPosition": 1,
"planeType": "Utopia_S64_Skycrane",
"showHelicopterForCrateDrops": 1,
"leftBottomCornerMap": [0.0, 0.0, 0.0],
"rightUpCornerMap": [14900.0, 0.0, 14000.0],
"dropLocations": [{
"name": "NW Airfield",
"dropPosition": [4640.0, 0.0, 10000.0],
"radius": 50,
"planeType": "",
"airdropContainers": [{
"containerName": "Utopia_Crate_Parachute",
"lootPools": ["Tier 1"]
}],
"creaturesToSpawn": [],
"numberOfCreatures": 0
}],
"lootPools": [{
"lootPoolName": "Tier 1",
"maxItems": 5,
"items": [
{"name":"AKM","quantity":1,"spawnChance":100,"attachments":[]},
{"name":"M4A1","quantity":1,"spawnChance":100,"attachments":[]},
{"name":"Ammo_762x39","quantity":4,"spawnChance":100,"attachments":[]},
{"name":"Ammo_556x45","quantity":4,"spawnChance":100,"attachments":[]},
{"name":"TacticalBaconCan","quantity":4,"spawnChance":100,"attachments":[]}
]
}],
"flareAirdropContainers": []
}
Use these values when you're iterating and want a drop every couple of minutes:
"startDelayMin": 1, // first drop 1 min after server boot "pkgIntervalMin": 2, // then every 2 minutes "dropCrateContainerLifetimeInSeconds": 60, "removeNettingTimeInSeconds": 5, "minPlayersToStartAirdrop": 0, // fire even with nobody online "heliSpeed": 50.0 // 60-sec flight at 3000m offset
"startDelayMin": 15, "pkgIntervalMin": 45, "dropCrateContainerLifetimeInSeconds": 3600, // 1 hour on the ground "removeNettingTimeInSeconds": 30, "minPlayersToStartAirdrop": 3, "heliSpeed": 80.0 // 37-sec flight
{
"lootPoolName": "Car - Hatchback Black",
"maxItems": 1,
"items": [{
"name": "Hatchback_02_Black",
"quantity": 1,
"spawnChance": 100,
"attachments": [
{"attachName":"SparkPlug","quantity":1},
{"attachName":"CarBattery","quantity":1},
{"attachName":"Hatchback_02_Wheel","quantity":1},
{"attachName":"Hatchback_02_Wheel","quantity":1},
{"attachName":"Hatchback_02_Wheel","quantity":1},
{"attachName":"Hatchback_02_Wheel","quantity":1},
{"attachName":"Hatchback_02_Wheel","quantity":1},
{"attachName":"Hatchback_02_Door_1_1","quantity":1},
{"attachName":"Hatchback_02_Door_1_2","quantity":1},
{"attachName":"Hatchback_02_Door_2_1","quantity":1},
{"attachName":"Hatchback_02_Door_2_2","quantity":1},
{"attachName":"Hatchback_02_Hood","quantity":1},
{"attachName":"Hatchback_02_Trunk","quantity":1},
{"attachName":"HeadlightH7","quantity":2}
]
}]
}
Set maxItems = 1 so only one is picked. Each item's spawnChance is a probability weight.
{
"lootPoolName": "Mixed Vehicles",
"maxItems": 1,
"items": [
{"name":"Hatchback_02_Black","quantity":1,"spawnChance":50,"attachments":[...]},
{"name":"OffroadHatchback","quantity":1,"spawnChance":30,"attachments":[...]},
{"name":"Truck_01_Covered","quantity":1,"spawnChance":20,"attachments":[...]}
]
}
{
"lootPoolName": "High-tier Crate",
"maxItems": 8,
"items": [
{"name":"M4A1", "quantity":1,"spawnChance":100,"attachments":[]},
{"name":"AKM", "quantity":1,"spawnChance":100,"attachments":[]},
{"name":"VSS", "quantity":1,"spawnChance":15, "attachments":[]}, // rare
{"name":"NVGoggles", "quantity":1,"spawnChance":5, "attachments":[]}, // very rare
{"name":"PlateCarrierVest","quantity":1,"spawnChance":40,"attachments":[]},
{"name":"Ammo_762x39", "quantity":8,"spawnChance":100,"attachments":[]},
{"name":"Ammo_556x45", "quantity":8,"spawnChance":100,"attachments":[]},
{"name":"TacticalBaconCan","quantity":4,"spawnChance":100,"attachments":[]}
]
}
{
"lootPoolName": "Medical Crate",
"maxItems": 10,
"items": [
{"name":"FirstAidKit", "quantity":2,"spawnChance":100,"attachments":[]},
{"name":"BandageDressing", "quantity":10,"spawnChance":100,"attachments":[]},
{"name":"BloodTestKit", "quantity":3,"spawnChance":100,"attachments":[]},
{"name":"BloodBagEmpty", "quantity":3,"spawnChance":100,"attachments":[]},
{"name":"IVBloodBag", "quantity":3,"spawnChance":100,"attachments":[]},
{"name":"InjectionVial", "quantity":2,"spawnChance":100,"attachments":[]},
{"name":"Epinephrine", "quantity":2,"spawnChance":100,"attachments":[]},
{"name":"Morphine", "quantity":2,"spawnChance":100,"attachments":[]},
{"name":"PainkillerTablets", "quantity":4,"spawnChance":100,"attachments":[]},
{"name":"TetracyclineAntibiotics","quantity":3,"spawnChance":100,"attachments":[]}
]
}
{
"lootPoolName": "Building Supplies",
"maxItems": 12,
"items": [
{"name":"Nail", "quantity":50,"spawnChance":100,"attachments":[]},
{"name":"WoodenPlank", "quantity":20,"spawnChance":100,"attachments":[]},
{"name":"MetalSheet", "quantity":6, "spawnChance":100,"attachments":[]},
{"name":"MetalWire", "quantity":5, "spawnChance":100,"attachments":[]},
{"name":"Hammer", "quantity":1, "spawnChance":100,"attachments":[]},
{"name":"Pliers", "quantity":1, "spawnChance":100,"attachments":[]},
{"name":"Sledgehammer", "quantity":1, "spawnChance":100,"attachments":[]},
{"name":"CombinationLock","quantity":3, "spawnChance":100,"attachments":[]}
]
}
Remove all but one entry from dropLocations:
"dropLocations": [{ "name": "NW Airfield", "dropPosition": [4640.0, 0.0, 10000.0], "radius": 100, // wider drop zone "airdropContainers": [{ "containerName": "Utopia_Crate_Parachute", "lootPools": ["Tier 1"] }] }]
Multiple airdropContainers entries at one location β the mod picks one at random per drop:
{
"name": "NW Airfield",
"dropPosition": [4640.0, 0.0, 10000.0],
"radius": 50,
"airdropContainers": [
{"containerName":"Utopia_Crate_Parachute", "lootPools":["High-tier Crate"]},
{"containerName":"Utopia_Container_Parachute","lootPools":["Building Supplies"]},
{"containerName":"Utopia_Car_Parachute", "lootPools":["Car - Hatchback Black"]}
]
}
{
"name": "Tisy Military",
"dropPosition": [1600.0, 0.0, 14600.0],
"radius": 80,
"airdropContainers": [{
"containerName": "Utopia_Container_Parachute",
"lootPools": ["Boss Premium Loot"]
}],
"creaturesToSpawn": [
"ZmbM_SoldierNormal_Base",
"ZmbM_SoldierNormal_Base",
"ZmbM_SoldierNormal_Base",
"ZmbM_PatrolNormal_Autumn",
"ZmbM_PatrolNormal_Autumn"
],
"numberOfCreatures": 5
}
Set the visibility flag to 0 β the container teleport-spawns at altitude and just falls. No aircraft sound, no flight path:
"showHelicopterForCrateDrops": 0, "showHelicopterForContainerDrops": 0, "showHelicopterForVehicleDrops": 0
// Global default = Skycrane "planeType": "Utopia_S64_Skycrane", ... "dropLocations": [ { "name": "NW Airfield", "planeType": "Utopia_S64_Skycrane", // heavy lift for cars ... }, { "name": "Berezino", "planeType": "Utopia_V22_Osprey", // tiltrotor ... } ]
Override the default marker color (yellow) per drop type:
"crateMapMarkerColor": [255, 255, 0], // crates β yellow "containerMapMarkerColor":[0, 200, 255], // containers β cyan "vehicleMapMarkerColor": [255, 0, 0] // vehicles β red
Leave any of these empty ([]) to use the default.
Skips the 3-tier ladder. Drops will sometimes land in buildings/trees but never get rejected:
"validateDropPosition": 0
Bigger radius = more spread:
{
"name": "Whole NW Region",
"dropPosition": [5000.0, 0.0, 9500.0],
"radius": 600, // 600m search zone, big map marker
...
}
Set the map bounds to match your terrain (in metres). For Livonia: 12800Γ12800. For Namalsk: 12800Γ12800. For Sakhal: 14336Γ14336:
"leftBottomCornerMap": [0.0, 0.0, 0.0], "rightUpCornerMap": [14336.0, 0.0, 14336.0]
This affects where the carrier aircraft can spawn (3000 m offset from drop). If a location is closer than 3000 m to the map edge, the aircraft spawn position gets clamped to the boundary.
"flareAirdropContainers": [{ "containerName": "Utopia_Car_Parachute", "lootPools": ["Car - Hatchback Black"], "itemName": "UtopiaAirdropFlare", "planeType": "", "creaturesToSpawn": [] }]
| Key | Type | Default | Description |
|---|---|---|---|
version | string | "1.5" | Mod version identifier. Don't change. |
heliHeightFromGround | int (m) | 250 | Altitude above the terrain at which the carrier aircraft flies. Higher = more dramatic, longer parachute descent. |
heliSpeed | float (m/s) | 50.0 | Carrier aircraft cruise speed. 50 = leisurely (60 s for 3000 m approach), 100 = fast, 200 = blink-and-miss. |
fallSpeed | float | 0.0 | Forced descent rate for the falling container. 0 = use parachute physics (default). >0 = override (faster). |
| Key | Type | Description |
|---|---|---|
startDelayMin | int (min) | Minutes after server boot before the first drop fires. |
pkgIntervalMin | int (min) | Minutes between drops thereafter. |
dropCrateContainerLifetimeInSeconds | int (sec) | How long a landed crate/container exists before auto-cleanup. Cars are typically left longer or set higher. |
removeNettingTimeInSeconds | int (sec) | How long after landing before the parachute netting around the crate auto-removes (visual cleanup). |
minPlayersToStartAirdrop | int | Minimum number of online players required for the scheduler to fire a drop. Set to 0 for autonomous testing without a connected client. |
awayMin | float (min) | Legacy field, currently ignored by the mod. |
| Class | Style | Notes |
|---|---|---|
Utopia_S64_Skycrane | Heavy lift helicopter | Default. Designed for vehicle drops; the cage hangs visibly underneath. |
Utopia_V22_Osprey | Tiltrotor | VTOL military transport. |
| Key | Effect when 0 |
|---|---|
showHelicopterForCrateDrops | Crate drops teleport-spawn at altitude; no aircraft is visible. |
showHelicopterForContainerDrops | Same for container drops. |
showHelicopterForVehicleDrops | Same for vehicle drops. |
airDescentSmoke | Vertical smoke trail behind the falling parachute is suppressed during descent. |
groundLandingSmoke | Composite landing effect (fire flash + sparks + smoke pillar) on the container after it lands is suppressed. |
If validateDropPosition is 1, the mod runs a 3-tier ladder before each drop:
| Tier | Search radius | Object clearance | Attempts | Purpose |
|---|---|---|---|---|
| 1 strict | configured | 4 m | 10 | Open ground drop |
| 2 relaxed | configured | 2 m | 10 | Lets drops land in towns near walls/doorways |
| 3 expanded | radius Γ 2 | 4 m | 10 | Drift outside the zone if fully built up |
Each rejection is tagged with a reason: sea, slope, tree, building, object, static_wall_fence. If all 30 attempts fail, the drop is rejected and the scheduler moves on. The log captures a per-reason breakdown of the failure.
| Key | Description |
|---|---|
mapDisplayPackageStatus | If 1, the marker label cycles through three states: (incoming) while the plane is in transit, (dropped) after the crate lands and is openable, (looted) after a player opens it. |
crateMapMarkerColor | [r, g, b] override for crate-drop marker color. Empty = default amber. |
containerMapMarkerColor | Same for container drops. |
vehicleMapMarkerColor | Same for vehicle drops. |
showMarkerForFlareDrop | If 1, player-fired flare drops also get a map marker. |
Marker shape is a circle with diagonal-stripe (striked) fill matching the drop accuracy radius.
Each entry under dropLocations[] is a preset zone. The scheduler picks one at random per cycle. Fields:
| Field | Type | Description |
|---|---|---|
name | string | Zone label shown in chat messages and map markers. |
dropPosition | [x, y, z] | Centre of the drop zone. y is overridden at runtime with SurfaceY(x, z) β you can leave y = 0. |
radius | int (m) | Drop accuracy radius. Also drives the map marker circle radius. |
planeType | string | Override aircraft for this zone. Empty string = use the global planeType. |
airdropContainers | array | List of possible drop containers. One is picked at random per drop. Lets you mix car/crate/container at the same zone. |
creaturesToSpawn | array of classnames | AI hostiles spawned near the drop on landing. |
numberOfCreatures | int | How many creatures from the list to actually spawn. |
Container behaviour is inferred from containerName β you no longer need an explicit isCarDrop field in your JSON. The mod walks the CfgVehicles inheritance chain on load; anything that extends Utopia_Car_Parachute is treated as a vehicle drop. The legacy isCarDrop bool is still honoured if present (older configs keep working unchanged).
| Type | containerName | What it produces |
|---|---|---|
| CRATE | Utopia_Crate_Parachute | Small openable airdrop crate. Pool items = small inventory items. |
| CONTAINER | Utopia_Container_Parachute | Large openable cargo container. Pool items = larger items / supplies. |
| CAR | Utopia_Car_Parachute | Vehicle drop. Pool's first item = vehicle classname; attachments[] = pre-installed parts. |
Top-level lootPools[] defines named pools. Each airdropContainer references one or more via lootPools: ["Pool Name"]. Schema:
{
"lootPoolName": "My Pool", // referenced by name
"maxItems": 5, // max items to actually pick per drop
"rarity": 1, // optional, default 1. Weight when this pool competes with others β see below
"items": [
{
"name": "AKM", // classname (any loaded mod's class works)
"quantity": 1, // stack size
"spawnChance": 100, // 0β100 probability weight
"attachments": [ // pre-installed sub-items
{"attachName": "AK_PlasticBttstck", "quantity": 1},
{"attachName": "Mag_AKM_30Rnd", "quantity": 2}
]
}
]
}
Setting "debugDecisions": true at the top level of the settings JSON makes the validator + landing snap emit a per-candidate decision trace to profiles/Utopia_Logs/AirdropLog/AirdropLog_*.log (and to RPT) under the tag [AIRDROP-DEBUG]. Use it to stress-test a custom settings file against hundreds of simulated drops, then grep the logs β much faster than visual screenshot verification.
"debugDecisions": true
Example output around a single drop:
[AIRDROP-DEBUG] === START validator for NW Airfield (center=<4640,0,10000> radius=60m) === [AIRDROP-DEBUG] validator: pos=<4621.3,72.5,10024.1> terrainY=72.5 trueY=78.2 delta=5.7 slopeMaxDiff=0.4 clearance=8 [AIRDROP-DEBUG] β REJECT overObject (trueY 78.2 > terrainY 72.5 + 0.5m) [AIRDROP-DEBUG] validator: pos=<4659.8,72.6,9988.4> terrainY=72.6 trueY=72.6 delta=0.0 slopeMaxDiff=1.1 clearance=8 [AIRDROP-DEBUG] β ACCEPT (no rejections) [AIRDROP-DEBUG] landing snap: pos=<4659.8,72.6,9988.4> terrainY=72.6 trueY=72.6 delta=0.0 (>0 = on roof/floor)
Decision tags you'll see:
REJECT overObject β raycast hit something more than 0.5m above terrain Y (= building roof / edited structure). Vehicle cars dropped on rooftops would have produced this rejection had the validator been raycast-aware in earlier builds.REJECT static_wall_fence / tree / building / object β vanilla rejections from GetObjectsAtPosition3D within the configured clearance.REJECT tree with "overhead canopy" β Genesis "lands in trees" failure, now caught by the +5m AGL sample.ACCEPT β this position passed all checks. The next entry will be the landing snap (where the container actually settled).landing snap: delta > 0 β container landed on a roof/floor above terrain. That's the modded-floor / building-roof case; the new raycast logic keeps it on the surface instead of clipping through to the basement.Leave debugDecisions off in production. Volume is roughly 10β30 lines per drop. Turn on, run a test session, turn off again.
When an airdropContainer references more than one pool via lootPools: ["A", "B", "C"], the mod picks one at drop time. By default each pool is equally likely. Setting the optional rarity field on a pool definition changes its weight in that pick.
Example β common medical drops, rare weapon drops, very rare premium drops from the same container:
{
"lootPools": [
{ "lootPoolName": "Medical Crate", "rarity": 10, "maxItems": 8, "items": [/* ... */] },
{ "lootPoolName": "Weapon Crate", "rarity": 3, "maxItems": 5, "items": [/* ... */] },
{ "lootPoolName": "Premium Crate", "rarity": 1, "maxItems": 3, "items": [/* ... */] }
],
"dropLocations": [{
"airdropContainers": [{
"containerName": "Utopia_Crate_Parachute",
"lootPools": ["Medical Crate", "Weapon Crate", "Premium Crate"]
}]
}]
}
Weights above are 10 : 3 : 1, so out of every 14 drops at that location you'd expect β10 medical, β3 weapon, β1 premium.
rarity is optional β omit it and the pool defaults to weight 1 (existing configs work unchanged).lootPools[] and every container that lists the pool inherits the weight.lootPools: ["X"] it's a no-op."rarity": 0 disables the pool β it stays defined and reachable from other containers, but is skipped in any weighted pick. Useful for temporarily benching a pool without deleting it.0. If every entry in a container resolves to weight 0 the system falls back to uniform pick so the drop never returns empty.Vehicle classnames common in vanilla Chernarus. SparkPlug + CarBattery + 4 wheels are always required; doors/hood/trunk/headlights are cosmetic but recommended.
| Class | Required-to-drive parts | Cosmetic parts |
|---|---|---|
OffroadHatchbackOffroadHatchback_BlueOffroadHatchback_White |
HatchbackWheel Γ5 |
HatchbackDoors_Driver, HatchbackDoors_CoDriver, HatchbackHood, HatchbackTrunk, HeadlightH7 Γ2 |
Hatchback_02_BlackHatchback_02_Blue |
Hatchback_02_Wheel Γ5 |
Hatchback_02_Door_1_1, Hatchback_02_Door_1_2, Hatchback_02_Door_2_1, Hatchback_02_Door_2_2, Hatchback_02_Hood, Hatchback_02_Trunk |
Sedan_02_RedSedan_02_Grey |
Sedan_02_Wheel Γ5 |
Sedan_02_Door_1_1, Sedan_02_Door_1_2, Sedan_02_Door_2_1, Sedan_02_Door_2_2, Sedan_02_Hood, Sedan_02_Trunk |
Truck_01_CoveredTruck_01_BoxTruck_01_Chassis |
Truck_01_Wheel Γ2 front, Truck_01_WheelDouble Γ2 rear |
Truck_01_Door_1_1, Truck_01_Door_2_1, Truck_01_Hood, Truck_01_Cargo_Covered/Box |
| Hatchback_02 | Sedan_02 | OffroadHatchback |
|---|---|---|
| Black, Blue | Red, Grey | "" (default), Blue, White |
Vanilla DayZ only ships those exact variants. Any other suffix (Pink, Cargo, Sport, etc.) does not exist as a registered class and will silently fail to spawn.
When a player fires a UtopiaAirdropFlare, the flareAirdropContainers list defines what arrives. Same schema as airdropContainers, plus:
| Field | Description |
|---|---|
itemName | The flare item class. UtopiaAirdropFlare by default. |
planeType | Aircraft class. Empty = use the global planeType. |
creaturesToSpawn | AI to spawn near the player-summoned drop. |
You can have multiple flare entries β the mod picks one at random per flare use.
minPlayersToStartAirdrop. Drop the threshold to 0 for testing.startDelayMin minutes since server boot.profiles/Utopia_Logs/AirdropLog/AirdropLog_*.log β every dispatch logs a line.dropPosition further from the obstruction.radius so the search has more room to spread.SparkPlug.CarBattery.HatchbackWheel won't fit a Hatchback_02. Match the wheel class to the car class.lootPoolName referenced by the location doesn't match any top-level lootPools[] entry. Names are case-sensitive.spawnChance values are 0.Logs go to profiles/Utopia_Logs/AirdropLog/AirdropLog_*.log AND to the RPT under the [Airdrop] tag. Look for these structured lines:
| Log line | Stage |
|---|---|
DISPATCH START: location=X radius=N | Drop cycle begins; zone picked |
TIER-1 strict start (radius=N, clearance=4m, 10 attempts) | Validator tier 1 begins |
TIER-1 strict OK on attempt K/10 at <...> | Validator success |
TIER-1 strict FAILED (10/10) β escalating to TIER-2 ... | Tier escalation |
ALL TIERS FAILED β drop REJECTED. 30 attempts breakdown: sea=N slope=N tree=N building=N object=N static=N | Drop cancelled |
Drop point chosen: <x,y,z> | Validator returned final coordinate |
Plane start coord: <x,y,z> (3000m offset from drop) | Aircraft spawn position |
PLANE DISPATCHED: class=X speed=Nm/s accuracy=Nm container=X | Aircraft created + flying |
PreDrop visual spawned: carry_class=X (parachute_class=X) | Cargo attached under aircraft |
Plane traveling: pos=<...> target=<...> distance=Nm eta=Ns | Throttled flight progress (every 2 s) |
PreDrop carry: container=<...> carrier=<...> offset=<0,0,0> | Cargo position tracking aircraft |
CONTAINER RELEASED from plane: ... | Drop trigger fired |
Carry-visual swap: deleting X β spawning parachute version next | Visual swap from carry β falling |
Falling container landed | Container touched ground |
MARKER CREATED: id=N name='...' pos=<...> color=(R,G,B) radius=Nm striked=true | Map marker added |
CONTAINER DESTROYED: pos=<...> markerId=N status=live|looted | Lifetime expired / destroyed |
MARKER REMOVED: id=N at <...> | Map marker cleaned up |
tail -f profiles/Utopia_Logs/AirdropLog/AirdropLog_*.log
Build a complete UtopiaAirdropSettings.json right here in your browser. Configure schedule, plane, map bounds, drop locations, loot pools and flare drops below, then download the file. Everything stays on your machine β nothing is uploaded.
UtopiaAirdropSettings.json into <your-server>/profiles/Utopia_Airdrop/UtopiaAirdropSettings.json, overwriting whatever is there. Restart the server to apply. The first server start auto-creates a default if the file is missing.
Β© Utopia / Squadron DayZ (SDZ), 2026. All Rights Reserved.
β