
CropXp
Random experience drops when you harvest crops — fully compatible with LevelZ.
About this Mod
CropXp rewards farming: harvest a mature crop and there's a chance it
drops a few experience orbs. Which crops count, how much XP, and the drop
chance are all yours to configure.
✨ Highlights
- 🌾 XP for harvesting crops, with configurable amount and chance
- 🎚️ In-game settings screen (via Mod Menu + Cloth Config)
- 📦 Add, remove, or retune any crop with data pack files — great for modpacks and servers
- 📈 Optional LevelZ support — also grants LevelZ farming XP when LevelZ is installed
- ♻️
/reloadapplies changes instantly; Creative mode is opt-in
📦 Compatibility
Fabric 1.19.2, 1.20.1, 1.21.1
Required: Fabric API
Optional: Mod Menu + Cloth Config (in-game settings), LevelZ (LevelZ XP)
⚙️ Configuration
Edit the settings in-game via Mod Menu → CropXp, or edit config/cropxp.json
directly. These are the global defaults used by every crop that doesn't
override them. Upgrading from a 1.x config is automatic.
{
"general": {
"enabled": true,
"dropInCreative": false,
"defaults": { "min": 1, "max": 2, "chance": 0.5 }
},
"levelz": {
"enabled": true,
"defaults": { "min": 1, "max": 1, "chance": 0.25 }
}
}
| Setting | Default | Meaning |
|---|---|---|
general.enabled |
true |
Master switch for vanilla XP drops. |
general.dropInCreative |
false |
If true, XP also drops while in Creative mode. |
general.defaults.min / max |
1 / 2 |
Vanilla XP amount; a whole number is rolled evenly between min and max. |
general.defaults.chance |
0.5 |
Chance per harvest to drop vanilla XP (0.0–1.0). 0 = never, 1 = always. |
levelz.enabled |
true |
Switch for LevelZ XP (only matters when LevelZ is installed). |
levelz.defaults.min / max |
1 / 1 |
LevelZ XP amount range. |
levelz.defaults.chance |
0.25 |
Chance per harvest to drop LevelZ XP. Rolled independently of vanilla XP. |
🌱 Custom crops (data packs)
Every recognized crop is a JSON file, so you can add, retune, or disable any
crop — including modded ones — without changing the mod. Place files in a data
pack at:
data/<namespace>/cropxp/crops/<name>.json
<namespace> can be anything (use your pack's name); cropxp/crops is the
fixed folder CropXp scans. Put the pack in a world's datapacks/ folder or ship
it inside a mod. Run /reload after editing — the Recognized Crops tab in
the config screen lists everything currently loaded.
| Field | Type | Required | Description |
|---|---|---|---|
block |
string | ✅ | Block id, e.g. minecraft:carrots. |
conditions |
object | — | Block-state values that must all match for XP to drop, e.g. { "age": 7 }. Omit to match any state. |
vanilla |
object | — | Vanilla XP override { min, max, chance }. Any field omitted falls back to the global default. |
levelz |
object | — | LevelZ XP override { min, max, chance }. |
requiresCorrectTool |
boolean | — | If true, XP only drops when the block is broken with the correct tool. |
enabled |
boolean | — | Set false to turn a crop off (e.g. to disable a built-in one). |
Conditions use the block's own state properties — for example age (0–7
for wheat, 0–3 for nether wart), or half (lower / upper). Only states
that match every listed condition grant XP, so unripe crops are skipped.
Examples
Mature carrots with custom XP:
{
"block": "minecraft:carrots",
"conditions": { "age": 7 },
"vanilla": { "min": 1, "max": 3, "chance": 0.6 }
}
Fully-grown nether wart, overriding both vanilla and LevelZ XP:
{
"block": "minecraft:nether_wart",
"conditions": { "age": 3 },
"vanilla": { "min": 2, "max": 4, "chance": 1.0 },
"levelz": { "min": 1, "max": 2, "chance": 0.5 }
}
Turn off a built-in crop:
{ "block": "minecraft:cocoa", "enabled": false }
The same pattern works for modded crops — use the modded block id and its own
growth property in conditions.
🧺 Built-in crops
Wheat, carrots, potatoes, beetroots, nether wart, cocoa, melon & pumpkin stems
(including the attached-stem state), and pitcher crop (where that block exists).
Melon/pumpkin blocks and torchflower are excluded on purpose — they regrow or
can be re-placed, which would allow infinite XP.
Originally built for my own modpack, now shared for everyone. 🌾
Available Versions
How to Install CropXp on Your Server
Order Server
Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).
Set fabric Loader
In the panel under "Egg", select the fabric loader and matching Minecraft version (1.21.1).
Install Mod
Open the mod browser in the dashboard and search for "CropXp". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.
Compatibility
Mod Loaders
Minecraft Versions
1.21.1, 1.20.1, 1.19.2
Server-side
✓ RequiredRecommended RAM
4 GB(min. 3 GB)Frequently Asked Questions
CropXp server crashes on startup – what to do?
Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.21.1). You can switch loaders with one click in the panel.
Is CropXp compatible with fabric?
CropXp officially supports fabric for Minecraft 1.21.1, 1.20.1, 1.19.2. The Mado dashboard automatically detects incompatible loader combinations.
Server lagging with CropXp – how to optimize performance?
Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if CropXp consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.
Similar Mods
Rent Modded Server
Install CropXp with just one click on your server.