Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Creators
Details
SkeletonToast's Ender Pearl Rework
Sometimes, especially in survival multiplayer settings, ender pearls end up being a little too useful. Players can use them to instantly escape fights (often undetectably if their enemy isn't prepared), appear and attack without warning, and even use in stasis chambers to cover infinite distances and escape from even the best prisons. Ender Pearl Rework addresses these issues, and directly changes the functionality of ender pearls.
With this pack installed, Ender Pearls are no longer throwable items; instead, they're changed to consumables that simply teleport the player upon use. Using an ender pearl will teleport the player a short distance forward (or stop them if they run into a solid block), and cause a trail of particles to follow them for a couple seconds after teleporting. This means that Ender Pearls can now ONLY be used to cover short distances, and teleporting players can be tracked slightly more easily after teleporting. As a result of this, ender pearl "stasis chambers" no longer function, because ender pearls no longer exist as throwable entities.
This pack was designed for a server of mine, but I imagine many others could find some use in it. Many larger-scale servers have recently begun disabling ender pearls entirely, and this is meant to be a low-intensity vanilla alternative to that option. Code is basically only executed when a pearl is actually thrown, so it's extremely lightweight, and won't have any impact on your world/server performance.
This datapack can be enabled and disabled at any time without any risk, and without even restarting the world/server. Ender pearl functionality will seamlessly change with no hiccups whenever the datapack is toggled. Side functionality, such as Ender Pearls spawning endermites, still remains.
The default teleport distance can be changed by executing the following command:
scoreboard players set $default ss_epr.teleport_distance <value>
By default, <value> is set to 40, which translates to roughly 20 blocks of distance. This value can also be changed on a per-player basis, allowing for compatibility/modification from other datapacks, but developers be aware, the per-player value resets at the end of each tick.
Enjoy!


