File Details
HyToolVariants-0.0.1BETA.jar
- B
- Mar 21, 2026
- 401.72 KB
- 77
- Early Access
File Name
HyToolVariants-0.0.1BETA.jar
Supported Versions
- Early Access
[0.0.1BETA] — 2026-03
First public beta — initial CurseForge release; everything below is new functionality for this build (no prior published version).
Added
- HyToolVariants — Server plugin that rolls random stat variants on tools (pickaxes, hatchets, shovels, hoes, shears), with per-item persistent BSON metadata. Rolls draw from the default variant pool below (and optional tool special effects such as Vein Mining).
- ECS block-break pipeline —
BreakBlockEventhandled via an entity system for reliable player/world resolution (vein-style tooling). - Vein Mining — Connected ore-only breaking with configurable globs/tiers; optional debug logging for troubleshooting.
- Night Vision (tools) — While holding a tool with the Night Vision roll: PostFx bloom, optional player dynamic light, configurable
nightVisionThreshold(default 0.0),nightVisionLightRadiusincluding-1for max-radius / torch-style behavior, and periodic refresh with network-entity resolution for light updates. - Tooltips — DynamicTooltipsLib integration when installed (rating, multipliers, etc.); weapon-era variant ids blacklisted in defaults so combat-only lines (e.g. Stun) do not appear on tools.
- Commands & UI —
/htvconfig menu,/htv reload, reroll/apply/dump; debug mode and timestamped logs undermods/HyToolVariants/Logs/. - Optional integrations — RPGLeveling: Exp Boost can award block-break XP when that mod is present. HyArmourVariants / HyWeaponVariants: optional yield so another mod can own combat pipelines when installed.
- Design — Tool-focused build: combat on-hit systems and weapon-centric variants are off/blacklisted by default. BSON meta root may use legacy
hyweaponvariantsfor compatibility with earlier experiments.
Default variant pool (variantPool)
Default config.json5 entries — each roll picks stat ids with weights; variantCount is 0–3 stats per tool. category limits which tool types can receive that stat.
| ID | Label (UI) | Category |
|---|---|---|
Reach |
Block Reach | (any tool) |
BranchMine |
Branch Mine | PICKAXE_ONLY |
MiningSpeed |
Mining Speed | PICKAXE_ONLY |
StripMine |
Strip Mine | PICKAXE_ONLY |
OreYield |
Fortune | PICKAXE_ONLY |
OreSense |
Ore Sense | PICKAXE_ONLY |
AutoSmelt |
Auto Smelt Chance | PICKAXE_ONLY |
TreeFeller |
Tree Feller | HATCHET_ONLY |
Lumberjack |
Lumberjack | HATCHET_ONLY |
BranchDig |
Branch Dig | SHOVEL_ONLY |
Gardener |
Gardener | HOE_ONLY |
BranchTiller |
Branch Tiller | HOE_ONLY |
ShearSpeed |
Shear Speed | SHEARS_ONLY |
DurabilityBonus |
Durability | (any tool) |
Unbreaking |
Unbreaking | (any tool) |
Efficiency |
Efficiency | (any tool) |
MovementSpeed |
Move Speed | (any tool) |
NightVision |
Night Vision | (any tool) |
ExpBoost |
Exp Boost | (any tool) |
Tool special effects (default)
Separate from multId multipliers: stored as tool special effect metadata (see toolSpecialEffects in config / defaults in code).
| ID | Label | Notes (default) |
|---|---|---|
VeinMining |
Vein Mining | Pickaxes (*Pickaxe* glob); ore-only chain break; tiered max blocks / ore globs configurable |
Config files & layout
All paths are relative to the server working directory (typically the folder that contains mods/).
| Path | Role |
|---|---|
mods/HyToolVariants/config.json5 |
Main config — JSON5 (comments & trailing commas). Written on first run from JAR defaults if missing; edit by hand or via /htv UI (with permission). /htv reload re-reads this file. |
mods/HyToolVariants/Languages/{code}.json5 |
Strings for UI/tooltips per language (e.g. en.json5, de.json5). The language field in main config selects which file to load. Bundled languages are extracted from the JAR into this folder when a file is missing. |
mods/HyToolVariants/Logs/debug_YYYY-MM-DD_HH-mm-ss.log |
Debug log file — created when debug: true (async writer; one file per server start). Not auto-deleted. |
Packaged in the mod JAR (not edited on disk unless you unpack the jar):
- Default
HyToolVariants/config.json5(and fallbackHyToolVariants/config/HyToolVariants.json5) — seeds the live config when none exists. Common/UI/Custom/HyToolVariants/HwvConfig.ui— layout for the in-game config page (asset pack).
Legacy locations (migrated automatically into mods/HyToolVariants/ when the new file does not exist yet):
mods/HyToolVariants_HyToolVariants/config.json5- Plugin data directory:
config/HyToolVariants.json5, orHyToolVariants/config.json5, ormods/HyToolVariants/config/HyToolVariants.json5
Metadata: item variant data is stored under the BSON key set by metaRoot in config (default hyweaponvariants for save compatibility).
Commands
| Command | Aliases | Description |
|---|---|---|
/htv |
/hytoolvariants |
Same command — opens the config UI when allowed (see permissions). |
/htv (no args) |
— | Opens the in-game config UI (checks help then menu permissions). |
/htv help |
/htv ? |
Help text and version line. |
/htv version |
/htv ver, /htv v |
Mod version string. |
/htv reload |
— | Reload mods/HyToolVariants/config.json5 from disk (no restart). |
/htv menu |
/htv ui |
Open the config UI. |
/htv reroll |
/htv rr |
(Hold eligible tool) Strip current variant and roll a new one. |
/htv apply |
/htv force |
(Hold tool) Force-apply a variant if the item is eligible but missing one. |
/htv dump |
— | (Hold item) Print variant metadata and debug info to chat. |
/htv rolltest |
/htv rt |
Bulk simulation of random rolls (optional [count] [itemId]); does not create items. |
Players only; the command is not intended for the console in this build.
Permissions
Strings are defined in code as hyweaponvariants.command.<node> (legacy prefix retained for LuckPerms / existing grants).
| Permission node | Grants |
|---|---|
hyweaponvariants.command.help |
/htv gate for help / version; also required before the UI opens from bare /htv. |
hyweaponvariants.command.menu |
Open the config UI (/htv, /htv menu, /htv ui). |
hyweaponvariants.command.reload |
/htv reload |
hyweaponvariants.command.reroll |
/htv reroll |
hyweaponvariants.command.apply |
/htv apply, /htv force |
hyweaponvariants.command.dump |
/htv dump, /htv rolltest |
hyweaponvariants.command.edit |
Config UI actions that save or change persisted settings (buttons that write config). |
Without a permission plugin (no Player.hasPermission(String)): help-level checks allow everyone. Nodes that modify server config, open the menu, change held items, or dump debug (reload, menu, reroll, apply, dump, edit) fall back to operator via isOp() when that method exists; otherwise they are denied.