diff --git a/Spigot-API-Patches/Enderman.teleportRandomly.patch b/Spigot-API-Patches/Enderman.teleportRandomly.patch
new file mode 100644
index 0000000000..c935253606
--- /dev/null
+++ b/Spigot-API-Patches/Enderman.teleportRandomly.patch
@@ -0,0 +1,30 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Aikar <aikar@aikar.co>
+Date: Mon, 30 Apr 2018 13:29:15 -0400
+Subject: [PATCH] Enderman.teleportRandomly()
+
+Ability to trigger the vanilla "teleport randomly" mechanic of an enderman.
+
+diff --git a/src/main/java/org/bukkit/entity/Enderman.java b/src/main/java/org/bukkit/entity/Enderman.java
+index f537f697..52afa6f9 100644
+--- a/src/main/java/org/bukkit/entity/Enderman.java
++++ b/src/main/java/org/bukkit/entity/Enderman.java
+@@ -0,0 +0,0 @@ import org.bukkit.material.MaterialData;
+  */
+ public interface Enderman extends Monster {
+ 
++    // Paper start
++    /**
++     * Try to teleport the enderman to a random nearby location.
++     *
++     * May conditionally fail if the random location was not valid
++     * @return If the enderman teleported successfully or not
++     */
++
++    public boolean teleportRandomly();
++    // Paper end
++
+     /**
+      * Get the id and data of the block that the Enderman is carrying.
+      *
+--
\ No newline at end of file
diff --git a/Spigot-Server-Patches/Enderman.teleportRandomly.patch b/Spigot-Server-Patches/Enderman.teleportRandomly.patch
new file mode 100644
index 0000000000..21cf2b9d21
--- /dev/null
+++ b/Spigot-Server-Patches/Enderman.teleportRandomly.patch
@@ -0,0 +1,32 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Aikar <aikar@aikar.co>
+Date: Mon, 30 Apr 2018 13:29:44 -0400
+Subject: [PATCH] Enderman.teleportRandomly()
+
+Ability to trigger the vanilla "teleport randomly" mechanic of an enderman.
+
+diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
+index 7b1fb6b7b..3038a9e2b 100644
+--- a/src/main/java/net/minecraft/server/EntityEnderman.java
++++ b/src/main/java/net/minecraft/server/EntityEnderman.java
+@@ -0,0 +0,0 @@ public class EntityEnderman extends EntityMonster {
+         super.M();
+     }
+ 
++    public boolean teleportRandomly() { return dm(); } // Paper - OBFHELPER
+     protected boolean dm() {
+         double d0 = this.locX + (this.random.nextDouble() - 0.5D) * 64.0D;
+         double d1 = this.locY + (double) (this.random.nextInt(64) - 32);
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
+index f602c2313..7e6af5d02 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
+@@ -0,0 +0,0 @@ public class CraftEnderman extends CraftMonster implements Enderman {
+         super(server, entity);
+     }
+ 
++    @Override public boolean teleportRandomly() { return getHandle().teleportRandomly(); } // Paper
+     public MaterialData getCarriedMaterial() {
+         IBlockData blockData = getHandle().getCarried();
+         return (blockData == null) ? Material.AIR.getNewData((byte) 0) : CraftMagicNumbers.getMaterial(blockData.getBlock()).getNewData((byte) blockData.getBlock().toLegacyData(blockData));
+--
\ No newline at end of file