> 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/keycrates/getting-started/profiles-lng_crates-rewardconfig-json.md).

# profiles\LNG\_Crates\RewardConfig.json

***

### ⚙️ `RewardConfig.json` Overview

The `RewardConfig.json` is the master controller for the KeyCrates system. It dictates exactly where the physical crates spawn on your map, how the visual spinning UI behaves, the 3D text hovering above the crates, and the highly specific RNG loot pools (and Kits) for all 5 tiers.

***

#### 🖥️ Global Settings & Animation UI

These settings control the overarching behavior of the mod, including how the "Roulette" spinning animation looks and feels when a player inserts a key.

| **Property**         | **Type** | **Description**                                                                               |
| -------------------- | -------- | --------------------------------------------------------------------------------------------- |
| `ConfigVersion`      | `Int`    | Do not change. Used internally for file updates.                                              |
| `DebugMode`          | `Int`    | Set to `1` to enable admin logging for crate spawns and RNG rolls.                            |
| `Admins`             | `Array`  | List of Steam64 IDs with access to admin commands/tools.                                      |
| `SpinIterations`     | `Int`    | How many items the UI cycles through before landing on the final reward (e.g., `20` "ticks"). |
| `SpinSpeedMS`        | `Int`    | The speed (in milliseconds) of each tick during the spin animation. Lower = faster.           |
| `GridItemsPerRow`    | `Int`    | How many items are displayed per row in the 3D spinning UI grid.                              |
| `GridSpacingX` / `Y` | `Float`  | The horizontal and vertical distance between items in the spinning grid.                      |
| `BaitOffset`         | `Array`  | `[X, Y, Z]` offset for the "teaser" items that show up before the spin starts.                |
| `SpinOffset`         | `Array`  | `[X, Y, Z]` offset for the actual spinning reward grid relative to the crate.                 |

***

#### 🏷️ Crate Tags (3D Floating Text)

The `CrateTags` array allows you to customize the holographic text that hovers above each crate, letting players know what tier they are approaching.

| **Property**   | **Type** | **Description**                                                                      |
| -------------- | -------- | ------------------------------------------------------------------------------------ |
| `ClassName`    | `String` | The specific crate object this tag applies to (e.g., `"LNG_RewardChest_Tier1"`).     |
| `LabelText`    | `String` | The actual text displayed (e.g., `"COMMON VAULT"`).                                  |
| `ColorHex`     | `String` | The Hex color code for the text (e.g., `"FFD700"` for Gold). Do not include the `#`. |
| `HeightOffset` | `Float`  | How high above the crate the text floats (Default: `2.5`).                           |

***

#### 🎰 Reward Tiers & RNG Pools

The `Tiers` array contains the logic for all 5 vault levels. This is where you configure the keys, the loot, and the exact probability of players winning high-tier items.

| **Property**       | **Type** | **Description**                                                                                                           |
| ------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------- |
| `TierName`         | `String` | The internal identifier for the tier (e.g., `"Tier1"`).                                                                   |
| `RequiredKeys`     | `Array`  | The exact item classname(s) a player must hold to open this crate.                                                        |
| `DisplayItems`     | `Array`  | The "Bait" items. These are visually cycled during the spin to tease the player, but do not dictate the actual drop rate. |
| `PotentialRewards` | `Array`  | CRITICAL: The actual loot pool. Formatted as `"Classname,Chance"` (e.g., `"mwp1_rifle_1,0.1"`).                           |

**💡 The Kit System**

Don't want to drop just a single gun? You can bundle items into "Kits" that drop all at once if the player successfully rolls it!

| **Kit Property** | **Type** | **Description**                                                                       |
| ---------------- | -------- | ------------------------------------------------------------------------------------- |
| `KitName`        | `String` | Internal name (e.g., `"Sniper Set"`).                                                 |
| `DisplayItem`    | `String` | The item shown in the spinning UI to represent the kit (e.g., `"GhillieSuit_Mossy"`). |
| `Chance`         | `Float`  | The probability weight of this kit being selected (`0.60` = 60%).                     |
| `Items`          | `Array`  | The list of all classnames that will drop when this kit is won.                       |

***

#### 🗺️ Static Map Placements

The `CrateLocations` array dictates where the physical vaults spawn in the world on server restart.

| **Property**  | **Type** | **Description**                                                                                                      |
| ------------- | -------- | -------------------------------------------------------------------------------------------------------------------- |
| `Position`    | `Array`  | The exact `[X, Y, Z]` coordinates of the crate.                                                                      |
| `Orientation` | `Array`  | The `[Yaw, Pitch, Roll]` rotation of the crate.                                                                      |
| `TierName`    | `String` | Must match a `TierName` from the Tiers array so the server knows which loot pool and Key to assign to this location. |

***

#### 💻 Example Configuration

Below is a condensed snippet showing a fully configured Tier 1 crate setup, complete with a custom Kit and map placement.

JSON

```
{
    "ConfigVersion": 2,
    "DebugMode": 0,
    "SpinIterations": 20,
    "SpinSpeedMS": 250,
    "GridItemsPerRow": 3,
    "GridSpacingX": 0.6,
    "GridSpacingY": 0.6,
    "BaitOffset": [ 0.0, 3.0, 0.0 ],
    "SpinOffset": [ 0.0, -1.0, 0.0 ],
    "CrateTags": [
        {
            "ClassName": "LNG_RewardChest_Tier1",
            "LabelText": "COMMON VAULT",
            "ColorHex": "FFFFFF",
            "HeightOffset": 2.5
        }
    ],
    "Tiers": [
        {
            "TierName": "Tier1",
            "RequiredKeys": [ "LNG_DaedalianKey_Tier1" ],
            "DisplayItems": [
                "iM7s_Brick_Coke",
                "mwp1_sniperrifle_4"
            ],
            "PotentialRewards": [
                "iM7s_Brick_Coke,1.0",
                "mwp1_mashinegun_1,0.1",
                "mwp1_rifle_1,0.5"
            ],
            "Kits": [
                {
                    "KitName": "Sniper Set",
                    "DisplayItem": "GhillieSuit_Mossy",
                    "Chance": 0.6,
                    "Items": [
                        "GhillieSuit_Mossy",
                        "mwp1_sniperrifle_4",
                        "Ammo_308Win"
                    ]
                }
            ]
        }
    ],
    "CrateLocations": [
        {
            "Position": [ 13067.50, 462.16, 901.01 ],
            "Orientation": [ 132.75, 0.0, 0.0 ],
            "TierName": "Tier1"
        }
    ]
}
```

***


---

# 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/keycrates/getting-started/profiles-lng_crates-rewardconfig-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.
