⭐ FoxGate [Free] ➡️ The #1 AntiVPN Plugin icon

⭐ FoxGate [Free] ➡️ The #1 AntiVPN Plugin -----

A customizable and advanced AntiVPN for your server, protect your server from VPNs and more FREE! ✨




  • Major improvements with the handling of FoxGate for Velocity:
    • Switched from LoginEvent to PreLoginEvent: Players are now blocked before reaching any backend server.
    • Implemented Intent (Continuation) conditions, means, player connections are held until they are fully scanned.
    • Instead of directly disconnecting, the login event is now cancelled, and the reason is properly attached.
  • Added more cache to reduce database calls, new option added:
Code (YAML):
# Enable save in cache the results of block?
# Useful for save performance and avoid database calls
# while a player tries to join repeated or in a bot
# attack.
#
# ⭐ Recommended: true
#  Note: Disable this feature If you need to edit
# your kick messages, because plugin cache the block
# message in an attempt to save performance.
cache
: true
  • Fixed and caching services result for 10 minutes (fixing probably a lot of problems related to Discord Webhook and Telegram Forward), also, using cache when it's possible.
  • Fixed duplicate checks when player join again in scanning, this prevent player from joining until the scan finish (if they try to rejoin).
  • Fixed an error in update checker for Velocity. (sorry)
  • Added logs when reloading the plugin of enabled services.
  • Fixed cache issues when saving. (this only affects to people who use the new Velocity Handler)
  • Added 'conditions' system for Bypass/Flag an IP in an AntiVPN service.
  • Added 'AbuseIPDB' service. Provided an example of this service using 'Conditions' system:
Code (YAML):
    #  Custom conditions to determine bypass or detection logic.
    # - These conditions allow advanced control based on fields from the
    #   API response.
    #
    #  Structure:
    # - Each key (e.g. '1', '2', etc.) holds a list of conditions.
    # - Each list works with AND logic (all conditions must match).
    # - Multiple keys result in OR logic (at least one group must match).
    #
    #  Syntax:
    # - Use {field} to refer to response fields (e.g. {score}).
    # - Supported operators: '=', '!=', '>', '>=', '<', '<='.
    # - Values can be strings (true/false) or numbers.
    #
    #  Note: This feature only works in 'JSON' and 'HTML' type,
    # and for make this works in HTML, always use '{foxgate_check}' for
    # use field (only exists this in HTML).
    conditions
:

        #  Conditions for Bypass
        # - If any group of conditions here matches, the player will be
        #   ignored (not flagged). Use this for trusted connections like mobile
        #   users or low score in risk/fraud.
        #
        #  Note: Disable this condition with 'bypass: {}'.
        bypass
:
            '1'
:
           - ' {data.isWhitelisted }=true'
            - ' {data.isTor }=false'
 
        #  Conditions for Flag.
        # - If any group of conditions here matches, the player will
        #   be flagged (detected). Useful for detecting based on high
        #   risk/fraud score, known abuse, etc.
        #
        #  Note: Disable this condition with 'flag: {}'.
        flag
:
            '1'
:
           - ' {data.abuseConfidenceScore }>=75'
  • [Premium users with Extended ASN] Now exists an option for auto-updating your list, you need a token, for this, DM to me for creating one if you purchase this extension.
  • Fixed database using equal value of bypass in blocker in time. Also, now using 'add' command, will save with blocker time for avoid issues.
  • [Premium] Added option to detected users allows from joining to the server but get block connections to certains subservers. (Proxy only)
  • Big improvement with the handling of FoxGate for Backend (Spigot/Paper/etc):
    • Implemented Intent (Continuation) conditions, means, player connections are held until they are fully scanned.
    • Now ConsoleFilter will hide UUID message when get blocked.
  • [Premium] Fixed next error:
Code (Text):
[22:44:20 WARN] [foxgate]: [GEO] Exception with provider MAXMIND for country: java.lang.NoClassDefFoundError: zoruafan/foxgate/shared/org/apache/commons/lang3/SystemProperties
[22:44:20 WARN] [foxgate]: [GEO] Provider MAXMIND failed. Trying next...
[22:44:20 INFO] [foxgate]: [GEO] Downloading from provider: MAXMIND - for: asn
[22:44:21 WARN] [foxgate]: [GEO] Exception with provider MAXMIND for asn: java.lang.NoClassDefFoundError: zoruafan/foxgate/shared/org/apache/commons/lang3/SystemProperties
[22:44:21 WARN] [foxgate]: [GEO] Provider MAXMIND failed. Trying next...
  • Added the service 'MerakiStudios' in enabled-by-default.
  • Added option for 'Passive Mode', where you can use FoxGate with another AntiVPN. Option:
Code (YAML):
#  Enable the Passive mode?
# - FoxGate will stop checking when a player join to the server.
#   Useful in case you want to use FoxGate with other AntiVPN or
#   for only checking with our command.
passive_mode
: false
  • [Premium] Fixed some IPs doesn't includes the country on checking. (Ex. '1.1.1.1')
  • Added auto-updating for Premium and Free editions (also implemented '/fg update' command).
  • Added Italian language. (Thanks to MircoAPPP)
  • Added Spanish (Spain) language. (Thanks to VonVisha)
  • Fixed an issue about Whitelist returning "java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "l" is null"
  • Dropped Java 11 to use Java 17. This doesn't will break support from 1.3.x-1.16.x versions (servers can still running Java 17 and Java 21 without issues).
  • [Java 17] Optimized ISPFilter module and FoxPlayer checks with using Java 17 features.
  • [Java 17] [Premium] Optimized DiscordWebhook, using Java 17 features.
  • [Java 17] [Premium] Optimized TelegramWH with using Java 17 features and improved character escaping for avoid issues in don't sending.
  • [Java 17] [Premium] Optimized GeoLocation module, using Java 17 features and fixed little issues.
  • Fixed more issues related config (in case a list doesn't load for any reason).
  • [Premium] Fixed RestrictionServers doesn't working on WaterdogPE. (For users with previous update)
  • Added the service 'IPLocate' in enabled-by-default.
  • Removed AntiVPN.net from default services because it's down.
  • Removed VPN-API.xyz from default services because it's down.
  • Removed NegativityAPI from default services because it's down.
  • Added hostname block/bypass in ISPFilter module.
  • Added 'isProxyIP' service.
  • Fixed ViaProxy doesn't catch '{ISP}' placeholder in kick message.
  • Added Vietnam language. (Thanks to hieudieu393)
  • Improved module enabled/disabling. ISPFilter and GeoLocation (Premium) now closes databases and remove threads when reloading the plugin with '/fg reload'. (If previously was running)
  • Added new database for ISPFilter and GeoLocation module: IPLocate.
  • [Premium] GeoLocation now handles better IPInfo database and IPLocate database.
  • Updated all libraries to up-to-date (24/12/2025)
  • [!] Updated MiniMessage to 4.25.0 (supports latest Velocity and 1.21.9-11)
  • [Premium] GeoLocation ASN works now with a custom provider for known list (optional).
  • Added Korean language. (Thanks to metaph0)
  • Improved handling of commands and tab-complete. Now using a better and improved list of permissions to separate all commands.
  • Improved database reconnecting while using '/fg db reconnect', when the database in startup fails to connect, now you can create new instance without need of restart.
  • Added new IPRange feature: This works like another module, the configuration files (like DiscordWebhook and others) was updated for adding this new feature.
  • Added new option in services for custom flags per-service. It's useful in case you trust more in the results from a service than others, perfect for implement more Flags to reach maxFlags.
  • Reduced amount of threads created by the plugin, tried to maintain the same performance.
  • Added fully support for IPv6 (not only in our services).
  • Added new option in IPLimiter: Based in time.
  • [Premium] Added to the config a option for downloading ASN list with suspecious ISPs.
  • Added option for download known hostnames in ISPFilter, preventing more Tor, VPN's and some Residential Proxies.
  • Added Firewall based in software (beta). Supports VeloFlame and FlameCord at the moment. (Idea will be extended to other softwares and support root commands)
  • Changed by default maxFlags from 3 to 4 to prevent false flags. Recommended if you has more than 11 services, use 5 or 7.
  • Added option for show or hide all module logs to avoid flood in the console (can be enabled/disabled in 'config.yml').
  • [Premium] Added little aliases for "{ASN}" and "{COUNTRY}" in message of kick and actions: {GEO_ASN} and {GEO_COUNTRY}.
  • Added Deutsch language. (Thanks to ich_lou)
  • Fixed cache method returning error when disabling it and Metrics now shutdown threads when returning method of unload (partially when plugin fails or server shutdown).
  • [Premium] Strictly license checking added.
  • Added the service 'TCPShield', 'BlockListDE', 'CINSscore' and 'GreenSnow' in enabled-by-default.
  • Libraries now download from our fallback CDN instead of use GitHub.
  • Added checking alts from an IP and their last time connection via command.
  • [IMPORTANT] Removed support in any type of SQLite, our community decided to remove it. The plugin DOESN'T WILL DELETE YOUR SQLITE FILE, you can has it like a backup, while the plugin will default start using H2 if SQLite it's the type you're using. Why H2? H2 it's more stable and with great performance than SQLite, SQLite since months was giving a lot of problems, where I fix an issue in it but other appears. From limit support, to a ending support of it. We strongly recommend to you try remote database for great experience, any Minecraft host will give it for free.
  • Added option in configuration for block bogon IP's. Also, '/fg check' will be affected for bogon IP's while it's enabled in configuration.
Code (YAML):
    # ️ Block any type of bogon connection?
    #
    # When enabled, we will block any connection considered a bogon.
    # This protects you from players which tries to do any 'bypass' method.
    #
    # The plugin will block IP's considered:
    # - Local Address
    # - Loopback
    # - Link Local
    # - Site Local
    # - Multicast
    #
    #  Note: This feature it's always recommended having enabled. If
    # you get disconnected for this configuration, please, consider to
    # re-check your forwarding method, because can allow people from doing
    # malicious stuff.
    bogon
:

        #  Enable the blocking of bogon IP's?
        enable
: true

        #  Add the connections to the database for prevent joining
        # in X amount of time? This is useful if you want deny
        # connections of bogon in case a bot-attack of users using
        # those IP's.
        #
        # "The player is blocked from joining but the IP doesn't get checked!"
        # In this case, FoxGate add's the player to the database like it's
        # "Blocked", but doesn't save services detected, because the player
        # isn't scanned for VPN/Proxy.
        database
:
            # Enable this feature?
            enable
: true
            # Time (in hours) to store user in database.
            time
: 12
  • Added Turkish and Czech language.
  • The plugin it's now obfuscated and known ASN List stop working in 1.0.5 and lower in this plugin.

FoxGate Premium was released! :D
See the description section to view where you can purchase it, you can join to the discord server for any question about it.
Remember to leave your review if you like this plugin. Also, join to our discord server for receive support or ask questions.
----------, Dec 26, 2025

  • Added WaterdogPE support.
  • Changed messages for beginners.
  • Fixed some little errors in ISPFilter and fixed fallback.
  • Improved logic in some classes.
  • Added two services to default list, thanks to _bad_:
FocSec
Code (YAML):
# https://focsec.com/
#
# Details:
# https://focsec.com/login
#
# This is a PAID SERVICE, require starting from
# $29 monthly subscription for using IP-security
# feature. First plan it's $29 (Lite).
#
# - 3k daily requests, Lite ($29)
# - 10k daily requests, Basic ($49)
# - 25k daily requests, Plus ($89)
# - 1M+ daily requests, Enterprise.

# Enable this service?
enabled
: false
# Model request to use.
model
: "JSON"
# Insert your key here.
# Don't delete this field!
key
: ""
# URL.
url
: "https://api.focsec.com/v1/ip/{IP}"
# Headers in case is necessary.
#
# Set to: 'headers: []' to disable.
headers
:
   'Authorization'
: ' {KEY }'
# Values to check.
values
:
  # Fields to check.
   fields
:
  - "is_vpn"
   - "is_proxy"
   - "is_tor"
   - "is_datacenter"
    # Type to determine.
   type
: boolean
IP-Check
Code (YAML):
# ⛽ IP-Check
# https://ip-check.net/how-to-use-apis.php
#
# Details:
# - Unlimited requests, no key.

# Enable this service?
enabled
: true
# Model request to use.
model
: "HTML"
# URL.
url
: "https://ip-check.net/api/proxy-detect.php?ip={IP}"
# Values to check.
values
:
  # Fields to check.
   fields
: [ ]
    # Type to determine.
   type
: boolean
----------, Jul 19, 2025

Changelogs:
  • Added official support to Nukkit and PowerNukkitX (Bedrock Softwares). [Time to expand this project to Bedrock]
  • Added feature to bypass FoxGate by playtime (disabled in configuration by default).
  • Major improvements with the handling of FoxGate for BungeeCord:
    • Switched from LoginEvent to PreLoginEvent: Players are now blocked before reaching any backend server.
    • Added full MiniMessage support for BungeeCord messages.
    • Implemented Intent conditions, means, player connections are held until they are fully scanned.
    • Instead of directly disconnecting, the login event is now cancelled, and the reason is properly attached.
    • Fixed issues with clickable commands in chat.
    • Resolved unwanted HikariCP debug logs appearing in recent BungeeCord builds.
  • If Zowi's Central is unreachable, it will now timeout after 5 seconds to avoid long plugin startups. [We strongly recommend using direct providers instead of relying on Zowi’s Central.]
  • Resolved issues where some libraries were not being correctly relocated on older platforms. [requires updating FoxGate and deleting the folder FoxCore]
  • Now, in case a module can't load but an older file exists, this will use it like fallback.

FoxGate Premium was released! :D
See the description section to view where you can purchase it, you can join to the discord server for any question about it.
----------, Jul 11, 2025

  • FIXED A VULNERABILITY WHICH CAN LAG THE SERVER. (seems some plugins are affected to this, FoxGate was one)
  • Added support for 1.21.6/1.21.7
  • Updated some dependencies.
  • Added fallback option for ISP and recoded their logic.
  • Fixed a lot of problems with a new logic for IPLimiter.
  • Added fallback for dependencies in case has problems to be relocated in Legacy versions.
  • Added multi-language feature.
  • Added auto-updatable configuration files.
  • Now the whitelist extra features (expiration time and reason) supports in file mode.
  • Remove messages of HikariCP for prevent confussion.
  • Services are now separated, same with others features.
  • Added MITL, ProtectCord and Zowi's Central services for check VPN/Proxy.
  • Added a lot of cache for making the plugin faster.
  • Improved database handling, added Custom for adding your own JDBC.
  • Fixed some little things (info doesn't appears in tab-complete for whitelist, databases created in another folder, ...)

THIS UPDATE COULD RESET YOUR CONFIGURATION, IF NOT, PLEASE, RESET. THIS PROBABLY COULD BE THE LAST TIME THAT YOU NEED TO RESET, BECAUSE THE PLUGIN NOW HAS AUTO-UPDATER FOR ALL CONFIGURATION FILES.

FoxGate Premium was released! :D
See the description section to view where you can purchase it, you can join to the discord server for any question about it.
----------, Jul 3, 2025

(Including Premium Edition)

General
  • Removed AmeliaDB because their creator discontinued their project.
  • Removed IDCTeam service, our API is disabled for the moment.
  • Converted the load() function to async, now the plugin doesn't go to prevent player login in case this doesn't start.
  • Fixed a problem that the plugin literally create repeated table in the database.
  • Fixed a problem that the cache system uses an invalid folder (in free edition), and prevent issues to premium edition.
  • Improved whitelist system and cache system for Multi-Proxy servers, cache system now support databases and save in certain times for no make overload. Whitelist system now works with databases (only certain types) and improved their logic.
  • Fixed a problem that the database has expiration time in "NULL" when starting, this require restart the table, otherwise, the expiration time will be permanent!
  • Improved performance with more async tasks and better handling. (Velocity has a few change in our event for make it faster)
  • Fixed problems with Limiter feature. (this tries to implement a fix while use optimization features)
  • Added IPQuery (enabled-by-default, unlimited requests) and ProxyRadar services. Thanks to our buyer, @_bad_, for making the configuration for these services!
  • Command whitelist now support "*" regex for allow bypass in some ISP (if needed): 1.1.1.1 -> 1.1.*.*, 1.1.1.*
  • Added option to block/bypass specific ISPs. (This isn't equal to ASN, and please, read the description about this)
  • Improved logic of handling of FoxGateCheck for making this shared.
  • Implemented new ISP module with IPInfo. (Join to our discord server for asking of how use this option correctly)
  • Fixed update checker doesn't disable in the configuration.
  • Change from "newFixedThreadPool" to "ThreadPoolExecutor" thread function. This will change the performance and how request will be sended, so, if someone experiment issues with this "experimental" decision, I will revert the change; also for making this more controlable. (This is the reason why this version will be beta, but stable in functionability)
  • Optimized method of checking with adding cache for the services and fields.
Premium
  • Fixed an issue that happen if the database it's fast, the ASN or country says "unknown" in the kick-message/command actions.
  • Fixed problem that the geolocation databases, sometimes download before checking the file, returning an error on startup.
  • Added new ASNs to the list of Geo Module to fight new hostings and VPN's, like UrbanVPN (VPN that bypass a lot of AntiVPN's); also this could reduce/mitigate any bot attacks and prevent a lot of new VPNs. You could purchase "Extended ASN List" for mitigate more VPNs/Bots/Proxys.
  • FoxGate now download their databases in Zowi's Central in case you don't has a MaxMind key. (Please, read the description about this)
  • Fixed thumbnails in discord webhook.
  • Added new subcommand for testing Discord Webhooks or Telegram Forward features.
  • Now Geo module verify and save in cache the list of allowed/blacklisted ASN/Countries for save performance in bot attacks.
View here the changes of our configuration file: View in Github our changelogs in the configuration file.

FoxGate Premium was released! :D
See the description section to view where you can purchase it, you can join to the discord server for any question about it.
----------, May 31, 2025

  • Fixed option database.cache_database no working correctly. Now seems to works perfectly.
  • Feature consolefilter now passed to Free Edition, decision made by me and my community. This now has been passed to configuration section:

    Code (YAML):
    #     ___             __ _                       _   _            
    #    / __\___  _ __  / _(_) __ _ _   _ _ __ __ _| |_(_) ___  _ __
    #   / /  / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \
    #  / /__| (_) | | | |  _| | (_| | |_| | | | (_| | |_| | (_) | | | |
    #  \____/\___/|_| |_|_| |_|\__, |\__,_|_|  \__,_|\__|_|\___/|_| |_|
    #                          |___/                                  

    # Configure some others little options.
    configuration
    :

        # Allow the usage of Metrics (bStats) in your server?
        # - This is only for stadistics usage.
        #
        #   ❝ What data is collected?
        #   We are using bStats (https://bstats.org/), 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"
        #   https://bstats.org/getting-started
        #
        # (!) Since 1.0.2 (premium) and 1.1.0 (free), FoxGate uses
        #     their own code base for Metrics, but following their
        #     rules. This use asynchronous methods to send data and
        #     changes to Gson for better stability; improving the
        #     performance of this. You can safety has enable this to
        #     help to the creator without affecting the performance.
       metrics
    : true

        # Print to console?
        # - Enable this to send the equal notification to the console when
        #   a player is flagged.
       console
    : true

        # Define the permission.
        # - Set here the permission to see the notification in case this
        #   is used in case a player is using VPN. By default, this is one
        #   permission default of the antivpn: 'foxav.notifications'
       permission
    : 'foxav.notifications'

        # Do you want to enable this feature?
        # - Automatic check new updates in the Market pages. This only detect
        #   when the server is starting. You need to have connection for check
        #   new updates.
        #
        # (!) Since 1.0.0 (premium) and 1.0.6 (free), FoxGate uses
        #     their own code code for update chacking. This use
        #     asynchronous methods to scan updates; improving the
        #     performance of this. You can safety has enable this to
        #     verify updates without affecting the performance.
       update
    : true
     
        # Do you want debug enable debug messages of FoxGate?
        # - Set what messages you want to debug when the debugging mode
        #   is enabled with the command '/fg debug'. This only shows in
        #   the console.
       debug
    :
          # Messages about Events of the player?
          events
    : true
          # Messages returning service's responses for better
          # creation or control of this. Enable only for testing,
          # don't recommend enable this in production, otherwise,
          # your console can be flooded a lot.
          services
    : true
          # Messages about actions making by FoxGate.
          # Like, sending discord webhooks (responses), downloading
          # GeoLocation databases and seding Telegram (requests).
          actions
    : true
         
        # 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
            limiter
    : true
            # Premium Edition features.
            country
    : true
            asn
    : true
FoxGate Premium was released! :D
See the description section to view where you can purchase it, you can join to the discord server for any question about it.
----------, Apr 27, 2025

  • Improved the performance with remaking the handling of detection in all supported loaders/softwares.
  • Added ViaProxy loader/software support.
  • Updated all libraries:
    • MariaDB from 3.5.1 -> 3.5.3
    • SQLite from 3.49.0.0 -> 3.49.1.0
    • MiniMessage from 4.18.0 -> 4.20.0
    • MiniMessage Option from 1.0.0 -> 1.1.0
    • HikariCP from 6.2.1 -> 6.3.0
    • SLF4JAPI from 2.0.16 -> 2.1.0-alpha1
    • SL4FJJDK new in 2.1.0-alpha1
    • GSON from 2.12.2 -> 2.13.1
    • ASM from 9.7.1 -> 9.8
    • Jar-Relocator now is using my fork.
  • Added new command /fg debug for debugging all actions of FoxGate:
    (config.yml)
    Code (YAML):
    # Do you want debug enable debug messages of FoxGate?
      # - Set what messages you want to debug when the debugging mode
      #   is enabled with the command '/fg debug'. This only shows in
      #   the console.
     debug
    :
        # Messages about Events of the player?
        events
    : true
        # Messages returning service's responses for better
        # creation or control of this. Enable only for testing,
        # don't recommend enable this in production, otherwise,
        # your console can be flooded a lot.
        services
    : true
        # Messages about actions making by FoxGate.
        # Like, sending discord webhooks (responses), downloading
        # GeoLocation databases and seding Telegram (requests).
        actions
    : true

    message
    :
     help
    :
        debug
    : 'Debug actions made by FoxGate in the console.'
     debug
    :
        enable
    : ' {prefix } <green>You enabled the debug mode. Check the console.'
        disable
    : ' {prefix } <red>You disabled the debug mode.'
  • Added new command to whitelist add/remove to the configuration. Also, moved all whitelist to new file created by default called whitelist.yml.
    (whitelist.yml)
    Code (YAML):
    # Whitelist the detection to this name's.
    # - Allow players in the list to bypass the detection of
    #   the antivpn. To disable this feature, use the value:
    #
    #   names: []
    #
    # (!) It's case sensetive!
    names
    :
    - ImZowi

    # Whitelist the detection to this IP's.
    # - Allow ip's in the list to bypass the detection of
    #   the antivpn. To disable this feature, use the value:
    #
    #   ips: []
    #
    # (!) The value under is the default in localhost.
    ips
    :
    - "127.0.0.1"
    (config.yml)
    Code (YAML):
    message:
       help
    :
          whitelist
    : 'Edit configuration via command whitelist user/IP.'
       whitelist
    :
          invalid_usage
    : ' {prefix } Use the command <aqua>/foxgate whitelist <add/remove> <name/ip><reset>.'
          already
    : ' {prefix } {IP }<red> is already whitelisted/unwhitelisted in the configuration!'
          whitelisted
    : ' {prefix } {IP }<green> was whitelisted in the configuration with type <white> {type }</white>. You can <white><underlined><click:run_command: "/foxgate whitelist remove {IP}">click here for remove again</click></underlined></white>.'
          unwhitelisted
    : ' {prefix } {IP }<green> was unwhitelisted in the configuration with type <white> {type }</white>. You can <white><underlined><click:run_command: "/foxgate whitelist add {IP}">click here for add again</click></underlined></white>.'
          type_ip
    : 'IP'
          type_name
    : 'Name'
          problem
    : ' {prefix } <red>Error while trying to add/remove to the whitelist. Check the console.'
     
  • Added new option for using name in proxies and new command /fg clearcache. This works with using a cache file or using database in case it's multi-proxy.
    (config.yml)
    Code (YAML):
    database :
      # You want to save the cache in the database in new table
      # instead of use a file? Use this only if you want to use
      # multi-proxy or you're sure you don't has problems with your
      # database.
      #
      # Name of this table it's '"table"_cache', so, if the "table"
      # it's "foxgate", the name will be: "foxgate_cache", or if
      # the "table" it's "vpn_cache", will be "vpn_cache_cache". Always
      # finish with "_cache".
      cache_database
    : false

    message
    :
       help
    :
          clearcache
    : 'Clear the cache file with username saves.'
       clearcache
    :
          purging
    : ' {prefix } <white>We are <yellow>purging</yellow> the cache file ...'
          purging_correctly
    : ' {prefix } <green>The cache file has been purged/reseted.'
          purging_problem
    : ' {prefix } <red>Error while trying to purge the cache file. Check the console.'
     
  • Added option to Limit connections per IP. Default it's 3.
    (config.yml)
    Code (YAML):
    antivpn :

        # Limit maximum connections per IP.
        # - When a player join to the server, this is saved
        #   in a list for count the numbers of players in
        #   a connection. If the limit is reached, the
        #   player isn't allowed from joining.
       limiter
    :
        # Enable this feature?
         enable
    : true
          # Determine the maximum limit of connections per
          # IP. '3' is the best value by default, increase in
          # case is required. This can help in prevent bots with
          # same IP.
         maxium
    : 3
          # Message to return when a player is kicked with this option.
          # placeholders: %PLAYER%, %IP%, %UUID%, %COUNTRY% (Premium and
          # only if function is enabled) and %ASN% (Premium and only if
          # function is enabled).
         kick
    : "<red>You have been disconnected by FoxGate:\n<white>Maximum accounts per IP in your connection.\n\n<gray>This is an error? <white>Join to our discord server.\n<aqua><underlined>discord.idcteam.xyz"
     
  • Using our custom base for bStats (Metrics) to avoid taking performance. For the Creator for the site, please, read our uncompiled comment inside the classes.

    (config.yml)
    Code (YAML):
    configuration :

        # Allow the usage of Metrics (bStats) in your server?
        # - This is only for stadistics usage.
        #
        #   ❝ What data is collected?
        #   We are using bStats (https://bstats.org/), 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"
        #   https://bstats.org/getting-started
        #
        # (!) Since 1.0.2 (premium) and 1.1.0 (free), FoxGate uses
        #     their own code base for Metrics, but following their
        #     rules. This use asynchronous methods to send data and
        #     changes to Gson for better stability; improving the
        #     performance of this. You can safety has enable this to
        #     help to the creator without affecting the performance.
       metrics
    : true
     
  • Added new database type: JayBird.
    (config.yml)
    Code (YAML):
    # This database is experimental.
    jaybird
    :
      hostname
    : "localhost"
      port
    : 3050
      database
    : "FoxGate.fdb"
      username
    : "foxgate"
      password
    : ""

      # These settings apply to this Firebird database, as it uses Hikari for connection pooling.
      # - Default values are suitable for most users. Modify only if necessary.
      pool-settings
    :

        # The maximum number of connections in the connection pool.
        # - Determines the upper limit of active database connections that can be managed simultaneously.
        # - Setting this too high can overload your database server, while setting it too low can cause delays.
        # Recommended: 10
        maximum-pool-size
    : 10

        # Minimum number of idle connections to maintain in the pool.
        # - The pool will try to maintain this number of idle (inactive) connections ready for use.
        # Recommended: 1
        minimum-idle
    : 1

        # Maximum lifetime of a connection in the pool, in milliseconds.
        # - Connections older than this value will be closed and replaced.
        # Recommended: 1800000 (30 minutes)
        maximum-lifetime
    : 1800000

        # The maximum time in milliseconds to wait for a connection from the pool.
        # - If no connection is available within this time, an exception will be thrown.
        # Recommended: 30000 (30 seconds)
        connection-timeout
    : 30000
     
  • Added new 5 services in the default configuration. (Thanks for our buyer, @_bad_, for making these configurations for FoxGate in the default section)

    IPAPI IS
    Code (YAML):
      # ⛽ IPAPI IS
      #  https://ipaphttps://ipapi.is/i.is/
      #
      #  Details:
      #  https://ipapi.is/app/signup
      #
      # - 1k daily requests, free account or without key (IP-based for limit).
      # - 10k daily requests, pay $10 monthly.
      # - 20k daily requests, pay $20 monthly.
      # - 50k daily requests, pay $50 monthly.
      # - 100k daily requests, pay $100 monthly.
      # - 2M daily requests, pay $200 monthly.
      ipapiis
    :
        # Enable this service?
         enabled
    : true
          # Model request to use.
         model
    : "JSON"
          # You can use this field in case you
          # has an account in this page.
         key
    : ""
          # URL.
         url
    : "https://api.ipapi.is/?q=%IP%&key=%KEY%"
          # Values to check.
         values
    :
            # Fields to check.
            fields
    :
           - "is_datacenter"
            - "is_tor"
            - "is_proxy"
            - "is_vpn"
            - "is_abuser"
            - "is_bogon" # Read more about this in https://ipgeolocation.io/blog/bogon-ip-addresses
            # Type to determine.
            type
    : boolean
    IPStack
    Code (YAML):
      # ⛽ IPStack
      #  https://ipstack.com/
      #
      #  Details:
      #  https://ipstack.com/signup/free
      #
      # - 100 monthly requests, free account.
      # - 50k monthly requests, basic account.
      # - 500k monthly requests, professional account.
      # - 2M monthly requests, professional plus account.
      ipstack
    :
        # Enable this service?
         enabled
    : false
          # Model request to use.
         model
    : "JSON"
          # Insert your key here.
          # Don't delete this field!
         key
    : ""
          # URL.
         url
    : "https://api.ipstack.com/%IP%?access_key=%KEY%&security=1"
          # Values to check.
         values
    :
            # Fields to check.
            fields
    :
           - "security.is_proxy"
            - "security.is_crawler"
            - "security.is_tor"
            - "security.hosting_facility"
            # Type to determine.
            type
    : boolean
    2IP
    Code (YAML):
      # ⛽ 2IP
      #  https://2ip.io/
      #
      #  Details:
      #  https://2ip.io/registration/api/
      #
      # - 10k requests free per month.
      # (Based in Billing)
      2ip
    :
        # Enable this service?
         enabled
    : false
          # Model request to use.
         model
    : "JSON"
          # Insert your key here.
          # Don't delete this field!
         key
    : ""
          # URL.
         url
    : "https://api.2ip.io/%IP%?token=%KEY%"
          # Values to check.
         values
    :
            # Fields to check.
            fields
    :
           - "asn.hosting"
            # Type to determine.
            type
    : boolean
    GreIP
    Code (YAML):
      # ⛽ GreIP
      #  https://greip.io/
      #
      #  Details:
      #  https://dashboard.greip.io/login
      #
      # - 15k monthly requests, free account.
      # - 170k monthly requests, Standard account.
      # - 400k monthly requests, Premium account.
      # - Unlimited requests, "Pay-as-you-go".
      greip
    :
        # Enable this service?
         enabled
    : false
          # Model request to use.
         model
    : "JSON"
          # Headers in case is necessary.
          #
          # Set to: 'headers: []' to disable.
         headers
    :
            'Authorization'
    : 'Bearer KEY'
          # URL.
         url
    : "https://greipapi.com/lookup/ip/threats?ip=%IP%"
          # Values to check.
         values
    :
            # Fields to check.
            fields
    :
           - "data.threats.isProxy"
            - "data.threats.isRelay"
            - "data.threats.isTor"
            - "data.threats.isHosting"
            # Type to determine.
            type
    : boolean
    IPGeolocation (PAID)
    Code (YAML):
      # ⛽ IPGeolocation (PAID SERVICE)
      #  https://ipgeolocation.io/
      #
      #  Details:
      #  https://app.ipgeolocation.io/login
      #
      # This is a PAID SERVICE, require starting from
      # $15 monthly subscription for using IP-security
      # feature. First plan it's $15 (Bronze).
      #
      # - 150k monthly requests, Bronze ($15)
      # - 1M monthly requests, Solver ($65)
      # - 6M monthly requests, Gold ($200)
      # - 120M+ monthly requests, Enterprise.
      ipgeolocation
    :
        # Enable this service?
         enabled
    : false
          # Model request to use.
         model
    : "JSON"
          # Insert your key here.
          # Don't delete this field!
         key
    : ""
          # URL.
         url
    : "https://api.ipgeolocation.io/ipgeo?apiKey=%KEY%&ip=%IP%"
          # Values to check.
         values
    :
            # Fields to check.
            fields
    :
           - "security.is_tor"
            - "security.is_proxy"
            - "security.is_cloud_provider"
            - "security.is_known_attacker"
            - "security.is_anonymous"
            # Type to determine.
            type
    : boolean
  • Fixed permissions with LuckPerms providing support multi-platform.
  • Fixed PostgreSQL support.
➡️ Reset your configuration in case you want to apply already all the changes instead of copy manually.


FoxGate Premium was released! :D
See the description section to view where you can purchase it, you can join to the discord server for any question about it.
----------, Apr 26, 2025

  • Fixed users without permissions to the command can see tab-arguments. This can show cached IP's, update now! (If you don't has plugin that hide tab-completion)
  • Support now 1.3.x to 1.21.x, changed internal libraries to Gson.
  • Improved command and improved performance.
  • Now libraries message are hidden by default, enable it with using argument '-Dfoxgate.enableLibrariesLog'.
  • Fixed in BungeeCord, player's get invalid packet for commands, making this only working in console only, now works in both.
FoxGate Premium was released! :D
See the description section to view where you can purchase it, you can join to the discord server for any question about it.
----------, Mar 7, 2025

We are happy to announce... FoxGate Premium was released! :D
See the description section to view where you can purchase it, you can join to the discord server for any question about it.

Changelogs:
  • Fixed compatibility with some services, like ProxyCheck.
  • Improved performance and handling with the database, using totally async for Velocity and BungeeCord.
Code (YAML):
#      ___      _        _
#     /   \__ _| |_ __ _| |__   __ _ ___  ___
#    / /\ / _` | __/ _` | '_ \ / _` / __|/ _ \
#   / /_// (_| | || (_| | |_) | (_| \__ \  __/
#  /___,' \__,_|\__\__,_|_.__/ \__,_|___/\___|

# Configure a database for use.
database
:

    # - Available options in type.
    #   All options use HikariCP for better performance.
    #  |=> MySQL
    #  |=> MariaDB
    #  |=> PostgreSQL
    #  |=> SQLite
    #  |=> H2
    #
    # If you change this configuration and your server is already
    # started. You can use the command "/foxgate db reconnect" to
    # apply the changes without restarting plugin or server.
    # Remember first reload the plugin with "/foxgate reload"
    # and use that command.
    type
: "SQLite"
    # Edit table in case you want a different.
    # If you want to use your actually stats (of 1.0.5-pre4 or older),
    # use the next:
    # - "vpn_cache"
    table
: "foxgate"
 
    # MariaDB/MySQL databases type. Edit here.
    remote
:
      # Determine information of your database.
      hostname
: "localhost"
      port
: 3306
      database
: "foxav_db"
      username
: "root"
      password
: "password123"
   
      # These settings apply to the MySQL/MariaDB connection pool (HikariCP).
      # - Default values are suitable for most users. Only modify these if you know what you're doing!
      pool-settings
:

        # The maximum number of connections in the connection pool.
        # - Determines the upper limit of active database connections that can be managed simultaneously.
        # - Setting this too high can overload your database server, while setting it too low can cause delays.
        # Example:
        #   If your server has high traffic and the database can handle it, set this to 10 or higher.
        # Recommended: 10
        # More information: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
        maximum-pool-size
: 10

        # Minimum number of idle connections to maintain in the pool.
        # - The pool will try to maintain this number of idle (inactive) connections ready for use.
        # - Setting this equal to 'maximum-pool-size' creates a fixed-size connection pool,
        #   ensuring consistent resource allocation.
        # Example:
        #   For a server with occasional traffic spikes, set this to half of 'maximum-pool-size'.
        # Recommended: 2
        minimum-idle
: 2
     
        # Sets the maximum time an idle connection can remain in the pool before being automatically closed.
        # - Connections that remain idle for longer than the configured value will be removed from the pool
        #   and replaced with new connections as needed.
        # - This is useful to free up resources and keep connections "fresh" avoiding possible problems with
        #   stale connections.
        # Recommended: 600000 (10 minutes)
        idle-timeout
: 600000

        # Maximum lifetime of a connection in the pool, in milliseconds.
        # - Connections older than this value will be closed and replaced.
        # - This prevents stale connections from lingering indefinitely and reduces database timeout issues.
        # - Should be at least 30 seconds less than the timeout imposed by the database itself.
        # Example:
        #   If your database timeout is 30 minutes, set this value to 25 minutes (1500000 ms).
        # Recommended: 1500000 (25 minutes)
        maximum-lifetime
: 1500000

        # Frequency of pings to keep the connection alive, in milliseconds.
        # - This prevents connections from being closed due to inactivity (common in many databases or firewalls).
        # - Must be less than 'maximum-lifetime' and greater than 30 seconds (30000 ms).
        # Example:
        #   For long-running servers, a value of 10 minutes (600000 ms) is generally ideal.
        # Recommended: 600000 (10 minutes)
        keepalive-time
: 600000

        # The maximum time in milliseconds to wait for a connection from the pool.
        # - If no connection is available within this time, an exception will be thrown.
        # - Setting a low value ensures responsiveness but may cause issues under heavy load.
        # Example:
        #   For responsive applications, a value between 3-5 seconds (3000-5000 ms) is ideal.
        # Recommended: 5000 (5 seconds)
        connection-timeout
: 5000

        # Custom validation timeout (time taken to validate a connection), in milliseconds.
        # - Determines how long the pool will wait while testing if a connection is still valid.
        # - A low value improves responsiveness, but setting it too low may cause false negatives.
        # Example:
        #   For most databases, 3 seconds (3000 ms) is sufficient for validation.
        # Recommended: 3000 (3 seconds)
        validation-timeout
: 3000
     
        # Leak detection threshold in milliseconds.
        # - This setting helps detect connections that are not properly closed.
        # - If a connection is checked out but not closed within this time, a warning will be logged.
        # - Useful for debugging connection leaks in plugins or applications.
        # Example:
        #   If you expect queries to be fast, a value of 60 seconds (60000 ms) can help catch leaks.
        #   If you have long transactions, set a higher value to avoid false positives.
        # Recommended: 60000 (1 minute)
        leak-detection-threshold
: 60000
 
      # Custom properties for advanced users.
      # Add any additional properties to fine-tune the connection.
      #
      # You can uncomment unnecesary properties or remove,
      # also edit to values that is perfect for you.
      # (!) THIS PROPERTIES IS BASED WITH SUPPORT
      # MARIADB, IF YOU GET ERROR IN MYSQL, YOU CAN
      # ADAPT OR CONSIDERING TO CHANGE TO MARIADB,
      # THAT WORKS WITH MYSQL DATABASES.
      properties
:

        # - SSL.
        # Database connection settings.
        # Adjust these properties to optimize the connection with your MySQL/MariaDB server.
        # Enables or disables SSL for secure connections.
        # It is highly recommended to set this to true if your server supports SSL.
        # Default is false, as many MySQL/MariaDB servers do not support SSL.
        sslMode
: "disabled"
        requireSSL
: "false"                   # If set to "true", forces SSL connections. Overrides 'sslMode'.
        verifyServerCertificate
: "false"       # Validates the server's SSL certificate. Set to "true" for production.
        # - Connection Optimization
        cachePrepStmts
: "true"                 # Enables prepared statement caching
        prepStmtCacheSize
: "250"               # Number of prepared statements to cache
        prepStmtCacheSqlLimit
: "2048"         # Maximum size of a query in the cache
        useServerPrepStmts
: "true"             # Uses server-side prepared statements
        # - Performance and Buffering
        rewriteBatchedStatements
: "true"       # Optimizes batch insert/update performance
        useCompression
: "false"               # Enables compression for data transfer (optional)
        maintainTimeStats
: "false"             # Disables time statistics for improved performance
        autoReconnect
: "true"                 # Automatically reconnects if the connection is lost
        # - Character Encoding
        # Specifies whether Unicode character encoding should be used.
        # If working with multilingual data, this is highly recommended.
        useUnicode
: "true"
        # Defines the character encoding for the database connection.
        # Use "utf8" for compatibility with most character sets.
        characterEncoding
: "utf8"
        # - Time Zone
        serverTimezone
: "UTC"                 # Ensures consistent timezone handling

    postgresql
:
      hostname
: "localhost"
      port
: 5432
      database
: "foxav_db"
      username
: "postgres"
      password
: "password123"

      # Database connection settings for PostgreSQL.
      settings
:

        # Adjust these properties to optimize the connection with your PostgreSQL server.
        # Enables or disables SSL for secure connections.
        # It is highly recommended to set this to true if your server supports SSL.
        # Default is false.
        ssl
: false
        # The maximum time in seconds to wait for a connection from the pool.
        # Choose a value between 1 and 5 for a balance between availability and performance.
        # Recommended: 3.0
        connectiontimeout
: 3.0

        # Specifies whether Unicode character encoding should be used.
        # PostgreSQL natively supports Unicode, so this can be left as true.
        useUnicode
: true

        # Defines the character encoding for the database connection.
        # Use "UTF-8" to handle multilingual data and ensure compatibility.
        characterEncoding
: "UTF-8"

        # Keeps idle connections alive.
        tcpKeepAlive
: true

        # Timeout for socket operations in seconds.
        socketTimeout
: 30

        # Number of prepared statement executions before switching to server-side prepared statements.
        prepareThreshold
: 5

        # Application name for debugging or monitoring purposes.
        applicationName
: "FoxGate"

        # Enables optimized binary transfer for certain data types.
        binaryTransfer
: true
   
      # These settings apply to this PostgreSQL, because uses Hikari for connection.
      # - Default values are suitable for most users. Only modify these if you know what you're doing!
      pool-settings
:

        # The maximum number of connections in the connection pool.
        # - Determines the upper limit of active database connections that can be managed simultaneously.
        # - Setting this too high can overload your database server, while setting it too low can cause delays.
        # Example:
        #   If your server has high traffic and the database can handle it, set this to 10 or higher.
        # Recommended: 10
        # More information: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
        maximum-pool-size
: 10

        # Minimum number of idle connections to maintain in the pool.
        # - The pool will try to maintain this number of idle (inactive) connections ready for use.
        # - Setting this equal to 'maximum-pool-size' creates a fixed-size connection pool,
        #   ensuring consistent resource allocation.
        # Example:
        #   For a server with occasional traffic spikes, set this to half of 'maximum-pool-size'.
        # Recommended: 2
        minimum-idle
: 2

        # Maximum lifetime of a connection in the pool, in milliseconds.
        # - Connections older than this value will be closed and replaced.
        # - This prevents stale connections from lingering indefinitely and reduces database timeout issues.
        # - Should be at least 30 seconds less than the timeout imposed by the database itself.
        # Example:
        #   If your database timeout is 30 minutes, set this value to 25 minutes (1500000 ms).
        # Recommended: 1800000 (30 minutes)
        maximum-lifetime
: 1800000

        # The maximum time in milliseconds to wait for a connection from the pool.
        # - If no connection is available within this time, an exception will be thrown.
        # - Setting a low value ensures responsiveness but may cause issues under heavy load.
        # Example:
        #   For responsive applications, a value between 30-50 seconds (30000-50000 ms) is ideal.
        # Recommended: 30000 (30 seconds)
        connection-timeout
: 30000
     
        # Leak detection threshold in milliseconds.
        # - This setting helps detect connections that are not properly closed.
        # - If a connection is checked out but not closed within this time, a warning will be logged.
        # - Useful for debugging connection leaks in plugins or applications.
        # Example:
        #   If you expect queries to be fast, a value of 60 seconds (60000 ms) can help catch leaks.
        #   If you have long transactions, set a higher value to avoid false positives.
        # Recommended: 60000 (1 minute)
        leak-detection-threshold
: 60000

    sqlite
:
      file
: "FoxGate.db"
   
      # These settings apply to this SQLite, because uses Hikari for connection.
      # - Default values are suitable for most users. Only modify these if you know what you're doing!
      #
      # Yeah... I know HikariCP isn't better to use with SQLite, but is only for avoid any
      # type of errors! Please, don't kill me!
      pool-settings
:

        # The maximum number of connections in the connection pool.
        # - Determines the upper limit of active database connections that can be managed simultaneously.
        # - Setting this too high can overload your database server, while setting it too low can cause delays.
        # Example:
        #   If your server has high traffic and the database can handle it, set this to 10 or higher.
        # Recommended: 10
        # More information: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
        maximum-pool-size
: 10

        # Minimum number of idle connections to maintain in the pool.
        # - The pool will try to maintain this number of idle (inactive) connections ready for use.
        # - Setting this equal to 'maximum-pool-size' creates a fixed-size connection pool,
        #   ensuring consistent resource allocation.
        # Example:
        #   For a server with occasional traffic spikes, set this to half of 'maximum-pool-size'.
        # Recommended: 1
        minimum-idle
: 1

        # Maximum lifetime of a connection in the pool, in milliseconds.
        # - Connections older than this value will be closed and replaced.
        # - This prevents stale connections from lingering indefinitely and reduces database timeout issues.
        # - Should be at least 30 seconds less than the timeout imposed by the database itself.
        # Example:
        #   If your database timeout is 30 minutes, set this value to 25 minutes (1500000 ms).
        # Recommended: 1800000 (30 minutes)
        maximum-lifetime
: 1800000

        # The maximum time in milliseconds to wait for a connection from the pool.
        # - If no connection is available within this time, an exception will be thrown.
        # - Setting a low value ensures responsiveness but may cause issues under heavy load.
        # Example:
        #   For responsive applications, a value between 30-50 seconds (30000-50000 ms) is ideal.
        # Recommended: 30000 (30 seconds)
        connection-timeout
: 30000
     
        # Leak detection threshold in milliseconds.
        # - This setting helps detect connections that are not properly closed.
        # - If a connection is checked out but not closed within this time, a warning will be logged.
        # - Useful for debugging connection leaks in plugins or applications.
        # Example:
        #   If you expect queries to be fast, a value of 60 seconds (60000 ms) can help catch leaks.
        #   If you have long transactions, set a higher value to avoid false positives.
        # Recommended: 60000 (1 minute)
        leak-detection-threshold
: 60000

    h2
:
      file
: "h2db"
   
      # These settings apply to this H2, because uses Hikari for connection.
      # - Default values are suitable for most users. Only modify these if you know what you're doing!
      pool-settings
:

        # The maximum number of connections in the connection pool.
        # - Determines the upper limit of active database connections that can be managed simultaneously.
        # - Setting this too high can overload your database server, while setting it too low can cause delays.
        # Example:
        #   If your server has high traffic and the database can handle it, set this to 10 or higher.
        # Recommended: 10
        # More information: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
        maximum-pool-size
: 10

        # Minimum number of idle connections to maintain in the pool.
        # - The pool will try to maintain this number of idle (inactive) connections ready for use.
        # - Setting this equal to 'maximum-pool-size' creates a fixed-size connection pool,
        #   ensuring consistent resource allocation.
        # Example:
        #   For a server with occasional traffic spikes, set this to half of 'maximum-pool-size'.
        # Recommended: 1
        minimum-idle
: 1

        # Maximum lifetime of a connection in the pool, in milliseconds.
        # - Connections older than this value will be closed and replaced.
        # - This prevents stale connections from lingering indefinitely and reduces database timeout issues.
        # - Should be at least 30 seconds less than the timeout imposed by the database itself.
        # Example:
        #   If your database timeout is 30 minutes, set this value to 25 minutes (1500000 ms).
        # Recommended: 1800000 (30 minutes)
        maximum-lifetime
: 1800000

        # The maximum time in milliseconds to wait for a connection from the pool.
        # - If no connection is available within this time, an exception will be thrown.
        # - Setting a low value ensures responsiveness but may cause issues under heavy load.
        # Example:
        #   For responsive applications, a value between 30-50 seconds (30000-50000 ms) is ideal.
        # Recommended: 30000 (30 seconds)
        connection-timeout
: 30000
     
        # Leak detection threshold in milliseconds.
        # - This setting helps detect connections that are not properly closed.
        # - If a connection is checked out but not closed within this time, a warning will be logged.
        # - Useful for debugging connection leaks in plugins or applications.
        # Example:
        #   If you expect queries to be fast, a value of 60 seconds (60000 ms) can help catch leaks.
        #   If you have long transactions, set a higher value to avoid false positives.
        # Recommended: 60000 (1 minute)
        leak-detection-threshold
: 60000

    # When an IP isn't detected a vpn or proxy, this need to save in
    # cache to don't make more requests for a little time for save
    # performance and requests, customizable here.
    bypass
:
        # Enable this feature?
        enable
: true

        # Determine the amount in hours to save the IP in cache and avoid
        # make more requests to this IP. Useful to save performance and
        # verify only one time for certain time.
        #
        # Recommended: 2
        # Type 'permanent' for bypass permanent.
        expiration_time
: 2

    # When an IP is detected in a result, this is save in the cache
    # to don't make more request for a little time, this value is
    # saved in hours.
    #
    # Recommended: 36
    # Type 'permanent' for blocking permanent.
    expiration_time
: 36
  • Added new service for detecting Proxy, VPN and Datacenter: IPDetective
Code (YAML):
      # ⛽ IPDetective
      # https://ipdetective.io/
      #
      # Details:
      # https://ipdetective.io/login
      #
      # - 1,000 daily requests, free account.
      # - 30k daily requests, basic account.
      # - 80k daily requests, premium account.
      # - 200k daily requests, enterprise account.
      ipdetective
:
        # Enable this service?
         enabled
: false
          # Model request to use.
         model
: "JSON"
          # Headers in case is necessary.
          #
          # Set to: 'headers: []' to disable.
         headers
:
            'x-api-key'
: 'KEY'
          # URL.
         url
: "https://api.ipdetective.io/ip/%IP%?info=true"
          # Values to check.
         values
:
            # Fields to check.
            fields
:
           - "type"
            # Type to determine.
            type
: [ "vpn", "datacenter", "bot", "proxy" ]
----------, Mar 4, 2025

  • FIXED VELOCITY SUPPORT, USE THIS VERSION FOR VELOCITY USERS NOW.
  • Fixed updater checker returning invalid version.
  • Fixed some displays.
We are working for the premium version, this for the moment has the webhook and geo (new, view how this system is in new configuration of this version) system, you can contact in the discord support for purchase with PayPal (for the moment, only). This go to be public for purchase when I finish all the systems planned.
----------, Feb 19, 2025

  • Fixed some problems.
  • Improved a little more the performance.
  • Updated libraries.
  • Libraries now relocate to avoid problems with software, like Carbon.
  • Fixed permissions problems with Velocity.
  • Fixed problems with caching in the database.
  • Now the plugin use shaded class for reduce size and better compatibility.
  • Improved a little more the system of detection in VPNs.
  • Improved compatibility with Minecraft 1.7.x.
  • Fixed AntiVPNio endpoint.
We are working for the premium version, this for the moment has the webhook system, you can contact in the discord support for purchase with PayPal (for the moment, only). This go to be public for purchase when I finish all the systems planned.
----------, Feb 16, 2025

Changelogs

  • Fixing default value for MySQL, adding configuration for MariaDB and MySQL default compatibility.
  • Fixed all errors with H2, it's now stable and usable in production.
  • Added a startup java argument for suppressing all log about the library downloader.
  • Added stable support for Velocity (and Forks).
  • Added stable support for BungeeCord (and Forks).
  • Using now Java 11 and applied A LOT OF CHANGES FOR PERFORMANCE.
  • Fixed some rarely errors in backend.
  • Improved SQLite performance with adding some execution.
  • Updated HikariCP from 4.0.3 to 6.2.1.
  • Added Negativity API (unlimited usage).

THIS UPDATE DOESN'T REQUIRE RESET YOUR CONFIG, YOU CAN COMPARE YOUR CONFIG.YML WITH THE .JAR INSIDE IF YOU WANT GET SOME LITTLE CHANGES.
----------, Jan 21, 2025

(showing updates from 1.0.4 -> 1.0.5-pre5) - This version has been launched for public for testing, this seems to be stable, but if you find errors or problems, please, JOIN TO THE DISCORD SUPPORT.
Changelogs:

  • Added IPRisk API (unlimited usage).
  • Added FreeIPAPI.
  • Increased max_flags option to 3 for better avoid false flags for the amount of free APIs.
  • Added IPdb-Amelia API (unlimited usage).
  • Disabled SkyDB by default in configuration because their big delay in response.
  • Fixed value to check for VPN in case the API return in array list.
  • Added option to use value with array list. (this feature was added for IPdb-Amelia, for better results)
  • Added reload command for the plugin.
  • Fixed bypass permission.
  • Added auto-complete for add/remove sub-arguments.
  • Fixed Folia support.
  • Implemented a little API for developers.
  • Download their dependencies automatically when the server start, so you can use MySQL and SQLite in Proxy (BungeeCord/Velocity).
  • Added support for MiniMessage.
  • Added support for new databases: MariaDB, PostgreSQL and H2 with HikariCP.
  • Added new command /foxgate db; in this you can purge the database, all saved IP's (/foxgate db purge) and reconnect the database if you applied changes and you don't want restart your server (/foxgate db reconnect).
  • Added new command /foxgate status, with this you can see information from an IP saved in the database.
  • Improved the structure in the config.yml.
  • Updated and fixed some fields in the API.
  • Fixed in Velocity backends, this only detecting IP of host.
  • Fixed a lot of errors in 1.0.4 version.
  • Changed PlayerPreLoginEvent to AsyncPlayerPreLoginEvent for better performance.
  • Added default values in case your config is older. RECOMMENDED TO RESET IN UPDATES!

THIS UPDATE ONLY WORKS IN BACKEND, PROXY GO TO WILL BE SUPPORTED IN 1.0.5 (FINAL VERSION OF THIS PRE-VERSIONS). ALSO THIS VERSION REQUIRE RESET YOUR CONFIGURATION FILE FOR APPLY ALL NEW CHANGES!
----------, Jan 15, 2025

(I'm working for a premium version of this)
  • Fixed some errors in command /foxgate add.
  • Using Proxy logger instead of the plugin logger in BungeeCord.
  • Added GetIPIntel API.
  • Added IP2Location API.
  • Added VPNBlocker API.
Configuration with the new API's:

Code (YAML):
      # IP2LOCATION
      # https://ip2location.io/
      #
      # Details:
      # https://ip2location.io/sign-up
      #
      # - 500 requests per day, no key, only proxy detection.
      # - 30k montlhy requests, "free" plan, basic vpn detection.
      # - 150k montlhy requests, "starter" plan, basic vpn detection.
      # - 300k montlhy requests, "plus" plan, advanced vpn detection.
      # - 600k montlhy requests, "security" plan, full vpn detection.
      ip2location
:
        # Enable this service?
         enabled
: true
          # Model request to use.
         model
: "JSON"
          # Insert your key here.
          # Don't delete this field!
          #
          # I changed here because if "key" parameters is
          # in the URL, this make like this is trying to
          # use a key. Delete '#' under and delete 'key: ""',
          # remember to replace 'KEY' with your API key.
          #key: "&key=KEY"
         key
: ""
          # URL.
         url
: "https://api.ip2location.io/?ip=%IP%&format=json%KEY%"
          # Values to check.
         values
:
            # Fields to check.
            # "is_proxy" only field if you don't has "Security" plan, the
            # others if you pay 499$ for this...
            fields
:
           - "is_proxy"
            - "proxy.is_vpn"
            - "proxy.is_tor"
            - "proxy.is_public_proxy"
            - "proxy.is_web_proxy"
            - "proxy.is_web_crawler"
            - "proxy.is_residential_proxy"
            - "proxy.is_botnet"
            - "proxy.is_spammer"
            - "proxy.is_scanner"
            - "proxy.is_consumer_privacy_network"
            - "proxy.is_enterprise_private_network"
            - "proxy.is_data_center"
            # Type to determine.
            type
: boolean

      # GetIPIntel
      # https://getipintel.net/
      #
      # Details:
      # https://getipintel.net/free-proxy-vpn-tor-detection-api/#FAQ
      #
      # Details:
      # - 500 requests per day and 15 requests per minute - normal.
      # - Unknowned requests with a "package".
      getipintel
:
        # Enable this service?
          # PLEASE, PUT A VALID "EMAIL" LIKE
          # KEY TO USE THIS, OTHERWISE, THIS CAN
          # BLOCK YOU (SOMETIMES, INSTANTLY).
         enabled
: false
          # Model request to use.
         model
: "JSON"
          # Insert your key here.
          # Don't delete this field!
          # PLEASE, PUT A VALID "EMAIL" LIKE
          # KEY TO USE THIS, OTHERWISE, THIS CAN
          # BLOCK YOU (SOMETIMES, INSTANTLY).
         key
: ""
          # URL.
         url
: "https://check.getipintel.net/check.php?ip=%IP%&contact=%KEY%&flags=m&format=json"
          # Values to check.
         values
:
            # Fields to check.
            fields
:
           - "result"
            # Type to determine.
            type
: '1'

      # VPN Blocker
      # https://vpnblocker.net/
      #
      # Details:
      # https://vpnblocker.net/
      #
      # - 500 montlhy requests, no key/free.
      # - Unlimited requests, paid.
      vpnblocker
:
        # Enable this service?
         enabled
: false
          # Model request to use.
         model
: "JSON"
          # Headers in case is necessary.
          #
          # Set to: 'headers: []' to disable.
         headers
:
            'X-API-KEY'
: 'KEY'
          # URL.
         url
: "https://api.vpnblocker.net/v2/json/%IP%"
          # Values to check.
         values
:
            # Fields to check.
            fields
:
           - "host-ip"
            # Type to determine.
            type
: boolean
You found a error? Join to the Discord server clicking here.
Reset you config.yml to get new the new changes!
----------, Aug 10, 2024

  • Added bypass feature to deny detection if the player is verified and don't is a VPN/proxy for a certain time. (Customizable)
Code (YAML):
database :
  # Available:
    # - SQLite (NOT AVAILABLE IN BUNGEECORD!)
    # - MySQL (IMPORTANT TO WORK IN BUNGEECORD!)
   type
: "sqlite"
   sqlite
:
      file
: "FoxGate.db"
   mysql
:
      host
: "localhost"
      port
: 3306
      database
: "foxav_db"
      username
: "root"
      password
: "password123"
      # Highly recommended to keep this true for secure connections.
      # Ensure your MySQL server supports SSL.
      # By default is false, because a lot of MySQL servers don't supports
      # SSL.
      SSL
: false
      # The maximum number of connections in the connection pool.
      # Recommended: 4
      maximumpoolsize
: 4
      # The maximum time in seconds to wait for a connection from the pool,
      # is recommended a value from higher than 1 and less than 5.
      # Recommended: 3.0
      connectiontimeout
: 3.0
    # When an IP isn't detected a vpn or proxy, this need to save in
    # cache to don't make more requests for a little time for save
    # performance and requests, customizable here.
   bypass
:
      # Enable this feature?
      enable
: true
      # Determine the amount in hours to save the IP in cache and avoid
      # make more requests to this IP. Useful to save performance and
      # verify only one time for certain time.
      #
      # Recommended: 2
      expiration_time
: 2
    # When an IP is detected in a result, this is save in the cache
    # to don't make more request for a little time, this value is
    # saved in hours.
    #
    # Recommended: 36
   expiration_time
: 36
  • Renamed blacklist to whitelist in the configuration (request by kokoro_koklo).
  • Fixed typo in the kick message by default (thanks to kokoro_koklo).
  • Updated endpoint and fields of VPNAPI.
  • [EXPERIMENTAL] Added multi-thread for better performance.
  • Added better support for BungeeCord. (Tested with NullCordX 3.8.7, Waterfall Fork)

You found a error? Join to the Discord server clicking here.
Reset you config.yml to get new the new changes and avoid errors!
----------, Jul 25, 2024

  • Added BanProxy and IPQualityScore services to detect VPN and bots.
  • Added disconnection when finish requests to save performance.
  • Added new options for MySQL connection database:
Code (YAML):
database :
  # Available:
    # - SQLite (NOT AVAILABLE IN BUNGEECORD!)
    # - MySQL (IMPORTANT TO WORK IN BUNGEECORD!)
   type
: "sqlite"
   sqlite
:
      file
: "FoxGate.db"
   mysql
:
      host
: "localhost"
      port
: 3306
      database
: "foxav_db"
      username
: "root"
      password
: "password123"
      # Highly recommended to keep this true for secure connections.
      # Ensure your MySQL server supports SSL.
      # By default is false, because a lot of MySQL servers do't supports
      # SSL.
      SSL
: false
      # The maximum number of connections in the connection pool.
      # Recommended: 4
      maximumpoolsize
: 4
      # The maximum time in seconds to wait for a connection from the pool,
      # is recommended a value from higher than 1 and less than 5.
      # Recommended: 3.0
      connectiontimeout
: 3.0
    # When an IP is detected in a result, this is save in the cache
    # to don't make more request for a little time, this value is
    # saved in hours.
    #
    # Recommended: 36
   expiration_time
: 36
  • Added option to check updates, can be disabled in config.yml.
  • Added option to blacklist ip's from detection, request of @arrafii14 in discord server.
Code (YAML):
  # Blacklist the detection to this name's.
    # It's case sensetive!
   blacklist-name
:
    - 'ImFoxerARG' # It's me! :3
    # Blacklist the detection to this IP's.
   blacklist-ip
:
    - '127.0.0.1' # It's default in localhost!

Sorry, I'm moving Velocity support for the future versions.
You found a error? Join to the Discord server clicking here.

Reset you config.yml to get new the new changes and avoid errors!
----------, Jul 23, 2024

  • Added BanProxy and IPQualityScore services to detect VPN and bots.
  • Added disconnection when finish requests to save performance.
  • Added new options for MySQL connection database:
Code (YAML):
database :
  # Available:
    # - SQLite (NOT AVAILABLE IN BUNGEECORD!)
    # - MySQL (IMPORTANT TO WORK IN BUNGEECORD!)
   type
: "sqlite"
   sqlite
:
      file
: "FoxGate.db"
   mysql
:
      host
: "localhost"
      port
: 3306
      database
: "foxav_db"
      username
: "root"
      password
: "password123"
      # Highly recommended to keep this true for secure connections.
      # Ensure your MySQL server supports SSL.
      # By default is false, because a lot of MySQL servers do't supports
      # SSL.
      SSL
: false
      # The maximum number of connections in the connection pool.
      # Recommended: 4
      maximumpoolsize
: 4
      # The maximum time in seconds to wait for a connection from the pool,
      # is recommended a value from higher than 1 and less than 5.
      # Recommended: 3.0
      connectiontimeout
: 3.0
    # When an IP is detected in a result, this is save in the cache
    # to don't make more request for a little time, this value is
    # saved in hours.
    #
    # Recommended: 36
   expiration_time
: 36
  • Added option to check updates, can be disabled in config.yml.
  • Added option to blacklist ip's from detection, request of @arrafii14 in discord server.
Code (YAML):
  # Blacklist the detection to this name's.
    # It's case sensetive!
   blacklist-name
:
    - 'ImFoxerARG' # It's me! :3
    # Blacklist the detection to this IP's.
   blacklist-ip
:
    - '127.0.0.1' # It's default in localhost!

Sorry, I'm moving Velocity support for the future versions.
You found a error? Join to the Discord server clicking here.

Reset you config.yml to get new the new changes and avoid errors!
----------, Jul 22, 2024

  • Added BanProxy and IPQualityScore services to detect VPN and bots.
  • Added disconnection when finish requests to save performance.
  • Added new options for MySQL connection database:
Code (YAML):
database :
  # Available:
    # - SQLite (NOT AVAILABLE IN BUNGEECORD!)
    # - MySQL (IMPORTANT TO WORK IN BUNGEECORD!)
   type
: "sqlite"
   sqlite
:
      file
: "FoxGate.db"
   mysql
:
      host
: "localhost"
      port
: 3306
      database
: "foxav_db"
      username
: "root"
      password
: "password123"
      # Highly recommended to keep this true for secure connections.
      # Ensure your MySQL server supports SSL.
      # By default is false, because a lot of MySQL servers do't supports
      # SSL.
      SSL
: false
      # The maximum number of connections in the connection pool.
      # Recommended: 4
      maximumpoolsize
: 4
      # The maximum time in seconds to wait for a connection from the pool,
      # is recommended a value from higher than 1 and less than 5.
      # Recommended: 3.0
      connectiontimeout
: 3.0
    # When an IP is detected in a result, this is save in the cache
    # to don't make more request for a little time, this value is
    # saved in hours.
    #
    # Recommended: 36
   expiration_time
: 36
  • Added option to check updates, can be disabled in config.yml.
  • Added option to blacklist ip's from detection, request of @arrafii14 in discord server.
Code (YAML):
    # Blacklist the detection to this name's.
    # It's case sensetive!
   blacklist-name
:
    - 'ImFoxerARG' # It's me! :3
    # Blacklist the detection to this IP's.
   blacklist-ip
:
    - '127.0.0.1' # It's default in localhost!

Sorry, I'm moving Velocity support for the future versions.
You found a error? Join to the Discord server clicking here.

Reset you config.yml to get new the new changes and avoid errors!
----------, Jul 22, 2024

  • Added support for BungeeCord (experimental). (I'm currently working for Velocity support, for 1.0.3 this can be supported. I promise and sorry for the delay of this update)
  • Added AntiVPN.io and SkyDB to detect VPN.
  • Updated endpoint of IDCTeam API.
  • Updated endpoint and fields of ProxyCheck.
  • Fixed some errors and improved the code.
You found a error? Join to the Discord server clicking here.
Reset you config.yml to get new the new changes and avoid errors!
----------, Jun 29, 2024

  • Added support for BungeeCord (experimental). (I'm currently working for Velocity support, for 1.0.2 this can be supported. I promise and sorry for the delay of this update)
  • Added AntiVPN.io and SkyDB to detect VPN.
  • Updated endpoint of IDCTeam API.
  • Updated endpoint and fields of ProxyCheck.
  • Fixed some errors and improved the code.
You found a error? Join to the Discord server clicking here.
Reset you config.yml to get new the new changes and avoid errors!
----------, Jun 29, 2024

Resource Information
Author:
----------
Total Downloads: 3,676
First Release: May 4, 2024
Last Update: Dec 26, 2025
Category: ---------------
All-Time Rating:
16 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings