Does anyone know how to make this better?

I tried to make sliding mechanic in minecraft, but when player is looking in direction smaller than 0 (on the ground) it start to be very bouncy and the player starts to jump up and down. Do you know how to fix this?

Code: execute as @a[scores={run_movement=1..,sneak_movement=1..,slide=1..}] run scoreboard players remove @s slide 3 execute as @a[scores={run_movement=1..,sneak_movement=1..,slide=2..30}] at @s run tp @s ^ ^0 ^0.2 execute as @a[limit=1,scores={slide=2..30}] at @s unless block ~ ~ ~ air unless block ~ ~ ~ yellow_stained_glass_pane run tp @s ~ ~0.3 ~ scoreboard players add @a[scores={slide=..30,sneak_movement=0}] slide 1 scoreboard players add @a[scores={slide=..60,fly_movement=1..}] slide 2 scoreboard players remove @a[scores={slide=30..,fly_movement=0}] slide 1 scoreboard players set @a[scores={slide=30..,fly_movement=0}] slide 1 scoreboard players set @a run_movement 0 scoreboard players set @a sneak_movement 0 scoreboard players set @a fly_movement 0

scoreboards: run_movement = sprint_one_cm sneak_movement = custom:sneak.time fly_movement = fall_one_cm slide = dummy

Continue to help post