By continuing to use this site, you agree to the Terms of Service of this website, including usage of cookies.

OK, Don't show this again

An advanced pets plugin, implementing features such as riding and inventories
version 2.0.2
Direct Download How to install?
Switch version
2728 Downloads / 31034 Total
22 Reviews
Plugin Description §


An advanced pets plugin for PocketMine-MP, a server software for Minecraft PE servers in PHP. Implements highly customizable pets with interesting features.

Issues for the plugin can be created in the issue tracker on GitHub. Please note however:

Third party versions, forks or spoons of PocketMine-MP are not supported.

Issues caused by other server softwares than PocketMine-MP will be closed immediately.


To install:

  • Download the version of the release.
  • Drop the phar file in the plugins folder of your server.
  • Restart the server, and enjoy.


BlockPets has a language system so everybody can use the plugin in the language they prefer. You can change language to one of the available languages in the config.yml. Of course, not every language file exists. If you want to help translate, don't hesitate to add a new file and copy the english translations in it, then translate them. Any help is greatly appreciated.


  • Pet spawning of most monster types and being able to remove them.
  • Adjustable size, name, and player can be specified when spawning.
  • Smooth pet movement.
  • Pet defending system, attacking them or the owner makes the pet enraged.
  • Angry pets that kill enemies get experience which they use to level up.
  • Scaling health, size and attack damage per level.
  • Pets have tiers, with speeds connected to those.
  • Pets can be ridden by tapping them with a saddle.
  • Multi-world pets, following you through worlds.
  • Pets have inventories. Give pets an inventory by tapping them with a chest and open it with an empty hand.
  • All pets are highly configurable in the pet_properties file located in the plugin folder.
  • Pets can sit on your head by tapping them while sneaking.

Commands and Permissions

BlockPets has permissions for every pet and command, to wall off the permissions for players but still allow them to have at least some way to spawn pets. The most up to date list of permissions can be found in the plugin.yml file

BlockPets contains a hand full of commands to modify, create and remove pets. These commands can be found using the /pet <help> command. This command will list all BlockPets commands, and can show other information.


We'd like to keep our issue tracker as clean as possible, so please take the following in consideration when opening a new issue in the issue tracker:

  • If you have an issue with the plugin, check if the issue exists in the Issue tracker, and report it if not.
  • If you'd like support or have a question about the plugin, please click the Gitter button under the title.
  • If you have a great idea for a new feature or enhancement, please create a new issue in the Issue tracker.
  • If you just want to have a talk, please click the Gitter button below the title.
What's new §
  • Updated dependencies
  • Merge pull request #245 from NgLamVN/master
    • getLevel() -> getWorld()
  • fix EnderDragonPet riding seat
  • fix broken EnderDragon movement - fix #247
  • version bump to 2.0.1
  • PM-4.0 Support
  • Fixed a whole bunch of bugs
  • PHP 8 compatible
  • 1.2's packet
  • 3.0.0-ALPHA9 it's released.
  • A void function must not return a value
  • Add Chinese translations (#128)
    • Add Chinese translations
  • Add Korean lang (#78)
  • Add Russian translations (#106)
  • Add discord link
  • Add minimal versioning API
  • Add support for API 3.0.0, #148
  • Add support for specifying EntityName in /petstop.
    • Now you can find the top Bats, IronGolems, Sheeps etc on your server using "/petstop Bat".
  • Added "/addpetpoints" command, added LevelCalculator class and fix a bug in PetLevelUpEvent.
    • /addpetpoints is very similar to /leveluppet command.
    • /addpetpoints [amount] [player]: Adds pet points to the first pet with the given name by the amount, and checks for player if given.
  • Added /listpets command and halted nuclear war in language, improved command handling.
    • Added BaseDataStorer::getPlayerPets().
    • Added support for & color codes in language files.
    • /pets help message is now sorted alphabetically and displays all help messages without messages-per-page cap when executed thru console.
  • Added /petstop command to display pets leaderboard.
    • Added BaseDataStore::getPetsLeaderboard().
    • Changed all ?callable params in BaseDataStore to callable.
    • Command usage messages now display the usage with alias used.
  • Added BasePet::$seatpos, BasePet::$rider_seatpos, fixed #63 and fixed width/height of many entities.
  • Attempt to fix #72, if it doesn't work, there's nothing I can do about it.
  • Bump version to 1.1.2
    • Decrease complexity of Loader::getPetsFrom(), Loader::getPetsByName()
    • Update Loader::removePet() parameters.
    • Improved /togglepet (close #113)
    • If the entity is toggled off, it shows up in /listpets
    • Add PetEvent abstract class.
    • Add BasePet::updateVisibility() method.
    • Add BaseDataStorer::togglePets() method.
    • Add patch for the new Visibility column.
    • Remove Loader::VERSION, Loader::API_VERSION constants, use PluginDescription fields.
    • Remove no-longer-needed $handlerList from Event classes.
  • Create de.yml (#85)
  • Cut down on more double-called methods.
    • Fixed #137.
    • Fixed some formatting errors.
    • Use Entity::getDirectionPlane() when fetching only XZ-motion.
    • EntityDamageEvent is now called BEFORE checking whether the pet has killed the target.
    • Added some constants and variant-related methods in HorsePet.
    • Added IrasciblePet::follow()
    • Added BasePet::isSaddled() to let players ride saddled entities without re-saddling.
    • BasePet::doRidingMovement() and BasePet::doAttackingMovement() have no return value anymore.
    • Made BasePet::onUpdate() final and added BasePet::doPetUpdates() to avoid double-calling movement methods.
    • Remove BasePet::$chested (it's stored in entity's data flags now)
  • Fix #100
  • Fix #142 and Loader::getPetByName() doc.
  • Fix Formatting.
  • Fix Wolf Collar Colors:
  • Fix some typos, make some translations more clear
  • Fixed #140
    • Fixed a bug where pet remains at the same place while riding owner.
    • Added BasePet::$links (EntityLink[]).
    • Added BasePet::addLink() and BasePet::removeLink()
    • Removed BasePet::$ridden, use BasePet::isRidden() instead.
  • Fixed #71.
  • Fixed #97, #107 and removed BasePet::isSaddled().
    • The crash was caused due to letting saddled pets ride you.
  • Fixed a dumb typo...
  • Fixed error when rejoining the server.
  • Fixed fail merge.
  • Fixed missing attack() function update.
    • missing?
  • Fixed protected variable change.
  • Fixed shoghicp SnowGolem and jeb_ sheep hack.
  • Fixed some errors (oops)
  • Fixes #84.
  • Fixes #86, invalid type fix.
  • Fixes #95, fixes #94, fixes #93, fixes #90, fixes #89.
  • Fixes #96, some packet updates.
  • Fixes #98 and #40, thanks @thebigsmileXD.
  • Fixes #99, save inventory when pet dies and when pet switches level.
  • Implement Saddles.
  • Loader: Fix typo in onEnable()
  • Merge pull request #105 from Yexeed/patch-1
    • Update SpawnPetCommand.php
  • Merge pull request #111 from 95CivicSi/Console-Commands
    • Provide Console Use
  • Merge pull request #121 from MalakasPlayzMC/patch-1
    • Update the Greek Language
  • Merge pull request #123 from 95CivicSi/API-Update-3.0.0-ALPHA11
    • API update 3.0.0-ALPHA11
  • Merge pull request #124 from 95CivicSi/Wolf-Collar
    • Wolf Collar Color
  • Merge pull request #125 from 95CivicSi/Saddles
    • Implement Saddles.
  • Merge pull request #126 from 95CivicSi/UpdateDataStorage
    • Update DataStorage for 3.0.0-ALPHA11
  • Merge pull request #152 from Johnmacrocraft/Korean-Translation
    • Update Korean translation, fix formatting
  • Merge pull request #81 from nnnlog/php7.2/development
    • 1.2's packet and fix some error
  • Merge pull request #82 from BlockHorizons/php7.2/development
    • Php7.2/development
  • Merge pull request #92 from NycuRO/patch-1
    • 3.0.0-ALPHA9 it's released.
  • Missed these in the commits to update for 3.0.0-ALPHA11
  • Move some stuff to the Wiki
    • Kinda makes the .phar smaller.
  • Moving poggit file out of folder, fix #103.
  • Oops
  • PHP 7.2 updates.
  • PocketMine ALPHA7 updates.
  • Provide Console Use
    • Included in this update
      • Proper console useage updates for several commands.
      • Modifications to sendConsoleError
      • Fix error when no arguments passed in.
      • Updated language files with new error message for console updates
  • ReFormat
    • Updated formatting to match original style.
  • Remove 3.0.0 support
    • I meant to do this on a dev branch, sorry.
  • Remove Fetch-From-Database, remove Calculator::storeToDatabase() and not update database when not needed.
    • Fetch-From-Database seems like an essential but it's very unneeded.
    • There isn't any need to save pets along with chunks because they
    • only get removed when the Player quits. The Pet entity class will
    • only exist while the pet owner is online.
    • Moreover, this also casuse a minor issue where Pet entities will be
    • recreated when the server starts up and the pet's chunks load for
    • the very first time, and then get destroyed because the pet finds
    • out their owner is offline.
    • Calculator::storeToDatabase() has been removed, calling
    • BasePet::setChested(), BasePet::setPetLevel() etc will auto update
    • the database values. This is done to cut down on unwanted database
    • updates such as when a player joins and quits in a short interval
    • without any pet-interactions. Previously, it would update all the
    • fields in the database except for the pet's inventory.
  • Remove some unneeded code and avoid double-calling some methods.
    • There were instances such as these:
    • $x = $this->getPetOwner()->x;
    • $z = $this->getPetOwner()->z;
    • Calling getPetOwner() will loop through all players on the server until the pet owner is found, does seem excessive.
  • Remove unused import.
  • Remove useless parameter, fixes #74
  • Remove var_dump()
    • Forgot about this, oopsies..
  • Removed some unneeded typecasts and fixed mixed up dataflag setting.
  • Restore 'All' in Usage Text for togglepet
    • Updates usage text to show the 'all' option.
  • Rewrite Korean translation (#109)
      • Rewrite Korean translation
      • Change Korean translation
      • I guess it's better
      • Didn't notice
      • Some changes
      • Another some changes
      • Ordering change
      • Add space
  • Rewrote databases to support libasynql
    • Simplified database methods' parameters
    • All database calls are now asynchronous
    • Added InvMenu support to pet inventories
    • Added chest title to chest GUI of chested pets
    • Added Loader::clonePet() method
    • Added 2nd (opt) parameter to Loader::getPetsFrom()
    • Added Pet::isBaby() method
    • Fixed numerous bugs with multiple database calls
    • Fixed a bug with respawn-cancelling (resulted in a ghost pet)
    • Fixed a bug where PetLevelUpEvent executed everytime a pet spawned
  • Update IrasciblePet.php
  • Update Korean translation (#141)
  • Update Korean translation, fix formatting
  • Update SpawnPetCommand.php
  • Update SpawnPetCommand.php
    • fixed error "TypeError: "Argument 1 passed to pocketmine\lang\BaseLang::translateString() must be of the type string, object given"
  • Update database when BasePet::setPetLevelPoints() gets called.
  • Update for API 3.0.0-ALPHA11. Breaking Changes were required so backwards compatibility is broken.
  • Update for API 3.0.0-ALPHA11. Breaking Changes:
  • Update for API 3.0.0-ALPHA11. Breaking Changes: setDataProperty has been replaced with propertyManager->setPropertyValue
  • Update to ALPHA12, update to new NBT and DataPropertyManager API methods, remove some unwanted code and fix beginner bugs.
  • Updated discord link.
  • Updated for 3.0.0-ALPHA8
  • given float
    • If you have a decimal point, it will not convert to " Int ".
  • missing?
  • Added Greek translations.
  • Strict types and PocketMine ALPHA-7 updates.
  • Fixed a bunch of bugs.
  • Improved riding performance.

using v2.0.2
20 Jul 22
Please update plugin And please add ui to this plugin And add option in ui like Pet Inventory, Pet Spawn Egg , Pet Ride, Pet Sit/Run And Pet Level Up Like Features Please Add Thanks
using v2.0.1
26 Jun 22
using v2.0.1
04 Apr 22
Option to disable pet attacking per world?
using v2.0.0
27 Mar 22
using v2.0.0
27 Mar 22
using v1.1.2
05 Aug 21
Forget ComplexPets and SimplePets, this is the best Pets plugin
using v1.1.2
20 Jul 21
Looks cool but was updated 3 years ago - I saw that there are recent dev builds but I'm not very experienced: will the 43 problems mean it is broken and glitchy or will it work for me?
using v1.1.2
07 Mar 21
it's cool
using v1.1.2
16 Jun 20
cool, i downloaded it and restarted my server a few times but still theres no extra commands or plugin data file
using v1.1.2
01 Jun 20
3.12.1 support?
using v1.1.2
27 Jan 20
i hope there will be an update for this plugin it don't work on my server for 1.14.0 looks a great plugin
using v1.1.2
16 Jun 19
Internal serve eror everytime i join oke :/ nice plugin and so buggy
using v1.1.2
26 May 19
Please update to 3.0.0
using v1.1.2
01 Jan 19
Can you toggle the text under the pets name off, and can I activatet pets only in a certain world? Also can you add German language?
using v1.1.2
29 Dec 18
nice plugin, but can you update the API version 3.0.0-ALPHA12? please!!
using v1.1.2
14 Oct 18
Why this plugin is still there in "updated", its outdated. Please poggit remove it from updated selection.
using v1.1.2
02 Sep 18
Love the plugin! Ingenious and perfect for all sorts of servers! Please update properly for 3.0.0-4.0.0 API and I’ll get 5 stars!
using v1.1.2
06 Aug 18
Cool plugin but it's always behind latest API release. I'm not sure how the plugin got approved AFTER PocketMine's scheduler nuke, but it did. Got my hopes up that BlockPets might actually support the latest release for once, but alas...
using v1.1.2
08 Jul 18
How to remove a pet from your head :D? If you want update, you can use DevTools
using v1.1.2
28 Jun 18
using v1.1.0
08 Jan 18
using v1.1.0
15 Nov 17

Reply to review by :

/ 5
Supported API versions
Producers §
  • Collaborators:
    • @Sandertv
  • Contributors:
    • @95CivicSi
    • @Adam1609
    • @ByPaps
    • @CyanKelv
    • @DenielWorld
    • @Ifera
    • @Johnmacrocraft
    • @MalakasPlayzMC
    • @Muqsit
    • @NgLam2911
    • @SOF3
    • @TheDiamondYT1
    • @Yexeed
    • @djdisodo
    • @edwinyoo44
    • @jojoe77777
    • @lukeeey
    • @nikipuh
    • @nnnlog
    • @xBeastMode
License §
Admin Tools
Manage entities
Other files

You can leave one review per plugin release, and delete or update your review at any time

/ 5