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

A customizable query plugin, where you can configure anything that relates to Querying your server.
version 1.1.3-BETA
Direct Download How to install?
Switch version
432 Downloads / 727 Total
3 Reviews
Plugin Description §

Custom Query, is one of the most customizable query plugins for MCPE that you'll ever find publicly and that is free for the MCPE Community. Custom Query aims for servers to make themselves more better, and allow people to recognize the customisable server. We at Custom Query, are a benefical to the MCPE Community, and dedicate our time to make this system work. Here with Custom Query, you can do the following: Fake player slots, set a list of plugins that can be displayable for your players, server name - Change your server name right from config! How great is that?, customize min-max fake player count/slots, infinity slots, enable/disable each option! Right from config.yml, so you can enable/disable the things you do or don't want.


  • [x] Infinity slots.
  • [x] Fake your player slots.
  • [x] Set which plugins other players can see.
  • [x] Enable/disable options to suit your needs.
  • [x] set min-max player slots (fake query system)
  • [x] Added color coding support for server names.
  • [x] Set variables for server names.
  • [x] Customizable server list MOTD (When posting your server) (Untested)
  • [x] Add a task file. (Untested)
  • [x] Add commands to edit the query settings.
  • [x] Add /customquery reload to reload the configurations without the need of a server restart.
  • [x] Add /customquery help for a list of main commands you can use.
  • [x] Add an option to enable/disable query commands use in game to set your settings.
  • [x] Configure permission nodes from config.yml.
  • [x] Completely revamp the ideas of commands, and putting it onto a seperate file (CustomQueryCommand class).
  • [x] Register the command without the need of using plugin.yml to do it for you.
  • [x] Register the permission without the need of using plugin.yml to do it for you - We'll do more relating to this soon to support it even better.
  • [x] Notify you on any releases with this plugin from poggit to console.
  • [x] Add config versioning.
  • [x] Fix dependency issue.
  • [x] Add virions section in plugin.yml, allowing the server to know what virions are in this plugin.
  • [x] Add more requirements for virions in poggit.yml
  • [x] Move all utils related to CustomQuery\iZeaoGamer\Utils.php. This is so we can keep the updaters seperated with the main class file. Things such as: Virions check, check for config updaters, and Update notifier will be in the Utils class.
  • [x] Release out of the ALPHA stages.
  • [x] Remove SpoonDetector due to its brokenness.
  • [x] Allow spaces for each messages. At the moment, you can use: "" for spaces in the message/value section after the name of the option. We'll see if we can add such support soon.
  • [x] Fix onEnable() state errors + Move isPhar() to Main class.
  • [ ] Make messages configurable.
  • [ ] Add formsapi support - not confirmed.
  • [ ] Add an option whether to add support for formsapi or use command arguments instead.


This plugin is currently in the BETA stages, If you find any errors or issues, please open a new issue with the error log.


  1. Simply download this plugin either from (More stable.) or from one of the dev builds (Bleeding edge builds), which you can get fom this link:
  2. Once installed, drop the plugin into plugins folder.
  3. Start/restart your server from console or terminal.
  4. Done. If any errors display, please open a new issue containing the error log. If you want to know about how to setup the plugin (IN GAME), then please go to HOW TO SETUP section.


  1. If the plugin is successfully installed, and working on your server, then go to plugin_data.
  2. Then go to where it says CustomQuery folder, the config should be available to you.
  3. Go to the config.yml file.
  4. Now, here's where all of the config options should be available to you. Now, this tutorial is mainly discussing about setting up your settings in game.
  5. So once you're on your config.yml file, copy one of the options (that you would like to add / setup) to in game. We'll use fake-slots as an example.
  6. Then, use /customquery fake-slots true, which would set up the fake slots option to true. You can use the option as false as well if you prefer not to use such options.

Want to setup min-max player slots of your fake querying? Then great! Here's how:

  1. Go to the config.yml file (as instructed above from before.)
  2. Copy the option: min-slots and use /customquery min-slots 10, which will set up 10 as the minimum slots as lowest player slots you can go to.
  3. Then copy the option: max-slots and use /customquery max-slots 1000, which will set up 1,000 as the maximum slots as highest player slots you can go up to.

These are just examples of how to setup your config options. To know more about setting up as more examples, please head over to OPTIONS EXPLAINATION section.


The usages to the settings system, is: /customquery is the setting specified and provided to you from config.yml, and value is the value of the option. It could be: true or false if it's enabling a option or feature. If you're setting a message such as server list motd message, then that'd be a string, leading to a message for that option. If you're setting a numeric option such as: min-slots - 10 or max-slots 1000, then that'd be a int, which is a number-type option. If you're setting a array option (Arrays, meaning [] which you'd have to enter such as: set-plugins, then that'd be an array, which allows you to set multiple plugins as to what the server will display/show. boolean is true/false or a return type. So if you're setting a option that allows you to enable/disable a option / feature, which would either be: true, or false, then that's a boolean. If you're still having issues with setting up, then please open an issue regarding so. I'll make it easier soon by displaying all command usages (including settings which are validable from the /customquery help command.

What's new §
      • Fixed Error: "Using $this when not in object context" bug, closes #5
      • Bug fixes to config file not generating as it should.
      • Removed static and private functions and made them all public functions in the Utils class.
      • Utils construct is now a public function.
      • Relying on utils class (Inside main class) rather than using static functions, thus leading to $this errors.
      • Bumped plugin to v1.1.3
  • Add SpoonDetector Support
  • Add author
  • Add libs for SpoonDetector
  • Allow spaces for configuring msg options in game
    • This has been untested, and may/may not work. But this should be a proper implementation for allowing spaces for setting a message using in game commands.
  • Fix #7
    • This is a possible fix for config not generating as it should. May impact issues, and has been untested.
  • Fixed invalid foreach error.
  • Moved checkPhar() to Main class (Untested)
  • Possible fix for PluginBase errors.
    • Which would've affected isPhar(), moving checkPhar() to the Main class.
  • Remove SpoonDetector due to its brokenness.
    • I've also added new functions relating to spoons - We still don't support spoons in any way, which is why I created functions for using a spoon, instead of using Spoon Detector virion.
  • Update .poggit.yml
  • big ooof
    • This should fix the syntax error.
  • fixed syntax error
    • Also removed checkPhar() function, and made isPhar() on its own.
  • remove for the time being
  • Fixed all enabling related errors.
      • Added checkPhar() for extra protection from sources.
      • Plugin now disables if the phar cannot be found in the plugins folder.
      • Bug fixes and improvements.
    • ready to submit for release or nah? ;P
      • Moved checkPhar() to Utils.php class.
      • Removed checkVirions() due to checkPhar() requiring you to inject a phar file to the plugins folder.
      • registerUpdates() added for registering config updater, and updater.
      • Add a to-do.
  • Fixed undefined method - closes #4
    • This fix was my mistake. It was simply a typo, made in the previous builds. How did I not notice this? ;P
  • version bump
  • !== MINOR FIX UPDATE !==
      • Whoops, fixed some config written updates - it isn't list-plugins anymore, why didn't i see that in the first place?
      • Renamed set-plugins to set-fake-plugins because then, it won't be more like real plugins. It'll be more like fake plugins if that was the case.
  • !== NEW UPDATE AVAILABLE v1.1.1-BETA !==
      • Added new option: show-plugins - Allows you to toggle on/off showing real plugins to the voting websites.
      • Renamed option from: list-plugins to fake-plugins. This was becayse show-plugins and list-plugins would've seemed the same thing (Option name wise.). So fake plugins would be more of a unique name, since it is fake plugins if set to true.
    • Bump plugin version to v1.1.1-BETA.
    • Updated config options description.
    • Bug fixes and some improvements.
  • Add a to-do: Spoon detection
    • this is so we can provide PMMP only, as spoons are third parties of a server software, and are not meant to be used for others. This is so we can fully support PMMP / poggit without the need of another third party spoon.
  • Add typehints to Util functions
  • Add use import for Player.
    • yes, this is needed for instances of Player for the console update.
  • Added a more explained typehints
    • allowing everyone to understand the meaning of each/most functions, that way, they know what this plugin's about, and how we code it. :>
  • Added allow-console option
    • This is so server owners can decide whether to allow console execution or not.
  • Fixed no permission error not working
    • This bug was only implemented in the recent dev builds. If the player had the right permission to use the command, it’d say the no permission message. The no permission message is only meant to occur if the player doesn’t have permission to use this command.
  • Whoops my mistake
    • how could i not see that any sooner? silly me.
  • made construct private.
    • We don’t need it public, when currently, no other classes are using this file. This class is implemented so we can check for configs, plugin updates, and virions and installations.
    • If we use this class for other classes, we will make it public again.
  • whoops.
    • a bit of a typo there. what was i thinking? ;-;
  • !== CONFIG UPDATES !==
    • Added support for UpdateNotifier and ConfigUpdater by JackMD to check for config versioning and its plugin releases.
    • Added more functions, including onLoad() function - May remove if no further codes are implemented into this plugin soon.
    • Added config-version 0.1.
    • If a new config update is available, it should let you know directly from console, as well as new plugin releases.
      • We've revamped commands system.
      • We've moved ALL commands to a seperate file.
      • We've added two new options to config.yml.
      1. enable-commands - Allows you to enable/disable the use of query commands in game. Very much explained in config.yml.
      1. permission - Allows you to set the permission node for the command. We may revamp permissions so it works with commands very well soon.
      • Removed /customquery command, and renamed that to /query as the main command. The only alias command is now /cq.
    • ^ This is due to complying with Poggit's submission rules / C2A. ;P
      • Keep in mind - The two new configurable options we added into this update are not configurable in game. We may add compatibility with this in the near future.
      • Commands no longer rely on plugin.yml to generate properly. The command now generates from Main class so it's more easier compatibility and less-messy.
      • Bump plugin version to v1.0.3.
      • Bug fixes and many improvements.
      • Moved all config/update related content to \utils\Utils folder.
      • Fixed all dependency problems. Thanks.
      • Renamed some functions that allows the server to check for config and its plugin releases / updates.
      • Added Utils.php file.
      • Added a public construct to Utils. (May make construct for Utils private soon.)
      • Added full support for ConfigUpdater and UpdateNotifier.
      • Bug fixes and improvements were made in relations to Update notifications and config updaters.
  • Add a depend - Instead appearing as the class...
    • is not found.
    • This is to check for if the plugin’s installed or not. This requires such so no errors appear. Therefore, there’ll be less reports regarding plugin disables due to them not knowing the actual error.
  • Add a finish todo.
  • Add a to-do
  • Added command checks
    • Made it so if the args is not found within the code, it’ll display an error to the player. This is to reduce the amount of server crashes if a player enters the wrong value / option.
    • Made it so if the value is invalid, it’ll display an error to the player. This is to reduce the amount of server crashes if a player enters the wrong value / option.
    • Bug fixes and improvements were made.
    • Keep reporting!!!
  • Added libs to poggit.yml
  • Fix corrections.
  • Fix error onEnable()
    • This is in fact wrong, and unacceptable. count should be implemented before the variable. Also, there should only be one ) after the count number.
  • Fix typo.
  • Fix undefined config problems.
  • Fixed config corruptions.
  • Fixed function.
    • This is meant to be execute, not onCommand() due to extends Command being there.
  • Implement args replacement
    • This would be best beneficial to the plugin since $args[1] and $args[0] will replace that with true/false or a value, rather than hard-coding all values without the actual args, making this 10x harder when implementing new options for future updates. When I mean hard, I really mean annoying, and frustration when implementing more-options, when you could jut add $args, rather than replacing that with values. ;P
  • Make the to-do better
  • README: Add another finished to-do
    • This plugin is no longer in the ALPHA Stages. It has now been moved / bumped to the BETA stages.
  • README: Add more to-dos.
  • Remove command->getName()
    • This is not needed. This hasn’t been tested yet, and syntax errors may arise.
  • Remove onLoad() function
    • Since this is no longer needed. I don't know why I added that there in the first place.
  • Remove useless const
    • now now, we don't need useless junk in our code now do we..? ;)
  • Rename function to checkConfig()
    • This is because there’s only one config, not more. Therefore, it should be renamed from checkConfigs() to checkConfig().
    • In the near future once we implement a messages.yml file, then we may consider renaming it back to checkConfigs().
  • config version bump [1/2]
  • config version bump [1/2]
    • Fix a minor typo from previous build that I forgot to mention.
  • remove useless use imports.
    • This is because these imports are no longer needed due to the v1.0.3-ALPHA update which includes a complete command system revamp.
  • try is_array instead.
  • version bump
  • wtf? how did that get there?
    • fixed namespace issue in utils
  • !== /customquery help, more todos !==
    • Added /customquery help - Shows the command usages. Not all of it is on there, but the main commands are there. Simply just copy the config file options / names into /customquery So for example, if I wanted fake-slots, simply copy and paste that option to /customquery fake-slots 10, and that'll add the minimum of fake slots. This will update almost instantly without the need of a config reload or server restart.
    • Oops, I didn't mean v1.0.3 ALPHA. This is v1.0.2 ALPHA - Why am I getting a-head of myself? ;P
    • Add more to-dos to README.MD
    • Add some to-dos to the main class file.
    • Finally added commands to CustomQuery!
    • Added /customquery.
    • Added /customquery reload - Reload your configurations file without the need of restarting the server!
    • Added /customquery
    • Added permission for /customquery.
    • Added /customquery list-plugins
    • Added /customquery infinity-slots
    • Added /customquery enable-serverlist-motd
    • Added /customquery fake-slots
    • Added /customquery default-server-name
    • Added /customquery set-plugins
    • Added /customquery motd-serverlist-message
    • Added /customquery new-player-motd
    • Added /customquery old-player-motd
    • Added /customquery min-slots
    • Added /customquery max-slots
    • Add some to-dos to README.MD
    • Bump plugin version to v1.0.3 (Not ready for release/PRE release yet.)
    • Have any issues? Please open a new issue on our github page, thanks!
  • Added tutorial / plugin documentation.
    • Obviously people will need this, so I've added this.
  • Fixed #1
    • This fixes plugin not loading correctly when generating config.yml and it’s datafolder generation.
  • Fixed a possible syntax error.
  • README: Fix typo.
  • README: Fixed another typo. oof.
  • Remove useless config file generation
    • Also renamed foreach from $this->list to $this->plugins.
    • Fix relations for #2.
  • !== NEW UPDATE AVAILABLE: v1.0.1-ALPHA !==
      • Added new option: enable-serverlist-motd
      • added new option: motd-serverlist-message
      • You can now customize your server list MOTD. (Untested)
      • Added new option: enable-player-motd.
      • Renamed Server-name to new-player-motd and old-player-motd.
    • It's explainable in the configurations file. We added a system, where it'll detect if the player is old or new. If the player's old (as in joined before), then it'll display a different MOTD compared to the new-player-motd (if user specifies). Old means the player's joined before, therefore, it'll show the joined before MOTD message, and new means the player's never joined before, which again, it'll show a different MOTD message compared to the old-player-motd message.
      • Added new task file for MOTD messages.
      • default-server-name may/may not work, so best to keep this option turned on for now. You may turn it off if you wish, but there may be bugs. Use it at your own risk!
      • Fixed some syntax errors during coding phrases.
      • Removed useless use import: pocketmine\Server; as it wasn't needed nor intented to be used due to being able to use $this->plugin (as in the main class) rather than Server::getInstance().
      • Checked some todos in the README.MD file.
      • Fixed some bugs and improvements.
    • !== KEEP IN MIND / WARNING !==
    • This version is currently untested, so expect things to be broken. As this is an ALPHA version.
    • If you have any issues to report, then please open a new issue.
    • Thank you!
  • Add poggit shields.
  • Fixed config problems.
    • It had to have a space between # and the description so it doesn't look like an option. :D
  • Fixed duplicate icons.
  • Fixed spelling mistake
  • WTF is that? - Fixed weird spelling issue.
  • remove a useless to-do
    • We don't plan on adding this due to Poggit's C2A.

using v1.1.3-BETA
30 Aug 20
killed my server
using v1.0.2-ALPHA
05 May 19
I personally don't have a use for this plugin at the moment, but it's a great plugin in general <3
05 May 19
Thanks for the 5 star review!
using v1.0.1-ALPHA
01 May 19
Good and useful idea, but it doesn't work.
01 May 19
Try with the latest poggit build until a new plugin release for this plugin comes out. If the problem presits, please open a new issue on the github page containing the error.

Reply to review by :

Supported API versions
License §

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