Перейти к содержимому
Mineforgian

Player Motion

Explosion-based library that uses subtick timing to ensure that only one player is pushed by the blast without any side effects.

Загрузки
5K
Подписчики
54
Обновлён
19 августа 2025 г.
Лицензия
MIT

Опубликован 25 марта 2024 г.

Player Motion

Player Motion is an explosion-based library that uses subtick timing to ensure that only one player is pushed by the blast without any side effects.

Credit to @BigPapi13 for making the original library this is inspired by. This project aims to succeed it.

Credit to nedraw from the minecraft commands discord for the ender crystal methodology & implementation this is now based on.

Credit to @SuperSwordTW for helping make significant math performance & stability improvements.

How to use

Launching a player where in a specific direction

scoreboard players set $strength player_motion.api.launch 10000
function player_motion:api/launch_looking
  • $strength represents motion in blocks/tick, scaled by 10000. A strength of 10000 will push the player at 1 block/tick
  • The facing direction in which the function is called is the direction the player will be launched
  • Only the player executing the command will receive a motion update

Launching a player with xyz vector

scoreboard players set $x player_motion.api.launch 500
scoreboard players set $y player_motion.api.launch 12000
scoreboard players set $z player_motion.api.launch -3125
function player_motion:api/launch_xyz
  • $x, $y, and $z are the strength in blocks/tick to launch the player in the x, y, and z directions
  • As before, only the player executing the command will be launched

*Note: These functions are additive and will apply motion in addition to existing motion rather than directly setting it to whatever input you send

Limitations + Known Issues

While this library is likely the closest we've gotten to perfect player motion manipulation, there are some limitations worth mentioning:

  • MSPT Inconsistency: Even though the motion applied is constant, the rate at which the server and client update may vary, and calling motion updates per tick may result in inconsistencies when these variations become too large. For consistent results, the library should only be used for instantaneous bursts of motion, and continuous forces should instead rely on riding-based methods or levitation, depending on the context.

If you know any possible solutions or would like to help fixing these problems, please let me know!

Центр версий

8 версий
  • Релиз43 КБ
  • Релиз31 КБ
  • Релиз31 КБ
  • Альфа31 КБ
  • Релиз31 КБ
  • Релиз20 КБ
  • Релиз24 КБ
  • Релиз44 КБ

Ченджлог

1.4.3Релиз1.21.6, 1.21.7, 1.21.8 · 8 июля 2025 г.

Also updated pack format to 1.21.7

1.4.2Релиз1.21.5, 1.21.6, 1.21.7 · 5 октября 2024 г.

When using launch_xyz with a negative y score a much higher value was required to achieve results because of faulty math, this is now fixed. Credit to nedraw.

1.4.1Альфа24w37a · 15 сентября 2024 г.

[DISCLAIMER, applying motion frequently/every tick causes the player to get stuck and sometimes hear explosion noises, due to desync issues and teleport command behavior. Please upvote MC-276722, MC-276704]

1.3.1Релиз1.21 · 25 июля 2024 г.
1.3.0Релиз1.21 · 16 июля 2024 г.

Huge shoutout to nedraw from the minecraft commands discord for doing most of the heavy lifting for this release!

  • Completely resolves incompatibilities with (terrible) server modding platforms like Paper.
  • Much lower complexity; easier to maintain/update!
  • Much more efficient; easier on server TPS!
  • Works on peaceful mode!
  • Now cancels launch function if the player is on a mount.
  • Near-perfect launch power parity with the previous method.
1.1.0Релиз1.20.5, 1.20.6 · 22 апреля 2024 г.

Credit to Evtema3

Комментарии

Загружаем…