Skip to content

yzl210/HarvestLevelTweaker

Repository files navigation

Harvest Level Tweaker

A minecraft forge mod that allows modpack makers to add new harvest levels with custom names.

Currently supports:

Table of Contents

Add New Harvest Levels

Go to folder config/hltweaker/levels
Create a json file with level id as the name.
For example: cobalt.json will create a new level with id cobalt
Json Format:

{
  "color": "<color>",
  "level": <level>, 
  "icons": {
    "<mineable tag>": "<item id>",
    ...
  }
}
Field Type Default Value Description Example
color String "white" Color of the harvest level in hex format (prefix #) or color name "#0047ab" or "blue"
level Integer 0 Numerical tier of the harvest level for compatibility.
Does not affect the actual ordering of levels
5
icons Json Object {} Icons for the harvest level in "<mineable_tag>": "<item id>" format {"minecraft:mineable/pickaxe": "minecraft:stone_pickaxe"}

Example: cobalt.json:

{
  "color": "#0047ab",
  "icons": {
    "minecraft:mineable/pickaxe": "kubejs:cobalt_pickaxe",
    "minecraft:mineable/axe": "kubejs:cobalt_axe",
    "minecraft:mineable/shovel": "kubejs:cobalt_shovel",
    "minecraft:mineable/hoe": "kubejs:cobalt_hoe"
  }
}

This will create a new level with id cobalt
It can also be as simple as:

{}

Level Ordering

config/hltweaker/ordering.json controls which levels are better or worse than others.
This file will be automatically generated when launching the game if it does not exist.
Levels are ordered from worst to best.
You can also change the order of vanilla levels and levels from other mods, although levels from other mods won't be automatically added to this file.

Example: ordering.json:

[
  "minecraft:wood",
  "minecraft:gold",
  "minecraft:stone",
  "minecraft:iron",
  "minecraft:diamond",
  "hltweaker:cobalt",
  "minecraft:netherite",
  "somemod:somelevel"
]

Override Item Harvest Level and Harvest Type

Find the file config/hltweaker/item_harvest_level_overrides.json

Json Format:

{
  "<item id>": {
    "<mineable tag>": "<level id>"
  }
}
  • <item id>: Item id. Example: minecraft:stone
  • <mineable tag>: The mineable tag (required tool type). Example: minecraft:mineable/pickaxe
  • <level id>: Harvest level id (with namespace if it's not from this mod). Example: cobalt or minecraft:wood

Example item_harvest_level_overrides.json:

{
  "minecraft:golden_pickaxe": {
    "minecraft:mineable/pickaxe": "cobalt",
    "minecraft:mineable/axe": "minecraft:netherite"
  },
  "minecraft:netherite_pickaxe": {
    "minecraft:mineable/pickaxe": "minecraft:wood"
  }
}

This will remove all existing harvest types and level of stone pickaxe and netherite pickaxe.
Then set the harvest level of stone pickaxe to cobalt as a pickaxe and netherite when used as an axe.
And set the harvest level of netherite pickaxe to wood when used as a pickaxe.

Set Block Harvest Level

Create a datapack and add the blocks to tag:

  • Harvest Level Tweaker Levels: hltweaker:needs_<level id>_tool
  • Vanilla levels:
    • stone, iron, diamond: minecraft:needs_<level id>_tool
    • wood, gold, netherite: forge:needs_<level id>_tool

Example data/hltweaker/tags/blocks/needs_cobalt_tool.json:

{
  "values": [
    "#minecraft:stone",
    "kubejs:cobalt_block"
  ]
}

This will set all blocks under minecraft:stone tag and cobalt block to require cobalt level tools.
See more: https://minecraft.wiki/w/Tag

Localization and custom vanilla level names

  • Translation key for custom harvest level is text.hltweaker.level.<level id>
    Example: "text.hltweaker.level.cobalt": "Cobalt"
  • Translation key for tool type is text.hltweaker.tool.<mod namespace>.<tool type>
    Example: "text.hltweaker.tool.minecraft.pickaxe": "Pickaxe", "text.hltweaker.tool.paxelmod.paxel": "Paxel"
  • Translation key for vanilla harvest level is text.hltweaker.level.minecraft.<wood/gold/stone/iron/diamond/netherite>
    Example: "text.hltweaker.level.minecraft.wood": "This is Wood Level"

Client Config

Client config is located at config/hltweaker/client.toml
You can change the color of vanilla harvest levels in the config.
More details can be found in the config file.

Commands

/hltweaker levels - Show vanilla and Harvest Level Tweaker levels
/hltweaker levels all - Show all harvest levels that are registered in the game
/hltweaker overrides - Show item harvest level overrides

Set Tinker's Construct Material Level

In your datapack for tinker's construct, set the harvest level of the material to hltweaker:<level id>

About

Harvest Level Tweaker for Minecraft

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages