Перейти к содержимому
Mineforgian

Better Harvest Level

A config-driven tool progression mod for modpack developers

Загрузки
581
Подписчики
7
Обновлён
5 июля 2026 г.
Лицензия
LGPL-3.0-only

Опубликован 24 марта 2026 г.

BetterHarvestLevel

Take full control of your modpack's mining progression. BetterHarvestLevel lets you define custom tool tiers, override harvest levels for any block or tool, and unify cross-mod progression — all through simple JSON config files.


Features

Custom Tier Definitions

Define your own mining tiers beyond vanilla's wood/stone/iron/diamond/netherite hierarchy. Each tier supports:

  • Custom name, display name, and color
  • Numeric level for ordering
  • Configurable icon item (shown in Jade tooltips)
  • Insertion point (after/before) for precise tier ordering

Block & Tool Overrides

Override which tier is required to mine any block, or what tier any tool belongs to. Target overrides by:

  • Individual IDminecraft:obsidian, create:brass_block
  • Tag#minecraft:needs_iron_tool
  • Mod namespacecreate:* (all blocks/items from a mod)
  • Regex — pattern-match across the entire registry

Tier Equivalence Groups

Group tiers that should be treated as equivalent for mining purposes. Useful for mods that add parallel progression paths (e.g., making a modded alloy tier equivalent to iron).

Config Layering

Split your overrides across multiple files for organization. Use blocks.json, blocks_create.json, blocks_thermal.json, etc. — BetterHarvestLevel merges them all automatically in alphabetical order. Keep per-mod configs clean and separate.

Jade/WAILA Integration

Blocks with BHL overrides display their required tier in the Jade tooltip, complete with:

  • Tier name in its configured color
  • A harvestability indicator (green checkmark or red X) based on your held tool
  • The tier's icon item

In-Game Commands

  • /bhl check held — Show the BHL tier of your held tool
  • /bhl check looking — Show the required tier of the block you're looking at
  • /bhl info — List all registered tiers and override counts
  • /bhl reload — Hot-reload all config files without restarting

Mod Ignore List

Exclude entire mods from override resolution so their blocks and tools are left untouched.


Supported Versions

Loader Minecraft Version
Forge 1.20.1
Fabric 1.20.1
NeoForge 1.21.1
Fabric 1.21.1

Getting Started

  1. Install the mod and launch the game once. Config files are generated in .minecraft/config/betterharvestlevel/.
  2. Edit tiers.json to define your tier hierarchy.
  3. Add block overrides in blocks.json (or create per-mod files like blocks_create.json).
  4. Add tool overrides in tools.json (or per-mod files like tools_thermal.json).
  5. Optionally define equivalence groups in equivalences.json.
  6. Use /bhl reload in-game to apply changes instantly.

Example: Adding a custom tier and overriding a block

tiers.json — Add a "copper" tier between stone and iron:

{
  "tiers": [
    { "name": "wood", "level": 0, "displayName": "Wood", "color": "#A0522D", "builtIn": true },
    { "name": "stone", "level": 1, "displayName": "Stone", "color": "#AAAAAA", "builtIn": true },
    { "name": "copper", "level": 2, "displayName": "Copper", "color": "#E8851C", "builtIn": false, "iconItem": "minecraft:copper_ingot" },
    { "name": "iron", "level": 3, "displayName": "Iron", "color": "#FFFFFF", "builtIn": true },
    { "name": "diamond", "level": 4, "displayName": "Diamond", "color": "#55FFFF", "builtIn": true },
    { "name": "netherite", "level": 5, "displayName": "Netherite", "color": "#555555", "builtIn": true }
  ]
}

blocks.json — Require the copper tier to mine lapis ore:

{
  "overrides": [
    { "target": "minecraft:lapis_ore", "type": "block", "requiredTier": "copper" },
    { "target": "minecraft:deepslate_lapis_ore", "type": "block", "requiredTier": "copper" }
  ]
}

For Modpack Developers

BetterHarvestLevel is built specifically for modpack developers who need granular control over mining progression. Ship your tier and override configs with your modpack — no end-user configuration needed. The layered config system means you can organize overrides per-mod and easily add or remove mod-specific files as your modpack evolves.

Ченджлог

2.0.0+neoforge-262Релиз26.2 · 5 июля 2026 г.

Changelog

v2.0.0

  • Full rewrite, covering Forge/Fabric 1.20.1, Fabric/NeoForge 1.21.1, and Fabric/NeoForge 26.1.x and 26.2
  • On Fabric 26.2, Jade must be pinned to 26.2.8+fabric or older; 26.2.9+fabric rewrote the harvest tool API
  • Block overrides now work in both directions, raising or lowering a block's harvest requirement instead of only tightening it
  • Tool overrides can empower a tool, not just restrict it, and bare hands are handled through a reserved hand tier instead of ad-hoc special-casing
  • Enforcement moved to the harvest check event on NeoForge and Forge; Fabric uses two small mixins (player and item stack), and the old mixin set is gone
  • Resolved rules now sync to clients on join and on reload, so multiplayer prediction and tooltips match the server
  • Jade shows the modified harvest requirements (required-tool icon and harvestability check), including custom tier icons via iconItem
  • Added /bhl info, /bhl check, and /bhl reload commands; reload re-resolves tag, mod, and regex overrides and re-syncs all clients, fixing the old reload bug

Known limitations

  • Block overrides cannot gate tools whose tier the mod cannot derive: modded tools that carry a minecraft:tool data component but are not vanilla TieredItem and have no tools.json override fall back to vanilla behavior. Add an explicit tools.json override for that tool to work around this. Plain items with no tool component at all are treated as a bare hand.
  • On Forge 1.20.1 only, Jade's harvestability checkmark follows vanilla for blocks whose requirement BHL changed; the required-tool icon and actual enforcement are correct
  • On 26.x, swords have no deniesDrops rule so they abstain to vanilla for block overrides; give them a tools.json tier if you need them gated
  • tiers.json files generated by pre-port 2.0 test builds lack the copper tier; delete the file once so it regenerates

v1.1.0

  • Ores can no longer be mined with any sufficiently-tiered tool: vanilla's tool-type check (mineable/* tags) is preserved, BHL only tightens the tier requirement on top of it (#3)
  • Tools that aren't vanilla TieredItem (Tinkers' Construct etc.) are no longer locked to "cannot mine" — they defer to vanilla unless given a tier in tools.json (#2)
  • tools.json overrides now apply to any item, not just vanilla tiered tools
  • The wrong-tool mining speed penalty no longer hits unknown tools or the empty hand, which should unstick fake-player automation like Workers (#4)
  • The Jade tooltip checkmark now reflects actual harvestability instead of a tier-only estimate
  • Tier names that aren't defined in tiers.json are logged once instead of silently allowing mining
2.0.0+neoforge-261Релиз26.1, 26.1.1, 26.1.2 · 5 июля 2026 г.

Changelog

v2.0.0

  • Full rewrite, covering Forge/Fabric 1.20.1, Fabric/NeoForge 1.21.1, and Fabric/NeoForge 26.1.x and 26.2
  • On Fabric 26.2, Jade must be pinned to 26.2.8+fabric or older; 26.2.9+fabric rewrote the harvest tool API
  • Block overrides now work in both directions, raising or lowering a block's harvest requirement instead of only tightening it
  • Tool overrides can empower a tool, not just restrict it, and bare hands are handled through a reserved hand tier instead of ad-hoc special-casing
  • Enforcement moved to the harvest check event on NeoForge and Forge; Fabric uses two small mixins (player and item stack), and the old mixin set is gone
  • Resolved rules now sync to clients on join and on reload, so multiplayer prediction and tooltips match the server
  • Jade shows the modified harvest requirements (required-tool icon and harvestability check), including custom tier icons via iconItem
  • Added /bhl info, /bhl check, and /bhl reload commands; reload re-resolves tag, mod, and regex overrides and re-syncs all clients, fixing the old reload bug

Known limitations

  • Block overrides cannot gate tools whose tier the mod cannot derive: modded tools that carry a minecraft:tool data component but are not vanilla TieredItem and have no tools.json override fall back to vanilla behavior. Add an explicit tools.json override for that tool to work around this. Plain items with no tool component at all are treated as a bare hand.
  • On Forge 1.20.1 only, Jade's harvestability checkmark follows vanilla for blocks whose requirement BHL changed; the required-tool icon and actual enforcement are correct
  • On 26.x, swords have no deniesDrops rule so they abstain to vanilla for block overrides; give them a tools.json tier if you need them gated
  • tiers.json files generated by pre-port 2.0 test builds lack the copper tier; delete the file once so it regenerates

v1.1.0

  • Ores can no longer be mined with any sufficiently-tiered tool: vanilla's tool-type check (mineable/* tags) is preserved, BHL only tightens the tier requirement on top of it (#3)
  • Tools that aren't vanilla TieredItem (Tinkers' Construct etc.) are no longer locked to "cannot mine" — they defer to vanilla unless given a tier in tools.json (#2)
  • tools.json overrides now apply to any item, not just vanilla tiered tools
  • The wrong-tool mining speed penalty no longer hits unknown tools or the empty hand, which should unstick fake-player automation like Workers (#4)
  • The Jade tooltip checkmark now reflects actual harvestability instead of a tier-only estimate
  • Tier names that aren't defined in tiers.json are logged once instead of silently allowing mining
2.0.0+neoforge-1211Релиз1.21.1 · 5 июля 2026 г.

Changelog

v2.0.0

  • Full rewrite, covering Forge/Fabric 1.20.1, Fabric/NeoForge 1.21.1, and Fabric/NeoForge 26.1.x and 26.2
  • On Fabric 26.2, Jade must be pinned to 26.2.8+fabric or older; 26.2.9+fabric rewrote the harvest tool API
  • Block overrides now work in both directions, raising or lowering a block's harvest requirement instead of only tightening it
  • Tool overrides can empower a tool, not just restrict it, and bare hands are handled through a reserved hand tier instead of ad-hoc special-casing
  • Enforcement moved to the harvest check event on NeoForge and Forge; Fabric uses two small mixins (player and item stack), and the old mixin set is gone
  • Resolved rules now sync to clients on join and on reload, so multiplayer prediction and tooltips match the server
  • Jade shows the modified harvest requirements (required-tool icon and harvestability check), including custom tier icons via iconItem
  • Added /bhl info, /bhl check, and /bhl reload commands; reload re-resolves tag, mod, and regex overrides and re-syncs all clients, fixing the old reload bug

Known limitations

  • Block overrides cannot gate tools whose tier the mod cannot derive: modded tools that carry a minecraft:tool data component but are not vanilla TieredItem and have no tools.json override fall back to vanilla behavior. Add an explicit tools.json override for that tool to work around this. Plain items with no tool component at all are treated as a bare hand.
  • On Forge 1.20.1 only, Jade's harvestability checkmark follows vanilla for blocks whose requirement BHL changed; the required-tool icon and actual enforcement are correct
  • On 26.x, swords have no deniesDrops rule so they abstain to vanilla for block overrides; give them a tools.json tier if you need them gated
  • tiers.json files generated by pre-port 2.0 test builds lack the copper tier; delete the file once so it regenerates

v1.1.0

  • Ores can no longer be mined with any sufficiently-tiered tool: vanilla's tool-type check (mineable/* tags) is preserved, BHL only tightens the tier requirement on top of it (#3)
  • Tools that aren't vanilla TieredItem (Tinkers' Construct etc.) are no longer locked to "cannot mine" — they defer to vanilla unless given a tier in tools.json (#2)
  • tools.json overrides now apply to any item, not just vanilla tiered tools
  • The wrong-tool mining speed penalty no longer hits unknown tools or the empty hand, which should unstick fake-player automation like Workers (#4)
  • The Jade tooltip checkmark now reflects actual harvestability instead of a tier-only estimate
  • Tier names that aren't defined in tiers.json are logged once instead of silently allowing mining
2.0.0+forge-1201Релиз1.20.1 · 5 июля 2026 г.

Changelog

v2.0.0

  • Full rewrite, covering Forge/Fabric 1.20.1, Fabric/NeoForge 1.21.1, and Fabric/NeoForge 26.1.x and 26.2
  • On Fabric 26.2, Jade must be pinned to 26.2.8+fabric or older; 26.2.9+fabric rewrote the harvest tool API
  • Block overrides now work in both directions, raising or lowering a block's harvest requirement instead of only tightening it
  • Tool overrides can empower a tool, not just restrict it, and bare hands are handled through a reserved hand tier instead of ad-hoc special-casing
  • Enforcement moved to the harvest check event on NeoForge and Forge; Fabric uses two small mixins (player and item stack), and the old mixin set is gone
  • Resolved rules now sync to clients on join and on reload, so multiplayer prediction and tooltips match the server
  • Jade shows the modified harvest requirements (required-tool icon and harvestability check), including custom tier icons via iconItem
  • Added /bhl info, /bhl check, and /bhl reload commands; reload re-resolves tag, mod, and regex overrides and re-syncs all clients, fixing the old reload bug

Known limitations

  • Block overrides cannot gate tools whose tier the mod cannot derive: modded tools that carry a minecraft:tool data component but are not vanilla TieredItem and have no tools.json override fall back to vanilla behavior. Add an explicit tools.json override for that tool to work around this. Plain items with no tool component at all are treated as a bare hand.
  • On Forge 1.20.1 only, Jade's harvestability checkmark follows vanilla for blocks whose requirement BHL changed; the required-tool icon and actual enforcement are correct
  • On 26.x, swords have no deniesDrops rule so they abstain to vanilla for block overrides; give them a tools.json tier if you need them gated
  • tiers.json files generated by pre-port 2.0 test builds lack the copper tier; delete the file once so it regenerates

v1.1.0

  • Ores can no longer be mined with any sufficiently-tiered tool: vanilla's tool-type check (mineable/* tags) is preserved, BHL only tightens the tier requirement on top of it (#3)
  • Tools that aren't vanilla TieredItem (Tinkers' Construct etc.) are no longer locked to "cannot mine" — they defer to vanilla unless given a tier in tools.json (#2)
  • tools.json overrides now apply to any item, not just vanilla tiered tools
  • The wrong-tool mining speed penalty no longer hits unknown tools or the empty hand, which should unstick fake-player automation like Workers (#4)
  • The Jade tooltip checkmark now reflects actual harvestability instead of a tier-only estimate
  • Tier names that aren't defined in tiers.json are logged once instead of silently allowing mining
2.0.0+fabric-262Релиз26.2 · 5 июля 2026 г.

Changelog

v2.0.0

  • Full rewrite, covering Forge/Fabric 1.20.1, Fabric/NeoForge 1.21.1, and Fabric/NeoForge 26.1.x and 26.2
  • On Fabric 26.2, Jade must be pinned to 26.2.8+fabric or older; 26.2.9+fabric rewrote the harvest tool API
  • Block overrides now work in both directions, raising or lowering a block's harvest requirement instead of only tightening it
  • Tool overrides can empower a tool, not just restrict it, and bare hands are handled through a reserved hand tier instead of ad-hoc special-casing
  • Enforcement moved to the harvest check event on NeoForge and Forge; Fabric uses two small mixins (player and item stack), and the old mixin set is gone
  • Resolved rules now sync to clients on join and on reload, so multiplayer prediction and tooltips match the server
  • Jade shows the modified harvest requirements (required-tool icon and harvestability check), including custom tier icons via iconItem
  • Added /bhl info, /bhl check, and /bhl reload commands; reload re-resolves tag, mod, and regex overrides and re-syncs all clients, fixing the old reload bug

Known limitations

  • Block overrides cannot gate tools whose tier the mod cannot derive: modded tools that carry a minecraft:tool data component but are not vanilla TieredItem and have no tools.json override fall back to vanilla behavior. Add an explicit tools.json override for that tool to work around this. Plain items with no tool component at all are treated as a bare hand.
  • On Forge 1.20.1 only, Jade's harvestability checkmark follows vanilla for blocks whose requirement BHL changed; the required-tool icon and actual enforcement are correct
  • On 26.x, swords have no deniesDrops rule so they abstain to vanilla for block overrides; give them a tools.json tier if you need them gated
  • tiers.json files generated by pre-port 2.0 test builds lack the copper tier; delete the file once so it regenerates

v1.1.0

  • Ores can no longer be mined with any sufficiently-tiered tool: vanilla's tool-type check (mineable/* tags) is preserved, BHL only tightens the tier requirement on top of it (#3)
  • Tools that aren't vanilla TieredItem (Tinkers' Construct etc.) are no longer locked to "cannot mine" — they defer to vanilla unless given a tier in tools.json (#2)
  • tools.json overrides now apply to any item, not just vanilla tiered tools
  • The wrong-tool mining speed penalty no longer hits unknown tools or the empty hand, which should unstick fake-player automation like Workers (#4)
  • The Jade tooltip checkmark now reflects actual harvestability instead of a tier-only estimate
  • Tier names that aren't defined in tiers.json are logged once instead of silently allowing mining
2.0.0+fabric-261Релиз26.1, 26.1.1, 26.1.2 · 5 июля 2026 г.

Changelog

v2.0.0

  • Full rewrite, covering Forge/Fabric 1.20.1, Fabric/NeoForge 1.21.1, and Fabric/NeoForge 26.1.x and 26.2
  • On Fabric 26.2, Jade must be pinned to 26.2.8+fabric or older; 26.2.9+fabric rewrote the harvest tool API
  • Block overrides now work in both directions, raising or lowering a block's harvest requirement instead of only tightening it
  • Tool overrides can empower a tool, not just restrict it, and bare hands are handled through a reserved hand tier instead of ad-hoc special-casing
  • Enforcement moved to the harvest check event on NeoForge and Forge; Fabric uses two small mixins (player and item stack), and the old mixin set is gone
  • Resolved rules now sync to clients on join and on reload, so multiplayer prediction and tooltips match the server
  • Jade shows the modified harvest requirements (required-tool icon and harvestability check), including custom tier icons via iconItem
  • Added /bhl info, /bhl check, and /bhl reload commands; reload re-resolves tag, mod, and regex overrides and re-syncs all clients, fixing the old reload bug

Known limitations

  • Block overrides cannot gate tools whose tier the mod cannot derive: modded tools that carry a minecraft:tool data component but are not vanilla TieredItem and have no tools.json override fall back to vanilla behavior. Add an explicit tools.json override for that tool to work around this. Plain items with no tool component at all are treated as a bare hand.
  • On Forge 1.20.1 only, Jade's harvestability checkmark follows vanilla for blocks whose requirement BHL changed; the required-tool icon and actual enforcement are correct
  • On 26.x, swords have no deniesDrops rule so they abstain to vanilla for block overrides; give them a tools.json tier if you need them gated
  • tiers.json files generated by pre-port 2.0 test builds lack the copper tier; delete the file once so it regenerates

v1.1.0

  • Ores can no longer be mined with any sufficiently-tiered tool: vanilla's tool-type check (mineable/* tags) is preserved, BHL only tightens the tier requirement on top of it (#3)
  • Tools that aren't vanilla TieredItem (Tinkers' Construct etc.) are no longer locked to "cannot mine" — they defer to vanilla unless given a tier in tools.json (#2)
  • tools.json overrides now apply to any item, not just vanilla tiered tools
  • The wrong-tool mining speed penalty no longer hits unknown tools or the empty hand, which should unstick fake-player automation like Workers (#4)
  • The Jade tooltip checkmark now reflects actual harvestability instead of a tier-only estimate
  • Tier names that aren't defined in tiers.json are logged once instead of silently allowing mining
2.0.0+fabric-1211Релиз1.21.1 · 5 июля 2026 г.

Changelog

v2.0.0

  • Full rewrite, covering Forge/Fabric 1.20.1, Fabric/NeoForge 1.21.1, and Fabric/NeoForge 26.1.x and 26.2
  • On Fabric 26.2, Jade must be pinned to 26.2.8+fabric or older; 26.2.9+fabric rewrote the harvest tool API
  • Block overrides now work in both directions, raising or lowering a block's harvest requirement instead of only tightening it
  • Tool overrides can empower a tool, not just restrict it, and bare hands are handled through a reserved hand tier instead of ad-hoc special-casing
  • Enforcement moved to the harvest check event on NeoForge and Forge; Fabric uses two small mixins (player and item stack), and the old mixin set is gone
  • Resolved rules now sync to clients on join and on reload, so multiplayer prediction and tooltips match the server
  • Jade shows the modified harvest requirements (required-tool icon and harvestability check), including custom tier icons via iconItem
  • Added /bhl info, /bhl check, and /bhl reload commands; reload re-resolves tag, mod, and regex overrides and re-syncs all clients, fixing the old reload bug

Known limitations

  • Block overrides cannot gate tools whose tier the mod cannot derive: modded tools that carry a minecraft:tool data component but are not vanilla TieredItem and have no tools.json override fall back to vanilla behavior. Add an explicit tools.json override for that tool to work around this. Plain items with no tool component at all are treated as a bare hand.
  • On Forge 1.20.1 only, Jade's harvestability checkmark follows vanilla for blocks whose requirement BHL changed; the required-tool icon and actual enforcement are correct
  • On 26.x, swords have no deniesDrops rule so they abstain to vanilla for block overrides; give them a tools.json tier if you need them gated
  • tiers.json files generated by pre-port 2.0 test builds lack the copper tier; delete the file once so it regenerates

v1.1.0

  • Ores can no longer be mined with any sufficiently-tiered tool: vanilla's tool-type check (mineable/* tags) is preserved, BHL only tightens the tier requirement on top of it (#3)
  • Tools that aren't vanilla TieredItem (Tinkers' Construct etc.) are no longer locked to "cannot mine" — they defer to vanilla unless given a tier in tools.json (#2)
  • tools.json overrides now apply to any item, not just vanilla tiered tools
  • The wrong-tool mining speed penalty no longer hits unknown tools or the empty hand, which should unstick fake-player automation like Workers (#4)
  • The Jade tooltip checkmark now reflects actual harvestability instead of a tier-only estimate
  • Tier names that aren't defined in tiers.json are logged once instead of silently allowing mining
2.0.0+fabric-1201Релиз1.20.1 · 5 июля 2026 г.

Changelog

v2.0.0

  • Full rewrite, covering Forge/Fabric 1.20.1, Fabric/NeoForge 1.21.1, and Fabric/NeoForge 26.1.x and 26.2
  • On Fabric 26.2, Jade must be pinned to 26.2.8+fabric or older; 26.2.9+fabric rewrote the harvest tool API
  • Block overrides now work in both directions, raising or lowering a block's harvest requirement instead of only tightening it
  • Tool overrides can empower a tool, not just restrict it, and bare hands are handled through a reserved hand tier instead of ad-hoc special-casing
  • Enforcement moved to the harvest check event on NeoForge and Forge; Fabric uses two small mixins (player and item stack), and the old mixin set is gone
  • Resolved rules now sync to clients on join and on reload, so multiplayer prediction and tooltips match the server
  • Jade shows the modified harvest requirements (required-tool icon and harvestability check), including custom tier icons via iconItem
  • Added /bhl info, /bhl check, and /bhl reload commands; reload re-resolves tag, mod, and regex overrides and re-syncs all clients, fixing the old reload bug

Known limitations

  • Block overrides cannot gate tools whose tier the mod cannot derive: modded tools that carry a minecraft:tool data component but are not vanilla TieredItem and have no tools.json override fall back to vanilla behavior. Add an explicit tools.json override for that tool to work around this. Plain items with no tool component at all are treated as a bare hand.
  • On Forge 1.20.1 only, Jade's harvestability checkmark follows vanilla for blocks whose requirement BHL changed; the required-tool icon and actual enforcement are correct
  • On 26.x, swords have no deniesDrops rule so they abstain to vanilla for block overrides; give them a tools.json tier if you need them gated
  • tiers.json files generated by pre-port 2.0 test builds lack the copper tier; delete the file once so it regenerates

v1.1.0

  • Ores can no longer be mined with any sufficiently-tiered tool: vanilla's tool-type check (mineable/* tags) is preserved, BHL only tightens the tier requirement on top of it (#3)
  • Tools that aren't vanilla TieredItem (Tinkers' Construct etc.) are no longer locked to "cannot mine" — they defer to vanilla unless given a tier in tools.json (#2)
  • tools.json overrides now apply to any item, not just vanilla tiered tools
  • The wrong-tool mining speed penalty no longer hits unknown tools or the empty hand, which should unstick fake-player automation like Workers (#4)
  • The Jade tooltip checkmark now reflects actual harvestability instead of a tier-only estimate
  • Tier names that aren't defined in tiers.json are logged once instead of silently allowing mining

Комментарии

Загружаем…