SprintHack

[X] Definitive
SprintHack — three sprint-metadata-should-be-canceled sub-flags sharing one VL pool (Grim SprintG/B/D, plan §4 #4-5): Sprint(Water) feet-in-water + head-above + not-swimming; Sprint(Sneak) sprinting while sneaking; Sprint(Blind) sprinting while Blind. All three are mutually exclusive with sprint in vanilla.
id: sprintHack  ·  class: SprintHackCheck  ·  group: Movement

What it detects

SprintHack — three sprint-metadata-should-be-canceled sub-flags sharing one VL pool (Grim SprintG/B/D, plan §4 #4-5): Sprint(Water) feet-in-water + head-above + not-swimming; Sprint(Sneak) sprinting while sneaking; Sprint(Blind) sprinting while Blind. All three are mutually exclusive with sprint in vanilla.

Observer signature

Sprint(Water): isLiquidAt(feet) && !isLiquidAt(head@eyeHeight) && !swimming. Sprint(Sneak): tp.sneaking. Sprint(Blind): blindness tracked from EffectSignal (isBlind, extended in the mixin). Flags at streak >= threshold (3); label reflects the active sub-flag (Blind > Water > Sneak priority).

False-positive guards

  • Vehicle/gliding exempt
  • Hurt exempt (tick - hurtTick < 3, resets)
  • Teleport exempt (tick - lastTeleportTick < 10, resets)
  • Server-lag pause (8 / 3 windows)
  • Sprint(Water) chunk-unloaded → isLiquidAt fail-opens to false (no flag)
  • Sprint(Blind) fail-open: a player already Blind at join isn't re-sent the add (rare)

Configuration

Defaults (editable in-game via the YACL config screen or /ius config):

FieldDefault
enabledtrue
setbackVL5.0
decay0.5
threshold3.0
sustain>= threshold (3) ticks
hurt window3 ticks
sub-flagsWater / Sneak / Blind (one VL pool)

Source

src/main/kotlin/dev/iustitia/checks/movement/SprintHackCheck.kt  ↗