> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rpgmobs.frotty27.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Spawning

> Control how, where, and when RPG Mobs appear in your world.

`spawning.yml` is where you decide how RPG Mobs enter your world. You can choose a progression style that fits your server, configure per-tier spawn weights, and fine-tune per-zone tier distributions.

All spawning settings can be overridden per-world via the [overlay system](/config/instances).

## Spawn Chances

When a hostile NPC spawns, RPGMobs uses the `spawnChancePerTier` weights to decide which tier the elite becomes. These are weights (not percentages), so they don't need to add up to `1.0`.

```yaml theme={null}
Spawning:
  spawnChancePerTier:
    - 0.46  # Tier 1  -  46% weight
    - 0.28  # Tier 2  -  28% weight
    - 0.16  # Tier 3  -  16% weight
    - 0.08  # Tier 4  -  8% weight
    - 0.04  # Tier 5  -  4% weight
```

Higher values mean that tier will appear more often. Set a tier to `0` to prevent it from spawning.

**Tip:** On a fresh server, the defaults work well. If the world feels too quiet, increase the weights. If players are overwhelmed, decrease higher-tier weights.

## Progression Style

This is the most important setting in the file. It determines **how tier difficulty is distributed** across your world.

```yaml theme={null}
Spawning:
  progressionStyle: ENVIRONMENT
```

### ENVIRONMENT (Default)

Tiers are tied to Hytale's built-in zone system. Early zones spawn weaker elites, late zones spawn stronger ones.

* **Zone 1** (Emerald Grove): Mostly Tier 1-2, no Tier 4-5.
* **Zone 2** (Howling Sands): Mix of Tier 1-3, rare Tier 4.
* **Zone 3** (Borea): Tier 2-5, no Tier 1.
* **Zone 4** (Devastated Lands): Tier 3-5 only, the hardest content.

This is the recommended style for most servers because it naturally matches the game's built-in difficulty curve.

### DISTANCE\_FROM\_SPAWN

Difficulty increases the further players travel from world coordinates `(0, 0)`. This creates a smooth, radiating difficulty gradient.

```yaml theme={null}
Spawning:
  progressionStyle: DISTANCE_FROM_SPAWN
  distancePerTier: 1000.0
  distanceBonusInterval: 100.0
  distanceHealthBonusPerInterval: 0.01
  distanceDamageBonusPerInterval: 0.005
  distanceHealthBonusCap: 0.5
  distanceDamageBonusCap: 0.5
```

| Setting                          | What it does                                                                                                                            | Default  |
| :------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- | :------- |
| `distancePerTier`                | Blocks of distance needed before the next tier unlocks. At 1000 blocks from spawn, Tier 2 starts appearing. At 2000, Tier 3, and so on. | `1000.0` |
| `distanceBonusInterval`          | Every this many blocks, a small stat bonus is added on top of the tier multiplier.                                                      | `100.0`  |
| `distanceHealthBonusPerInterval` | Health bonus per interval. `0.01` means +1% extra health every 100 blocks.                                                              | `0.01`   |
| `distanceDamageBonusPerInterval` | Damage bonus per interval. `0.005` means +0.5% extra damage every 100 blocks.                                                           | `0.005`  |
| `distanceHealthBonusCap`         | Maximum health bonus from distance. `0.5` means the distance bonus can add at most +50% health on top of the tier multiplier.           | `0.5`    |
| `distanceDamageBonusCap`         | Maximum damage bonus from distance.                                                                                                     | `0.5`    |

This style works well with custom world generation mods or maps that don't use Hytale's standard zone tags.

### NONE

Any tier can spawn anywhere. Tier distribution is completely random based on the `spawnChancePerTier` weights. Good for hardcore servers or arenas.

```yaml theme={null}
Spawning:
  progressionStyle: NONE
```

## Environment Tier Rules

When using `ENVIRONMENT` progression, you can override the tier distribution for specific zones and sub-zones.

```yaml theme={null}
Spawning:
  enableEnvironmentTierSpawns: true
  environmentTierSpawns:
    Env_Zone1:
      enabled: true
      spawnChancePerTier: [0.60, 0.25, 0.15, 0.00, 0.00]
    Env_Zone2:
      enabled: true
      spawnChancePerTier: [0.50, 0.25, 0.18, 0.07, 0.00]
    Env_Zone3:
      enabled: true
      spawnChancePerTier: [0.00, 0.32, 0.28, 0.22, 0.18]
    Env_Zone4:
      enabled: true
      spawnChancePerTier: [0.00, 0.00, 0.40, 0.33, 0.27]
```

Each key is a Hytale environment identifier. The mod ships with rules for every known sub-zone (caves, dungeons, forests, etc.). If a mob spawns in a zone that has no matching rule, the `default` entry is used.

**Important:** When a per-world overlay defines any environment tier rules, it **fully replaces** the base rules for that world (not additive). If you define one environment rule in an overlay, all base environment rules are removed for that world.

**Tip:** Set `enabled: false` on any zone rule to prevent elites from spawning there entirely. This is useful for safe zones or player towns.
