Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
Mining Rewards is a progression-focused NeoForge mod for Minecraft 1.21.1 that gives players structured goals for mining and farming each day.
It adds:
Tier-based rewards for blocks mined and crops harvested. Daily special challenges with extra XP rewards. Daily enhancement challenges that unlock temporary multipliers. A clean in-game UI to track progress, claimed tiers, and current objectives. The mod is fully configurable, so server owners can tune tiers, rewards, reset behavior, and challenge difficulty to fit their gameplay style.
Mining Rewards Mod - Configuration Guide
Overview
This guide explains how to configure the Mining Rewards mod for your modpack. All rewards, tiers, and mod behaviors are controllable via a JSON configuration file.
Configuration File
Location: config/miningrewards-config.json
The configuration file contains three main sections:
- settings : General mod parameters
- mining : Mining reward configuration
- farming : Farming reward configuration
Settings Section (General Parameters)
Structure
"settings": {
"resetType": "REAL_TIME",
"realTimeResetHour": 6
}
Parameters
resetType (string)
Defines the type of daily reset for rewards.
Possible values:
"REAL_TIME"→ Daily reset at a fixed real-world time (default)"MINECRAFT_DAY"→ Reset based on Minecraft day (24000 ticks ≈ 20 real minutes)
Examples:
Reset at 6 AM (real-world time):
"settings": {
"resetType": "REAL_TIME",
"realTimeResetHour": 6
}
Reset at midnight (real-world time):
"settings": {
"resetType": "REAL_TIME",
"realTimeResetHour": 0
}
Reset by Minecraft day:
"settings": {
"resetType": "MINECRAFT_DAY",
"realTimeResetHour": 6
}
Note: In
MINECRAFT_DAYmode, therealTimeResetHourparameter has no effect but must remain present for JSON syntax.
realTimeResetHour (int)
The reset hour in REAL_TIME mode.
Values: 0 to 23 (24-hour format)
0= Midnight6= 6 AM (default)12= Noon18= 6 PM
Mining Section (Mining Rewards)
Structure
"mining": {
"tiers": [100, 200, 300, ...],
"rewards": {
"100": { ... },
"200": { ... },
...
}
}
Subsection tiers (Reward Tiers)
Array of integers defining block-mined thresholds to unlock rewards.
Example:
"tiers": [100, 200, 300, 500, 1000, 2000, 5000]
- At 100 blocks mined → First reward unlocked
- At 200 blocks mined → Second reward unlocked
- At 1000 blocks mined → Fifth reward unlocked
- Etc.
Subsection rewards (Reward Details)
Object containing reward details for each tier.
Structure of a reward:
"100": {
"xp": 33,
"pools": [
{
"options": [
{
"item": "minecraft:coal",
"minCount": 8,
"maxCount": 18
},
{
"item": "minecraft:copper_ingot",
"minCount": 6,
"maxCount": 14
}
]
},
{
"options": [
{
"item": "minecraft:redstone",
"minCount": 8,
"maxCount": 22
}
]
}
]
}
Reward Fields
| Field | Type | Description |
|---|---|---|
xp |
int | Experience points granted when tier is unlocked |
pools |
array | Item groups (see details below) |
Item Pools
A pool is a group of options from which the mod selects ONE randomly.
Each reward can have multiple pools. For each pool, one option is randomly selected.
Example with 2 pools:
"pools": [
{
"options": [
{"item": "minecraft:coal", "minCount": 8, "maxCount": 18},
{"item": "minecraft:copper_ingot", "minCount": 6, "maxCount": 14}
]
},
{
"options": [
{"item": "minecraft:redstone", "minCount": 8, "maxCount": 22},
{"item": "minecraft:lapis_lazuli", "minCount": 7, "maxCount": 18}
]
}
]
Likely result:
- Pool 1 → Random choice: Coal (8-18) OR Copper Ingot (6-14)
- Pool 2 → Random choice: Redstone (8-22) OR Lapis Lazuli (7-18)
The player receives 1 item from Pool 1 + 1 item from Pool 2.
Item Options
| Field | Type | Description |
|---|---|---|
item |
string | Minecraft registry ID of the item |
minCount |
int | Minimum quantity |
maxCount |
int | Maximum quantity |
The actual quantity is randomly chosen between minCount and maxCount (inclusive).
Farming Section (Farming Rewards)
The structure of the farming section is identical to mining.
"farming": {
"tiers": [25, 50, 100, 200, 500],
"rewards": {
"25": {
"xp": 25,
"pools": [
{
"options": [
{"item": "minecraft:bone_meal", "minCount": 5, "maxCount": 15}
]
}
]
},
...
}
}
Common Minecraft Item IDs
| Item | ID |
|---|---|
| Coal | minecraft:coal |
| Copper Ore | minecraft:copper_ore |
| Copper Ingot | minecraft:copper_ingot |
| Iron Ingot | minecraft:iron_ingot |
| Gold Ingot | minecraft:gold_ingot |
| Diamond | minecraft:diamond |
| Emerald | minecraft:emerald |
| Redstone | minecraft:redstone |
| Lapis Lazuli | minecraft:lapis_lazuli |
| Obsidian | minecraft:obsidian |
| Ender Pearl | minecraft:ender_pearl |
| Blaze Rod | minecraft:blaze_rod |
| Nether Star | minecraft:nether_star |
| Totem of Undying | minecraft:totem_of_undying |
| Experience Bottle | minecraft:experience_bottle |
| Bone Meal | minecraft:bone_meal |
| Amethyst Shard | minecraft:amethyst_shard |
| Ancient Debris | minecraft:ancient_debris |
| Netherite Scrap | minecraft:netherite_scrap |
Use Cases / Examples
Configuration 1: Hardcore (Rare Rewards)
{
"settings": {
"resetType": "REAL_TIME",
"realTimeResetHour": 6
},
"mining": {
"tiers": [500, 1000, 2000, 5000],
"rewards": {
"500": {
"xp": 100,
"pools": [
{"options": [{"item": "minecraft:coal", "minCount": 10, "maxCount": 20}]}
]
},
"1000": {
"xp": 200,
"pools": [
{"options": [{"item": "minecraft:iron_ingot", "minCount": 5, "maxCount": 10}]}
]
},
"2000": {
"xp": 500,
"pools": [
{"options": [{"item": "minecraft:diamond", "minCount": 1, "maxCount": 3}]}
]
},
"5000": {
"xp": 1000,
"pools": [
{"options": [{"item": "minecraft:nether_star", "minCount": 1, "maxCount": 1}]}
]
}
}
}
}
Configuration 2: Casual (Generous Rewards)
{
"settings": {
"resetType": "MINECRAFT_DAY",
"realTimeResetHour": 0
},
"mining": {
"tiers": [50, 100, 200, 400, 800],
"rewards": {
"50": {
"xp": 25,
"pools": [
{"options": [
{"item": "minecraft:coal", "minCount": 15, "maxCount": 40},
{"item": "minecraft:copper_ingot", "minCount": 10, "maxCount": 30}
]}
]
},
"100": {
"xp": 75,
"pools": [
{"options": [{"item": "minecraft:iron_ingot", "minCount": 15, "maxCount": 50}]},
{"options": [{"item": "minecraft:gold_ingot", "minCount": 10, "maxCount": 30}]}
]
},
"200": {
"xp": 200,
"pools": [
{"options": [{"item": "minecraft:diamond", "minCount": 5, "maxCount": 15}]},
{"options": [{"item": "minecraft:emerald", "minCount": 3, "maxCount": 10}]}
]
}
}
}
}
Configuration 3: Balanced with Progression
{
"settings": {
"resetType": "REAL_TIME",
"realTimeResetHour": 8
},
"mining": {
"tiers": [100, 250, 500, 1000, 2000, 4000],
"rewards": {
"100": {
"xp": 40,
"pools": [
{"options": [
{"item": "minecraft:coal", "minCount": 8, "maxCount": 18},
{"item": "minecraft:copper_ingot", "minCount": 6, "maxCount": 14}
]}
]
},
"250": {
"xp": 80,
"pools": [
{"options": [{"item": "minecraft:iron_ingot", "minCount": 10, "maxCount": 25}]},
{"options": [{"item": "minecraft:redstone", "minCount": 10, "maxCount": 30}]}
]
},
"500": {
"xp": 150,
"pools": [
{"options": [{"item": "minecraft:gold_ingot", "minCount": 8, "maxCount": 20}]},
{"options": [{"item": "minecraft:lapis_lazuli", "minCount": 12, "maxCount": 28}]}
]
}
}
}
}
Tips for Modpack Creators
1. Balance Rewards
- Too generous → Breaks server economy
- Too rare → Player frustration
- Test in gameplay before release
2. Progression
Increase as tiers increase:
- Experience points granted
- Item quantities
- Item value (coal → diamond → nether star)
3. Reset Type
- REAL_TIME : Best for multiplayer servers (synchronized daily reset)
- MINECRAFT_DAY : Best for solo experience (reset based on player progress)
4. Pool Variety
Use multiple pools to offer variety without overpowering:
"pools": [
{"options": [/* Common option 1 */]},
{"options": [/* Common option 2 */]},
{"options": [/* Rare option */]}
]
5. Documentation
Add a note to your modpack explaining:
- Mod purpose
- How rewards work
- How to modify config if needed
Troubleshooting
"Config not loaded"
• Verify file is in config/miningrewards-config.json
• Check JSON syntax (no missing/extra commas)
• Restart the client
Rewards don't change
• Did you save the JSON file? • Did you restart the client? • Is the tier threshold reached?
JSON Error
• Use a JSON validator: https://jsonlint.com/
• Check quotes (must be " not ")
Configuration Checklist
- [ ] Valid JSON syntax
- [ ] Tiers in ascending order
- [ ] Rewards defined for each tier
- [ ] Valid item IDs
- [ ] minCount ≤ maxCount
- [ ] XP consistent with difficulty
- [ ] resetType correct (REAL_TIME or MINECRAFT_DAY)
- [ ] File synced in
/run/config/
Enjoy your modpack!


