{"id":125200,"date":"2026-06-07T11:32:27","date_gmt":"2026-06-07T08:32:27","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/"},"modified":"2026-06-07T11:32:27","modified_gmt":"2026-06-07T08:32:27","slug":"proantitab","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/","title":{"rendered":"ProAntiTab"},"content":{"rendered":"<p><center><\/p>\n<p>##### **![https:\/\/www.rayzs.de\/proantitab\/assets\/Banner8.png](https:\/\/www.rayzs.de\/proantitab\/assets\/Banner8.png)**<br \/>\n<center>One of the simplest plugin &#038; command hider!<br \/>\n<center>Decide what plugins and commands your players should see! ^^<\/p>\n<p>**placeholderapi support &#8211; free &#8211; no dependencies required**<br \/>\n___________________________________<\/p>\n<p>**<\/center>****<\/center>****<\/center>**<br \/>\n# **A**BOUT<br \/>\nProAntiTab is an advanced **plugin hider** with **many features** and a very simple to understand system. It prevents your server from **plugin spoofers** used by hack clients, manipulates the **tab-completion**, blocks unwanted **suggestions** and much more!<br \/>\n#####<\/p>\n<p><iframe loading=\"lazy\" width=\"130\" height=\"100\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/WLGDYsa0uxc\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p><iframe loading=\"lazy\" width=\"130\" height=\"100\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/illp_GmjPlo\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p>#####<\/p>\n<p># **I**N ACTION<br \/>\n![https:\/\/www.rayzs.de\/proantitab\/assets\/beforeafter5.png](https:\/\/www.rayzs.de\/proantitab\/assets\/beforeafter5.png)<\/p>\n<p>######<br \/>\n# **C**USTOM SERVER BRAND (F3)<br \/>\nCreate your own animated custom server brand on your Spigot, Bungeecord and Velocity server!<br \/>\n*![https:\/\/www.rayzs.de\/proantitab\/assets\/csbr.gif](https:\/\/www.rayzs.de\/proantitab\/assets\/csbr.gif)![https:\/\/www.rayzs.de\/proantitab\/assets\/edc.gif](https:\/\/www.rayzs.de\/proantitab\/assets\/edc.gif)* <\/p>\n<details>\n<summary>open config.yml section<\/summary>\n<p>&#8220;`yaml<br \/>\n# This feature allows you to customize your server-brand you see when you press F3.<br \/>\n# Normally there stands something like &#8216;Purpur&#8217;, or &#8216;Spigot&#8217;.<br \/>\n# With this feature you are able to change and even animate it! ^^<br \/>\ncustom-server-brand:<br \/>\n  enabled: false<\/p>\n<p>#   Determines the speed in that the animation goes<br \/>\n  repeat-delay: 3<\/p>\n<p>#   This here is the list of the animation<br \/>\n#   Possible placeholders:<br \/>\n#   %player%        &#8211; name of the player<br \/>\n#   %displayname%   &#8211; displayname of the player<br \/>\n#   %world%         &#8211; name of world where the player is<br \/>\n#   and the other placeholders from PlaceholderAPI<br \/>\n  brands:<br \/>\n    &#8211; &#8216;&#038;f&#038;lP&#038;froAntiTab |&#8217;<br \/>\n    &#8211; &#8216;&#038;fP&#038;lr&#038;foAntiTab \/&#8217;<br \/>\n    &#8211; &#8216;&#038;fPr&#038;lo&#038;fAntiTab -&#8216;<br \/>\n    &#8211; &#8216;&#038;fPro&#038;lA&#038;fntiTab |&#8217;<br \/>\n    &#8211; &#8216;&#038;fProA&#038;ln&#038;ftiTab &#8216;<br \/>\n    &#8211; &#8216;&#038;fProAn&#038;lt&#038;fiTab |&#8217;<br \/>\n    &#8211; &#8216;&#038;fProAnt&#038;li&#038;fTab \/&#8217;<br \/>\n    &#8211; &#8216;&#038;fProAnti&#038;lT&#038;fab -&#8216;<br \/>\n    &#8211; &#8216;&#038;fProAnti&#038;lT&#038;fab &#8216;<br \/>\n    &#8211; &#8216;&#038;fProAntiT&#038;la&#038;fb |&#8217;<br \/>\n    &#8211; &#8216;&#038;fProAntiTa&#038;lb&#038;f \/&#8217;<br \/>\n    &#8211; &#8216;&#038;fProAntiTab -&#8216;<br \/>\n    &#8211; &#8216;&#038;fProAntiTab &#8216;<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>######<br \/>\n# **U**SE BLACKLIST AS WHITELIST<br \/>\nYou have way too many commands to block? Don&#8217;t worry.<br \/>\nThere&#8217;s a section in the config.yml located pretty much high that allows you to turn the blacklist into a whitelist instead. This will block every command on your server except for those that are listed.<\/p>\n<details>\n<summary>section in config.yml<\/summary>\n<p>&#8220;`yaml<br \/>\n# This is a very necessary feature if you have way too many commands to block and instead decide<br \/>\n# to whitelist specific commands.<br \/>\n# Enabling this will disable ALL commands except for those that are in the (group-)list.<br \/>\nturn-blacklist-to-whitelist: false<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>######<br \/>\n# **A**NTI PLUGIN SPOOFING<br \/>\n##### ProAntiTab is able to detect and block plugin spoofing attempts used by hack clients.<br \/>\n*![https:\/\/www.rayzs.de\/proantitab\/assets\/noplspoof.png](https:\/\/www.rayzs.de\/proantitab\/assets\/noplspoof.png)*<\/p>\n<p>######<br \/>\n# **B**LOCK SUB ARGUMENTS<br \/>\nWe all know the problem when players should be able to use some of the commands but should not see literally EVERY sub-argument in a command. Well, then just blend them out? ProAntiTab can do this for you and it&#8217;s very easy to setup as well! (See some examples below)<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/subargs.png](https:\/\/www.rayzs.de\/proantitab\/assets\/subargs.png)<\/p>\n<details>\n<summary>example<\/summary>\n<p>&#8220;`yaml<br \/>\n# Let&#8217;s say you just want to allow &#8220;\/help Minecraft&#8221; only and not &#8220;\/help apple&#8221;.<br \/>\n# It will also automatically allow everything after &#8220;\/help Minecraft &#8230;&#8221;<br \/>\n&#8211; help Minecraft<\/p>\n<p># [CMD] = Allow the execution of the command<br \/>\n# [TAB] = Allow the tab-completion of the command<br \/>\n&#8211; &#8220;[CMD]cmi tpa&#8221; # Only executable. Not tab-completable<br \/>\n&#8211; tpa            # Executable &#038; Tab-Completable<\/p>\n<p># %hidden_online_players% = Online players (Removed from tab-completion)<br \/>\n# %online_players%        = Online players<br \/>\n# %hidden_players%        = Registered players (Removed from tab-completion)<br \/>\n# %players%               = Registered players<br \/>\n# %numbers%               = Numbers, such as 1000 or 1.000<br \/>\n# _-                      = Block everything after<br \/>\n&#8211; &#8220;tpa %online_players%&#8221;<br \/>\n&#8211; &#8220;sell %numbers%&#8221;<\/p>\n<p># Using the operator _- at the end cancels every argument afterwards and blocks it.<br \/>\n# This will allow the player to use &#8220;\/help Minecraft&#8221; but not &#8220;\/help Minecraft xyz&#8221;<br \/>\n&#8211; help Minecraft _-<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>######<br \/>\n# **B**LOCK COLON COMMANDS<br \/>\nBlocking each and every colon command like essentials:spawn by hand is not an easy task. But with this simple feature, you can easily block all colon commands automatically! Only people with the proantitab.namespace permission can see and use these commands again.<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/namespace.png](https:\/\/www.rayzs.de\/proantitab\/assets\/namespace.png)<\/p>\n<details>\n<summary>open config.yml section<\/summary>\n<p>&#8220;`yaml<br \/>\n#>> HTP (Overwritten)<br \/>\n# Here you can disable all namespace commands.<br \/>\n# Namespace commands are commands like plugin:command (e.g: essentials:warp)<br \/>\n# You can bypass this restriction with the proantitab.namespace permission.<br \/>\nblock-namespace-commands:<br \/>\nenabled: false<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>######<br \/>\n# **C**USTOM PLUGINS LIST<br \/>\nJust blocking the \/plugins command is pretty boring. This feature here allows you to make it more interesting by displaying for example fake plugins.<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/fakeplugins2.PNG](https:\/\/www.rayzs.de\/proantitab\/assets\/fakeplugins2.PNG)<\/p>\n<details>\n<summary>open config.yml section<\/summary>\n<p>&#8220;`yaml<br \/>\n#>> HTP (Overwritten)<br \/>\n# Here you can customize your own fake &#8216;\/plugins&#8217; command.<br \/>\ncustom-plugins:<br \/>\nenabled: true<br \/>\ncommands:<br \/>\n&#8211; pl<br \/>\n&#8211; plugins<br \/>\n&#8211; bukkit:pl<br \/>\n&#8211; bukkit:plugins<br \/>\nmessage:<br \/>\n&#8211; &#8216;&#038;fPlugins (0):&#8217;<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>######<br \/>\n# **C**USTOM VERSION COMMAND<br \/>\nWho wouldn&#8217;t like to pretend to own a custom server-jar? Have fun customizing your very own \/version command to your personal liking.<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/custom-version.png](https:\/\/www.rayzs.de\/proantitab\/assets\/custom-version.png)<\/p>\n<details>\n<summary>open config.yml section<\/summary>\n<p>&#8220;`yaml<br \/>\n#>> HTP (Overwritten)<br \/>\n# Here you can customize your own fake &#8216;\/version&#8217; command.<br \/>\ncustom-version:<br \/>\nenabled: true<br \/>\ncommands:<br \/>\n&#8211; version<br \/>\n&#8211; ver<br \/>\n&#8211; icanhasbukkit<br \/>\n&#8211; bukkit:ver<br \/>\n&#8211; bukkit:version<br \/>\nmessage:<br \/>\n&#8211; &#8216;&#038;fThis server is running CraftBukkit version git-NasaSpigot-294 (MC: X)&#8217;<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>######<br \/>\n# **C**USTOM UNKNOWN COMMAND MESSAGE<br \/>\nThe Bukkit\/Spigot version of ProAntiTab gives your the possibility to create your own unknown-command message to align it with the blocked-command message for example.<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/customunknowncommand.PNG](https:\/\/www.rayzs.de\/proantitab\/assets\/customunknowncommand.PNG)<\/p>\n<details>\n<summary>open config.yml section<\/summary>\n<p>&#8220;`yaml<br \/>\n# Now there we come to the good stuff! ^^<br \/>\n# If ProAntiTab is loaded on a Spigot server, you will see this option right here.<br \/>\n# With that you can also customize your own &#8220;Unknown Command&#8221;-message.<br \/>\ncustom-unknown-command:<br \/>\n  enabled: true<br \/>\n  message:<br \/>\n    &#8211; &#8216;&#038;cThis command does not exist!&#8217;<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>######<br \/>\n# **C**USTOM PROTOCOL PING<br \/>\nDo you know the red text message at the players count when you ping a server with the wrong version? Exactly this holds the information of what kind of server your proxy server is running at. This feature hides the version of the proxy with a custom made one. It&#8217;s enabled by default but doesn&#8217;t show the text. The text can be seen when someone pings the server with the wrong version or uses a resolver. This picture shows you what someone with the wrong version would see, unless the &#8220;always-show&#8221; is enabled. If this option is enabled, this text will always appear.<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/custom-protol-ping.png](https:\/\/www.rayzs.de\/proantitab\/assets\/custom-protol-ping.png) <\/p>\n<details>\n<summary>open config.yml section<\/summary>\n<p>&#8220;`yaml<br \/>\n# Change the protocol for the version name when the server is being pinged<br \/>\n# (!) Warning: It&#8217;s required to use Paper or Purpur to use this feature!<br \/>\n# (!) Supported server versions: 1.12.2 &#8211; latest<br \/>\ncustom-protocol-ping:<br \/>\n  enabled: false<\/p>\n<p>  # Normally it would only display when someone pings the server with the wrong version.<br \/>\n  # Enabling this will always display the protocol and replace it with the normal player count.<br \/>\n  always-show: false<\/p>\n<p>  # This number here determines the outcome for the %online_extended% placeholder.<br \/>\n  # It&#8217;s the current amount of players increased by this number.<br \/>\n  # For example: 5\/20 becomes 6\/20<br \/>\n  extend-online-count: 1<br \/>\n  # true: Use new calculated online-count (%online_extended%) as max-players count.<br \/>\n  # false: Use the default max-players count.<br \/>\n  use-as-maxplayers: false<\/p>\n<p>  # Enabling this option hides the list of players on your server,<br \/>\n  # when you hover over the player count.<br \/>\n  hide-players: true<\/p>\n<p>  # The displayed protocol message<br \/>\n  # Available placeholders:<br \/>\n  # %online%            &#8211; current online player count<br \/>\n  # %online_extended%   &#8211; manipulated online player count<br \/>\n  # %max%               &#8211; max player count<br \/>\n  protocol: &#8216;&#038;f&#038;lProAntiTab &#038;7(&#038;a%online%&#038;7\/&#038;c%max%&#038;7)&#8217;<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>######<br \/>\n# **C**USTOM RESPONSE ACTIONS<br \/>\nFor some, it&#8217;s important to determine how the response message should be or what should happen. You can customize that factor to your personal liking and use different actions to have full control over your blocked commands.<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/custom-response-title-smaller-2.png](https:\/\/www.rayzs.de\/proantitab\/assets\/custom-response-title-smaller-2.png)<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/custom-response-down-smaller-3.png](https:\/\/www.rayzs.de\/proantitab\/assets\/custom-response-down-smaller-3.png)<\/p>\n<details>\n<summary>Bukkit\/Spigot examples<\/summary>\n<p>&#8220;`yaml<br \/>\n#      ____             ___          __  _ ______      __<br \/>\n#     \/ __ _________  \/   |  ____  \/ \/_(_)_  __\/___ _\/ \/_<br \/>\n#    \/ \/_\/ \/ ___\/ __ \/ \/| | \/ __ \/ __\/ \/ \/ \/ \/ __ `\/ __<br \/>\n#   \/ ____\/ \/  \/ \/_\/ \/ ___ |\/ \/ \/ \/ \/_\/ \/ \/ \/ \/ \/_\/ \/ \/_\/ \/<br \/>\n#  \/_\/   \/_\/   ____\/_\/  |_\/_\/ \/_\/__\/_\/ \/_\/  __,_\/_.___\/<br \/>\n#  custom-responses.yml<br \/>\n#<br \/>\n# Here you can configure a few of the blocked commands a bit further.<br \/>\n#  But what exactly is this here? Every command that would normally respond with the typical &#8220;command is blocked&#8221; message, can be configured in here!<br \/>\n#  And how does it work? It&#8217;s simple. You just provide the a trigger of the command that would be normally blocked.<br \/>\n#  Commands that would normally work won&#8217;t send the messages you have set here.<br \/>\n#  This way PAT can offer you full control over certain commands and their normal responses.<br \/>\n# What are these action section at each block?<br \/>\n#  This is an additional feature to make your responses much more alive.<br \/>\n#  Example actions that can be used are the following:<br \/>\n#   Execute console command:<br \/>\n#        Syntax:  console::command<br \/>\n#        Example: console::say %player% is an evil player<br \/>\n#   Execute player command:<br \/>\n#        Syntax:  execute::command<br \/>\n#        Example: execute::help<br \/>\n#   Send actionbar:<br \/>\n#        Syntax:  actionbar::text<br \/>\n#        Example: actionbar::&#038;cThis is not cool %player%!<br \/>\n#   Send title:<br \/>\n#        Syntax:  title::title::subtitle::5::20::5<br \/>\n#        Example: title::&#038;aTest title::&#038;cHello %player%!<br \/>\n#   Play sound:<br \/>\n#        Syntax:  sound::soundName::volume::pitch<br \/>\n#        Example: sound::ENTITY_ENDER_DRAGON_GROWL::1.0::1.0<br \/>\n#   Give potion effect:<br \/>\n#        Syntax:  effect::potionEffect::duration::amplifier<br \/>\n#        Example: effect::BLINDNESS::45::1<\/p>\n<p># Here are a few examples:<\/p>\n<p># Example with kits.<br \/>\n# In here we only trigger the given message, if the player would type &#8220;\/kit &#8230;&#8221;.<br \/>\n# If this command would work through sub-arguments, then the player would only able to execute the command with the<br \/>\n# listed sub-arguments assigned to it. Everything else will result with the set message in there.<br \/>\n# &#8212;<br \/>\n#example-with-kits:<br \/>\n#  triggers:<br \/>\n#    &#8211; &#8220;kit *&#8221;<br \/>\n#  message:<br \/>\n#    &#8211; &#8220;&#038;cThis kit does not exist!&#8221;<br \/>\n#  actions:<br \/>\n#    &#8211; &#8220;actionbar::&#038;cSorry %player%, but this kit does not exist!&#8221;<\/p>\n<p># Here another example with an auctionhouse plugin.<br \/>\n# In here we only trigger the given message, if the player would type &#8220;\/ah plugin&#8221;.<br \/>\n# Normally it would print out the &#8220;command is blocked&#8221; message, because PAT would have blocked it in our case.<br \/>\n# Therefore, we can also assign a custom response message to it.<br \/>\n# &#8212;<br \/>\n#example-with-auctionhouse:<br \/>\n#  triggers:<br \/>\n#    &#8211; &#8220;ah plugin&#8221;<br \/>\n#  message:<br \/>\n#    &#8211; &#8220;&#038;cThis sub-command does not exist. Please type: &#038;e\/ah help&#8221;<br \/>\n#  actions:<br \/>\n#    &#8211; &#8220;console::say That&#8217;s not nice %player%!&#8221;<br \/>\n#    &#8211; &#8220;effect::BLINDNESS::45::1&#8221;<br \/>\n#    &#8211; &#8220;sound::ENTITY_ENDER_DRAGON_GROWL::1.0::1.0&#8221;<br \/>\n#    &#8211; &#8220;title::&#038;cHey!::&#038;cYou can&#8217;t do that %player%!::5::20::5&#8221;<br \/>\n#    &#8211; &#8220;actionbar::&#038;cNop, sorry %player%&#8221;<br \/>\n&#8220;`<br \/>\n<\/details>\n<details>\n<summary>Proxy examples<\/summary>\n<p>&#8220;`yaml<br \/>\n#      ____             ___          __  _ ______      __<br \/>\n#     \/ __ _________  \/   |  ____  \/ \/_(_)_  __\/___ _\/ \/_<br \/>\n#    \/ \/_\/ \/ ___\/ __ \/ \/| | \/ __ \/ __\/ \/ \/ \/ \/ __ `\/ __<br \/>\n#   \/ ____\/ \/  \/ \/_\/ \/ ___ |\/ \/ \/ \/ \/_\/ \/ \/ \/ \/ \/_\/ \/ \/_\/ \/<br \/>\n#  \/_\/   \/_\/   ____\/_\/  |_\/_\/ \/_\/__\/_\/ \/_\/  __,_\/_.___\/<br \/>\n#  custom-responses.yml<br \/>\n#<br \/>\n# Here you can configure a few of the blocked commands a bit further.<br \/>\n#  But what exactly is this here? Every command that would normally respond with the typical &#8220;command is blocked&#8221; message, can be configured in here!<br \/>\n#  And how does it work? It&#8217;s simple. You just provide the a trigger of the command that would be normally blocked.<br \/>\n#  Commands that would normally work won&#8217;t send the messages you have set here.<br \/>\n#  This way PAT can offer you full control over certain commands and their normal responses.<br \/>\n# What are these action section at each block?<br \/>\n#  This is an additional feature to make your responses much more alive.<br \/>\n#  Example actions that can be used are the following:<br \/>\n#   Execute console command:<br \/>\n#        Syntax:  console::command<br \/>\n#        Example: console::send %player% fallback<br \/>\n#   Execute player command:<br \/>\n#        Syntax:  execute::command<br \/>\n#        Example: execute::help<br \/>\n#   Send actionbar:<br \/>\n#        Syntax:  actionbar::text<br \/>\n#        Example: actionbar::&#038;cThis is not cool %player%!<br \/>\n#   Send title:<br \/>\n#        Syntax:  title::title::subtitle::5::20::5<br \/>\n#        Example: title::&#038;aTest title::&#038;cHello %player%!<\/p>\n<p># Here are a few examples:<\/p>\n<p># Example with kits.<br \/>\n# In here we only trigger the given message, if the player would type &#8220;\/kit &#8230;&#8221;.<br \/>\n# If this command would work through sub-arguments, then the player would only able to execute the command with the<br \/>\n# listed sub-arguments assigned to it. Everything else will result with the set message in there.<br \/>\n# &#8212;<br \/>\n#example-with-kits:<br \/>\n#  triggers:<br \/>\n#    &#8211; &#8220;kit *&#8221;<br \/>\n#  message:<br \/>\n#    &#8211; &#8220;&#038;cThis kit does not exist!&#8221;<br \/>\n#  actions:<br \/>\n#    &#8211; &#8220;actionbar::&#038;cSorry %player%, but this kit does not exist!&#8221;<\/p>\n<p># Here another example with an auctionhouse plugin.<br \/>\n# In here we only trigger the given message, if the player would type &#8220;\/ah plugin&#8221;.<br \/>\n# Normally it would print out the &#8220;command is blocked&#8221; message, because PAT would have blocked it in our case.<br \/>\n# Therefore, we can also assign a custom response message to it.<br \/>\n# &#8212;<br \/>\n#example-with-auctionhouse:<br \/>\n#  triggers:<br \/>\n#    &#8211; &#8220;ah plugin&#8221;<br \/>\n#  message:<br \/>\n#    &#8211; &#8220;&#038;cThis sub-command does not exist. Please type: &#038;e\/ah help&#8221;<br \/>\n#  actions:<br \/>\n#    &#8211; &#8220;console::say That&#8217;s not nice %player%!&#8221;<br \/>\n#    &#8211; &#8220;title::Hey!::You can&#8217;t do that %player%!::30::3000::30&#8221;<br \/>\n#    &#8211; &#8220;actionbar::Nop, sorry %player%&#8221;<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>#####<br \/>\n# **N**EGATE COMMANDS<br \/>\nIt&#8217;s not a must to write each and every possible sub-argument by hand. The same goes for commands in general.<br \/>\nYou can negate them with the help of the negation operator (&#8220;!&#8220;).<\/p>\n<p>*![https:\/\/www.rayzs.de\/proantitab\/assets\/neg.png](https:\/\/www.rayzs.de\/proantitab\/assets\/neg.png)*<\/p>\n<details>\n<summary>example<\/summary>\n<p>&#8220;`yaml<br \/>\n# Allows \/gamemode and all of its sub-arguments<br \/>\n# except &#8220;\/gamemode creative&#8221;<br \/>\n&#8211; &#8220;gamemode&#8221;<br \/>\n&#8211; &#8220;!gamemode creative&#8221;<br \/>\n&#8211; &#8216;!gamemode toggle&#8217;<br \/>\n&#8220;`<\/p>\n<p>&#8220;`yaml<br \/>\n# Allows all commands, except \/anvil<br \/>\n&#8211; &#8220;*&#8221;<br \/>\n&#8211; &#8220;!anvil&#8221;<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>#####<br \/>\n# **A**UTO-ADD ALL PLUGIN COMMANDS<br \/>\nSometimes it&#8217;s so annoying to add all commands from a certain plugin by hand. That&#8217;s why ProAntiTab offers the possebility to simply add all commands from a certain plugin with a simple shortcut.<\/p>\n<p>You can simply add &#8220;plugin=<plugin-name>&#8220; to add all commands from a plugin automatically.<br \/>\n**Only works for standalone Spigot (+Forks) servers**<\/p>\n<details>\n<summary>example<\/summary>\n<p>&#8220;`yaml<br \/>\n# Allows all Essentials commands except \/anvil.<br \/>\n# \/gamemode is limited to only two sub-arguments<br \/>\n&#8211; &#8220;plugin=essentials&#8221;<br \/>\n&#8211; &#8220;!anvil&#8221;<br \/>\n&#8211; &#8220;gamemode creative&#8221;<br \/>\n&#8211; &#8220;gamemode survival&#8221;<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>######<br \/>\n# **B**LOCK ON SPECIFIC SERVERS<br \/>\nIf you use ProAntiTab on a network, you can pretty easily manage on what servers what commands should exist. Everything can be handled via the proxy and does not require additional maintenance on the backend servers.<\/p>\n<p>For this, just follow the official setup and how-to guide, which can be both found on the Github wiki.<\/p>\n<p>######<br \/>\n# **G**ROUP SYSYTEM<br \/>\nThe PAT group system allows you to allow certain commands only for a certain group of people. PAT group commands are mainly for **whitelisting** commands, can merge with other groups, and so on.<\/p>\n<p>They can also be used to blacklist commands by negating the commands inside there. But for this to work, the option `allow-group-overruling` inside the `config.yml` needs to be enabled.<\/p>\n<p>How to use the PAT group system in general can be seen on the Github wiki.<\/p>\n<p>######<br \/>\n# **P**LACEHOLDERAPI &#038; PAPIPROXYBRIDGE SUPPORT<br \/>\nCustomization and uniqueness is an important factor for many server owners. That&#8217;s why PAT offers you the possebility to edit and use many of its placeholders with the widely spreaded plugin PlaceholderAPI. Accessing those placeholders on the proxy isn&#8217;t a problem either. With the support of the addtional plugin PAPIProxyBridge, PAT&#8217;s placeholders are even accessable on your proxy server.<\/p>\n<details>\n<summary>Available placeholders<\/summary>\n<p>&#8220;`yaml<br \/>\n# Some general Placeholders to work with:<br \/>\n#   %pat_general_user%                      = Get the name of the user who receives this message.<br \/>\n#   %pat_general_version_current%           = Get current version name of PAT.<br \/>\n#   %pat_general_version_newest%            = Get newest version name of PAT.<\/p>\n<p># Placeholders of some of the messages in the config.yml:<br \/>\n#   %pat_message_unknowncommand%            = Get the &#8220;unknown command&#8221;-message from the config.yml of PAT. [cancel-blocked-command]<br \/>\n#   %pat_message_blocked%                   = Get the &#8220;command blocked&#8221;-message from the config.yml of PAT. [custom-unknown-command]<\/p>\n<p># Placeholders to list all commands:<br \/>\n#   %pat_list_size_commands%                = Get the amount of all listed commands.<br \/>\n#   %pat_list_commands%                     = Get all listed commands.<br \/>\n#   %pat_list_sorted_commands%              = Get all listed commands in alphabetic order. (A-Z)<br \/>\n#   %pat_list_reversed_groups%              = Get all listed commands in reversed alphabetic order. (Z-A)<\/p>\n<p># Placeholders to list all commands of a group: (replace &#8216;xxx&#8217; with the group-name)<br \/>\n#   %pat_list_size_commands_group_xxx%      = Get the amount of all commands of a group.<br \/>\n#   %pat_list_commands_group_xxx%           = Get all commands of a group.<br \/>\n#   %pat_list_sorted_commands_group_xxx%    = Get all commands of a group in alphabetic order. (A-Z)<br \/>\n#   %pat_list_reversed_commands_group_xxx%  = Get all commands of a group in reversed alphabetic order. (Z-A)<\/p>\n<p># Placeholders to list all groups:<br \/>\n#   %pat_list_size_groups%                  = Get the amount of all available groups.<br \/>\n#   %pat_list_groups%                       = Get all groups.<br \/>\n#   %pat_list_sorted_groups%                = Get all groups in alphabetic order. (A-Z)<br \/>\n#   %pat_list_reversed_groups%              = Get all groups in reversed alphabetic order. (Z-A)<br \/>\n&#8220;`<br \/>\n<\/details>\n<p>###<\/p>\n<p># **M**INIMESSAGE SUPPORT<br \/>\n## ![https:\/\/www.rayzs.de\/proantitab\/assets\/possibilites.png](https:\/\/www.rayzs.de\/proantitab\/assets\/possibilites.png)<br \/>\n##### You want to design your messages more unique? We got you covered! *(works on 1.17 server and above)*<br \/>\n*(Click here to see the documentation for the format*)<\/p>\n<p>Look at those few examples to see what kind of possibilities awaits you:<\/p>\n<details>\n<summary>example 1<\/summary>\n<p>&#8220;`yaml<br \/>\ncancel-blocked-commands:<br \/>\n  enabled: true<br \/>\n  message: &#8216;<hover:show_text:\"&#038;cBlocked command: &#038;4&#038;o%command%\">&#038;cThis command is &#038;4&#038;lBLOCKED&#038;c!&#8217;<br \/>\n&#8220;`<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/example1.png](https:\/\/www.rayzs.de\/proantitab\/assets\/example1.png) <\/p>\n<\/details>\n<details>\n<summary>example 2<\/summary>\n<p>&#8220;`yaml<br \/>\ncancel-blocked-commands:<br \/>\n  enabled: true<br \/>\n  message: &#8216;&#038;cThis command is blocked! <click:suggest_command:\/help>&#038;7Click here to get a view of all available commands instead.&#8217;<br \/>\n&#8220;`<\/p>\n<p>![https:\/\/www.rayzs.de\/proantitab\/assets\/example2.png](https:\/\/www.rayzs.de\/proantitab\/assets\/example2.png) <\/p>\n<\/details>\n<p>######<br \/>\n# **H**OW TO SETUP?<br \/>\nDespite of the fact that ProAntiTab is pretty easy to use, the setup is slidely different for each server engine.<br \/>\nIt normally is already enough to simply load ProAntiTab on the certain server you wanna use it, but in order to use ProAntiTab with all its features, its recommended to follow the official setup guide on the Github wiki.<\/p>\n<p>**Please feel free to join the Discord server to request for help if the instruction is unclear or too complicated. ^^**<\/p>\n<p> #<br \/>\n# **H**OW TO ALLOW COMMANDS?<br \/>\nPlease check out the wiki to get an idea on how PAT works and can be used.<\/p>\n<p>If you want to bypass all blocked commands, simply give yourself the following permission: **proantitab.bypass**<\/p>\n<p>Following permission is required to execute all listed commands within a certain group: **proantitab.group.<group>**<\/p>\n<p>######<br \/>\n# **C**OMMANDS &#038; PERMISSIONS<br \/>\nAll commands and their permissions are listed on the documentation page at the very buttom.<\/p>\n<p>######<br \/>\n# **C**ONFIGURATION FILE<\/p>\n<details>\n<summary>Bukkit\/Spigot<\/summary>\n<p>config.yml<br \/>\n<br \/>\nstorage.yml<\/p>\n<\/details>\n<details>\n<summary>Proxy (Bungeecord\/Velocity)<\/summary>\n<p>config.yml<br \/>\n<br \/>\nstorage.yml<\/p>\n<\/details>\n<p>######<br \/>\n## **bStats**<br \/>\n![https:\/\/bstats.org\/signatures\/bukkit\/ProAntiTab%20-%20Spigot.svg](https:\/\/bstats.org\/plugin\/bukkit\/proantitab%20-%20spigot\/20089)<\/p>\n<p>![https:\/\/bstats.org\/signatures\/bungeecord\/ProAntiTab%20-%20Bungeecord.svg](https:\/\/bstats.org\/plugin\/bungeecord\/proantitab%20-%20bungeecord\/20090)<\/p>\n<p>![https:\/\/bstats.org\/signatures\/velocity\/ProAntiTab%20-%20Velocity.svg](https:\/\/bstats.org\/plugin\/velocity\/proantitab%20-%20velocity\/21638)<\/p>\n<p><center><\/p>\n<p>![https:\/\/www.rayzs.de\/rayzsshield\/assets\/support.png](https:\/\/www.rayzs.de\/discord)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hide Commands, Custom F3 Brand, Block Unwanted Tab-Completion &#038; Suggestions<\/p>\n","protected":false},"featured_media":125201,"template":"","meta":{"_minecraft_slug":"proantitab","_minecraft_project_id":"1Er8JDvh","_minecraft_author":"Alihan","_minecraft_license":"GPL-2.0-or-later","_minecraft_downloads":7786,"_minecraft_follows":41,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"proantitab.zip","_minecraft_size_bytes":34502538,"_minecraft_version_count":21,"_minecraft_updated_at":"2026-05-16T02:27:01.761835Z","_minecraft_date_created":"2024-06-20T02:51:22.343195Z","_minecraft_date_modified":"2026-01-29T00:05:42.339790Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/proantitab","_minecraft_icon_attachment_id":125201,"_minecraft_imported_at":"2026-06-07T08:32:28+00:00","_minecraft_import_hash":"9392f077cc91ce39a656b4721e4243c3","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,894,125,126,127,128,129,92,985,992],"mod_loader":[130,895,131,132,133,134,986,993],"minecraft_version":[339,340,341,357,359,360,379,382,385,438,446,449,110,111,112,113,114,115,116,117,118,119,120,46,47,48,49,50,51,52,53,54,55,56,57,58,59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,30,31,860,861,862,863,864],"class_list":["post-125200","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-bungeecord","mod_category-folia","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-utility","mod_category-velocity","mod_category-waterfall","mod_loader-bukkit","mod_loader-bungeecord","mod_loader-folia","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","mod_loader-velocity","mod_loader-waterfall","minecraft_version-1-10","minecraft_version-1-10-1","minecraft_version-1-10-2","minecraft_version-1-11","minecraft_version-1-11-1","minecraft_version-1-11-2","minecraft_version-1-12","minecraft_version-1-12-1","minecraft_version-1-12-2","minecraft_version-1-13","minecraft_version-1-13-1","minecraft_version-1-13-2","minecraft_version-1-14","minecraft_version-1-14-1","minecraft_version-1-14-2","minecraft_version-1-14-3","minecraft_version-1-14-4","minecraft_version-1-15","minecraft_version-1-15-1","minecraft_version-1-15-2","minecraft_version-1-16","minecraft_version-1-16-1","minecraft_version-1-16-2","minecraft_version-1-16-3","minecraft_version-1-16-4","minecraft_version-1-16-5","minecraft_version-1-17","minecraft_version-1-17-1","minecraft_version-1-18","minecraft_version-1-18-1","minecraft_version-1-18-2","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-1-8-8","minecraft_version-1-8-9","minecraft_version-1-9","minecraft_version-1-9-1","minecraft_version-1-9-2","minecraft_version-1-9-3","minecraft_version-1-9-4"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ProAntiTab - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ProAntiTab - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Hide Commands, Custom F3 Brand, Block Unwanted Tab-Completion &amp; Suggestions\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/proantitab\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/proantitab\\\/\",\"name\":\"ProAntiTab - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/proantitab\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/proantitab\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/proantitab-icon-5d1ba22e22c8c32b1adfab6d339151cca41270da_96.webp\",\"datePublished\":\"2026-06-07T08:32:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/proantitab\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/proantitab\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/proantitab\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/proantitab-icon-5d1ba22e22c8c32b1adfab6d339151cca41270da_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/proantitab-icon-5d1ba22e22c8c32b1adfab6d339151cca41270da_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/proantitab\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"ProAntiTab\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ProAntiTab - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/","og_locale":"en_US","og_type":"article","og_title":"ProAntiTab - Minecraft","og_description":"Hide Commands, Custom F3 Brand, Block Unwanted Tab-Completion & Suggestions","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/","name":"ProAntiTab - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/proantitab-icon-5d1ba22e22c8c32b1adfab6d339151cca41270da_96.webp","datePublished":"2026-06-07T08:32:27+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/proantitab-icon-5d1ba22e22c8c32b1adfab6d339151cca41270da_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/proantitab-icon-5d1ba22e22c8c32b1adfab6d339151cca41270da_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/proantitab\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"ProAntiTab"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/125200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/125201"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=125200"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=125200"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=125200"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=125200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}