> 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/companion-mod/basics/profiles-lngcompanion-missions-kothconfig-json.md).

# profiles\LNGCompanion\Missions\KothConfig.json

***

#### 🎯 `KothConfig.json` Overview

The `KothConfig.json` handles the Companion's dynamic King of the Hill (KOTH) missions. It controls the repeating "Normal" events that players can farm for loot, as well as the personal "Stages" that players must complete to unlock new Drone Vaults and Upgrade Slots.

***

#### ⚙️ Core File Structure

| **Property**    | **Type** | **Description**                                                                                                                                                                                  |
| --------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `KothLocations` | `Array`  | A list of \[X, Y, Z] coordinates where KOTH missions are allowed to spawn. The system will randomly pick from this list.                                                                         |
| `NormalEvent`   | `Object` | The settings for the infinitely repeating KOTH event. This is what players farm for normal loot and money after they finish the storyline.                                                       |
| `Stages`        | `Array`  | The Storyline Progression. Contains configurations for Stage 0 through 9. Each stage defines the specific boss fights and horde sizes a player faces when unlocking their next Vault or UI Slot. |

***

#### 🧟 Event Configuration Variables

*Note: These variables apply to both the `NormalEvent` block and the individual `ExpansionEvent` / `SlotEvent` blocks inside the Stages.*

**Event Flow & Timers**

| **Setting**              | **Type** | **Description**                                                                |
| ------------------------ | -------- | ------------------------------------------------------------------------------ |
| `MissionCooldownSeconds` | `Int`    | Time between events triggering.                                                |
| `FirstLoginDelaySeconds` | `Int`    | How long to wait after server restart before the first event can fire.         |
| `KothDurationSeconds`    | `Int`    | How long the player must hold the zone to win.                                 |
| `AbandonTimeSeconds`     | `Int`    | If no player enters the zone within this time, the mission fails and despawns. |
| `DragonSpawnTimeSeconds` | `Int`    | Time (in seconds) after the event starts before the final Boss spawns.         |

**Entities & Difficulty**

| **Setting**                | **Type** | **Description**                                                                                |
| -------------------------- | -------- | ---------------------------------------------------------------------------------------------- |
| `KothModuleHolder`         | `String` | The specific Zombie/Monster classname that spawns carrying the activation Keycard.             |
| `EventModuleClassname`     | `String` | The item the player must loot from the holder and insert into the event to start it.           |
| `DragonClass`              | `String` | The Boss monster classname.                                                                    |
| `HordeClassnames`          | `Array`  | List of AI classnames that will swarm the player during the hold phase.                        |
| `MinZmb` / `MaxZmb`        | `Int`    | The minimum and maximum number of AI alive at once during the event.                           |
| `DifficultyScalePerPlayer` | `Int`    | Percentage scale. Increases AI count and difficulty based on how many players are in the zone. |

**Loot & Rewards**

| **Setting**        | **Type** | **Description**                                                                               |
| ------------------ | -------- | --------------------------------------------------------------------------------------------- |
| `ModuleReward`     | `String` | Specific reward item (e.g., `"LNG_Module_Vault_x2"`). Usually reserved for `ExpansionEvents`. |
| `UpgradeItem`      | `String` | Specific slot upgrade card (e.g., `"LNG_UpgradeCard_01"`). Usually reserved for `SlotEvents`. |
| `RandomRewardPool` | `Array`  | The standard loot table given upon victory. Add duplicate entries to increase drop chance.    |

***

**💡 Quick Guide: Expansion vs. Slot Events**

Inside the `Stages` array, you will see `ExpansionEvent` and `SlotEvent1/2/3`.

* Expansion Event: This is the primary boss fight players trigger to unlock their next physical Vault (e.g., going from Vault 1 to Vault 2).
* Slot Events: These are secondary, usually easier boss fights players trigger to unlock the passive module slots in their drone UI.

***

#### 💻 Example Configuration

Below is a heavily condensed snippet showing the relationship between the Normal Event and Stage 0. *(Note: The default config scales all the way up to Stage 9 for Vault 10 unlocks).*

JSON

```
{
  "KothLocations": [
    [ 11589.874023, 60.591854, 14704.647461 ],
    [ 4500.00, 0.0, 10200.00 ]
  ],
  "NormalEvent": {
    "ZoneRadius": 5,
    "DifficultyScalePerPlayer": 100,
    "MissionCooldownSeconds": 7200,
    "KothModuleHolder": "PITSTOP_Monsters_Reaper",
    "EventModuleClassname": "LNG_KothCard_Normal",
    "KothDurationSeconds": 300,
    "DragonSpawnTimeSeconds": 300,
    "DragonClass": "MPG_Bear_5_3",
    "MinZmb": 14,
    "MaxZmb": 25,
    "HordeClassnames": [
      "PITSTOP_Monsters_FireDemon",
      "ZmbM_PatrolNormal_Autumn"
    ],
    "ModuleReward": "",
    "RandomRewardPool": [
      "mwp1_rifle_1",
      "TraderPlus_Money_Ruble5000"
    ]
  },
  "Stages": [
    {
      "StageID": 0,
      "ExpansionEventActive": 1,
      "ExpansionEvent": {
        "KothDurationSeconds": 300,
        "DragonSpawnTimeSeconds": 150,
        "DragonClass": "MPG_Bear_5_3",
        "MinZmb": 15,
        "MaxZmb": 20,
        "HordeClassnames": [
          "PITSTOP_Monsters_Reaper",
          "ZmbM_usSoldier_normal_Woodland"
        ],
        "ModuleReward": "LNG_Module_Vault_x1",
        "RandomRewardPool": [
          "Battery9V",
          "NailBox"
        ]
      },
      "SlotEventActive": 0,
      "SlotEvent1": {
        "KothDurationSeconds": 300,
        "MinZmb": 10,
        "MaxZmb": 15,
        "UpgradeItem": "LNG_UpgradeCard_01",
        "RandomRewardPool": [
          "DuctTape"
        ]
      }
    }
  ]
}
```

***


---

# 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/companion-mod/basics/profiles-lngcompanion-missions-kothconfig-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.
