Redstone Dynamometer

Quick rating

Redstone Dynamometer

No reviews yet

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.

Tech
Energy & Resource Systems
Automation & Processing
Redstone Improvements
Mod Loaders
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Required
Server Required

About

Project Details

Type
Mod
License
MIT License
Latest Version
Dynamometer-1.0.0.jar
Authors
CurseForge
Modrinth

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

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.

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

How hard did it hit? Vanilla redstone can tell you THAT something happened. The Redstone Dynamometer tells you how hard.

Build damage-test dummies that score your traps. Explosion minigames that know a charged creeper from a firecracker. An elytra landing pad that rates your crash. A mob grinder that sorts drops by drop height. One block reads all of it and answers in analog redstone.

Three senses, one gauge:

  • Fall impact. Anything that lands on top gets read, players, mobs, anvils, falling sand. Two blocks of fall per signal level, 30 blocks pegs the needle at 15. And it reads RAW fall distance, so you can cover the sensor with slime, hay or carpet and the measurement stays honest. It even reads through one full cover block, so your pressure floor can look like a normal floor.
  • Explosions. Any blast nearby registers its true power: creeper 6, TNT 8, charged creeper 12, wither spawn 14. The block itself is obsidian-grade and never breaks, park it next to the crater and read the blast that made it.
  • Projectiles. Shoot any face and the impact speed becomes signal: full bow shot 6, crossbow bolt 7, trident 8, snowball 3. The harder it flies, the higher it reads.

Every reading is a clean pulse, weak power on all sides, strong power down through the floor, and a comparator holds the measured value for the whole pulse. Vanilla-friendly semantics: if you know pressure plates and target blocks, you already know how to wire this.

The numbers above are the defaults. Pulse length, per-sense toggles and all three curve factors live in one small config file.

Crafted the way the original suggestion drew it, right down to the author's own revision: three obsidian over iron and redstone, slime cushions on the corners, and an echo shard at the heart, because force sensing is cousin to sculk tech.

Two downloads, one per version line: a 1.21.11 jar and a 26.1.x jar. Fabric API required.

The numbers

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.

Fall impact

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

Explosion

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.

Projectile

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)

Screenshots

Gallery

  • Dynamometer Block
    Dynamometer Block

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Total Downloads
CurseForge
<1,000
Modrinth
<1,000
Last Updated
CurseForge
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works