[ Français ]

IMPORTANT: Spigot Builds > #1521 currently have a bug which corrupts PortableHorses! Do *NOT* Use this plugin with spigot > build #1521

Portable Horses allows for players to store their steeds in their inventory. By removing the saddle from a horse or donkey, the animal will vanish, safely stored inside the saddle itself. by clicking the saddle on the ground again, the horse will respawn ready to ride exactly as you left it.

You could even store a donkey in a saddle in a donkey in a saddle (donkey-ception?)

NOTE: This plugin requires ProtocolLib


  • Pickup/Spawn your horse anytime / anywhere just by saddling it.
  • Option to store (or drop) Horses armor, and donkey's inventory.
  • Horse details are displayed on the saddle's lore for easy identification.
  • NO DATABASE - All data is stored in the saddle. There is no database or flatfile to worry about.
  • Can optionally require a special 'portable horse' saddle in order to function. Normal saddles will work as they used to.


Pour les utilisateur Français de ce plugin Voila une Video de "Miodo" (V 1.6.2)

Para los usuarios que hablan Español, aquí hay un tutorial por FeerBreezy.

Для русскоязычных пользователей видео от Rissman


All commands are under the main /portablehorses or /ph command

  • /portablehorses reloadconfig - reloads the config file.


  • portablehorses.saddle: allows players to save a horse to a saddle.
  • portablehorses.unsaddle: allows players to remove a saddle (picking up the horse).
  • portablehorses.spawn: allows players to spawn their horses
  • portablehorses.admin: allows the 'reloadconfig' command.


A fully commented config.yml can be found here

Source Code & Development Builds

Source code is available on Github

Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.

Portable Horses Development Builds

Auto Updater

This plugin has a built-in auto-updater, which connects to BukkitDev to check for updates. If you, for some reason, wish to disable this process, you can do so by setting 'auto-update' to 'false' or 'notify-only' in the plugins' settings file.

Other Plugins

  • ToughAnvils - Anvils that never break
  • Scribe - Transfer enchantments from items to books using an anvil
  • DigForDollars - Let's players earn money for mining.
  • PotatoBombs - Allows players to craft poisonous potatoes into devastating and hillarious magical landmines.
  • SalvageSmelter - Allows smelting unwanted tools/armor/anything into raw materials.
  • Autocrafter - Turns droppers into redstone powered crafting tables.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of MoarPizzaPls MoarPizzaPls Mar 02, 2015 at 14:41 UTC - 0 likes

    @metalhedd: Go

    I'm sorry for posting a link in the comments. I'm new to the community and I didn't know about the rule.

    Both of your points are correct, but I already fixed both issues. Saddles from previous versions no longer break anything and I added even more checks to prevent anything bad from happening. I also changed the storage system to store each horse in an individual file. It's still less scalable than storing all the data in a saddle, but it's good enough for my server.

  • Avatar of metalhedd metalhedd Mar 01, 2015 at 20:10 UTC - 0 likes

    @MoarPizzaPls: Go

    I was not trying to be passive aggressive, it's not my rule, it's bukkitdev's. you're not allowed to post downloads in comments, period. I'm not even allowed to post a download in the comments, the staff will remove it. (edit: apologies for misreading the code the first time around, I see how how the counter is persisted)

    You say you don't want to offer downloads of your plugin because it's not yours... did you consider that I don't want to offer downloads of your plugin, because it's not mine? I don't want this page to become a support thread for your unofficial modifications, nor do I want people to think that your plugin is representative of my work. You can either contribute your changes to the official github repo via pull request, or you can release a fork of PortableHorses, both of which are preferable to posting unofficial binaries in the comments here.

    As for the changes you've made, it appears that your plugin literally trashes any data saved by a previous version of PortableHorses. Have you attempted to spawn a horse that was saved in a saddle on a previous version? Your code no longer even attempts to parse the data in the lore, it just assumes the saddle is storing one of your IDs. That's irresponsible.

    The file based storage is an idea I rejected a long time ago simply because it doesn't scale (especially when you're saving the ENTIRE database on every write). Your 5ms to save the file is based on how many saddles in the database? When that number increases 10 times, then it takes 50ms to save the database, that's an entire server tick. which means you're now producing lag every time you save that file, which is every time a portable horse is saved to a saddle.

    Last edited Mar 01, 2015 by metalhedd


  • Avatar of MoarPizzaPls MoarPizzaPls Mar 01, 2015 at 18:53 UTC - 0 likes

    @metalhedd: Go


    I understand the implications of saving the data in a file and that's why I said I'd look into NBT.

    My storage scheme is entirely not broken. The id counter is not reset to zero when the server restart and nothing gets overridden.

    Also, please stop being passive aggressive. I don't want to offer downloads of my plugin, because it's not mine. It's your plugin with some modifications and people have been asking for a fix, so I shared it with them. If you don't want me to share a modified version of your plugin that works in the comments, it's your decision and I can respect it. I just needed this plugin to work on my server and it does, so I thought maybe there were other people who would find it useful.

  • Avatar of metalhedd metalhedd Mar 01, 2015 at 14:01 UTC - 0 likes

    @MoarPizzaPls: Go

    @MoarPizzaPls. the decision to store data in the saddle NBT was a conscious one. There is no way to track the disappearance of an item from the game, so if someone tosses their saddle into the void for example, you won't know about it and you will have to keep that record in your database forever. eventually you'll need to design in a sort of expiry system. I've used that approach with several other plugins, and it doesn't work out well. without the 'packet stuff' the lore will be wiped out by switching to creating mode and clicking around the inventory.

    Please edit your post to remove the download link, its not allowed on bukkitdev. if you want to offer downloads of your plugin, you need to go through the same process as everyone else, set up a page, and have the plugin approved by staff. also please be aware you'll have to post your source code and keep your plugin under the GPL license since it's a derivative work of PortableHorses.

    EDIT: I looked through your code... your storage scheme is entirely broken. the id counter is reset to zero when the server restarts so the next newly saddled horse gets id 0 overwriting whoever previously had id 0 and so on.

    Last edited Mar 01, 2015 by metalhedd
  • Avatar of MoarPizzaPls MoarPizzaPls Mar 01, 2015 at 02:40 UTC - 0 likes

    Took me 5 hours to get it to work. Changes I did: -Got rid of all the packet stuff. (I don't even know what this was for) -Got rid of storing data in the NBT of saddles (the data kept getting corrupted for some reason) -The NBT data from a horse is serialised and stored in a file instead and each horse has an ID in the lore. (5ms to save the file)

    Current bugs: -Can't shift click items to move them to a donkey's chest -Portable saddles still contain the same gibberish in their lore as they used to without the fix. This only seems to happen when the saddle is on a horse though so who cares.

    I believe with the fix, it's perfectly usable on a live server and I'm running it on mine right now. I am going to keep updating my version of the plugin and perhaps even crate a dedicated bukkit/spigot page for it when I find some free time. I'm also going to look into how exactly NBT works to see if I can fix the corruption so that the data doesn't have to be stored in a file.

    {LINK removed by Myrathi}


    Last edited Mar 01, 2015 by Myrathi: Removed third party download link
  • Avatar of Bodyash Bodyash Feb 09, 2015 at 08:15 UTC - 1 like

    try to fix it again!


  • Avatar of FireBreath15 FireBreath15 Jan 28, 2015 at 15:16 UTC - 1 like

    It's about time a 1.8 version is released. But no, it's no where to be found...

    Trolling, Minigames, Protection, Utilities, Enhancements, and more! Join the Stoneplex Network!
  • Avatar of LordDWT LordDWT Jan 24, 2015 at 19:31 UTC - 0 likes


    Where does your information come from?

  • Avatar of RulingKyle1496 RulingKyle1496 Jan 24, 2015 at 18:56 UTC - 0 likes

    @switorik: Go

    Just came out with a update yesterday fixing all of those issues. The plugin should be working great now! :)

    Last edited Jan 24, 2015 by RulingKyle1496

    ♛ Constant Creative ➸WorldEdit ➸Huge Plots ♛

    DeadX Creative


  • Avatar of switorik switorik Jan 12, 2015 at 14:25 UTC - 1 like

    @Redstonneur66: Go

    This version does work on spigot 1.8. However it does not do everything that portable horses did. For example, you can not currently remove the saddle once you place it on the horse. When you right click, no matter where you click, it will place the horse, sometimes suffocating it to death. So you have to make sure its not equipped when opening a chest/door. Also you can not store tamed zombie/skeleton horses. As that last one isn't a huge issue, we use those horses as prize horses and it is now difficult to maneuver them.

    edit: v.6 Most of the bugs were fixed. You still spawn it no matter where you right click. The dev seems to be active so I support this plugin.

    Last edited Jan 25, 2015 by switorik


Date created
Aug 23, 2013
Last update
Jun 22, 2014
Development stage
  • enUS
  • frFR
GNU General Public License version 3 (GPLv3)
Curse link
Recent files



Required dependency