# Nonrecursive Movement Formulas

Other languages:

Since arithmetico-geometric sequences have explicit formulas, we can build non-recursive functions to calculate simple but useful results, such as the height of the player on any given tick, or the distance of a jump in terms of the initial speed and duration.

Definitions:

• ${\textstyle v_{0}}$ is the player's initial speed (speed on ${\displaystyle t_{0}}$, before jumping)
• ${\textstyle t}$ is the number of ticks considered (ex: the jump duration on flat ground is t=12, see Tiers)
• ${\textstyle J}$ is the "jump bonus" (0.3274 for sprintjump, 0.291924 for strafed sprintjump, 0.1 for 45° no-sprint jump...)
• ${\textstyle M}$ is the movement multiplier after jumping (1.3 for 45° sprint, 1.274 for normal sprint, 1.0 for no-sprint 45°...)

## Vertical Movement (jump) [1.8]

Vertical speed after jumping (${\displaystyle t\geq 6}$)

${\textstyle {\textrm {V}}_{Y}(t)=4\times 0.98^{t-5}-3.92}$

Relative height after jumping (${\displaystyle t\geq 6}$)

${\textstyle {\textrm {Y}}_{rel}(t)={\underset {\textrm {jumppeak}}{\underbrace {197.4-217\times 0.98^{5}} }}+200(0.98-0.98^{t-4})-3.92(t-5)}$

For ${\textstyle t<6}$, see below.

## Vertical Movement (jump) [1.9+]

Vertical speed after jumping (${\displaystyle t\geq 1}$)

${\textstyle {\textrm {V}}_{Y}(t)=0.42\times 0.98^{t-1}+4\times 0.98^{t}-3.92}$

Relative height after jumping (${\displaystyle t\geq 0}$)

${\textstyle {\textrm {Y}}_{rel}(t)=217\times (1-0.98^{t})-3.92t}$

## Horizontal Movement (instant jump)

Assuming the player was airborne before jumping.

Horizontal speed after sprintjumping (${\displaystyle t\geq 2}$)

${\textstyle {\textrm {V}}_{H}(v_{0},t)={\frac {0.02M}{0.09}}+0.6\times 0.91^{t}\times \left(v_{0}+{\frac {J}{0.91}}-{\frac {0.02M}{0.6\times 0.91\times 0.09}}\right)}$

Sprintjump distance (${\displaystyle t\geq 2}$)

${\textstyle {\textrm {Dist}}(v_{0},t)=1.91v_{0}+J+{\frac {0.02M}{0.09}}(t-2)+{\frac {0.6\times 0.91^{2}}{0.09}}\times (1-0.91^{t-2})\times \left(v_{0}+{\frac {J}{0.91}}-{\frac {0.02M}{0.6\times 0.91\times 0.09}}\right)}$

Note: These formulas are accurate for most values of ${\displaystyle v_{0}}$, but some negative values can wind up activating the speed threshold and reset the player's speed at some point, thus rendering these formulas inaccurate.

## Horizontal Movement (delayed jump)

Assuming the player is on ground before jumping (at least 1 tick since landing).

Horizontal speed after sprintjumping (${\displaystyle t\geq 2}$)

${\textstyle {\textrm {V}}_{H}^{*}(v_{0},t)={\frac {0.02M}{0.09}}+0.6\times 0.91^{t}\times \left(0.6v_{0}+{\frac {J}{0.91}}-{\frac {0.02M}{0.6\times 0.91\times 0.09}}\right)}$

Sprintjump distance (${\displaystyle t\geq 2}$)

${\textstyle {\textrm {Dist}}^{*}(v_{0},t)=1.546v_{0}+J+{\frac {0.02M}{0.09}}(t-2)+{\frac {0.6\times 0.91^{2}}{0.09}}\times (1-0.91^{t-2})\times \left(0.6v_{0}+{\frac {J}{0.91}}-{\frac {0.02M}{0.6\times 0.91\times 0.09}}\right)}$

Horizontal speed after ${\displaystyle n}$ consecutive sprintjumps on a momentum of period ${\textstyle T}$ (${\displaystyle n\geq 0}$, ${\displaystyle T\geq 2}$).
${\textstyle {\textrm {V}}_{H}^{\,n}(v_{0},T,n)=\left(0.6\times 0.91^{T}\right)^{n}v_{0}+\left(0.6\times 0.91^{T-1}J+0.02M{\frac {1-0.91^{T-1}}{0.09}}\right){\frac {1-(0.6\times 0.91^{T})^{n}}{1-0.6\times 0.91^{T}}}}$
If the first sprintjump is delayed, multiply ${\textstyle v_{0}}$ by 0.6