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

Add Shopkeepers to your PocketMine-MP world! Allow the creation of simple stores between players or create also adminshops!
version 1.3.0
Direct Download How to install?
Switch version
1571 Downloads / 2387 Total
7 Reviews
Plugin Description §

Add Shopkeepers to your PocketMine-MP world! Allow the creation of simple barter stores between players or create adminshops!

Shopkeepers stats by pmmpStats

⚠️ We are not in any way related to the Shopkeepers plugin for Bukkit!

⚠️ This plugin collect some data for pmmpStats. Read more (and how to disable) here!

Follow me on Twitter to remain updated!

Note You can find the Shopkeepers version for PocketMine-MP 4 at this link but is the v1.0 and not the latest version becase PMMP4 is deprecated.

Introduction video

Watch the video on YouTube

📰 Features

  • Players can create their own Shopkeepers and manage it
  • Admin Shopkeepers
  • Vanilla trade page
  • Shopkeeper inventory for non-admin Shopkeepers
  • Hit prevention for shopkeepers
  • Easy configuration with in-game GUI
  • Double trade supported
  • Custom skin support
  • Plugin APIs


Warning As of v1.2 we no longer support PocketMine-MP 4, this however does not mean that we will remove v1.0 for PMMP4, in fact it will always remain available here on GitHub at this branch!


The configuration of Shopkeepers allows you to customize some values to make it suitable for all servers.

Name Type Default Description
enabled bool true Is the plugin enabled?
max-entities-for-player int 3 Max shopkeeper's entities for one player (PER SHOP)
max-entities-bypass array [] Player that can bypass this limitation
banned-shop-names array [] List of banned names
banned-item-names array [] List of banned items (can't be sold)
banned-item-ids array [] List of banned item ids (can't be sold)
enable-remote-trade🛈 bool false Allow player to use the /sk trade command
enable-pmmpstats-datashare bool true Allow the server to share some data with pmmpStats
enable-version-checker bool true Allow the server to check the plugin version


The base command is /shopkeepers but you can also use /sk, /skeepers and /shopk as aliases. Here a list of all commands that you can use:

Command Args Description
info none Show the plugin's informations
info SHOP NAME Show the shop configuration page
edit SHOP NAME Edit the shop recepies
create SHOP NAME / NULL Create a new shop, if the name is leaved empty will be generated
summon SHOP NAME Summon a Shopkeeper entity (as a Villager) for your Shop
rename SHOP NAME and NEW NAME [NOT AVAILABLE] Rename a current shop
list none Show all of your shops
history SHOP NAME and PAGE Show the trade history for the shopkeeper
trade SHOP AUTHOR NAME and SHOP NAME Remotely trade with a shopkeeper

🔸 pmmpStats implementation

This plugin makes use of pmmpStats to create and process plugin statistics, which then includes a continuous sending of the following information to the service servers:

  • Server IP and port
  • Server OS version
  • Server PHP version
  • Server cores
  • Server PocketMine-MP version
  • Server version (minecraft)
  • Online players
  • Server Xbox auth status

The Terms of Service of pmmpStats are available here, instead the privacy polici is at this link.
You can disable information sharing with pmmpStats by setting the enable-pmmpstats-datashare value to false, by default (so even if the value is not present) it is enabled.

Shopkeepers Skin System (SSS)

Yes, the v1.0 brought an epic function: now you can set a skin of a Shopkeeper.
Unfortunately players can't add a skin of a Shopkeeper for multiple reasons:

  • Memory
  • Memory
  • Memory
  • Hmm, Memory?

Anyways, to avoid abuse of this system we have made this feature usable only by the server administrator.

How to add a skin of a Shopkeeper

You should have seen something new in the Shopkeepers folder, the skins folder, and that is where all the skins should be put.

Skins MUST BE in a .png file!

The file name should be composed as follows: <PLAYER NAME>_<SHOP NAME>.png, for example FoxWorn3365_Fox.png is valid and will be used by the plugin.

I don't want to select skins

Well, if no skin is provided the classic villager is spawned. yeee


How to create an Admin shop

There is not really an Admin shop but you can activate this function by using the command /sk info <SHOP NAME> and then clicking on the Blaze Powder and then clicking on the red wool block that has "Admin shop" as its name

How to see a Shopkeeper's inventory

There are two ways:

  • Use the command /sk info <SHOP NAME> and then click on the chest!
  • Click on the Shopkeeper (Villager) entity and then click on the chest!

I want to access to the Shopkeeper's trade page but if i click the entity i access the shopkeeper's info page!

Easy: shift and click on the Shopkeeper

How to despawn a Shopkeeper

More easy: just hit it, it will die in only one hit!

I have ClearLag and it removes the Shopkeepers entites!

Edit the config of ClearLag changing to false this option.

How can I change the skin of a Shopkeeper

We actually support a Skin System, please see here!


If the Shopkeeper is an Admin Shop it does not have an inventory!

Maximum level of customization: program the plugin!

The v1.2 implements an incredible customization system: 🎉__programming!__🎉

So, from now you can handle some Shopkeeper event! but how?
Simple, you can code inside the config with the new parser YAMLPower!

Feel free to contact me with no problem for any questions, I'll respond within a day!


    description: "Allows users to use the base command"
    default: true
    description: "Allows users to summon player's shop"
    default: true
    description: "Allow users to create a shop"
    default: true
    description: "Allow users to edit they'r shop"
    default: true
    description: "Allow users to see a list of their shops"
    default: true
    description: "Allow users to despawn they'r Villager shops"
    default: true
    descritpion: "Allow users to rename they'r shops"
    default: true
    description: "Allow users to decide if the shopkepeer's name should be visible or no"
    default: true
    description: "Allow users to view the trade history of his Shopkeepers"
    default: true
    description: "Allow users to enable and disable their own Shopkeepers from the menu"
    default: true
    description: "Allows users to decide if the shopkeepers should be admin or none"
    default: op
    description: "Allow users to kill every shopkeepers, also of other players"
    default: op
    description: "Allow users to see and use the /sk command without args to open the base GUI"
    default: true
    description: "Allow users to use a shopkeeper when they touch it"
    default: true
    description: "Allow users to open a shopkeeper's inventory with the command /sk inventory"
    default: op
    description: "Allow users to remotely trade with a shopkeeper with the command /sk trade <author> <shop>"
    default: true

Special thanks

Thanks to Muqsit for the InvMenu virion who have contributed to the creation for this plugin!
Also this plugin helped me!


You can contact me via:

What's new §

Shopkeepers v1.3 for PocketMine-MP 5 is now out!

NOTE: Because of the reject of v1.2 from poggit this changelog will include also the v1.2 changelog

What's new

  • Added a custom event handler with YAMLPower so you can program with YAML! Epic. Anyways, read more here
  • Added the command /sk trade. Syntax: /sk trade <AUTHOR> <SHOPNAME>. Read more here.
  • API for developers
  • Added the integration with pmmpStats. You can find the Shopkeepers stats here
  • Added the summoned entity count in the Shopkeeper info GUI
  • Added the updater checker, so if a new version is available on GitHub you will be warned about this

Bug fix

  • Fixed the ErrorException: "Creation of dynamic property" bug #25
  • Drastically reduced the size of the plugin (from 42MB to 0.08MB, incredible)
  • Fixed the "Position world is null or has been unloaded" bug #32 implementing a checking system
  • Fixed the "Entities per Shop count increases when the player rejoin the server without a restart" bug #35
  • Updated the InvMenu version

Find any bug? Please report it on GitHub Issues

If this plugin helped me, please support the project

Finally the v1.0 is HERE!

It seemed impossible and instead in just two days spent attached to a monitor I managed to update the plugin on time!

What's new

  • Added support for custom skins for Shopkeepers
  • Added support for both single and double trade with an update to the trade GUI
  • Now the config and info GUI are more user-friendly and good-look
  • The trade history is now here! You can see all the trades of a Shopkeeper
  • Now you can lock and unlock a Shopkeeper to prevent trading (you can from the info page)
  • Added support to the HumanShopkeeper class
  • Updated the F.A.Q. for the ClearLag problem

Bug fix

  • Fixed the unresponsive bug #20 by updating InvMenu to the latest version
  • Fixed the fixer (funny) due to #13
  • Finally fixed the #19 error (/sk create without name arg) and allowed automatic generation of name

Any bug or problem?

Please report it with an Issue!

Tomorrow I'll go to another vacation (only 1 week) so no more updates until 01-08 yey!

Support the project:

What's new?

  • Now if you interact with your own shop you won't get the Shopkeeper's inventory but the Shopkeeper's info page
  • Now if the Shopkeeper is an admin shop you will see a barrier instead of a chest to access to the inventory
  • Now entities are stored in a more efficient way and you can summon a Shopkeeper from his info page
  • Added support for Custom Items
  • The "Cancel item" button in a trade config now will work
  • Added the /sk rename <OLDNAME> <NEWNAME> command
  • Now if you interact with a Shopkeeper without config it will die and an error message will be displayed
  • The Shopkeeper's info page now is more user-friendly with more options like deleting the shopkeeper
  • From the config the server owner can now decide how many Shopkeeper entites a player can summon (FOR SHOP)
  • Added the "Shopkeeper's name automoderation system": from the config you can select some names to automoderate
  • An automatic system of file validating and repairing

Bug fix

  • Now entities should spawn correctly
  • Fixed the infamous error array expected, stdClass given
  • Fixed other minor bugs

Breaking changes

You should delete the .entities.json because the final format has finally been implemented and is different from v0.8.x

Features that will be added in v1.0

Version v1.0, also known as Sales & Shops will be the first stable version of the plugin and will also contain the following features:

  • Trade also 2 items instead of 1
  • Sales for some players
  • Shop whitelist Unfortunately, I'm sorry to tell you that I will be leaving on 28/06 for a month-long vacation where I will be unable to update the plugin, so I will just design and better develop the new features and then get to work on v1.0 at the end of this vacation. I thank you for your understanding.

What's new?

  • Now the NBT of the item is saved in hex instead of binary code in files
  • Now if you do /sk info <NAME> you get the list screen
  • Optimized the entity saving system: now also the nametag is saved and loaded!
  • Optimized the entity spawn: now they're not more in cache!

using v1.0.0
24 Aug 23
Good pl
25 Aug 23
Thank you very much
using v0.8.2-pre
26 Jun 23
The plugin can only trade 1 item, I require 2 item for trade
26 Jun 23 -> Features that will be added in v1.0
using v0.8.2-pre
26 Jun 23
Can you make 2 items trade?
26 Jun 23 -> Features that will be added in v1.0
using v0.8.2-pre
25 Jun 23
Api 4 also pls 🥲
26 Jun 23
Is available only on GitHub. Branch: Latest relase:
using v0.8.2-pre
24 Jun 23
using v0.7.1-beta
21 Jun 23
Cool plugin
using v0.7.1-beta
20 Jun 23
Very exciting idea and really nice plugin. Good job!

Reply to review by :

/ 5
Supported API versions
Producers §
  • Collaborators:
    • @FoxWorn3365
License §
API plugins
Vanilla Mechanics
Manage entities
Other files
External Internet clients
Asynchronous tasks

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

/ 5