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

# Harvesting Config

> HarvestingConfig.json - crop harvest XP, tiers, cooldown, and per-crop overrides.

# Harvesting Config

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

Controls **crop harvest XP** (F key on mature crops and direct-harvest plants), tier multipliers, cooldown, and manual tier overrides for modded crops. The **Harvest** stat (double/triple yield) is configured in [Stats Level Config](config-stats), not here.

On startup and reload, the plugin **normalizes** this file (updates `Version`, pretty-prints) and creates **`HarvestingConfig.json.bak`** before writing, matching other manual JSON configs.

***

## Configuration Options

PascalCase keys (same convention as [Zone Level Config](config-zones)).

| Option                      | Type    | Default          | Description                                                                          |
| --------------------------- | ------- | ---------------- | ------------------------------------------------------------------------------------ |
| `Version`                   | String  | (plugin version) | Auto-updated on load.                                                                |
| `EnableHarvestXP`           | Boolean | `true`           | If `false`, no XP from crop harvest.                                                 |
| `BlockXPBaseHarvesting`     | Double  | `2.0`            | Base XP per harvest before tier, zone, and player scaling.                           |
| `HarvestTier1Multiplier`    | Double  | `1.0`            | XP multiplier for tier 1 crops.                                                      |
| `HarvestTier2Multiplier`    | Double  | `1.5`            | XP multiplier for tier 2 crops.                                                      |
| `HarvestTier3Multiplier`    | Double  | `2.5`            | XP multiplier for tier 3 crops.                                                      |
| `HarvestTier4Multiplier`    | Double  | `4.0`            | XP multiplier for tier 4 crops.                                                      |
| `BlacklistedXPHarvestSeeds` | String  | `""`             | Comma-separated **seed ids** (`Plant_Seeds_*`) that grant no harvest XP.             |
| `HarvestXPCooldownSeconds`  | Integer | `45`             | Per-player cooldown between harvest XP awards (0 = no cooldown).                     |
| `PlantSeedsTierOverrides`   | Object  | `{}`             | Manual tier (1-4) per crop. Keys are **seed ids** or **crop block ids** (see below). |

***

## Auto-tiering

At startup (after assets load), the plugin scans seed recipes and items to assign tiers 1-4 from farming/alchemy bench requirements and essence cost. Runtime lookups are O(1).

Use **`PlantSeedsTierOverrides`** when a modded crop is missing from the scan or you want a custom tier.

***

## PlantSeedsTierOverrides

Keys can be:

* **Seed id** (recommended): `Plant_Seeds_Aubergine`
* **Crop block id**: `Plant_Crop_Aubergine_Block` (normalized to the seed id on load)

Values are tier **1**, **2**, **3**, or **4** (clamped if out of range).

### Example: aubergine

Vanilla aubergine is tier **2** (farming bench recipe). To treat it as tier **3** for more XP:

```json theme={null}
{
  "Version": "0.3.9",
  "EnableHarvestXP": true,
  "BlockXPBaseHarvesting": 2.0,
  "HarvestTier1Multiplier": 1.0,
  "HarvestTier2Multiplier": 1.5,
  "HarvestTier3Multiplier": 2.5,
  "HarvestTier4Multiplier": 4.0,
  "BlacklistedXPHarvestSeeds": "",
  "HarvestXPCooldownSeconds": 45,
  "PlantSeedsTierOverrides": {
    "Plant_Seeds_Aubergine": 3
  }
}
```

Equivalent using the harvest block id:

```json theme={null}
"PlantSeedsTierOverrides": {
  "Plant_Crop_Aubergine_Block": 3
}
```

With default multipliers, tier 3 aubergine harvest XP uses `2.0 × 2.5 = 5.0` as the base before zone and player level scaling (same formula as mining/wood block XP).

***

## Harvest XP formula

```
harvestXP = BlockXPBaseHarvesting × HarvestTierNMultiplier × playerScale × zoneMultiplier × RateExp × ZoneRateExp × XpRateMultiplier
```

`playerScale` uses `BlockXPPlayerLevelFactor` from [Main Plugin Config](config-main). Zone multipliers come from [Zone Level Config](config-zones).

***

## File Location and Reload

* **Path:** `mods/Zuxaw_RPGLeveling/HarvestingConfig.json`
* **Backup:** `mods/Zuxaw_RPGLeveling/HarvestingConfig.json.bak` (created before each write on load/reload)
* Edit the file and run **`/lvl reload`** (`rpgleveling.command.reload`) to apply changes without restarting.

***

## Related

* [Configuration Overview](config-overview) - All config files.
* [Stats Level Config](config-stats) - **Harvest** stat (double/triple yield chances).
* [Main Plugin Config](config-main) - `RateExp`, `BlockXPPlayerLevelFactor`.
* [Formulas](formulas) - Block XP and zone scaling.
