> For the complete documentation index, see [llms.txt](https://lng.gitbook.io/lng-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lng.gitbook.io/lng-docs/zenith-drops/getting-started/profiles-lngstudio-zenithdrops-config-json.md).

# profiles\LNGStudio\ZenithDrops\Config.json

***

### 📋 Rule Configuration Variables

Each rule in your configuration file controls a specific drop event. Here is the complete breakdown of every variable.

| **Property**            | **Type**          | **Description**                                                                                                         |
| ----------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `RuleName`              | `String`          | Internal identifier for the rule (e.g., `"Military_Boss_Drop"`).                                                        |
| `TargetClasses`         | `Array`           | List of AI classnames this rule applies to (e.g., `["ZmbM_SoldierNormal", "AnimalBase"]`).                              |
| `ZoneCenter` / `Radius` | `Array` / `Float` | The `[X, Y, Z]` center and radius of the rule. `0.0` radius makes it global.                                            |
| `MinHardlineRep`        | `Int`             | Minimum Hardline Reputation required to trigger this drop. Use `-200000` to disable.                                    |
| `AllowedWeapons`        | `Array`           | Filter by kill method (`"Firearm"`, `"Melee"`, `"Explosive"`, `"Vehicle"`, `"Unarmed"`). Leave empty `[]` to allow all. |
| `RequiredKillStreak`    | `Int`             | Player must kill this many of the target consecutively before the drop triggers.                                        |
| `UsePitySystem`         | `Int`             | `1` = Adds the global Pity Multiplier to the `BaseChance` every time the player fails a roll.                           |
| `BaseChance`            | `Float`           | Master probability for the event to happen (`1.0` = 100%, `0.5` = 50%).                                                 |
| `ResultType`            | `String`          | The event outcome: `"ITEM"`, `"ENTITY"`, or `"TRAP"`.                                                                   |
| `SpawnOnPlayer`         | `Int`             | `1` = Drops the reward at the killer's feet. `0` = Drops on the dead entity.                                            |
| `SpawnOffset`           | `Array`           | `[X, Y, Z]` distance shift from the spawn point.                                                                        |
| `MessagePlayer`         | `Int`             | `1` = Sends a private CF UI popup to the killer.                                                                        |
| `AnnounceToServer`      | `Int`             | `1` = Broadcasts a global CF UI popup to the whole server.                                                              |
| `PlayerMessageText`     | `String`          | Text for the UI. You can use `%player%` and `%target%` to inject names!                                                 |
| `SpawnBeacon`           | `Int`             | `1` = Spawns a visual marker exactly on top of the loot container.                                                      |
| `BeaconClass`           | `String`          | Classname of the beacon (e.g., `"M18SmokeGrenade_Purple"`).                                                             |
| `ContainerClass`        | `String`          | Item used as the drop bag. Leave empty `""` to use the default Zenith Bag.                                              |
| `LootPayload`           | `Array`           | List of items to roll for inside the bag. Format: `{"ItemName": "M4A1", "DropChance": 0.05}`                            |
| `SpawnEntityClass`      | `String`          | Creature classname to spawn if `ResultType` is `"ENTITY"`.                                                              |
| `AggroKiller`           | `Int`             | `0` = Spawned entity is docile until hit. `1` = Spawns angry and instantly attacks.                                     |
| `TrapClass`             | `String`          | Grenade classname to spawn and detonate if `ResultType` is `"TRAP"`.                                                    |

***

### 💻 Example Rule Configuration

Below is a clean example of a standard Loot Drop rule. You can add as many of these blocks to your configuration file as you need!

JSON

```
{
  "RuleName": "Rare_Military_Drop",
  "TargetClasses": ["ZmbM_SoldierNormal"],
  "Enabled": 1,
  "ZoneCenter": [0.0, 0.0, 0.0],
  "ZoneRadius": 0.0,
  "MinHardlineRep": -200000,
  "AllowedWeapons": [],
  "RequiredKillStreak": 0,
  "UsePitySystem": 1,
  "BaseChance": 0.25,
  "ResultType": "ITEM",
  "SpawnOnPlayer": 0,
  "SpawnOffset": [0.0, 0.2, 0.0],
  "AnnounceToServer": 0,
  "MessagePlayer": 1,
  "PlayerMessageHeader": "Zenith Drops",
  "PlayerMessageText": "You secured a rare military drop from the %target%!",
  "SpawnBeacon": 1,
  "BeaconClass": "M18SmokeGrenade_Purple",
  "ContainerClass": "LNG_Zenith_LootBag",
  "LootPayload": [
    { "ItemName": "M4A1", "DropChance": 0.10 },
    { "ItemName": "Mag_STANAG_30Rnd", "DropChance": 0.50 }
  ],
  "SpawnEntityClass": "",
  "AggroKiller": 0,
  "TrapClass": ""
}
```

***

### 🛠️ Live Admin Reloading

You do not need to restart your server to apply new Zenith rules!

1. Navigate to `$profile:LNGStudio/ZenithDrops/admins.txt`
2. Add your Steam64 ID to the file (one ID per line) and save it.
3. In-game, press `Ctrl + Z` (default keybind, rebindable in your DayZ settings under the LNG Studio tab).

The server will dynamically read your updated JSON rules and immediately apply them to the live environment.

***
