Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
EpicGuard

EpicGuard

Bot protection system for Minecraft servers and proxies

9,827
102
Library
Management
Technology
AboutChangelogVersions

🛡 EpicGuard

GitHub stars GitHub forks GitHub issues GitHub license Java CI

A simple AntiBot plugin for newest Minecraft versions.

✅ Supported platforms / Latest release requirements

  • Paper 1.20.1+ (all paper forks are supported)
  • Velocity 3.3+
  • Java 17

✨ Features

  • A total of 8 configurable antibot checks:
    • Geographical check - country/city blacklist or whitelist.
    • VPN/Proxy check - configurable services and caching.
    • Nickname check - block certain nickname patterns using regex.
    • Reconnect check - require re-joining the server with an identical pair of address and nickname.
    • Server list check - require pinging the server before connecting (adding it to the server list).
    • Settings check - make sure that player sends a settings packet after joining (vanilla client behaviour).
    • Lockdown - temporarily block incoming connections if there are too many of them.
    • Name similarity check (BETA)
    • Account limit.
  • SQLite/MySQL support.
  • Live actionbar statistics.
  • Automatic whitelisting.
  • Console filter.

📚 Commands & Permissions

To be able to use commands, give yourself the epicguard.admin permission.
On different platforms there are additional aliases available, such as /guardvelocity or /epicguardpaper

Command Description
/guard help Displays all available commands.
/guard reload Reloads config and messages.
/guard whitelist <add/remove> <nick/address> Whitelist/unwhitelist an address or nickname.
/guard blacklist <add/remove> <nick/address> Blacklist/unblacklist an address or nickname.
/guard analyze <nick/address> Displays detailed information about the specified address or nickname.
/guard status Toggles live attack information on actionbar.
/guard save Forces save to the database.

🔧 Using EpicGuard API in your project:

The api is not very advanced, and there is not much you can do with it for now.

Gradle (Kotlin)
repositories {
    // Snapshots
    maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
    // Releases
    mavenCentral()
}
dependencies {
    compileOnly("com.github.4drian3d:epicguard-api:[VERSION HERE]")
}
Gradle (Groovy)
repositories {
    maven {
      url = 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
    }
  mavenCentral()
}
dependencies {
    compileOnly 'com.github.4drian3d:epicguard-api:[VERSION OR COMMIT ID HERE]'
}
Maven
  <repositories>
    <!-- Only for Snapshots-->
    <repository>
      <id>sonatype-oss-snapshots1</id>
      <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
    </repository>
  </repositories>
  <dependencies>
      <dependency>
         <groupId>com.github.4drian3d</groupId>
         <artifactId>epicguard-api</artifactId>
         <version>[VERSION HERE]</version>
         <scope>provided</scope>
     </dependency>
  </dependencies>
Using the API Make sure that EpicGuard is fully loaded before your plugin.

Click to see the API class

// Importing the API class.
import me.xneox.epicguard.core.EpicGuardAPI;
import me.xneox.epicguard.core.manager.AttackManager;
public class EpicGuardAPIExample {
  // Accessing the EpicGuardAPI instance.
  EpicGuardAPI api = EpicGuardAPI.INSTANCE;
  // Obtaining the AttackManager instance:
  AttackManager attackManager = api.attackManager();
  // Checking if server is under attack.
  boolean isUnderAttack = attackManager.isUnderAttack();
  // checking current connections per second.
  int cps = attackManager.connectionCounter();
  
  // Checking user's country:
  String countryId = api.geoManager().countryCode("127.0.0.1");
}

🕵️ Privacy disclaimers

  • This plugin connect to various external services, to fully work as intended.
    • MaxMind's Geolite2 databases (country and city) are downloaded at the first startup and updated every week. Geolocation of your users is checked locally on your server.
    • In the default configuration, IP addresses of connecting users are sent to https://proxycheck.io/ to check if they're not using a proxy or a VPN.
    • IPs and nicknames associated with them are stored in the local database (as plain text(!)).
    • This plugin periodically checks the latest version released in this repository. This feature can be disabled.
    • There is no metrics system or any other kind of data collection.

This is an updated version of EpicGuard for recent versions of Paper, Waterfall and Velocity.

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Compatibility

Minecraft: Java Edition

1.21.x
1.20–1.20.5
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
1.7.x

Platforms

Folia
Paper
Purpur
Velocity
Waterfall

Supported environments

Server-side

Links

Report issues View source Visit wiki Join Discord server
Buy Me a CoffeeSponsor on GitHubDonate on PayPal

Creators

4drian3d
4drian3d Owner

Details

Licensed GPL-3.0-or-later
Published 2 years ago
Updated last year

Modrinth is open source.

main@fafd47f

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.