NoFall

[!] Inferential
NoFall detector — accumulates downward distance while airborne, flags when a player lands from a damaging fall (fallAccum > threshold 8.0) without a hurt signal. Also catches ground-spoof-over-air and Verus stair-step. Tier = NEUTRAL (was DEFINITIVE; demoted — KitPvP arena-drop / water / ladder / chunk-load glitches avoid fall damage legitly, so a lone NoFall alert must not mark a player suspect).
id: noFallDamage  ·  class: NoFallDamageCheck  ·  group: Movement

What it detects

NoFall detector — accumulates downward distance while airborne, flags when a player lands from a damaging fall (fallAccum > threshold 8.0) without a hurt signal. Also catches ground-spoof-over-air and Verus stair-step. Tier = NEUTRAL (was DEFINITIVE; demoted — KitPvP arena-drop / water / ladder / chunk-load glitches avoid fall damage legitly, so a lone NoFall alert must not mark a player suspect).

Observer signature

Landed-no-hurt on airborne->grounded touchdown (groundedProxy or feet reaching a surface): wasAirborne && fallAccum > threshold && !soft && tick - lastHurtTick > 2; level = max(1, ceil((fallAccum-3)*2)). Spoof: onGroundPacket && fallAccum > threshold && !isSolidBelow(0.5). Stair: ~-2.0 then ~0 dy cycles >=3. No-damage burst (wind charge) re-bases fallAccum at the impulse's own start and only descent below that floor accumulates. Mace smash (1.21): a confirmed descending mace attack (AttackEvent, swing + victim hurt) with fallAccum > 1.5 re-bases fallAccum to 0, like vanilla's fall-height reset -- the hurtless smash landing is judged on the ~2-block post-smash descent only.

False-positive guards

  • Vehicle/gliding exempt
  • Teleport exempt (tick - lastTeleportTick < 5)
  • Soft-land exemption (WATER/SLIME_BLOCK/HAY_BLOCK/COBWEB)
  • Hurt signal resets fallAccum and exempts the next landing
  • No-damage burst re-base: descent above the wind-charge launch floor never accumulates (a fall accrued below it still counts)
  • Chunk not loaded -> skip
  • Mace-smash re-base: a confirmed descending mace attack (swing + victim hurt, fallAccum > 1.5) re-bases the accumulator -- a swing with no confirmed hit clears nothing (the evasion twin is covered by cheat-nofall-mace-evade)

Configuration

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

FieldDefault
enabledtrue
setbackVL4.0
decay1.0
threshold8.0
fall accum bar8.0 blocks
soft blockswater/slime/hay/cobweb

Source

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