Skip to content

Configuration

Settings live in config/skippingstone-common.json5, created the first time the game starts. The file is written with comments for every setting. Changes apply the next time the game or server starts.

Servers

The server's file decides what a throw does. Each player's own file decides how their power meter looks, so keep the meter settings the same for everyone on a server.

Stone

stone.tiers is the list of stone qualities, worst first. Each has a name and a velocityMultiplier. The number of entries is the number of qualities. The default is:

json5
tiers: [
  { name: "chipped", velocityMultiplier: 0.7 },
  { name: "rough", velocityMultiplier: 0.9 },
  { name: "smooth", velocityMultiplier: 1.1 },
  { name: "perfect", velocityMultiplier: 1.35 },
]

Names are shown through the translation key stone_tier.skippingstone.<name>, or as written if there is no translation. Textures follow the position in the list, so a fifth quality uses the first texture.

Pickup

KeyWhat it does
blockConversionsWhich blocks give stones, and the block each turns into. Keys and values are block ids.
defaultTierWeightsQuality odds, one weight per quality, used where no biome entry matches.
biomeTierWeightsA list of { biomeTag, weights }. The first entry whose biome tag contains the block's biome is used.
json5
biomeTierWeights: [
  { biomeTag: "minecraft:is_beach", weights: [30, 35, 25, 10] },
  { biomeTag: "minecraft:is_river", weights: [35, 35, 22, 8] },
  { biomeTag: "minecraft:is_ocean", weights: [40, 34, 20, 6] },
]

Weights are relative. [30, 35, 25, 10] means a 10% chance of a Perfect stone.

Meter

KeyDefaultRangeWhat it does
periodTicks504 – 1200Ticks for the indicator to sweep across the bar and back.
greenWidthLowestTier0.30 – 1Green zone width for the lowest tier, as a fraction of the bar. Narrows linearly to greenWidthHighestTier.
greenWidthHighestTier0.080 – 1Green zone width for the highest tier, as a fraction of the bar.
yellowWidth0.150 – 0.5Width of each yellow zone (one on either side of green), as a fraction of the bar. Shrunk automatically if the bands would not fit.
greenPowerFactor10 – 10Power factor for a release in the green zone.
yellowPowerFactor0.550 – 10Power factor for a release in a yellow zone.
releaseToleranceTicks40 – 100How far (in ticks) the client's reported charge time may differ from the server's before the server uses its own.

Throw

These are the numbers in the formula.

KeyDefaultRangeWhat it does
idealAngle10-90 – 90Release pitch with full angle efficiency. Minecraft pitch: negative looks up, positive looks down. Slightly downward keeps the throw flat; aiming up lobs the stone so it hits the water too steeply.
angleTolerance250.1 – 180Degrees away from idealAngle at which angle efficiency reaches 0.
baseDistance60 – 1000BASE_DISTANCE_CONSTANT: first skip distance, in blocks, for power 1, velocity multiplier 1 and a perfect angle.
decayRate0.80.01 – 0.99Each skip travels this fraction of the previous one.
minSkipThreshold0.50.001 – 1000Skips shorter than this many blocks are not counted and end the throw.

Records

KeyDefaultRangeWhat it does
scoreboardObjectivestrueKeep scoreboard objectives 'skippingstone.best_skips' and 'skippingstone.best_distance' (whole blocks) updated with every player's best. Show one with e.g. /scoreboard objectives setdisplay sidebar skippingstone.best_skips

Released under the MIT License. Stone skipping behaviour adapted from Hezaerd/Skipping-Stones (MIT).