
Like your horse? Now you won't teleport without it. Also works on all rideable mobs!
Your mount follows you through every teleport — commands, plugins, portals, you name it. Stay seated, arrive together.
Starting from version 1.1.1, the mod can use LuckPerms to configure permissions.
All 14 vanilla rideable entities:

/tpwithme info - Operator (gamemaster) - Show current config values in chat.
/tpwithme reload - Operator (gamemaster) - Reload `tpwithme.json` from disk.
File: `config/tpwithme.json`
Created automatically on first launch. Use `/tpwithme reload` to apply changes without restarting.
json
{
"enabled": true,
"useLuckPerms": false,
"crossDimensionalTeleport": true,
"enderPearlTeleport": true,
"chorusFruitTeleport": true,
"respectOpenPartiesAndClaims": true,
"requireSaddle": true,
"checkSafety": true,
"applyTeleportProtection": true,
"protectionDurationTicks": 60,
"safetySearchRadius": 2,
"blacklistedEntities": []
}
`enabled`
Master switch. Set to `false` to disable the mod entirely without removing it.
Default: `true`
`useLuckPerms`
Enable LuckPerms permission checks when the `luckperms` mod is installed.
If `true` and LuckPerms is present, TpWithMe checks:
- `tpwithme.use`
- `tpwithme.crossdimensionalteleport`
- `tpwithme.enderpearlteleport`
- `tpwithme.chorusfruitteleport`
When LuckPerms is active, players must be explicitly granted these permissions.
If LuckPerms is not installed, TpWithMe automatically falls back to allowing everyone to use the mod.
Default: `false`
`crossDimensionalTeleport`
Allow mounts to follow through dimension changes (Overworld ↔ Nether ↔ End).
When `false`, only same-dimension teleports carry the mount.
Default: `true`
`enderPearlTeleport`
Allow ender pearls to take your mount along.
When `false`, mounted ender pearls use vanilla behaviour and only teleport the player.
Default: `true`
`chorusFruitTeleport`
Allow chorus fruit to take your mount along.
When `false`, mounted chorus fruit uses vanilla behaviour and only teleports the player.
Default: `true`
`respectOpenPartiesAndClaims`
Respect Open Parties and Claims claim protection when it is installed.
TpWithMe checks claim access before moving the mount into a claim. For mounted chorus fruit it respects OPAC's chorus fruit exception option. For mounted ender pearls it respects OPAC's configured Ender Pearls entity barrier group when present.
Disable this only if you deliberately want TpWithMe to ignore OPAC claim protection.
Default: `true`
`requireSaddle`
Only teleport a mount if it has the appropriate control item equipped:
- Saddle — Horse, Donkey, Mule, Skeleton Horse, Zombie Horse, Camel, Camel Husk, Pig, Strider, Nautilus, Zombie Nautilus
- Harness — Happy Ghast
- Exempt — Llama and Trader Llama (lead-controlled, no saddle slot)
Default: `true`
`checkSafety`
Before teleporting, check whether there is enough room at the destination for the mount to stand upright and the rider to sit on top.
If the space is too small, the mount stays behind and a message is sent to the player.
Uses direct block collision shape iteration — reliable even for large mounts like Happy Ghast (4×4×4 blocks).
Default: `true`
`applyTeleportProtection`
Apply **Resistance V** to the mount for `protectionDurationTicks` ticks immediately after teleporting. This prevents death from suffocation or fall damage during the transition.
Default: `true`
`protectionDurationTicks`
Duration of the post-teleport damage immunity in game ticks (20 ticks = 1 second).
Default: `60` (3 seconds)
`safetySearchRadius`
When `checkSafety` is `true` and the exact destination is blocked, the mod searches for a safe nearby position within this radius (in blocks).
Search priority: Y upward first (most natural), then X/Z horizontal offsets, then Y downward.
Set to `0` to disable the search and only check the exact destination.
Default: `2`
`blacklistedEntities`
A list of entity type IDs that must **never** teleport, regardless of other settings.
Use namespaced IDs, e.g. `"minecraft:horse"` or `"mymod:custom_mount"`.
Default: `[]` (empty)
TpWithMe only uses LuckPerms when both conditions are true:
If either condition is false, everyone can use TpWithMe and no permission plugin is required.
If LuckPerms is active, missing permission nodes default to `false`.
Permission nodes
`tpwithme.use` - Allow a player to take their mount along during teleports
`tpwithme.crossdimensionalteleport` - Allow a player to take their mount across dimensions
`tpwithme.enderpearlteleport` - Allow a player to take their mount along with an ender pearl
`tpwithme.chorusfruitteleport` - Allow a player to take their mount along when eating chorus fruit
Example commands
/lp group default permission set tpwithme.use true
/lp group default permission set tpwithme.crossdimensionalteleport false
/lp group default permission set tpwithme.enderpearlteleport false
/lp group default permission set tpwithme.chorusfruitteleport false
/lp group vip permission set tpwithme.use true
/lp group vip permission set tpwithme.crossdimensionalteleport true
/lp group vip permission set tpwithme.enderpearlteleport true
/lp group vip permission set tpwithme.chorusfruitteleport true
`/tpwithme info`
`/tpwithme info` now also shows whether LuckPerms is:
TpWithMe uses a Mixin on `ServerPlayer#teleport(TeleportTransition)`:

Other mods
If another mod forcibly dismounts the player before TpWithMe's HEAD injection, the vehicle cannot be captured. The RemountWatcher may recover this in some cases. Please open an issue if you encounter a conflict.
Feel free to join my Minecraft server to test my mods: play.swordfishbe.eu