ModsFinder
OH

open-hands-lib

by ThrowNewError

Open Hands Lib is a library that lets each hand track its own attack and mining cooldown, letting content mods choose which hand acts.

FabricNeoForgeClient and serverAll rights reserved1.21.1

What it does

The library gives each hand its own cooldown timer for melee attacks and for block breaking, so a weapon in one hand does not share a timer with the other. Hand selection is handled through the ResolveAttackHandEvent and ResolveMiningHandEvent events, which let a content mod decide which hand should attack or break a block, for example by alternating hands or picking the better weapon. Damage enchantments, weapon effects, tool harvest checks, speed and durability all follow the hand the library resolves.

Open Hands Lib runs on both client and server, so the server and every player need it. It is published for Fabric and NeoForge for 1.21.1 only, and it depends on Fabric Language Kotlin on Fabric and Kotlin for Forge on NeoForge. Duelist's Glove requires it. The code is not open source and is released under All rights reserved.

Key features

  1. Independent hand cooldowns

    Each hand keeps its own cooldown, and an attack lands only when the swing has reached full charge.

  2. Attack hand resolution

    The ResolveAttackHandEvent lets a content mod pick which hand strikes, such as alternating hands or choosing the stronger weapon.

  3. Mining hand resolution

    The ResolveMiningHandEvent chooses the hand for breaking blocks, and a per-block session cache holds that choice until breaking stops.

  4. Custom mining conditions

    registerMiningEnableCondition lets a mod define when the mining logic activates, and combat activation can be registered the same way.

Compatibility

Latest build for each game version and loader.

No stable releases
Every published file is a beta or alpha build.
1.21.10.1.10.1.1
ReleaseBetaAlphaNot available

Only full game releases are shown. This mod publishes no snapshot builds.

Requirements

Dependencies declared by the latest file for each loader.

Required 1

Fabric Language KotlinThis is a mod that enables usage of the Kotlin programming language for Fabric mods.
Required

Required by 1 mod

Use cases

Who it’s for: Developers of content mods that handle weapons, tools or block breaking who need per-hand timers and hand selection. Players use it through the mods that depend on it, such as Duelist's Glove.

How it compares

Full comparison

Hand Swap is a Fabric client-side only mod released under All rights reserved and published for 1.21 – 1.21.11, so it changes nothing on the server. Fast Tool Switching is open source under the MIT License, runs on client and server on Fabric and NeoForge, and is published for 1.21 – 26.1. TorchPlaceMod is a NeoForge mod for 1.21.4 – 1.21.5 that is optional on either side and released under the MIT License.

ModLoadersGame versionsEnvironmentUpdated
open-hands-libFabric and NeoForge1.21.1Client and server2026-06-28
Hand SwapFabric1.21 – 1.21.11Client-side only2026-04-19
Fast Tool SwitchingFabric and NeoForge1.21 – 26.1Client and server2026-03-25
TorchPlaceModNeoForge1.21.4 – 1.21.5Client or server, optional2025-04-29

Questions

Does Duelist's Glove need Open Hands Lib?

Yes. Duelist's Glove requires Open Hands Lib, so the library must be installed alongside it.

Do the server and players both need Open Hands Lib?

Yes. Installation covers the server and each player's game.

Which loaders does Open Hands Lib support?

Fabric and NeoForge, for 1.21.1 only. On Fabric it needs Fabric Language Kotlin, and on NeoForge it needs Kotlin for Forge.

In the catalog

open-hands-lib is one of 3,514 Library mods on ModsFinder, and one of 2,348 Library mods for Fabric. 32,366 mods support Minecraft 1.21.1.

More from ThrowNewError

All projects

Similar mods

What the author says

Per-hand melee cooldowns and mining for NeoForge content mods. A NeoForge library that splits attack and mining logic across main hand and off hand. Each hand gets its own cooldown timer; your content mod decides when the system is active and which hand to use.
ThrowNewError, on the Modrinth page

Official listing

Owner
ThrowNewError
Published
2026-06-08
Updated on Modrinth
2026-06-28
Facts verified
2026-10-15

Tags