All Mods Resource Packs Data Packs Shaders Modpacks Plugins
ProAntiTab

ProAntiTab

by Alihan • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions
https://www.rayzs.de/proantitab/assets/Banner8.png
One of the simplest plugin & command hider!
Decide what plugins and commands your players should see! ^^

placeholderapi support - free - no dependencies required


**
**

ABOUT

ProAntiTab 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!

IN ACTION

https://www.rayzs.de/proantitab/assets/beforeafter5.png

CUSTOM SERVER BRAND (F3)

Create your own animated custom server brand on your Spigot, Bungeecord and Velocity server! https://www.rayzs.de/proantitab/assets/csbr.gifhttps://www.rayzs.de/proantitab/assets/edc.gif

open config.yml section
# This feature allows you to customize your server-brand you see when you press F3.
# Normally there stands something like 'Purpur', or 'Spigot'.
# With this feature you are able to change and even animate it! ^^
custom-server-brand:
  enabled: false

#   Determines the speed in that the animation goes
  repeat-delay: 3

#   This here is the list of the animation
#   Possible placeholders:
#   %player%        - name of the player
#   %displayname%   - displayname of the player
#   %world%         - name of world where the player is
#   and the other placeholders from PlaceholderAPI
  brands:
    - '&f&lP&froAntiTab |'
    - '&fP&lr&foAntiTab /'
    - '&fPr&lo&fAntiTab -'
    - '&fPro&lA&fntiTab |'
    - '&fProA&ln&ftiTab \'
    - '&fProAn&lt&fiTab |'
    - '&fProAnt&li&fTab /'
    - '&fProAnti&lT&fab -'
    - '&fProAnti&lT&fab \'
    - '&fProAntiT&la&fb |'
    - '&fProAntiTa&lb&f /'
    - '&fProAntiTab -'
    - '&fProAntiTab \'

USE BLACKLIST AS WHITELIST

You have way too many commands to block? Don't worry. There'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.

section in config.yml
# This is a very necessary feature if you have way too many commands to block and instead decide
# to whitelist specific commands.
# Enabling this will disable ALL commands except for those that are in the (group-)list.
turn-blacklist-to-whitelist: false

ANTI PLUGIN SPOOFING

ProAntiTab is able to detect and block plugin spoofing attempts used by hack clients.

https://www.rayzs.de/proantitab/assets/noplspoof.png

BLOCK SUB ARGUMENTS

We 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's very easy to setup as well! (See some examples below)

https://www.rayzs.de/proantitab/assets/subargs.png

example
# Let's say you just want to allow "/help Minecraft" only and not "/help apple".
# It will also automatically allow everything after "/help Minecraft ..."
- help Minecraft

# [CMD] = Allow the execution of the command
# [TAB] = Allow the tab-completion of the command
- "[CMD]cmi tpa" # Only executable. Not tab-completable
- tpa            # Executable & Tab-Completable

# %hidden_online_players% = Online players (Removed from tab-completion)
# %online_players%        = Online players
# %hidden_players%        = Registered players (Removed from tab-completion)
# %players%               = Registered players
# %numbers%               = Numbers, such as 1000 or 1.000
# _-                      = Block everything after
- "tpa %online_players%"
- "sell %numbers%"

# Using the operator _- at the end cancels every argument afterwards and blocks it.
# This will allow the player to use "/help Minecraft" but not "/help Minecraft xyz"
- help Minecraft _-

BLOCK COLON COMMANDS

Blocking 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.

https://www.rayzs.de/proantitab/assets/namespace.png

open config.yml section
#>> HTP (Overwritten)
# Here you can disable all namespace commands.
# Namespace commands are commands like plugin:command (e.g: essentials:warp)
# You can bypass this restriction with the proantitab.namespace permission.
block-namespace-commands:
enabled: false

CUSTOM PLUGINS LIST

Just blocking the /plugins command is pretty boring. This feature here allows you to make it more interesting by displaying for example fake plugins.

https://www.rayzs.de/proantitab/assets/fakeplugins2.PNG

open config.yml section
#>> HTP (Overwritten)
# Here you can customize your own fake '/plugins' command.
custom-plugins:
enabled: true
commands:
- pl
- plugins
- bukkit:pl
- bukkit:plugins
message:
- '&fPlugins (0):'

CUSTOM VERSION COMMAND

Who wouldn't like to pretend to own a custom server-jar? Have fun customizing your very own /version command to your personal liking.

https://www.rayzs.de/proantitab/assets/custom-version.png

open config.yml section
#>> HTP (Overwritten)
# Here you can customize your own fake '/version' command.
custom-version:
enabled: true
commands:
- version
- ver
- icanhasbukkit
- bukkit:ver
- bukkit:version
message:
- '&fThis server is running CraftBukkit version git-NasaSpigot-294 (MC: X)'

CUSTOM UNKNOWN COMMAND MESSAGE

The 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.

https://www.rayzs.de/proantitab/assets/customunknowncommand.PNG

open config.yml section
# Now there we come to the good stuff! ^^
# If ProAntiTab is loaded on a Spigot server, you will see this option right here.
# With that you can also customize your own "Unknown Command"-message.
custom-unknown-command:
  enabled: true
  message:
    - '&cThis command does not exist!'

CUSTOM PROTOCOL PING

Do 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's enabled by default but doesn'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 "always-show" is enabled. If this option is enabled, this text will always appear.

https://www.rayzs.de/proantitab/assets/custom-protol-ping.png

open config.yml section
# Change the protocol for the version name when the server is being pinged
# (!) Warning: It's required to use Paper or Purpur to use this feature!
# (!) Supported server versions: 1.12.2 - latest
custom-protocol-ping:
  enabled: false

  # Normally it would only display when someone pings the server with the wrong version.
  # Enabling this will always display the protocol and replace it with the normal player count.
  always-show: false

  # This number here determines the outcome for the %online_extended% placeholder.
  # It's the current amount of players increased by this number.
  # For example: 5/20 becomes 6/20
  extend-online-count: 1
  # true: Use new calculated online-count (%online_extended%) as max-players count.
  # false: Use the default max-players count.
  use-as-maxplayers: false

  # Enabling this option hides the list of players on your server,
  # when you hover over the player count.
  hide-players: true

  # The displayed protocol message
  # Available placeholders:
  # %online%            - current online player count
  # %online_extended%   - manipulated online player count
  # %max%               - max player count
  protocol: '&f&lProAntiTab &7(&a%online%&7/&c%max%&7)'

CUSTOM RESPONSE ACTIONS

For some, it'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.

https://www.rayzs.de/proantitab/assets/custom-response-title-smaller-2.png

https://www.rayzs.de/proantitab/assets/custom-response-down-smaller-3.png

Bukkit/Spigot examples
#      ____             ___          __  _ ______      __
#     / __ \_________  /   |  ____  / /_(_)_  __/___ _/ /_
#    / /_/ / ___/ __ \/ /| | / __ \/ __/ / / / / __ `/ __ \
#   / ____/ /  / /_/ / ___ |/ / / / /_/ / / / / /_/ / /_/ /
#  /_/   /_/   \____/_/  |_/_/ /_/\__/_/ /_/  \__,_/_.___/
#  custom-responses.yml
#
# Here you can configure a few of the blocked commands a bit further.
#  But what exactly is this here? Every command that would normally respond with the typical "command is blocked" message, can be configured in here!
#  And how does it work? It's simple. You just provide the a trigger of the command that would be normally blocked.
#  Commands that would normally work won't send the messages you have set here.
#  This way PAT can offer you full control over certain commands and their normal responses.
# What are these action section at each block?
#  This is an additional feature to make your responses much more alive.
#  Example actions that can be used are the following:
#   Execute console command:
#        Syntax:  console::command
#        Example: console::say %player% is an evil player
#   Execute player command:
#        Syntax:  execute::command
#        Example: execute::help
#   Send actionbar:
#        Syntax:  actionbar::text
#        Example: actionbar::&cThis is not cool %player%!
#   Send title:
#        Syntax:  title::title::subtitle::5::20::5
#        Example: title::&aTest title::&cHello %player%!
#   Play sound:
#        Syntax:  sound::soundName::volume::pitch
#        Example: sound::ENTITY_ENDER_DRAGON_GROWL::1.0::1.0
#   Give potion effect:
#        Syntax:  effect::potionEffect::duration::amplifier
#        Example: effect::BLINDNESS::45::1

# Here are a few examples:

# Example with kits.
# In here we only trigger the given message, if the player would type "/kit ...".
# If this command would work through sub-arguments, then the player would only able to execute the command with the
# listed sub-arguments assigned to it. Everything else will result with the set message in there.
# --
#example-with-kits:
#  triggers:
#    - "kit *"
#  message:
#    - "&cThis kit does not exist!"
#  actions:
#    - "actionbar::&cSorry %player%, but this kit does not exist!"

# Here another example with an auctionhouse plugin.
# In here we only trigger the given message, if the player would type "/ah plugin".
# Normally it would print out the "command is blocked" message, because PAT would have blocked it in our case.
# Therefore, we can also assign a custom response message to it.
# ---
#example-with-auctionhouse:
#  triggers:
#    - "ah plugin"
#  message:
#    - "&cThis sub-command does not exist. Please type: &e/ah help"
#  actions:
#    - "console::say That's not nice %player%!"
#    - "effect::BLINDNESS::45::1"
#    - "sound::ENTITY_ENDER_DRAGON_GROWL::1.0::1.0"
#    - "title::&cHey!::&cYou can't do that %player%!::5::20::5"
#    - "actionbar::&cNop, sorry %player%"
Proxy examples
#      ____             ___          __  _ ______      __
#     / __ \_________  /   |  ____  / /_(_)_  __/___ _/ /_
#    / /_/ / ___/ __ \/ /| | / __ \/ __/ / / / / __ `/ __ \
#   / ____/ /  / /_/ / ___ |/ / / / /_/ / / / / /_/ / /_/ /
#  /_/   /_/   \____/_/  |_/_/ /_/\__/_/ /_/  \__,_/_.___/
#  custom-responses.yml
#
# Here you can configure a few of the blocked commands a bit further.
#  But what exactly is this here? Every command that would normally respond with the typical "command is blocked" message, can be configured in here!
#  And how does it work? It's simple. You just provide the a trigger of the command that would be normally blocked.
#  Commands that would normally work won't send the messages you have set here.
#  This way PAT can offer you full control over certain commands and their normal responses.
# What are these action section at each block?
#  This is an additional feature to make your responses much more alive.
#  Example actions that can be used are the following:
#   Execute console command:
#        Syntax:  console::command
#        Example: console::send %player% fallback
#   Execute player command:
#        Syntax:  execute::command
#        Example: execute::help
#   Send actionbar:
#        Syntax:  actionbar::text
#        Example: actionbar::&cThis is not cool %player%!
#   Send title:
#        Syntax:  title::title::subtitle::5::20::5
#        Example: title::&aTest title::&cHello %player%!

# Here are a few examples:

# Example with kits.
# In here we only trigger the given message, if the player would type "/kit ...".
# If this command would work through sub-arguments, then the player would only able to execute the command with the
# listed sub-arguments assigned to it. Everything else will result with the set message in there.
# --
#example-with-kits:
#  triggers:
#    - "kit *"
#  message:
#    - "&cThis kit does not exist!"
#  actions:
#    - "actionbar::&cSorry %player%, but this kit does not exist!"

# Here another example with an auctionhouse plugin.
# In here we only trigger the given message, if the player would type "/ah plugin".
# Normally it would print out the "command is blocked" message, because PAT would have blocked it in our case.
# Therefore, we can also assign a custom response message to it.
# ---
#example-with-auctionhouse:
#  triggers:
#    - "ah plugin"
#  message:
#    - "&cThis sub-command does not exist. Please type: &e/ah help"
#  actions:
#    - "console::say That's not nice %player%!"
#    - "title::Hey!::You can't do that %player%!::30::3000::30"
#    - "actionbar::Nop, sorry %player%"

NEGATE COMMANDS

It's not a must to write each and every possible sub-argument by hand. The same goes for commands in general. You can negate them with the help of the negation operator (!).

https://www.rayzs.de/proantitab/assets/neg.png

example
# Allows /gamemode and all of its sub-arguments
# except "/gamemode creative"
- "gamemode"
- "!gamemode creative"
- '!gamemode toggle'
# Allows all commands, except /anvil
- "*"
- "!anvil"

AUTO-ADD ALL PLUGIN COMMANDS

Sometimes it's so annoying to add all commands from a certain plugin by hand. That's why ProAntiTab offers the possebility to simply add all commands from a certain plugin with a simple shortcut.

You can simply add plugin=<plugin-name> to add all commands from a plugin automatically. Only works for standalone Spigot (+Forks) servers

example
# Allows all Essentials commands except /anvil.
# /gamemode is limited to only two sub-arguments
- "plugin=essentials"
- "!anvil"
- "gamemode creative"
- "gamemode survival"

BLOCK ON SPECIFIC SERVERS

If 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.

For this, just follow the official setup and how-to guide, which can be both found on the Github wiki.

GROUP SYSYTEM

The 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.

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.

How to use the PAT group system in general can be seen on the Github wiki.

PLACEHOLDERAPI & PAPIPROXYBRIDGE SUPPORT

Customization and uniqueness is an important factor for many server owners. That'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't a problem either. With the support of the addtional plugin PAPIProxyBridge, PAT's placeholders are even accessable on your proxy server.

Available placeholders
# Some general Placeholders to work with:
#   %pat_general_user%                      = Get the name of the user who receives this message.
#   %pat_general_version_current%           = Get current version name of PAT.
#   %pat_general_version_newest%            = Get newest version name of PAT.

# Placeholders of some of the messages in the config.yml:
#   %pat_message_unknowncommand%            = Get the "unknown command"-message from the config.yml of PAT. [cancel-blocked-command]
#   %pat_message_blocked%                   = Get the "command blocked"-message from the config.yml of PAT. [custom-unknown-command]

# Placeholders to list all commands:
#   %pat_list_size_commands%                = Get the amount of all listed commands.
#   %pat_list_commands%                     = Get all listed commands.
#   %pat_list_sorted_commands%              = Get all listed commands in alphabetic order. (A-Z)
#   %pat_list_reversed_groups%              = Get all listed commands in reversed alphabetic order. (Z-A)

# Placeholders to list all commands of a group: (replace 'xxx' with the group-name)
#   %pat_list_size_commands_group_xxx%      = Get the amount of all commands of a group.
#   %pat_list_commands_group_xxx%           = Get all commands of a group.
#   %pat_list_sorted_commands_group_xxx%    = Get all commands of a group in alphabetic order. (A-Z)
#   %pat_list_reversed_commands_group_xxx%  = Get all commands of a group in reversed alphabetic order. (Z-A)

# Placeholders to list all groups:
#   %pat_list_size_groups%                  = Get the amount of all available groups.
#   %pat_list_groups%                       = Get all groups.
#   %pat_list_sorted_groups%                = Get all groups in alphabetic order. (A-Z)
#   %pat_list_reversed_groups%              = Get all groups in reversed alphabetic order. (Z-A)

MINIMESSAGE SUPPORT

https://www.rayzs.de/proantitab/assets/possibilites.png

You want to design your messages more unique? We got you covered! (works on 1.17 server and above)

(Click here to see the documentation for the format)

Look at those few examples to see what kind of possibilities awaits you:

example 1
cancel-blocked-commands:
  enabled: true
  message: '<hover:show_text:"&cBlocked command: &4&o%command%">&cThis command is &4&lBLOCKED&c!'

https://www.rayzs.de/proantitab/assets/example1.png

example 2
cancel-blocked-commands:
  enabled: true
  message: '&cThis command is blocked! <click:suggest_command:/help>&7Click here to get a view of all available commands instead.'

https://www.rayzs.de/proantitab/assets/example2.png

HOW TO SETUP?

Despite of the fact that ProAntiTab is pretty easy to use, the setup is slidely different for each server engine. It 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.

Please feel free to join the Discord server to request for help if the instruction is unclear or too complicated. ^^

HOW TO ALLOW COMMANDS?

Please check out the wiki to get an idea on how PAT works and can be used.

If you want to bypass all blocked commands, simply give yourself the following permission: proantitab.bypass

Following permission is required to execute all listed commands within a certain group: proantitab.group.

COMMANDS & PERMISSIONS

All commands and their permissions are listed on the documentation page at the very buttom.

CONFIGURATION FILE

Bukkit/Spigot

config.yml storage.yml

Proxy (Bungeecord/Velocity)

config.yml storage.yml

bStats

https://bstats.org/signatures/bukkit/ProAntiTab%20-%20Spigot.svg

https://bstats.org/signatures/bungeecord/ProAntiTab%20-%20Bungeecord.svg

https://bstats.org/signatures/velocity/ProAntiTab%20-%20Velocity.svg

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2 26.1.x 1.21.x +13
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
26.2 26.1.x 1.21.x +13
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
26.2 26.1.x 1.21.x +13
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
26.2 26.1.x 1.21.x +13
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
26.2 26.1.x 1.21.x +13
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Bungeecord Folia Paper Purpur Spigot Velocity Waterfall
6h ago 1
1.20.x 1.19.x 1.18.x +10
Bukkit Bungeecord Paper Purpur Spigot Velocity Waterfall
6h ago 1
# New

<br>

# Fixes
  • Huge** performance improvements. _(~100x faster)_
  • Fixed MiniMessage support for 26.2. _(Only works for **Paper based forks** now on **26.2**)_
  • Fixed sub-argument issues when using PAT in BLACKLIST mode.
  • Fixed sub-argument system recognising letter casing just partially.
[2.4.1] 2.4.1 | Bug fixes by Alihan on Oct 15, 2026
Download
# Fixes

  • Optimization during command filtering process.
  • Fixed MiniMessage support for 26.2 (Only works for Paper based forks now on 26.2)
# New


  • Added 3 new actions for customn-responses!**
> In order to use the `p2b actions, you need to allow them
> on your backend server first. Just go to your backend server
> config.yml and look for
handle-through-proxy -> allow-p2b-packets.
`yaml
Send alert notification:
Syntax: alert
Example: alert
Send console message to backend server:
Syntax: p2b-message::text
Example: p2b-message::&cPlayer &4%player% &cdid something bad.
Execute console command on backend:
Syntax: p2b-console::command
Example: p2b-console::tp %player% 0 0 0
Execute player command on backend:
Syntax: p2b-execute::command
Example: p2b-execute::help
`

<br>

  • Added AutoLowerCase feature for proxies now as well!**
> Requires the network to be connected via the PAT token
> in order to work.

<br> <br>

# Changes

  • Added %center% for custom-protocol-ping player-list**
> To centralize the player-list message.

  • Modified the "/pat info" and "/bpat stats" messages**
> Visual changes with more variables to work with.
> Provides now more information, since the whole PAT
> sync-networking has been recoded.

<br> <br>

# Fixes

  • Implement more informative error message when a player couldn't be injected by PAT.
  • Improved time display regarding last PAT syncs.
  • Improved PAT sync-networking by speed, impact, and security. (Recoded)
  • Corrected wrong description on custom-responses for proxies.
  • Fixed performance issues on Folia networks. (By [@Chesvin1](https://github.com/Chesvin1) - [#24](https://github.com/RayzsYT/ProAntiTab/pull/24))
  • Fixed wrong Folia scheduler usage:
  • Fixed missing asnyc-scheduler implementation.
  • Fixed that scheduler for custom-server-brand was WAY too fast.
  • Fixed not working custom-responses actions for proxies: execute & console.
  • Fixed that only Bungeecord commands show up after "bpat reload".
  • Fixed color-codes overlapping on Craftbukkit consoles.
  • Fixed exception when deopped on Craftbukkit.
  • Fixed exception when toggling handling-through-proxy and using /pat rl right after.
  • Fixed that proxies create tab-completion for non-existing commands.
  • Fixed missing suggestions of PAT related permission in LuckPerms on Bukkit servers. (Not for Velocity/Bungeecord)
  • Improved LuckPerms integration and performance:
  • Performance improvements.
  • Fixed exception in LuckPerms hook.
  • Fixed LuckPerms compatibility issues with LP groups being cleared.
  • Fixed that LuckPerms group inheritance wasn't being checked for players.
  • Fixed permission proantitab.namespace` not being recognized.
  • Updated Velocity library.
  • Updated PlaceholderAPI library. (By [@sokolovskiyoleg](https://github.com/sokolovskiyoleg) - [#31](https://github.com/RayzsYT/ProAntiTab/pull/31))
  • Fixed Arclight support.
  • (!) It's similar to the v2.3.4-beta release but with some LuckPerms integration improvements enhancing its performance & speed.**


# New


  • Added 3 new actions for customn-responses!**
> In order to use the `p2b actions, you need to allow them
> on your backend server first. Just go to your backend server
> config.yml and look for
handle-through-proxy -> allow-p2b-packets.
`yaml
Send alert notification:
Syntax: alert
Example: alert
Send console message to backend server:
Syntax: p2b-message::text
Example: p2b-message::&cPlayer &4%player% &cdid something bad.
Execute console command on backend:
Syntax: p2b-console::command
Example: p2b-console::tp %player% 0 0 0
Execute player command on backend:
Syntax: p2b-execute::command
Example: p2b-execute::help
`

<br>

  • Added AutoLowerCase feature for proxies now as well!**
> Requires the network to be connected via the PAT token
> in order to work.

<br> <br>

# Changes

  • Added %center% for custom-protocol-ping player-list**
> To centralize the player-list message.

  • Modified the "/pat info" and "/bpat stats" messages**
> Visual changes with more variables to work with.
> Provides now more information, since the whole PAT
> sync-networking has been recoded.

<br> <br>

# Fixes

  • Improved time display regarding last PAT syncs.
  • Improved PAT sync-networking by speed, impact, and security. (Recoded)
  • Corrected wrong description on custom-responses for proxies.
  • Fixed performance issues on Folia networks. (By [@Chesvin1](https://github.com/Chesvin1) - [#24](https://github.com/RayzsYT/ProAntiTab/pull/24))
  • Fixed not working custom-responses actions for proxies: execute & console.
  • Fixed that only Bungeecord commands show up after "bpat reload".
  • Fixed color-codes overlapping on Craftbukkit consoles.
  • Fixed exception when deopped on Craftbukkit.
  • Fixed exception when toggling handling-through-proxy and using /pat rl right after.
  • Fixed that proxies create tab-completion for non-existing commands.
  • Fixed missing suggestions of PAT related permission in LuckPerms on Bukkit servers. (Not for Velocity/Bungeecord)
  • Improved LuckPerms integration and performance
  • Improvements performance.
  • Fixed exception in LuckPerms hook.
  • Fixed LuckPerms compatibility issues with LP groups being cleared.
  • Fixed that LuckPerms group inheritance wasn't being checked for players.
  • Fixed permission proantitab.namespace` not being recognized.
  • Updated Velocity library.
  • Updated PlaceholderAPI library. (By [@sokolovskiyoleg](https://github.com/sokolovskiyoleg) - [#31](https://github.com/RayzsYT/ProAntiTab/pull/31))
# New


  • Added 3 new actions for custom-responses!**
> In order to use the `p2b actions, you need to allow them
> on your backend server first. Just go to your backend server
> config.yml and look for
handle-through-proxy -> allow-p2b-packets.
`yaml
Send alert notification:
Syntax: alert
Example: alert
Send console message to backend server:
Syntax: p2b-message::text
Example: p2b-message::&cPlayer &4%player% &cdid something bad.
Execute console command on backend:
Syntax: p2b-console::command
Example: p2b-console::tp %player% 0 0 0
Execute player command on backend:
Syntax: p2b-execute::command
Example: p2b-execute::help
`

<br>

  • Added AutoLowerCase feature for proxies now as well!**
> Requires the network to be connected via the PAT token
> in order to work.

<br> <br>

# Changes

  • Added %center% for custom-protocol-ping player-list**
> To centralize the player-list message.

  • Modified the "/pat info" and "/bpat stats" messages**
> Visual changes with more variables to work with.
> Provides now more information, since the whole PAT
> sync-networking has been recoded.

<br> <br>

# Fixes

  • Improved time display regarding last PAT syncs.
  • Improved PAT sync-networking by speed, impact, and security. (Recoded)
  • Corrected wrong description on custom-responses for proxies.
  • Fixed performance issues on Folia networks. (By [@Chesvin1](https://github.com/Chesvin1) - [#24](https://github.com/RayzsYT/ProAntiTab/pull/24))
  • Fixed not working custom-responses actions for proxies: execute & console.
  • Fixed that only Bungeecord commands show up after "bpat reload".
  • Fixed color-codes overlapping on Craftbukkit consoles.
  • Fixed exception when deopped on Craftbukkit.
  • Fixed exception when toggling handling-through-proxy and using /pat rl right after.
  • Fixed that proxies create tab-completion for non-existing commands.
  • Fixed missing suggestions of PAT related permission in LuckPerms on Bukkit servers. (Not for Velocity/Bungeecord)
  • Fixed exception in LuckPerms hook.
  • Fixed LuckPerms compatibility issues with LP groups being cleared.
  • Fixed that LuckPerms group inheritance wasn't being checked for players.
  • Fixed permission proantitab.namespace` not being recognized.
  • Updated Velocity library.
  • Updated PlaceholderAPI library. (By [@sokolovskiyoleg](https://github.com/sokolovskiyoleg) - [#31](https://github.com/RayzsYT/ProAntiTab/pull/31))
# New

  • Added per-server PAT group permissions**
> You can now give PAT related permissions using a LuckPerms
> server context to only give this PAT group for a user on a
> certain server. Similar to the `per-world PAT group implementation! :D

<br>

  • Added negated 'plugin=<plugin>' variant**
> Using
plugin=<plugin> adds all commands from a certain plugin
> without writing each command inside the storage.yml.
>
> Now with
!plugin=<plugin> all commands from a plugin
> can be negated instead.

<br>

  • Added playable sounds on the proxy**
_Unfortunately not for **Bungeecord**._

> **Available sounds**: https://www.digminecraft.com/lists/sound_list_pc.php
> **Syntax**: sound::soundName::volume::pitch
> **Example**: sound::entity.ender_dragon.growl::1.0::1.0

<br>

  • Added new setting: 'forward-console-notification-alerts'**
> Allows you to forward proxy notifications to the
> backend server's console.

<br>

  • Added %offline_players% for sub-arguments**
> _Only for **standalone Spigot** servers_

<br>

  • Changed usage of 'pat extract' command**
> **New usage**: /pat extract (plugin / *) \<group\> \<mode\>
>
> **mode** = non-colon, only-colon, both
>
> **Description**:
> With the new syntax, it's now possible to either only extract non-colon,
> only colon, or both colon and non-colon commands from a plugin.
>
> Writing no **mode** chooses **non-colon** by default.
> Writing no **group** will use the **global section** by default.

<br> <br>

# MiniMessage Support for Custom Responses

  • Added full support for MiniMessage (e.g: HEX) in any custom response**
> You can now use MiniMessage for all custom response types.
> Inside actionbars, titles and your messages.

`yaml
example-for-anything:
triggers:
  • "*"
message:
  • "<rainbow>MiniMessage</rainbow> &a&land &e&lLegacy"
actions:
  • "actionbar::<rainbow>Sorry %player%, but this command is blocked.</rainbow>"
  • "title::<rainbow>MiniMessage title</rainbow>::&cLegacy &asub&etitle::5::20::5"
`

<br> <br>

# Fixes
  • Updated libraries
  • Improved performance and reduced memory usage improving the PAT group recognition.
  • Fixed issue that some PAT group commands were not working.
  • Fixed exception on backend servers with a Bungeecord network.
  • Fixed exception on legacy servers using PAT on a network.
  • Fixed exception when removing the entire server, groups, and groups.<group>.servers section.
  • Fixed sub-argument hiding from commands using the Mojang Brigadier Library.
  • Fixed issue with %args[...]% placeholder in custom-responses.
  • Fixed issue that PAT in BLACKLIST mode was not blocking sub-arguments correctly.
  • Fixed sub-argument tabbing for custom-version and custom-plugins commands if they were whitelisted.
  • Fixed that all commands disappear on Bungeecord once PAT is reloading.
  • Fixed unnecessary data synchronization if disable-sync` is enabled.
  • Fixed wrong conversion of CommandWhitelist sub-arguments.
  • Fixed raw CraftBukkit support.
# New Features:

<br>

  • Added new variable "plugin=pluginname" to add all commands from a plugin**
> **Warning:** This only works on **standalone Spigot (+Fork)** servers!
>
> You can now add all commands from a plugin by simply adding plugin=<pluginname>
> to your storage.yml.
>
> You can then use the negation operator (!) to block a few of these commands.
> Here an example:

``yaml
# Adds all Essentials commands and blocks off these few commands.
# It does not matter if the plugin name is written with big or small letters.

  • "plugin=essentials"
  • "!about"
  • "!anvil"
`

<br>

  • Added new option for block-namespace-commands**
> A new option called
always-block-command has been added.
>
> It's enabled by default and basically means that commands are still not executable,
> even though the cancellation for command executions has been disabled inside
>
cancel-blocked-commands for example.

`yaml
block-namespace-commands:
enabled: false
# Basically blocks the command execution no matter if
# 'cancel-blocked-commands' is enabled or not.
always-block-command: true
`

<br>

  • Added new option "allow-group-overruling"**
> Allows to block commands inside a PAT group, if the commands were
> considered **allowed** according to the
global section before.
>
> Blocking commands inside a PAT group works by using the negation
> operator (
!) afront of a command.

`yaml
# (!) Warning:
# Enabling this could lead to performance issues depending on
# the amount of players and commands. (> 1100)
#
# This allows PAT groups to block commands, which have been allowed
# inside the global section. This can be achieved by negating commands
# inside a PAT group.
allow-group-overruling: false
`

<br>

  • Added negation of PAT group commands!** _(Basically blocking commands via PAT groups)_
> Allows to block commands inside a PAT group using the negation operator (
!)
> afront of a command.
>
> **Warning**: It only blocks the command, if it's not been allowed
> inside the
global section before. But this can be bypassed by enabling
> the new option **allow-group-overruling**. (above)

<br> <br>

# New Commands:

<br>

  • Command to convert another plugin/command hider plugin into PAT**
> **Usage:**
/(b)pat convert (plugin)
> **Description:**
> Converts the config.yml from another "plugin/command hider" plugin into PAT's format of the storage.yml.
> For example, converting the
config.yml of AdvancedPlHider into a PAT storage.yml.
> This should simplify the process of switching to PAT. ^^
>
> **Example:**
>
/pat convert AdvancedPlHider
>
> **Supported plugins:**
>
AdvancedPlHide, CommandWhitelist, PlHide(Pro), PluginHiderPlus

<br>

  • Command to extract ALL commands from a plugin**
> **Usage:**
/pat extract (plugin) <use-colon> or /pat extract (plugin) <group> <use-colon>
> **Description:**
> Extracts all commands from a plugin and writes them directly into the storage.yml.
>
> **Parts explanation:**
>
<use-colon> = Includes plugin:command commands. (e.g: essentials:feed)
>
<group> = PAT group if you want to extract the commands in there.
>
> **Example:**
>
/pat extract essentials true
> = Writes all Essentials commands in the global section of PAT with and without colon commands.
> = So it includes both
essentials:feed and feed etc.
>
>
/pat extract fastasyncworldedit builder false
> = Writes all FAWE commands into the PAT group called
builder without any colon commands.
> = So it only includes commands such as
//wand but not /fastasyncworldedit:/wand
>

<br> <br>

# Fixes:
  • Improved "missing-parts" warning
  • Fixed TOKEN not updating after PAT reload
  • Fixed auto-config-updater option
  • Fixed wrong size of PAT group commands
  • Fixed potential error message for proxies
  • Fixed issue filtering colon commands with PAT in BLACKLIST mode
  • Fixed in-code wrong data type for "load-from-env.name"
  • Fixed tab-completion issue with Bungeecord commands while having bypass permissions (sub-arguments)
  • Fixed tab-completion issue with Bungeecord commands on 1.8.8 servers (player-names and commands)
  • Fixed wrong filtering process of custom-plugins & custom-version commands for legacy servers
  • Fixed wrong tab-completion of available commands (/(b)pat add <...>)
  • Fixed wrong last-sync time in post-debug
  • Disabled custom-plugins and custom-version feature on backend servers if handle-through-proxy` is enabled
  • Fixed missing server-name using bpat-serv commands with an unknown group-name
# **Features**

  • Added Per-World-Commands feature by giving PAT group permissions using LuckPerms context.**
``yaml
# (!) Warning:
# Enabling this could lead to performance issues if many players
# change worlds frequently in short amount of time.
#
# This decides whether PAT updates the commands for a player after changing worlds.
# Enabling this allows you to make per-world commands using PAT's group system by
# giving a user/group the PAT group permission using a LuckPerms world as context.
#
# Example command:
# lp (...) permission set proantitab.group.<group> world=<world>
update-commands-per-world: false
`

<br>


<br>

  • Added lower- & uppercased variants for %numbers%**
`
0 1 2 3 4 5 6 7 8 9 . k K m M b B
`

<br>

# **New Operators:**

  • Added (!) operator to negate a command. (Mostly fit for WHITELIST mode)**
`yaml
  • gm
  • "!gm creative" # Allows all /gm commands, except for '/gm creative'
`

<br>

  • Added (-_) operator to block the base-command only and not the sub-arguments**
`yaml
  • gm -_ # Disallows '/gm', if it does not have any sub-arguments included
  • gm creative
  • gm survival
`

<br>

  • Added Base-Command-Case-Sensitive option**
`
Example when allowing "HelP" and enabling case-sensitivity:
/help --> Blocked
/HElp --> Blocked
/HelP --> Allowed
`

<br>

  • Added new options for custom-response variable %args[...]%**
`
%args[from-to]% to get the command arguments
Example if you've typed: /shop open gui user

# A:
%args[1]% = shop
%args[2]% = open
A-B:
%args[1-2]% = shop open
%args[1-3]% = shop open gui
%args[2-4]% = open gui user
A_:
%args[1_]% = shop open gui user
%args[2_]% = open gui user
%args[3_]% = gui user
_B:
%args[_1]% = shop
%args[_2]% = shop open
%args[_3]% = shop open gui
`

<br>

# **Fixes**
  • Rewrote the entire permissions detection system
  • Improved auto-commands updater for Bungeecord networks (even more independent now)
  • Improved proxy-commands detection for Bungeecord (Fixed MyCommand issues)
  • Improved PAT debug post (/(b)pat postdebug)
  • Fixed unnecessary tab-completions for /(b)pat creategroup <...>
  • Fixed overall memory issue
  • Fixed StackOverflow crash exploit (Auto-Lowercase feature)
  • Fixed 1.8.8 command detection on Velocity (CarbonSpigot)
  • Fixed overall 1.8.8 server related issues (Sub-Arguments)
  • Fixed issue with PAT in BLACKLIST mode on a network
  • Fixed issue with Folia related forks
  • Fixed potential injection issues with different server software (e.g: Leaf-1.20.6)
  • Fixed %players% variable issue with online players detection by their prefix (e.g: Rayzs -> Rayzs_YT)
  • Fixed wrong display of missing parts in config after plugin-reload
  • Fixed minor issues with [MyCommand for Bungeecord](https://www.spigotmc.org/resources/72445/) commands
  • Fixed wrong display of commands at /pat add <tab> (Bukkit only)
  • Fixed wrong amount of groups. (/(b)pat listgroups`)
  • Fixed display of wrong message when removing a command which isn't even listed (if similar with spaces was already there)
  • Added 'k', 'm', 'b' to number specification for %numbers%
  • Fixed the `/(b)pat reload` command that it wouldn't adapt the storage.yml changes.
[2.0.8] Bug fixes by Alihan on Oct 15, 2026
Download
  • Fixed issues with BLACKLIST mode (Wasn't functional)
  • Fixed correct and safe display of blocked commands
  • Fixed not-blocked commands written as: \<>&
Fixed 1.8.8 incompatibility (on plugin loadup)
  • Fixed overload on player join/leave (Bukkit)
  • Integrated additional delayed injection attempt in case first injection fails
  • New:**
  • Added `%args[.-.]%` variable for custom-response (examples in the custom-responses.yml)

  • Fixes:**
  • Fixed no detection of lowercased player names in %players% variable
  • Fixed Update-Notifier issues
  • Fixed missing notification on /pl and /ver (custom-plugin-list/custom-version)
Fixed an issue regarding sub-argument digits
Removed the notification if PAT is running in WHITELIST mode.

For all the other and new features, please check the update prior to that one:

> https://modrinth.com/plugin/proantitab/version/2.0.3
  • Important notice:** This version of PAT is still in testing phase. Please report bugs directly to me.

  • Warning:** Please delete your old config.yml file!

<br>

## Features:
  • Decide if command is tab-completable or executable only**

``
Allow command execution only: [CMD]
Allow command tab-completion only: [TAB]

Example:
  • "[CMD]cmi tpa"
  • tpa
`

<br>

  • Simplified sub-argument integration**

`
No need to add the base command of a command anymore.

Old:
  • help
  • help Minecraft

To:
  • help Minecraft
`

<br>

  • New variables for sub-arguments**

`
%hidden_online_players% = Online players (Removed from tab-completion)
%online_players% = Online players
%hidden_players% = Registered players (Removed from tab-completion)
%players% = Registered players
%numbers% = Numbers, such as 1000 or 1.000

Example:
  • "tpa %online_players%"
  • "sell %numbers%"
`

<br>

  • New Custom-Response action**

`
Execute player command:
Syntax: execute::command
Example: execute::help
`

<br>

  • Auto command lowercasing**

`
Lowercases executed commands like "/HeLp" - "/help"
`

<br>

  • Improve Config-Auto-Updater**

`
Added several options to rather automatically update the config entirely,
or just announce missing features. A tutorial on how to read the missing
parts will be generated automatically as well.
`

<br>

  • Disable PAT on certain servers**

`
disabled-servers:
  • server-with-no-pat
`

<br>

  • Better PAT Command Syntax for Sub-Arguments**:

`
Example:
You want to add "help Minecraft" to the PAT list:
/(b)pat add "help Minecraft" <group
`

<br>

  • Added support for auth-tokens to be read using an ENVIRONMENT VARIABLES instead**

`
Proxy:
load-from-env:
enabled: false
name: PAT_TOKEN
token: ...


Backend:
handle-through-proxy:
...
load-from-env:
enabled: false
name: "PAT_TOKEN"
`

<br>

  • PAT can run alone on Bungeecord now**.

`
But for specific sub-arguments, PAT needs to be installed on all backend servers again.
`

<br>

  • Added PAPI support for CustomProtocolPing feature (Caches for 1s on every call)**

<br><br>

## Fixes:
[1.9.1] 1.9.1 by Alihan on Oct 15, 2026
Download
  • Warning:**
_Please delete your current **config.yml**._ Sorry for that. :/

<br>

  • Fixes:**
  • Fixed Folia 1.21.1+ support
  • Fix error when sometimes no sub-arguments show up
  • Fixed group commands bypassing subargs checks
  • Fixed custom server brand with repeat-delay `-1 on Spigot-only servers
  • Fixed wrong display of permissions when using /(b)pat perms <user>
  • Fixed update issue after changing the storage.yml

<br>

  • Changes:**
  • Added option to disable "auto-config-updater". (at "updater" section -> config.yml)
  • Added option to toggle auto-tab-completion for 'custom-plugins' and 'custom-version' commands
  • Added warning to config.yml
  • Improved 1.21.4 support
  • Improved visual suggestion-filter by removing [args] suggestions, if no further suggestions are allowed.
  • Removed : commands from default command list for custom-plugins and custom-version` feature
[1.9.0] 1.9.0 by Alihan on Oct 15, 2026
Download
  • Warning: Please delete your old config.yml to avoid exceptions or problems with some features!**

Features:
  • Added full support to hide and show specific sub-commands in tab-completion and the command execution.
  • Added possibility to customize each "command is blocked" by triggers with unique messages (custom-responses.yml)

Bug fixes:
  • Fixed exception in console with <1.13 servers using Handle-Through-Proxy
[1.8.5] 1.8.5 by Alihan on Oct 15, 2026
Download
  • Fixed issues with <1.21 servers
  • Fixed exception on player-join using Folia
  • Improved per-server functionality (goes according to the config file)
[1.8.4] 1.8.4 by Alihan on Oct 15, 2026
Download
Fixed minor issue with Folia servers using the custom-server-brand feature
[1.8.3] v1.8.3 by Alihan on Oct 15, 2026
Download
  • Plugin-Exploit patch:**
  • Fixed that sub-arguments were tab-able when using "custom-plugins" feature

  • Folia support:**
  • Fixed PacketInjection issues on Folia servers

  • New feature:**
  • You can now leave messages completely blank to deactivate their messages entirely.
_For example:_
``yaml
// Before
no-perms: "No permissions!"

// After
no-perms: ""
`

`yaml
// Before
message:
  • 'Hello'
  • 'world!'

// After
message: []

// Alternative
message:
  • ''
``
[1.8.2] 1.8.2-HOTFIX by Alihan on Oct 15, 2026
Download
Sorry, forgot to enable the actual Folia support xd
[1.8.2] 1.8.2 by Alihan on Oct 15, 2026
Download
  • Warning**: It is not necessarily required but recommended to delete the old config.yml to keep a good overview.

  • Add SignedVelocity support (morely fixed an issue with it)

  • Exploit patches:**
  • Patched Meteor client 1.21.1 plugin-spoofing exploit
  • Patched 1.20+ Tab-Completion crasher
[1.8.1] 1.8.1 by Alihan on Oct 15, 2026
Download
  • Fix:**
  • Fixed repeat-deleay -1 for custom f3 brand.

  • Minor change:**
  • Add message for following scenaries: (not configurable though)
  • Version is newer (unreleased)
  • Version is a dev-version
[1.8.0] 1.8.0 by Alihan on Oct 15, 2026
Download
  • Warning**: Please delete your old config.yml if you plan to use this version of PAT!
<br>
  • Information**: This update is a combination of the 1.7.5 and (for some people accessable) 1.7.6 update.

<br>

  • Features**:
  • Add Folia support
  • Add 1.21 & 1.21.1 support
  • Add interactable EventManager for developers ([PATEventManager](https://github.com/RayzsYT/ProAntiTab/tree/main/src/main/java/de/rayzs/pat/api/event))
  • Add %no-message% placeholder to disable the response-message entirely.
  • Add 'cancel-namespace' feature for Blacklist-mode users
  • Add "Custom-Version" feature
  • Add Priority-System (for Groups)
  • Add '/(b)pat perms' command to check a player's PAT-related permissions
  • Add '/(b)pat update' command to reload all player permissions (and tab-completions)
  • Add '/(b)pat info' command
  • Add '/(b)pat postdebug' command
  • Add "Ignore-Server" feature: Servers listed in there won't be affected by the commands in the general-list
  • Add "Custom-Protocol-Ping" feature for Paper/Purpur (+ forks) >> only supports 1.12.2 - 1.21 servers
  • Add new variable for "Custom-Protocol-Ping" feature: Variable 'online-extended' (aka. dynamic player count)
  • Add new option for "Custom-Protocol-Ping" feature: Use dynamic player count as max-players count

<br>

  • Improvements**:
  • Change update notification permission on join from 'proantitab.update' to 'proantitab.joinupdate'
  • New and better ConfigUpdater
  • Better command detection
  • Better LuckPerms permission-change detection & sync
  • Improve performance
  • Better server detection
  • Add %command% placeholder in "Unknown-Command" feature

<br>

  • Fixes**:
  • Fix ViaVersion incompatibility (Velocity: Server 1.8.8 with 1.12.2+ client)
  • Fix plugin-exploit (Meteor Client)
  • Fix issue that sometimes the tab-completion on certain backend servers dissapear
  • Fix 1.20.6 tab-completion bypass
  • Fix Skript, alias and event-based command detection (Unknown Command)
  • Fix issues with WorldEdit commands (Generally // commands)
  • Fix issues with per-server command detection for groups
  • Fix console errors caused by the GroupManager
[1.7.5] 1.7.5 by Alihan on Oct 15, 2026
Download
  • Features:**
  • Add "Ignore-Server": Servers listed here won't be affected by the commands in the general-list
  • Add "Custom-Protocol-Ping" for Paper/Purpur (+ forks) >> only supports 1.12.2 - 1.20.6 servers
  • Add new variable for "Custom-Protocol-Ping": online-extended (aka. dynamic player count)
  • Add new option for "Custom-Protocol-Ping": use dynamic player count as max-players count

  • Improvements:**
  • Better LuckPerms permission-change detection & sync
  • Improve performance
  • Better server detection

  • Fixes:**
  • Fix issue that some times the tab-completion for certain backend servers dissapear
  • Fix 1.20.6 Tab-Completion bypass
  • Fix Skript & alias commands detection (Unknown Command)
  • Fix not functioning removal of slash-commands
  • Fix exception in GroupManager
ProAntiTab Icon
Download ProAntiTab
Select game version
Select platform