FoxGate AntiVPN [Premium] icon

FoxGate AntiVPN [Premium] 1.0.1

Potential AntiVPN for your Minecraft server, with a lot of features and extremely customization!

Diseno_sin_titulo26.png

FoxGate (formerly, FoxAntiVPN) is a powerful tool designed to protect your Minecraft server from unwanted visitors using VPNs to bypass bans or for another reason, this allows server owners to detect and block VPN, Proxy and more in users quickly and efficiently. This use a lot of services that can detect VPN too much fast and efficiently, also you can add your custom service to detect. Extremely hard to bypass? Probably, with numerous APIs working together, bypassing this AntiVPN becomes increasingly difficult. The more services you enable, the harder it becomes for users to evade detection.

"It's time to limit your server to legitimate and real traffic"

🍄 Features:

  • Support different types of databases: H2, SQLite, PostgreSQL, MySQL and MariaDB with HikariCP connection for save all services scanned when a player join and across multiple servers if you wish.
  • The plugin is trying to support all types of software with any version of Minecraft, since 1.3.x; we maked a list of all softwares that this plugin confirm their correct support with it and it's safe to useBukkitSpigotPaperPurpurPufferfishFoliaPandaSpigotKigPaper, FlamePaperCarbonSpigotShieldSpigot (1.8.x/1.20.4), BungeeCordWaterfallFlameCordNullCordXXCordVelocityVelocity-CTD. Other's softwares, can probably works correctly with this plugin, because this already download their own libraries for avoid any type of problems. For future releases, is planned a support for: ViaProxy and Sponge 8.
  • Using Asynchronous (totally) and parallel checking for better performance without blocking main thread for any problem while this scan in multiple services to determine if the IP is malicious; making this to without affecting the performance of the server and your players won't notice a difference when join.
  • Customize the messages how you want! This support MiniMessage and Legacy colors in all versions, this is one that none of the others AntiVPN doesn't has in the market for fully customization.
  • Configuration extensive and perfect for beginners using this plugin, a lot of services already available for using in detection. You can add your custom service or modify services that exists in the default configuration. Also you can configure a flagged thresholdservicesactionsmessageseasily configuration for whitelist and database settings.
  • Download their libraries automatically when starting for adding more options available for you, in every update, these get updated and automatically updates it.
  • Highly recommended. This is a better solution for replace your another AntiVPN plugin for this, customize how you want, change the things for your benefit and enjoy with FoxGate!

 

[CLICK HERE FOR VIEW THE CONFIGURATION FILE BASED IN OUR PREMIUM VERSION]

👑 Why Premium?

FoxGate was created to compete with other anti-VPN plugins. The goal was to develop an anti-VPN solution that is faster, highly customizable, and compatible with a wide range of servers, versions, and software. The free version of FoxGate already includes numerous features essential for most servers. However, some users want additional functionalities, such as Discord Webhook integration and other advanced options. To meet these demands, a Premium version was developed, maintaining the optimized core functionalities while introducing essential new features.

🔗 Discord Webhook Integration.
Instantly sends alerts or messages when a player attempts to join using a VPN, proxy, or has been blocked due to their country or ASN. This feature ensures that server staff can stay informed in real time.
    # Enable the usage of Discord Webhooks to send any alert's or
    # messages if the player is vpn/proxy or if is allowed to connect
    # to the server.
    discord:
        # Enter here the webhook URL, set to empty to
        # disable this feature or add URL of webhook to
        # enable this feature.
        #
        # See https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks
        # for how to use it.
        webhook: ""
        # Customize the messages.
        # Here you can find some placeholders for use:
        #
        # {NAME} - Return name of the user.
        # {IP} - Return IP of the user.
        # {UUID} - Return IP of the user.
        # {DETECTED} - Return only the services that detected that IP has VPN.
        # {UNDETECTED} - Return only the services that doesn't detect that IP is VPN.
        # {LIST} - Return both list, but this difference with color (customizable).
        # {MAX} - Return the number of maximum flags to deny access to the player.
        # {COUNT_DETECTED} - Return the count of services that the player has been detected.
        # {COUNT_UNDETECTED} - Return the count of services that the player doesn't has been detected.
        # {GEO_COUNTRY} - Return the country player (Only works enabling the feature).
        # {GEO_ASN} - Return the ASN player (Only works enabling the feature).
        # Use '%nl%', '\n' or '\nl' for new line.
        embed:
          # Messages when the player is allowed to connect.
          allowed:
            # Enable this webhook?
            enable: true
            # Username to show.
            # - Determine here a custom username for the webhook.
            username: "FoxGate: High Quality AntiVPN"
            # Avatar to show.
            # - Determine here a custom avatar for the webhook.
            avatar: "https://i.imgur.com/86T0cIF.png"
            # Determine here the content in the message.
            # Set "" to disable the content.
            content: ""
            # Determine here the title of the embed.
            # Set "" to disable the title or url.
            title:
              text: "An IP was verified by FoxGate."
              url: "https://www.spigotmc.org/resources/116596/"
            # Determine here the description of the embed.
            # Set "" to disable the description.
            description: ""
            # Show thumbnail in the embed.
            # Set "" to disable the content.
            thumbnail: "https://api.creepernation.net/avatar/{UUID}"
            # Add fields.
            # Delete "fields" for disable anything about it.
            fields:
              '1':
                name: "User"
                description: "`{NAME}`"
                inline: true
              '2':
                name: "IP"
                description: "`{IP}`"
                inline: true
              '3':
                name: "Count"
                description: "`{COUNT_DETECTED}`/`{MAX}`"
                inline: true
              '4':
                name: "Detected ({COUNT_DETECTED})"
                description: "`{DETECTED}`"
                inline: true
              '5':
                name: "Undetected ({COUNT_UNDETECTED})"
                description: "`{UNDETECTED}`"
                inline: true
              '6':
                name: "Country & ASN"
                description: "`{GEO_COUNTRY}`/`{GEO_ASN}`"
                inline: true
            # Determine here the color in decimal.
            color: 5793266
            # Determine the footer to use.
            footer:
              text: "Powered by FoxGate"
              icon: "https://i.imgur.com/86T0cIF.png"
          # Messages when the player is denied to connect.
          denied:
            # Enable this webhook?
            enable: true
            # Username to show.
            # - Determine here a custom username for the webhook.
            username: "FoxGate: High Quality AntiVPN"
            # Avatar to show.
            # - Determine here a custom avatar for the webhook.
            avatar: "https://i.imgur.com/86T0cIF.png"
            # Determine here the content in the message.
            # Set "" to disable the content.
            content: ""
            # Determine here the title of the embed.
            # Set "" to disable the title or url.
            title:
              text: "An IP was blocked by FoxGate."
              url: "https://www.spigotmc.org/resources/116596/"
            # Determine here the description of the embed.
            # Set "" to disable the description.
            description: ""
            # Show thumbnail in the embed.
            # Set "" to disable the content.
            thumbnail: "https://api.creepernation.net/avatar/{UUID}"
            # Add fields.
            # Delete "fields" for disable anything about it.
            fields:
              '1':
                name: "User"
                description: "`{NAME}`"
                inline: true
              '2':
                name: "IP"
                description: "`{IP}`"
                inline: true
              '3':
                name: "Count"
                description: "`{COUNT_DETECTED}`/`{MAX}`"
                inline: true
              '4':
                name: "Detected ({COUNT_DETECTED})"
                description: "`{DETECTED}`"
                inline: true
              '5':
                name: "Undetected ({COUNT_UNDETECTED})"
                description: "`{UNDETECTED}`"
                inline: true
              '6':
                name: "Country & ASN"
                description: "`{GEO_COUNTRY}`/`{GEO_ASN}`"
                inline: true
            # Determine here the color in decimal.
            color: 16711680
            # Determine the footer to use.
            footer:
              text: "Powered by FoxGate"
              icon: "https://i.imgur.com/86T0cIF.png"
          # Messages when the player is blocked to connect
          # because their country.
          country:
            # Enable this webhook?
            enable: true
            # Username to show.
            # - Determine here a custom username for the webhook.
            username: "FoxGate: High Quality AntiVPN"
            # Avatar to show.
            # - Determine here a custom avatar for the webhook.
            avatar: "https://i.imgur.com/86T0cIF.png"
            # Determine here the content in the message.
            # Set "" to disable the content.
            content: ""
            # Determine here the title of the embed.
            # Set "" to disable the title or url.
            title:
              text: "An IP was blocked by FoxGate."
              url: "https://www.spigotmc.org/resources/116596/"
            # Determine here the description of the embed.
            # Set "" to disable the description.
            description: "A player tried to join from banned country."
            # Show thumbnail in the embed.
            # Set "" to disable the content.
            thumbnail: "https://api.creepernation.net/avatar/{UUID}"
            # Add fields.
            # Delete "fields" for disable anything about it.
            fields:
              '1':
                name: "User"
                description: "`{NAME}`"
                inline: true
              '2':
                name: "IP"
                description: "`{IP}`"
                inline: true
              '3':
                name: "Country & ASN"
                description: "`{GEO_COUNTRY}`/`{GEO_ASN}`"
                inline: true
            # Determine here the color in decimal.
            color: 16741120
            # Determine the footer to use.
            footer:
              text: "Powered by FoxGate"
              icon: "https://i.imgur.com/86T0cIF.png"
          # Messages when the player is blocked to connect
          # because their ASN.
          asn:
            # Enable this webhook?
            enable: true
            # Username to show.
            # - Determine here a custom username for the webhook.
            username: "FoxGate: High Quality AntiVPN"
            # Avatar to show.
            # - Determine here a custom avatar for the webhook.
            avatar: "https://i.imgur.com/86T0cIF.png"
            # Determine here the content in the message.
            # Set "" to disable the content.
            content: ""
            # Determine here the title of the embed.
            # Set "" to disable the title or url.
            title:
              text: "An IP was blocked by FoxGate."
              url: "https://www.spigotmc.org/resources/116596/"
            # Determine here the description of the embed.
            # Set "" to disable the description.
            description: "A player tried to join from banned ASN."
            # Show thumbnail in the embed.
            # Set "" to disable the content.
            thumbnail: "https://api.creepernation.net/avatar/{UUID}"
            # Add fields.
            # Delete "fields" for disable anything about it.
            fields:
              '1':
                name: "User"
                description: "`{NAME}`"
                inline: true
              '2':
                name: "IP"
                description: "`{IP}`"
                inline: true
              '3':
                name: "Country & ASN"
                description: "`{GEO_COUNTRY}`/`{GEO_ASN}`"
                inline: true
            # Determine here the color in decimal.
            color: 16741120
            # Determine the footer to use.
            footer:
              text: "Powered by FoxGate"
              icon: "https://i.imgur.com/86T0cIF.png"

descarga.png

 

🔭 GeoBlocking Module.
Enable the detection for GeoBlocking when a player join to the server. If this feature is enabled, this allow the ability to block or whitelist country/ASN from joining or detecting.
    # Enable the detection for GeoBlocking when a player
    # join to the server. If you enable this feature, you can
    # block or whitelist country from joining or detecting.
    #
    # This uses MaxMind for working this feature.
    # https://www.maxmind.com/en/home
    geo:
        # Enter here your key of maxmind for enabling this
        # feature, if you leave this empty, this disable
        # this feature. This is used to download
        # the database.
        key: ""

# Determine here the time to pass for update the
        # database of ASN and Country. This is for avoid
        # downloading every time and is checked every 2 hours
        # and when plugin starts or reload (with /foxgate reload).
        # Use in hours.
        update: 12

# We allow customize options here,
        # you can allow to FoxGate in verify whitelist
        # for bypass detection by Country or ASN,
        # and blacklist/whitelist by Country and ASN.

# List for allow/deny connections in certain countries.
        # Use ISO code for this system, view all ISO codes in
        # the list: (A-2)
        # https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
        country:
            # Bypass detections of FoxGate.
            bypass:
                # Add the list of ISO codes allowed for bypass detections
                # of VPN in FoxGate. Use the value "[]" to disable, like:
                #
                # list: []
                list: []
                #- AR
                #- BR
                #- MX
                #- ES
                #- VE
                # Blacklist the bypass to this name's.
                # Works like the configuration of the antivpn system.
                blacklist-name:
                  - 'ImZowi' # It's me! :3
                # Blacklist the bypass to this IP's.
                # Works like the configuration of the antivpn system.
                blacklist-ip:
                  - '127.0.0.1'
            # Whitelist/blacklist connections from X countries.
            # The player is blocked from joining but the IP doesn't get verified!
            blocker:
                # Define the type of usage to this list.
                # 'whitelist': Allow the access to certain countries.
                # 'blacklist': Deny the access in certain countries.
                type: 'blacklist'
                # Add the list of ISO codes for block/allow connections
                # to the server. Use the value "[]" to disable, like:
                #
                # list: []
                list:
                - PK
                - IR
                - DZ
                # Add the connections to the database for prevent joining
                # in X amount of type? This is useful if you want deny
                # connections of bots in certain countries.
                #
                # "The player is blocked from joining but the IP doesn't get verified!"
                # In this case, the plugin add the player to the database like
                # "Blocked", but doesn't save services detected, because the player
                # isn't scanned for VPN/Proxy.
                database:
                    # Enable this feature?
                    enable: true
                    # Determine here the time to add the player to
                    # the database in case their country isn't allowed to
                    # join in hours.
                    time: 2
                # Message to return when a player isn't from a country that isn't allowed
                # to join, this is useful for kick the player fast without commands. You can
                # use the placeholders: %PLAYER%, %IP%, %UUID%, %COUNTRY% and %ASN%.
                kick: "<red>You have been disconnected by FoxGate:\n<white>Your country isn't allowed from joining! (%COUNTRY%)\n\n<gray>This is an error? <white>Join to our discord server.\n<aqua><underlined>discord.idcteam.xyz"
                # Notification when a player is kicked. You can suppress this with only
                # leave in blank.
                notify: '{prefix} <aqua>{player} <gray>has been removed for joining in blacklisted country: <aqua>{COUNTRY}</aqua>! <green>({IP})'
                # Whitelist the detection to this name's.
                # Works like the configuration of the antivpn system.
                whitelist-name:
                  - 'ImZowi' # It's me! :3
                # Whitelist the detection to this IP's.
                # Works like the configuration of the antivpn system.
                whitelist-ip:
                  - '127.0.0.1'
                # Actions to make when is detected.
                # - Use this to kick with the plugin instantly:
                #
                #   - 'kick'
                #
                #   Or add your custom command. Disable this feature
                #   with only adding 'actions: {}'.
                actions:
                  - 'kick'
                # Change here the status name in the command '/foxgate status'
                # to show when a player is detected in the database has been blocked
                # for their country. This is in the case, the player was blocked
                # for the option 'database' enabled.
                status: '<gold>Blocked by their Country.'

# List for allow/deny connections in certain ASN.
        # Use ASN system for this part, you can get ASN from an
        # IP with the link:
        # https://www.ipvoid.com/ip-to-asn/
        # Example:
        # 1.1.1.1 (Cloudflare) is: AS13335
        # Use the number for this list: 13335
        asn:
            # Bypass detections of FoxGate.
            bypass:
                # Add the list of ASN allowed for bypass detections
                # in FoxGate. Use the value "[]" to disable, like:
                #
                # list: []
                list: []
                #- '13335' # (Cloudflare)
                #- '15169' # (Google)
                # Blacklist the bypass to this name's.
                # Works like the configuration of the antivpn system.
                blacklist-name:
                  - 'ImZowi' # It's me! :3
                # Blacklist the bypass to this IP's.
                # Works like the configuration of the antivpn system.
                blacklist-ip:
                  - '127.0.0.1'
            # Whitelist/blacklist connections from X ASN's.
            # The player is blocked from joining but the IP doesn't get verified!
            blocker:
                # Define the type of usage to this list.
                # 'whitelist': Allow the access to certain ASN's.
                # 'blacklist': Deny the access in certain ASN's.
                type: 'blacklist'
                # Add the list of ASN'S allowed for join to the server.
                # Use the value "[]" to disable, like:
                #
                # list: []
                # (!) In this list, we are blocking ASN from knowed
                #     services of hosting, can prevent some bots and VPN.
                list:
                - '210644'
                - '...'# More ASN in the configurationfile.
                # Add the connections to the database for prevent joining
                # in X amount of type? This is useful if you want deny
                # connections of bots in certain ASN's.
                #
                # "The player is blocked from joining but the IP doesn't get verified!"
                # In this case, the plugin add the player to the database like
                # "Blocked", but doesn't save services detected, because the player
                # isn't scanned for VPN/Proxy.
                database:
                    # Enable this feature?
                    enable: true
                    # Determine here the time to add the player to
                    # the database in case their country isn't allowed to
                    # join in hours.
                    time: 2
                # Message to return when a player isn't from a ASN that isn't allowed
                # to join, this is useful for kick the player fast without commands. You can
                # use the placeholders: %PLAYER%, %IP%, %UUID%, %COUNTRY% and %ASN%.
                kick: "<red>You have been disconnected by FoxGate:\n<white>Your ASN isn't allowed from joining! (%ASN%)\n\n<gray>This is an error? <white>Join to our discord server.\n<aqua><underlined>discord.idcteam.xyz"
                # Notification when a player is kicked. You can suppress this with only
                # leave in blank.
                notify: '{prefix} <aqua>{player} <gray>has been removed for joining in blacklisted ASN: <aqua>{ASN}</aqua>! <green>({IP})'
                # Whitelist the detection to this name's.
                # Works like the configuration of the antivpn system.
                whitelist-name:
                  - 'ImZowi' # It's me! :3
                # Whitelist the detection to this IP's.
                # Works like the configuration of the antivpn system.
                whitelist-ip:
                  - '127.0.0.1'
                # Actions to make when is detected.
                # - Use this to kick with the plugin instantly:
                #
                #   - 'kick'
                #
                #   Or add your custom command. Disable this feature
                #   with only adding 'actions: {}'.
                actions:
                  - 'kick'
                # Change here the status name in the command '/foxgate status'
                # to show when a player is detected in the database has been blocked
                # for their ASN. This is in the case, the player was blocked
                # for the option 'database' enabled.
                status: '<gold>Blocked by their ASN.'
descarga-1-.png

 

🚧 Console Filter.
Option to hide any disconnection message when a player is blocked due to VPN detection, country restrictions, or ASN blocking. This is useful if the console is being flooded by bots detected for VPN, ASN, or Country, or if too many players are getting blocked. The feature works with Apache Log4J and SLF4J, but compatibility may vary depending on the platform.
    # Enable the option to hide any disconnection message
    # when a player is detected for VPN, it's blocked for
    # their Country or ASN.
    # This probably doesn't go to work in some platforms or
    # versions, because only support Apache Log4J and SLF4J.
    consolefilter:
        # Enable hide the message of disconnection if the next
        # scenaries.
        vpn: true
        country: true
        asn: true
descarga.png

Want see first the Free version before purchase this?
descarga.png

🚀 Services available in default configuration.

All services in the configuration works correctly?
I added some list of services that I finded, but I test if that works to add in the default configuration. You can still configure it values, edit or add more services (like the above example of configuration). Hey! I can't confirm if that services works correctly all the time, I recommend you enable the best options in case has problems.

Some services are disabled by default because they require an API key to function. However, ten of these services work without a key and are enabled by default, providing basic VPN and proxy detection right away. To maximize protection against VPNs, proxies, and other threats, it is recommended to obtain API keys for the remaining services. Doing so will enhance the accuracy and effectiveness of the detection.

✅ Free service, no key require for work.


  1. IP-API
  2. BlackBox
  3. Rayzsde (knowed: ProVPN)
  4. SkyDB
  5. FunkeMunky (knowed: Kauri)
  6. IP2Location
  7. IPRisk
  8. IPdb-Amelia (knowed: YAAntiVPN)
  9. FreeIPAPI
  10. Negativity

⭕ Paid/key require service, key require for work.

  1. BanProxy
  2. GetIPIntel
  3. VPN-API.xyz
  4. VPNBlocker
  5. IPQualityScore
  6. IDCTeam (our, discord support)
  7. ProxyCheck
  8. VPNAPI
  9. AntiVPN.net
  10. AntiVPN.io
  11. IPHub
  12. IPHunter
  13. IPDetective
Want to know how to configure these services?
Check the configuration section below for examples and templates. When a player is detected using a VPN or proxy, the plugin automatically stores this information in a database. This prevents repeated API requests for the same IP address for a configurable number of hours, reducing unnecessary API calls and improving efficiency.


By using both enabled-by-default services and those that require API keys, you can create a robust detection system that effectively identifies and blocks VPN, proxy, and other undesired connections. See more information in the documentation page available in our Issues GitHub.

 

📊 Statistics.

What data is collected?
We are using bStats, this does not collect any personal data. Most of the collected data is information about the plugin's server like player count, online mode, Minecraft version, Java version, and more. All data gets sent and stored completely anonymously. See more in information about this in bStats: Getting Started.

This stats are collected by bStats.org, the information under are shared with the Premium version, which is identified as "-pv" in version of the plugin, this can help to the creator to view some statistics without taking some performance. Read quote about the data collected, you can always disable the collection in our config.yml available in the plugin's folder.

Bukkit
View here.
View statistics of Bukkit platform by clicking above.FoxAntiVPN.svg
BungeeCord
View here.
View statistics of BungeeCord platform by clicking above.FoxGate-Bungeecord.svg
Velocity
View here.
View statistics of Velocity platform by clicking above.FoxGate-Velocity.svg

 

🔗 Links.

Documentation
github.com
Some documentation for help.
Discord
discord.idcteam.xyz
Join our community for technical support.
Free Edition
modrinth.com
Test our plugin first before purchasing.

antivpn

vpnblocker

protection