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,987
103
Library
Management
Technology

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

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Links

Report issues View source Visit wiki Join Discord server
Sponsor on GitHubDonate on PayPalBuy Me a Coffee

Creators

4drian3d
4drian3d Owner

Details

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

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

Modrinth is open source.

main@81b0922

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