promotional bannermobile promotional banner

Redstone Dynamometer

The target block measures accuracy. This one measures force. Falls, explosions and projectile hits become analog redstone 0-15, on curves you can actually build with.

Redstone Dynamometer

Original concept by u/SuperMario69Kraft on Reddit (r/minecraftsuggestions) - https://www.reddit.com/r/minecraftsuggestions/comments/1u0eybs/. Built by BeansNToast.

A blast-resistant sensor block that converts FORCE into analog redstone. The target block's sibling: the target block measures accuracy, the dynamometer measures force. One block, three senses, documented 0-15 curves.

The block

  • Redstone Dynamometer - obsidian-armored body, slime-cushioned top, gauge dial on every side. Obsidian-grade blast resistance (1200): it never breaks from explosions. Mines quickly with any pickaxe and always drops itself (it is a redstone component, not a wall block).
  • Recipe (the OP's, including his post-thread revision): top row 3 obsidian; middle row iron ingot, redstone dust, iron ingot; bottom row slimeball, echo shard, slimeball. The echo shard replaced the original bottom-center iron ingot at the author's request (2026-06-10) for the sculk-tech kinship.
  • Found in the Redstone Blocks creative tab.

The three senses

Each detection emits a redstone pulse (default 10 ticks). Output is pressure-plate-shaped: weak power to all six neighbors, strong power into the block below, and a comparator reads the measured value for the pulse duration. Like the vanilla target block, a second hit during a pulse updates the strength but does not extend the window.

1. Fall impact (top face)

Anything landing on top: players, mobs, armor stands, falling sand, anvils. The sensor reads RAW fall distance, not fall damage, so damage modifiers cannot skew it - and it reads through ONE cover block (carpet, slab, or a full block) sitting on the sensor, exactly as the original suggestion asks. Cover it in slime or hay: same reading.

signal = clamp(floor(fallDistance / 2), 1, 15)

Fall distance Signal
0-3 blocks 1
6 blocks 3
10 blocks 5
20 blocks 10
30+ blocks 15

2. Explosion (anywhere near it)

Any blast within power x 2 blocks of the sensor takes a reading. The signal encodes the explosion's POWER, independent of distance:

signal = clamp(round(explosionPower x 2), 1, 15)

Source Power Signal
Ghast fireball / wither skull 1 2
Creeper 3 6
TNT 4 8
Bed / respawn anchor (wrong dimension) 5 10
Charged creeper / end crystal 6 12
Wither spawn 7 14

The dynamometer itself always survives the blast.

3. Projectile (any face)

A projectile striking any face produces a velocity-based force estimate:

  • Arrows and bolts: signal = clamp(ceil(impactSpeed x 2), 1, 15) - the same speed-times-base-damage formula vanilla arrows use. Full-charge bow is 6, crossbow bolt is 7. (Reads kinetic energy: Power enchantments do not change the reading.)
  • Trident: flat 8, its vanilla impact damage.
  • Everything else (snowballs, eggs, pearls, fireballs, wind charges): clamp(ceil(impactSpeed x 2), 1, 15); a snowball reads about 3. A fireball that explodes also produces a separate explosion reading.

Config

config/dynamometer.json (generated on first run):

Key Default Meaning
pulse_ticks 10 output pulse length in game ticks
fall_enabled / explosion_enabled / projectile_enabled true per-sense toggles
fall_divisor 2.0 fall curve: floor(fallDistance / divisor)
explosion_factor 2.0 explosion curve: round(power x factor)
explosion_range_multiplier 2.0 reading range: power x multiplier blocks
projectile_velocity_factor 2.0 projectile curve: ceil(speed x factor)
log_detections false INFO-log every reading (contraption debugging)

Version support

Two jars, one per version line (this repo's standard policy):

Jar Targets Toolchain Tested on
Dynamometer-1.0.0.jar 1.21.11 Java 21 (class 65), remap Loom, Mojang mappings Fabric dedicated server 1.21.11
Dynamometer-1.0.0-26.1.jar 26.1 - 26.1.2 Java 25 (class 69), non-remap Loom Fabric dedicated server 26.1.2

The 1.21 jar declares 1.21.11 only: the mod hooks Entity.checkFallDamage and ServerExplosion.explode, whose shapes changed inside the 1.21.x line (fall distance went float to double at 1.21.5), so earlier patches are not claimed without a test pass. Requires Fabric API on both lines.

Honest gaps

  • Projectile sensing is code-verified only. Fall and explosion sensing were proven headless on a dedicated server (falling block lands -> signal fires and lights an adjacent lamp; TNT 3 blocks away -> reading fires and the block survives). Nobody has shot the block in a real client yet.
  • Not visually verified in a graphical client (textures, dial, creative tab placement).
  • Comparator read-out is implemented via the standard analog-output hook but was not exercised headless; the lamp test proves the weak-power path.
  • Author approval: GRANTED 2026-06-10, verbatim quote in docs/permission.md; the echo-shard recipe revision in this build is his own request.

Building

# 1.21.x jar
cd fabric
$env:JAVA_HOME = 'C:\Program Files\Java\jdk-25'; .\gradlew build --no-daemon

# 26.1.x jar
cd fabric26
$env:JAVA_HOME = 'C:\Program Files\Java\jdk-25'; .\gradlew build --no-daemon

textures.py regenerates the 16x16 art into both resource trees plus preview.png; gen_logo.py renders logo.png and the in-jar icons.

License

MIT (see LICENSE). All art is original.

The Redstone Dynamometer Team

profile avatar
  • 1
    Followers
  • 16
    Projects
  • 705
    Downloads

Any request I will fulfill.

More from BeansNToastView all

  • Shear Shrooms project image

    Shear Shrooms

    • 28
    • Mods

    Give your giant mushrooms a haircut.

    • 28
    • June 12, 2026
    • Mods
    • +3
  • Echo Shards project image

    Echo Shards

    • 10
    • Bukkit Plugins

    Surround a music disc with 8 echo shards in a crafting table to duplicate it - a thematic, near-renewable way to copy rare music discs. Covers every disc automatically.

    • 10
    • June 11, 2026
    • Bukkit Plugins
  • Inventory Shuffle project image

    Inventory Shuffle

    • 16
    • Mods

    A client-side Fabric mod that scrambles every inventory/container screen's layout the moment it opens - slots, panel, and buttons jump to random spots, but your clicks still land. Cosmetic and client-only. Configurable. Minecraft 1.21.x (Fabric).

    • 16
    • June 2, 2026
    • Mods
  • Enchanting Rework project image

    Enchanting Rework

    • 6
    • Bukkit Plugins

    A deterministic enchanting-table GUI replacing vanilla's random gamble. Forge enchanted books from ingredient blueprints (not consumed), then apply them to gear for a flat level cost. Reusable books. Paper/Spigot/Bukkit/Purpur 1.21.1-1.21.11.

    • 6
    • June 2, 2026
    • Bukkit Plugins
  • Shear Shrooms project image

    Shear Shrooms

    • 28
    • Mods

    Give your giant mushrooms a haircut.

    • 28
    • June 12, 2026
    • Mods
    • +3
  • Echo Shards project image

    Echo Shards

    • 10
    • Bukkit Plugins

    Surround a music disc with 8 echo shards in a crafting table to duplicate it - a thematic, near-renewable way to copy rare music discs. Covers every disc automatically.

    • 10
    • June 11, 2026
    • Bukkit Plugins
  • Inventory Shuffle project image

    Inventory Shuffle

    • 16
    • Mods

    A client-side Fabric mod that scrambles every inventory/container screen's layout the moment it opens - slots, panel, and buttons jump to random spots, but your clicks still land. Cosmetic and client-only. Configurable. Minecraft 1.21.x (Fabric).

    • 16
    • June 2, 2026
    • Mods
  • Enchanting Rework project image

    Enchanting Rework

    • 6
    • Bukkit Plugins

    A deterministic enchanting-table GUI replacing vanilla's random gamble. Forge enchanted books from ingredient blueprints (not consumed), then apply them to gear for a flat level cost. Reusable books. Paper/Spigot/Bukkit/Purpur 1.21.1-1.21.11.

    • 6
    • June 2, 2026
    • Bukkit Plugins