Well-Earned XP
No reviews yet
Earn experience by building, mining, farming, crafting, exploring, and more with a fully data-driven system.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
Well-Earned XP introduces new ways to earn experience, allowing players to earn levels for enchanting and repairing. Builders, miners, farmers, explorers, and mixed-style players can all earn XP by doing things they already spend time doing, without feeling pushed toward XP farms or mob grinders.

✨ New Ways to Earn XP
- Mining
- Building
- Farming
- Crafting New Items
- Looting Chests
- Breaking Tools
- Completing Raids
📁 Data Packs
Well-Earned XP is completely data-driven and uses in-game statistics to detect rewardable player engagement. You can easily add or remove support for different stats using a simple data pack.
Learn More
Each JSON file defines:
- Which stat to listen for.
- How often that stat should grant XP.
- How much XP to spawn.
The file path selects the stat target:
data/<namespace>/wellearnedxp/engagement_type/<category>/<namespace>/<path>.json
The category decides how the stat is matched:
-
stat_typetargets every stat under a stat type, for example,minecraft:crafted. -
custom_stattargets one specific custom stat, for example,minecraft:fish_caught.
Stat Type Example
The following example grants 5 - 10 XP for every item crafted:
// data/mycoolexample/wellearnedxp/engagement_type/stat_type/minecraft/crafted.json
{
"experience": {
"min": 5,
"max": 10
}
}
Custom Stat Example
The following example grants 5 XP for every 10 fish caught:
// data/mycoolexample/wellearnedxp/engagement_type/custom_stat/minecraft/fish_caught.json
{
"experience": {
"min": 5,
"max": 5
},
"interval": 10
}
Overriding Engagement Types
If you want to change any of the default values, like how much experience a stat gives, you can overwrite engagement types using a file of the same path. You can even disable built-in engagement types by setting the file's contents to an empty object, {}.
Disabled Engagement Type Example
By default, Well-Earned XP rewards players experience for mining. The following example disables that behavior:
// data/wellearnedxp/wellearnedxp/engagement_type/stat_type/minecraft/mined.json
{}
🚦 Permissions
✅ You may use this mod in modpacks.
✅ You may create add-ons, extensions, or companion mods.
✅ You may submit pull requests to contribute to the code.
❌ You may not publish this mod or modified versions anywhere without explicit permission.
Well-Earned XP
Well-Earned XP introduces new ways to earn experience, allowing players to earn levels for enchanting and repairing. Builders, miners, farmers, explorers, and mixed-style players can all earn XP by doing things they already spend time doing, without feeling pushed toward XP farms or mob grinders.

✨ New Ways to Earn XP
- Mining
- Building
- Farming
- Crafting New Items
- Looting Chests
- Breaking Tools
- Completing Raids
📁 Data Packs
Well-Earned XP is completely data-driven and uses in-game statistics to detect rewardable player engagement. You can easily add or remove support for different stats using a simple data pack.
Learn More
Each JSON file defines:
- Which stat to listen for.
- How often that stat should grant XP.
- How much XP to spawn.
The file path selects the stat target:
data/<namespace>/wellearnedxp/engagement_type/<category>/<namespace>/<path>.json
The category decides how the stat is matched:
stat_typetargets every stat under a stat type, for example,minecraft:crafted.custom_stattargets one specific custom stat, for example,minecraft:fish_caught.
Stat Type Example
The following example grants 5 - 10 XP for every item crafted:
// data/mycoolexample/wellearnedxp/engagement_type/stat_type/minecraft/crafted.json
{
"experience": {
"min": 5,
"max": 10
}
}
Custom Stat Example
The following example grants 5 XP for every 10 fish caught:
// data/mycoolexample/wellearnedxp/engagement_type/custom_stat/minecraft/fish_caught.json
{
"experience": {
"min": 5,
"max": 5
},
"interval": 10
}
Overriding Engagement Types
If you want to change any of the default values, like how much experience a stat gives, you can overwrite engagement types using a file of the same path. You can even disable built-in engagement types by setting the file's contents to an empty object, {}.
Disabled Engagement Type Example
By default, Well-Earned XP rewards players experience for mining. The following example disables that behavior:
// data/wellearnedxp/wellearnedxp/engagement_type/stat_type/minecraft/mined.json
{}
🚦 Permissions
✅ You may use this mod in modpacks.
✅ You may create add-ons, extensions, or companion mods.
✅ You may submit pull requests to contribute to the code.
❌ You may not publish this mod or modified versions anywhere without explicit permission.
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers