Appearance
The math
There is no fixed maximum distance. Every throw comes from a formula: your aim, your timing and the stone's quality go in, and a list of skip distances comes out. The stone then skips exactly those distances in the world.
Try it

13 skips · 38.3 blocks
first skip 8.1 blocks
| Power factor | 1 | from the meter zone |
| Angle efficiency | 100% | 1 − |10 − 10| ÷ 25 |
| Base velocity | 1.350 | 1 × 1.35 |
| First skip | 8.1 | 1.350 × 1.00 × 6 |
| Every next skip | × 0.8 | until a skip would be shorter than 0.5 blocks |
The formula
1. Power comes from where you released on the power meter: 1 in the green, 0.55 in the yellow, 0 in the red.
2. Angle efficiency measures how close your aim was to ideal:
angleEfficiency = 1 − clamp(|idealAngle − pitch| ÷ angleTolerance, 0, 1)The ideal pitch (idealAngle) is 10°, slightly downward. Efficiency drops to zero 25° (angleTolerance) away from it.
3. Base velocity combines your power with the stone's speed:
baseVelocity = power × qualityVelocityMultiplier(stone)4. The first skip, where baseDistance is 6 blocks:
firstSkip = baseVelocity × angleEfficiency × baseDistance5. Every skip after that is decayRate (0.8) times the one before. The throw ends when the next skip would be shorter than minSkipThreshold (0.5 blocks). The number of skips and the total distance fall out of that:
skip[i] = firstSkip × decayRate^i while skip[i] > minSkipThresholdA red release, or an aim 25° or more off, gives a first skip of zero, so the stone sinks on contact.
From numbers to motion
The stone is a real projectile with normal gravity and air drag. Each time it touches the water, the mod works out the launch speed that will land it exactly one skip distance further on. Longer skips launch higher, so a good throw starts with big arcs that shrink into quick little hops.
Every number above is a setting. See Configuration.