> 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.

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://lng.gitbook.io/lng-docs/zenith-drops/getting-started/profiles-lngstudio-zenithdrops-config-json.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
