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

# Main Plugin Config

> RPGLevelingConfig.json - Main plugin configuration options.

# Main Plugin Config

**File:** `mods/Zuxaw_RPGLeveling/RPGLevelingConfig.json`

The main configuration file for the RPG Leveling plugin. Controls XP rates, max level, difficulty preset, and core gameplay toggles.

***

## Configuration Options

| Option                         | Type    | Default                                 | Description                                                                                                                                                                                                                                                                                                                                                                                                                                       |                                                                               |
| ------------------------------ | ------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| `MaxLevel`                     | Integer | 100                                     | Maximum level players can reach                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                                               |
| `RateExp`                      | Double  | 3.0                                     | Global XP multiplier (1.0 = normal, 2.0 = double XP)                                                                                                                                                                                                                                                                                                                                                                                              |                                                                               |
| `BaseXP`                       | Double  | 1.0                                     | Base XP multiplier for mob kills (used in XP formula)                                                                                                                                                                                                                                                                                                                                                                                             |                                                                               |
| `LevelBaseXP`                  | Double  | 150.0                                   | Base value for level XP requirement formula                                                                                                                                                                                                                                                                                                                                                                                                       |                                                                               |
| `LevelOffset`                  | Double  | 0.0                                     | Offset for level XP requirement formula                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                               |
| `EnableHUD`                    | Boolean | true                                    | Enable or disable HUD (fix HUD crashes)                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                               |
| `Debug`                        | Boolean | false                                   | Enable debug logging                                                                                                                                                                                                                                                                                                                                                                                                                              |                                                                               |
| `ResetLevelOnDeath`            | Boolean | false                                   | Reset player level to 1 on death (hardcore mode)                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                               |
| `BlacklistedEntities`          | String  | `""`                                    | Comma-separated entity type IDs (e.g. `Bear_Grizzly`) that give **no XP** and **no level display** when killed or looked at                                                                                                                                                                                                                                                                                                                       |                                                                               |
| `BlacklistedEntityRoles`       | String  | `"Citizen_"`                            | Comma-separated **role name substrings** for NPCs excluded from leveling: **no level display**, **no HP/damage scaling**, **no XP**. NPCs with the NPCEntity component whose role name **contains** any of these strings (e.g. `Citizen_`) are treated as non-leveled. Use for Citizen mod NPCs (dialogue, traders). See [Entity role blacklist](#entity-role-blacklist).                                                                         |                                                                               |
| `EnablePVPXp`                  | Boolean | false                                   | If `true`, killing a player awards XP. If `false`, no XP from PvP kills                                                                                                                                                                                                                                                                                                                                                                           |                                                                               |
| `DifficultyPreset`             | String  | "normal"                                | `"easy"`, `"normal"`, `"hard"`, or `"extreme"`                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                               |
| `EnableMonsterLevelScale`      | Boolean | true                                    | If `true` (default), monster level scaling is enabled (damage/HP per level, gap damage/defense, level-based XP). HP scaling is the primary toughness mechanic, so your damage stays consistent while higher-level mobs simply have bigger HP pools. If `false`, all monster level scaling is disabled and XP reverts to the old HP-based system (only mob max HP), while level display still works. See [Difficulty Scaling](difficulty-scaling). |                                                                               |
| `EnableGapLevelDefense`        | Boolean | true                                    | If `true`, level-gap defense applies (you deal less damage when underleveled). If `false`, gap defense is disabled - your damage to monsters is not reduced by level gap, letting HP scaling alone handle the toughness while your stat upgrades feel more impactful. See [Difficulty Scaling](difficulty-scaling).                                                                                                                               |                                                                               |
| `EnableGapLevelDamageToPlayer` | Boolean | true                                    | If `true`, level-gap damage applies (monsters deal extra damage when above your level). If `false`, gap damage to player is disabled - monsters do not get bonus damage from level gap. See [Difficulty Scaling](difficulty-scaling).                                                                                                                                                                                                             |                                                                               |
| `EnableGapLevelXpReducer`      | Boolean | true                                    | If `true`, XP is reduced when you are underleveled (monster level above yours). If `false`, no XP reduction for being underleveled - you get full XP from higher-level monsters. See [Formulas](formulas) level-difference table and [Difficulty Scaling](difficulty-scaling).                                                                                                                                                                    |                                                                               |
| `EnableNameplateLevelDisplay`  | Boolean | true                                    | If `true` (default), nameplates can show level; if `false`, **no** nameplate is modified (players or monsters).                                                                                                                                                                                                                                                                                                                                   |                                                                               |
| `EnablePlayerLevelNameplate`   | Boolean | true                                    | If `true` (default), **player** nameplates show level (e.g. "Username \[Lvl. X]"). If `false`, only player nameplates are left unchanged; monster level still shows when you look at them.                                                                                                                                                                                                                                                        |                                                                               |
| `EnableNotification`           | Boolean | true                                    | If `true` (default), notifications are sent (XP gain, level up, stat points earned, death penalty, zone warnings, entity killed, critical hits, class tier-up subtitle, etc.). If `false`, no notifications are sent.                                                                                                                                                                                                                             |                                                                               |
| `EnablePassiveNotifications`   | Boolean | true                                    | Only applies when `EnableNotification` is `true`. If `true` (default), class **passive** proc popups are shown (heal/buff/damage effect lines, Hunter's Mark proc, on-kill timed buffs like Overkill). If `false`, those passive-only popups are hidden; XP, level up, crits, entity killed, tier-up subtitle, zone warnings, etc. are unchanged.                                                                                                 |                                                                               |
| `EnableCurrentZoneHudDisplay`  | Boolean | true                                    | If `true` (default), HUD shows level plus current zone/biome (e.g. "Lvl 5                                                                                                                                                                                                                                                                                                                                                                         | Zone 1 Emerald Grove"). If `false`, HUD shows only level and XP progress bar. |
| `BlacklistedXPBlocks`          | String  | `"Tw_Feed_Carnivore,Tw_Feed_Herbivore"` | Comma-separated **block type IDs** excluded from mining/woodcutting XP. Case-insensitive exact match (same style as `BlacklistedEntities`). See [Block XP blacklist](#block-xp-blacklist).                                                                                                                                                                                                                                                        |                                                                               |
| `EnableTameXP`                 | Boolean | `true`                                  | If `true`, taming a creature awards RPG XP. See [Tame XP](#tame-xp).                                                                                                                                                                                                                                                                                                                                                                              |                                                                               |
| `TameXpMultiplier`             | Double  | `1.0`                                   | Multiplier on tame XP (uses the same formula as mob kills).                                                                                                                                                                                                                                                                                                                                                                                       |                                                                               |
| `BlacklistedTameEntityRoles`   | String  | `"Citizen_"`                            | Comma-separated **role name substrings** for tamed NPCs that grant **no tame XP** (same contains / case-insensitive style as `BlacklistedEntityRoles`).                                                                                                                                                                                                                                                                                           |                                                                               |

***

## XP and Leveling

**0.2.0 note:** XP from mobs is based on **monster level** and **level difference**. `RateExp` and `BaseXP` still apply as multipliers. See [Formulas](formulas) for the complete math.

### XP Rate Multiplier

* `RateExp` - Global XP multiplier applied to all XP gains
  * `1.0` = normal XP
  * `2.0` = double XP
  * `3.0` = triple XP (default)
* **Admin timed XP boost** - Operators can run **`/lvl xprateboost`** (see [Commands](commands)) for a server-wide or per-player multiplier over a duration. That multiplier is applied **on top of** this config (and zone rates): e.g. **`RateExp` 3** plus timed **×2** ⇒ **6×** vs the formula baseline, not **5×**.

### Level Requirements

Level XP requirements use this formula:

```
XP_required = LevelBaseXP × level^2.5 + LevelOffset   (level ≥ 2)
XP_required(1) = 0
```

* `LevelBaseXP` - Base multiplier for the level curve (exponent 2.5; default: 150.0)
* `LevelOffset` - Added to total XP per level.

To multiply XP **earned** while the player is in a specific level range (e.g. 3× XP at levels 80–100), use [`XPCurveOverridesConfig.json`](config-xp-curve-overrides).

See [Formulas](formulas) for examples and progression tables.

***

## Difficulty Scaling

**0.2.0 changes:** Difficulty scaling settings are now in the main config file. Difficulty scaling is always enabled and controlled via the `DifficultyPreset` setting.

### Difficulty Presets

| Preset      | Monster→Player Dmg/Lvl | HP%/Lvl | Gap Dmg Mult | Gap Def Mult | Best For    |
| ----------- | ---------------------- | ------- | ------------ | ------------ | ----------- |
| **EASY**    | +0.5%                  | +2%     | ×0.75        | ×0.75        | New players |
| **NORMAL**  | +1%                    | +3.25%  | ×1.0         | ×1.0         | Default     |
| **HARD**    | +2%                    | +4.5%   | ×1.25        | ×1.25        | Experienced |
| **EXTREME** | +4%                    | +6.5%   | ×1.5         | ×1.5         | Hardcore    |

See [Difficulty Scaling](difficulty-scaling) for complete details on monster damage, HP scaling, and level-gap mechanics.

### Scaling Toggles

Fine-tune difficulty with these toggles:

* `EnableMonsterLevelScale` - Master toggle for all level-based scaling (damage, HP, XP)
* `EnableGapLevelDefense` - Toggle level-gap defense penalty (you → monster when underleveled)
* `EnableGapLevelDamageToPlayer` - Toggle level-gap damage bonus (monster → you when underleveled)
* `EnableGapLevelXpReducer` - Toggle XP reduction when fighting higher-level monsters

***

## Death Penalty

Optional **hardcore mode** that resets progress on death:

* `ResetLevelOnDeath: true` - Reset to level 1, lose all XP, clear stat allocations
* `ResetLevelOnDeath: false` (default) - Keep level and stats on death

***

## Entity Blacklist

Exclude specific entities from giving XP and showing level displays:

```json theme={null}
{
  "BlacklistedEntities": "Bear_Grizzly,Wolf_Alpha,Sheep"
}
```

Blacklisted entities:

* Give **no XP** when killed
* Show **no level display** when looked at
* Are comma-separated entity type IDs

***

## Entity role blacklist

Exclude **NPC roles** from leveling (no level display, no HP/damage scaling, no XP). This is based on the entity’s **role name** (NPCEntity component), not the entity type ID.

**Default:** `"Citizen_"` - so NPCs whose role name **contains** `Citizen_` (e.g. from the Citizen mod: dialogue, traders, quest givers) are not scaled and do not show level.

```json theme={null}
{
  "BlacklistedEntityRoles": "Citizen_,Villager_"
}
```

* Role names are checked with **contains** (case-insensitive). Example: `Citizen_Guard` or `MyCitizen_Type` match the string `Citizen_`.
* Blacklisted role NPCs: **no level** on nameplate, **no HP scaling**, **no damage scaling**, **no XP** when killed.
* Leave as `"Citizen_"` to keep Citizen mod NPCs unaffected; set to `""` to level all NPCs by role (no role blacklist).

***

## Block XP blacklist

Exclude specific **block type IDs** from mining/woodcutting XP when players break them. Use this when a modded block matches ore/log/tree rules but should not be farmed for XP (for example Animal Husbandry feed troughs).

**Default:** `"Tw_Feed_Carnivore,Tw_Feed_Herbivore"`

```json theme={null}
{
  "BlacklistedXPBlocks": "Tw_Feed_Carnivore,Tw_Feed_Herbivore"
}
```

* List **block type IDs**, not item IDs. Enable `"Debug": true`, break the block once, and check the console for `[BlockBreakXPSystem] Block broken: id="..."`.
* IDs use **case-insensitive exact match** (same as `BlacklistedEntities`). `tw_feed_carnivore` and `Tw_Feed_Carnivore` are equivalent.
* Blacklisted blocks give **no XP** when broken. Mining/woodcutting stat speed bonuses are unchanged.
* Set to `""` to allow XP from all eligible blocks (no block blacklist).
* To disable **all** block-break XP, use `EnableBlockXP: false` in the same file (documented in [0.2.0 Main Config - Block XP](0.2.0/config-main#block-xp-mining--woodcutting)).

***

## Tame XP

**Added in 0.3.9.** When a player tames a creature (NPC role becomes `Tamed_*`), RPG Leveling can award XP using the **same formula as mob kills** (monster level, level gap, `RateExp`, zone rate, curve overrides).

| Option                       | Default      | Description                                                                                       |
| ---------------------------- | ------------ | ------------------------------------------------------------------------------------------------- |
| `EnableTameXP`               | `true`       | Master toggle for tame XP.                                                                        |
| `TameXpMultiplier`           | `1.0`        | Multiplier applied after the kill formula (e.g. `2.0` = double tame XP).                          |
| `BlacklistedTameEntityRoles` | `"Citizen_"` | Role substrings that never grant tame XP (e.g. Citizen mod NPCs). Set to `""` to allow all roles. |

Run **`/lvl reload`** after editing. Players see **`notifications.creature_tamed`** when a tame succeeds (see [Messages Config](config-messages)).

***

## PvP XP

Control whether player kills award experience:

* `EnablePVPXp: true` - Killing players awards XP
* `EnablePVPXp: false` (default) - No XP from player kills

***

## Example Config (Default Values)

```json theme={null}
{
  "MaxLevel": 100,
  "RateExp": 3.0,
  "BaseXP": 1.0,
  "LevelBaseXP": 150.0,
  "LevelOffset": 0.0,
  "EnableHUD": true,
  "Debug": false,
  "ResetLevelOnDeath": false,
  "BlacklistedEntities": "",
  "EnablePVPXp": false,
  "DifficultyPreset": "normal",
  "EnableMonsterLevelScale": true,
  "EnableGapLevelDefense": true,
  "EnableGapLevelDamageToPlayer": true,
  "EnableGapLevelXpReducer": true,
  "EnableNameplateLevelDisplay": true,
  "EnablePlayerLevelNameplate": true,
  "EnableNotification": true,
  "EnablePassiveNotifications": true,
  "EnableCurrentZoneHudDisplay": true,
  "BlacklistedXPBlocks": "Tw_Feed_Carnivore,Tw_Feed_Herbivore"
}
```

***

## File location and reload

* **Path:** `mods/Zuxaw_RPGLeveling/RPGLevelingConfig.json`
* This file **is** reloaded by `/lvl reload`. See [Configuration Overview](config-overview#reloading-config).

***

## See Also

* [Configuration Overview](config-overview) - All config files
* [Stats Config](config-stats) - Stat points and values
* [Formulas](formulas) - XP and progression math
* [Difficulty Scaling](difficulty-scaling) - Monster scaling details
