> 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-city-cityconfig-json.md).

# profiles\LNGCompanion\City\CityConfig.json

***

#### 🏙️ `CityConfig.json` Overview

The `CityConfig.json` file powers the **Apex City System**. This system creates a dynamic, living zone on your server. The city has a "Core Health" that constantly decays. Players must bring specific materials to repair city structures, fight off defensive zombie waves, and raise the Core Health to unlock gated areas (Blockers).

***

#### ⚙️ Core Integrity & Blocker Settings

These settings dictate where the city is, how fast it decays, and what physical barrier blocks the players until they heal the city.

| Property                           | Type     | Description                                                                                                                   |
| ---------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **`CoreX`, `CoreY`, `CoreZ`**      | `Float`  | The exact center coordinates of the City Core.                                                                                |
| **`CityRadius`**                   | `Float`  | How far out from the core the city limits extend.                                                                             |
| **`CoreStartingHealth`**           | `Int`    | The health the city starts with after a server wipe.                                                                          |
| **`CoreDrainTickSeconds`**         | `Int`    | How often (in seconds) the city decays and loses health.                                                                      |
| **`CoreDrainAmount`**              | `Int`    | How much health is lost per decay tick.                                                                                       |
| **`BlockerClassName`**             | `String` | A physical object (like a massive gate or tent) that blocks access to the final loot/area.                                    |
| **`BlockerPosX/Y/Z` & `OriX/Y/Z`** | `Float`  | The exact position and rotation of the blocker object.                                                                        |
| **`BlockerThreshold`**             | `Int`    | **CRITICAL:** The Core Health number required to make the Blocker disappear (e.g., `75` means the city must be 75% repaired). |

***

#### 🏗️ Main Rebuilding Missions

The `Missions` array dictates the specific buildings players can repair. When a player begins a repair, they are locked in an animation while zombie waves spawn to stop them.

| Property                            | Type            | Description                                                                                                                    |
| ----------------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| **`TargetClassname`**               | `String`        | The object the player must interact with to start the repair (e.g., `"Land_House_Office1"`).                                   |
| **`RequiredTool`**                  | `String`        | The tool needed in the player's hands (e.g., `"Wrench"` or `"Hammer"`).                                                        |
| **`RequiredMaterials` / `Amounts`** | `Array`         | A list of items (and their quantities) that are consumed from the player's inventory to perform the repair.                    |
| **`RepairDuration`**                | `Int`           | How long the player is locked in the repair animation (in seconds).                                                            |
| **`HealthGranted`**                 | `Int`           | How much Core Health is restored to the city upon successful repair.                                                           |
| **`WaveCreatures` & `MaxZombies`**  | `Array` / `Int` | The AI that will spawn to attack the player during the repair, and the max alive at once.                                      |
| **`WavePlayerMultiplier`**          | `Float`         | Scales the zombie count based on how many players are nearby (e.g., `1.0` adds a full wave per extra player, `0.5` adds half). |
| **`BossCreatures` & `SpawnChance`** | `Array` / `Int` | The heavy AI that might spawn during the repair, and their percentage chance of appearing.                                     |

***

#### 🎯 Side Missions

The `SideMissions` array provides secondary objectives that players can complete inside the city limits for extra health or loot without needing building materials.

| Property              | Type     | Description                                                  |
| --------------------- | -------- | ------------------------------------------------------------ |
| **`MissionType`**     | `String` | The type of objective (e.g., `"Bounty"`).                    |
| **`TargetClassname`** | `String` | The specific AI or object the player must hunt/destroy.      |
| **`RewardHealth`**    | `Int`    | The amount of Core Health instantly granted upon completion. |

***

#### 💻 Example Configuration

Below is a condensed snippet showing a decaying core, one building repair, and one bounty.

```json
{
    "ConfigVersion": 9,
    "CoreX": 0.0,
    "CoreY": 0.0,
    "CoreZ": 0.0,
    "CityRadius": 150.0,
    "CoreStartingHealth": 0,
    "CoreDrainTickSeconds": 300,
    "CoreDrainAmount": 1,
    "BlockerClassName": "Land_Mil_Tent_Big1_Preb",
    "BlockerPosX": 0.0,
    "BlockerPosY": 0.0,
    "BlockerPosZ": 0.0,
    "BlockerOriX": 0.0,
    "BlockerOriY": 0.0,
    "BlockerOriZ": 0.0,
    "BlockerThreshold": 75,
    "Missions": [
        {
            "MissionID": 2,
            "MissionName": "Rebuild Town Hall",
            "MissionDescription": "Rebuild this structure to restore city functionality and heal the core.",
            "TargetClassname": "Land_House_Office1",
            "RequiredTool": "Hammer",
            "RepairDuration": 45,
            "HealthGranted": 15,
            "SuccessAudio": "PowerGeneratorTurnOn_SoundSet",
            "RequiredMaterials": [
                "WoodenPlank",
                "MetalPlate"
            ],
            "RequiredAmounts": [
                40,
                10
            ],
            "WaveCreatures": [ "ZmbM_ClerkFat_White" ],
            "WaveMaxZombies": 5,
            "WaveRespawnTimer": 30,
            "WaveSpawnDistance": 25,
            "WavePlayerMultiplier": 0.5,
            "BossCreatures": [ "ZmbM_PolicemanFat" ],
            "BossSpawnChance": 10,
            "LootItems": [],
            "LootChances": [],
            "CleanupDelaySeconds": 30,
            "CleanupBlacklist": []
        }
    ],
    "SideMissions": [
        {
            "SideMissionID": 101,
            "MissionName": "Bounty: Rogue Chief",
            "MissionDescription": "Complete this side objective within the city limits to earn extra core integrity.",
            "MissionType": "Bounty",
            "TargetClassname": "ZmbM_PolicemanFat",
            "RewardHealth": 5,
            "LootItems": [],
            "LootChances": []
        }
    ]
}
```

***


---

# 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-city-cityconfig-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.
