Skip to content

Strider walking slowly / choppy #305

Open

Description

@CaptainKeyboard

Description

When riding on a strider and walking with a "Fungus on a stick" the strider moves extremly slow and choppy, rendering it useless.

Recreated this issue multiple times. Happens (even) with only sable installed.

Game Log

https://mclo.gs/Zf6R6ZX

Activity

  1. CaptainKeyboard commented on Apr 20, 2026

    @CaptainKeyboard
    Author

    Happens in multiple versions of NeoForge. Tested on 21.1.219 & 21.1.227

  2. jasoncookie99 commented on Apr 24, 2026

    @jasoncookie99

    Any interm fixes for this by chance?

  3. Inonedn commented on May 8, 2026

    @Inonedn

    I've been having this same issue too

  4. diesaifa commented on Jul 15, 2026

    @diesaifa

    bumping this

  5. ramen-cat-coder commented on Aug 7, 2026

    @ramen-cat-coder

    Same issue here on NeoForge 1.21.1

  6. Kalin-moe commented on Aug 10, 2026

    @Kalin-moe

    I've been having this same issue too.

    sable:2.0.3
    Neoforge:21.1.243
    mc:1.21.1

  7. impaladin87 commented on Sep 6, 2026

    @impaladin87

    having this issue too, it seems like they attempt to swim in lava rather than walking on top of it?

    sable 2.0.5
    neoforge 21.1.248

  8. ThePotatoArchivist commented on Sep 6, 2026

    @ThePotatoArchivist

    It seems LivingEntity#canStandOnFluid gets ignored for some reason, this also breaks skis from my mod Nether Archives

  9. Nobodiiiii commented on Sep 29, 2026

    @Nobodiiiii

    I can confirm this still occurs with Sable 2.0.5 on Minecraft 1.21.1. Vanilla striders move very slowly and stutter whenever moving through lava, regardless of how movement is initiated.

    Minimal reproduction confirmed: I reproduced the issue with only Create, Create: Aeronautics, and their required dependencies, including Sable. No unrelated mods, including Create: Biotech, are needed to trigger it.

    Likely root cause: the wrong fluid argument is checked.

    In Minecraft 1.21.1, LiquidBlock.getCollisionShape calls:

    context.canStandOnFluid(
        level.getFluidState(pos.above()),
        state.getFluidState()
    )

    The first argument is the fluid above the block; the second is the supporting fluid. Vanilla EntityCollisionContext.canStandOnFluid applies the entity's capability predicate to the second argument.

    However, Sable 2.0.5's TheFasterEntityCollisionContext checks the first argument:

    livingEntity.canStandOnFluid(fluidState)

    For a lava source block with air above it, this tests the empty fluid state rather than lava. The check returns false, causing the lava block to provide no collision support.

    Without that support, the strider can sink and repeatedly enter the buoyancy branch in vanilla Strider.floatStrider(), which halves its velocity:

    this.setDeltaMovement(
        this.getDeltaMovement().scale(0.5).add(0.0, 0.05, 0.0)
    );

    This is consistent with the reported slowdown and stuttering, and could also explain the other fluid-walking entities mentioned above.

    Suggested correction: check the supporting fluid, matching vanilla's argument contract:

    @Override
    public boolean canStandOnFluid(
            final FluidState above,
            final FluidState support) {
        return this.entity instanceof final LivingEntity livingEntity
            && livingEntity.canStandOnFluid(support)
            && !above.getType().isSame(support.getType());
    }

    The minimal-environment reproduction is confirmed, and the argument mismatch is verified against the linked 2.0.5 source. The proposed correction has not yet been runtime-tested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions