Overview
TotemGuard is a lightweight anti-cheat plugin designed to detect players using AutoTotem. It operates asynchronously to minimize server impact and offers extensive configurability, enabling server owners to tailor the plugin to their specific needs.
Prerequisites
TotemGuard requires the PacketEvents library to function. Ensure it is installed on your server.
Sponsors
Table of Contents
- Showcase
- Supported Platforms & Versions
- Checks
- Features
- Commands
- Permission Nodes
- Installation
- Credits
- License
Showcase

Supported Platforms & Versions
| Platform | Supported Versions |
|---|---|
| Paper, Folia, and related forks | 1.20 - 1.21.5 |
Checks
For a much more detailed explanation of the checks, see the wiki!
AutoTotem
- AutoTotemA - Click time difference
- AutoTotemB - Impossible standard deviation
- AutoTotemC - Impossible average standard deviation
- AutoTotemD - Suspicious re-totem packet sequence
- AutoTotemE - Impossible low outliers
- AutoTotemF - Invalid interactions during inventory close
BadPackets
- BadPacketsA - Opt-out message in a mod configuration channel
- BadPacketsB - Banned client brand
- BadPacketsC - Same slot change packet
ManualTotem
- ManualTotemA - Time difference between replacement after totem removal
Features
- Performance - Asynchronous operations ensure minimal impact on server performance.
- Database Support - Compatible with both MySQL and SQLite.
- Folia Integration - Supports Folia for regionized multithreading.
- Webhooks - Send alerts and punishments to a Discord webhook.
- Highly Configurable - Adjust nearly every setting during runtime to fit your server's needs.
- Update Checker - Automatically checks for updates on startup.
- Bypass Permission - Allows players with
TotemGuard.Bypassto bypass checks. - Cross Server Alerts - Easily send and retrieve alerts across multiple servers, through either plugin messaging or Redis.
- Bedrock Exception - Automatically ignores Bedrock Edition players to prevent false positives.
Commands
/totemguardor/tg- Main command for TotemGuard./totemguard reload- Reload the plugin configuration./totemguard alerts- Toggle alerts for the player./totemguard check <player>- Check the player for AutoTotem./totemguard alerts <player>- Toggle alerts for another player./totemguard profile- Display the player's profile./totemguard stats- Show plugin statistics./totemguard clearlogs- Clear the logs./totemguard track/untrack <player>- Tracks the player./totemguard top- Shows the top 10 violators./totemguard manualban <player>- Manually ban a player./totemguard database trim- Trim the database./totemguard database clear- Clear the database.
Permission Nodes
Operators (OPs) have these permissions by default, except TotemGuard.Debug:
TotemGuard.*- Access to all TotemGuard permissions.TotemGuard.Staff- Access toTotemGuard.Check,TotemGuard.Alerts, andTotemGuard.Profile.TotemGuard.Databases.*- Access to all database-related commands.TotemGuard.Reload- Access to the/totemguard reloadcommand.TotemGuard.Check- Access to the/totemcheckcommand.TotemGuard.Alerts- Access to the/totemguard alertscommand.TotemGuard.Alerts.Others- Toggle alerts for other players.TotemGuard.Profile- Access to the/totemguard profilecommand.TotemGuard.Stats- Access to the/totemguard statscommand.TotemGuard.ClearLogs- Access to the/totemguard clearlogscommand.TotemGuard.Track- Access to the/totemguard trackcommand.TotemGuard.Bypass- Bypass the plugin's checks.TotemGuard.Update- Receive update notifications.TotemGuard.Top- Access to the/totemguard topcommand.TotemGuard.ManualBan- Access to the/totemguard manualbancommand.TotemGuard.Database.Trim- Access to the/totemguard database trimcommand.TotemGuard.Database.Clear- Access to the/totemguard database clearcommand.TotemGuard.Debug- View debug messages.
Installation
- Prerequisites: Ensure PacketEvents is installed.
- Download: Get the latest release from the GitHub release page.
- Install: Place the plugin JAR file in your server's
pluginsdirectory. - Configure: Customize the
config.ymlfile as needed. - Reload: Apply the changes using
/totemguard reload.
Credits
Maintainer: @OutDev
For their creative ideas and dedicated efforts in maintaining the project.
License
This project is licensed under the GPL3 License.
Features
- Performance - Asynchronous operations ensure minimal impact on server performance.
- Database Support - Compatible with both MySQL and SQLite.
- Folia Integration - Supports Folia for regionized multithreading.
- Webhooks - Send alerts and punishments to a Discord webhook.
- Highly Configurable - Adjust nearly every setting during runtime to fit your server's needs.
- Update Checker - Automatically checks for updates on startup.
- Bypass Permission - Allows players with
TotemGuard.Bypassto bypass checks. - Cross Server Alerts - Easily send and retrieve alerts across multiple servers, through either plugin messaging or Redis.
- Bedrock Exception - Automatically ignores Bedrock Edition players to prevent false positives.
- BetterReload Support - Integrates with BetterReload for seamless configuration reloading.
Commands
/totemguardor/tg- Main command for TotemGuard./totemguard reload- Reload the plugin configuration./totemguard alerts- Toggle alerts for the player./totemguard check <player>- Check the player for AutoTotem./totemguard alerts <player>- Toggle alerts for another player./totemguard profile- Display the player's profile./totemguard stats- Show plugin statistics./totemguard clearlogs- Clear the logs./totemguard track/untrack <player>- Tracks the player./totemguard top- Shows the top 10 violators./totemguard database trim- Trim the database./totemguard database clear- Clear the database.
Permission Nodes
Operators (OPs) have these permissions by default, except TotemGuard.Debug:
TotemGuard.*- Access to all TotemGuard permissions.TotemGuard.Staff- Access toTotemGuard.Check,TotemGuard.Alerts, andTotemGuard.Profile.TotemGuard.Databases.*- Access to all database-related commands.TotemGuard.Reload- Access to the/totemguard reloadcommand.TotemGuard.Check- Access to the/totemcheckcommand.TotemGuard.Alerts- Access to the/totemguard alertscommand.TotemGuard.Alerts.Others- Toggle alerts for other players.TotemGuard.Profile- Access to the/totemguard profilecommand.TotemGuard.Stats- Access to the/totemguard statscommand.TotemGuard.ClearLogs- Access to the/totemguard clearlogscommand.TotemGuard.Track- Access to the/totemguard trackcommand.TotemGuard.Bypass- Bypass the plugin's checks.TotemGuard.Update- Receive update notifications.TotemGuard.Top- Access to the/totemguard topcommand.TotemGuard.Database.Trim- Access to the/totemguard database trimcommand.TotemGuard.Database.Clear- Access to the/totemguard database clearcommand.TotemGuard.Debug- View debug messages.
Installation
- Prerequisites: Ensure PacketEvents is installed.
- Download: Get the latest release from the GitHub release page.
- Install: Place the plugin JAR file in your server's
pluginsdirectory. - Configure: Customize the
config.ymlfile as needed. - Reload: Apply the changes using
/totemguard reload.
Credits
Maintainer: @OutDev
For their creative ideas and dedicated efforts in maintaining the project.
Special Thanks to Our Contributors
-
@Retrooper
For developing PacketEvents, a foundational library integral to the project's success. -
@MattMX
For supporting development by providing server access and contributing valuable insights through PvPHub.
License
This project is licensed under the GPL3 License.
All Versions
+ Add VersionThis will be the last release of TotemGuard V2, before the release of TotemGuard V3. TotemGuard V3 is currently in a private branch while I am finishing it, but will soon be merged into main.
Thank you for everyone that was involved with TotemGuard V1 & V2. We run on over a 1000 servers right now: https://bstats.org/plugin/bukkit/TotemGuard/23179 and this will soon be much more with the release of V3 coming around the corner.
@OutDev0 and I are truly excited for what TotemGuard V3 will bring to the table! Stay tuned!
## Changes
- Added support for Minecraft 26.1.2
## New Contributors
- @NriotHrreion made their first contribution in https://github.com/Bram1903/TotemGuard/pull/18
- Full Changelog**: https://github.com/Bram1903/TotemGuard/compare/v2.1.2...v2.1.3
### Changes
- Added: 1.21.11 Support
- Added: AutoTotemH
- Added: Multi alias support for commands
- Added: Compatibility checker
And other stuff I forgot. Sorry for the slow 1.21.11 update. I have mostly been focusing on TotemGuard 3.0 👀
- Full Changelog**: https://github.com/Bram1903/TotemGuard/compare/v2.1.1...v2.1.2
### Changes
- Fixed: Players getting kicked for a network protocol error
- Fixed: Not being able to load the TotemGuard profile on servers with world saving disabled
- Fixed: TotemGuard Profile being wrongly formatted when having more than three punishments
- Fixed: Incompatibility with AntiSpoof Pro
- Full Changelog:** [v2.1.0 → v2.1.1](https://github.com/Bram1903/TotemGuard/compare/v2.1.0...v2.1.1)
This release introduces new detections, improves reliability, and significantly reduces false flags from BadPacketsD. It also restores broad version support and modernizes the internal command system.
### Changes
- Added new detection set.
- Reduced false positives from BadPacketsD.
- Restored compatibility with all Minecraft versions from **1.16.5** up to **1.21.10** (previously only supported 1.20.6+).
- Migrated command handling from **CommandAPI** to **Incendo Cloud**, improving maintainability and future version support.
- General performance and stability improvements.
- Full Changelog:** [v2.0.4 → v2.1.0](https://github.com/Bram1903/TotemGuard/compare/v2.0.4...v2.1.0)
- Added: 1.21.8 Support
- Full Changelog**: https://github.com/Bram1903/TotemGuard/compare/v2.0.3...v2.0.4
- Fixed: PacketEvents 2.9.1 Compatibility
- Fixed: Bypass permission not working
- Fixed:
tg alerts <player>sending the confirmation message to the player instead of the console
- Full Changelog**: https://github.com/Bram1903/TotemGuard/compare/v2.0.2...v2.0.3
Added: BadPacketsD
Reworked: Discord Webhook Implementation
- Full Changelog**: https://github.com/Bram1903/TotemGuard/compare/v2.0.1...v2.0.2
### What's New
This is a **complete rewrite** of TotemGuard.
For the list of changes, check the commit history at the bottom of this message; there are way too many to write down. :-)
### Note
If you’ve used TotemGuard 1.x.x before, make sure to delete your current
TotemGuard folder inside the plugins directory.Also, if you were using an external database, either remove the old one or start fresh with a new database — old formats won’t work anymore.
### Found a Bug?
If you run into any bugs, please create an issue on my GitHub repository and I’ll try to patch them as soon as possible.
- Full Changelog**: [https://github.com/Bram1903/TotemGuard/compare/v1.2.0...v2.0.0](https://github.com/Bram1903/TotemGuard/compare/v1.2.0...v2.0.0)
### **What's New**
- Cross-Server Alerts**: Added support for cross-server alerts via plugin messaging or Redis, thanks to [@MattMX](https://github.com/Matt-MX).
- New Check - BadPacketsC**: Introducing the BadPacketsC check (by [@athulsib](https://github.com/athulsib) to counter cheats that send impossible slot change packets, improving overall cheat detection.
- New Command -
/tg top**: A convenient new command to display the top 10 current violators online. Banned or offline players are excluded for accuracy. - Enhanced
/tg check <player>Command**: The/tg check <player>command has been rewritten from the ground up (again), ensuring smoother operation and reliability. - Custom Dependency Loader**: We've moved away from the
librariestag inplugin.ymlto a custom dependency loader ([source](https://github.com/Bram1903/TotemGuard/blob/main/src/main/java/com/deathmotion/totemguard/bootstrap/TotemGuardLoader.java)). This change reduces console spam during server startup by managing dependencies in the bootstrap phase. - Version Injection**: Builds now include the latest Git commit hash for snapshot or development builds. This is implemented through the new
TGVersions.javaclass, which is dynamically generated during the build process. - 1.21.4 Support**: The plugin is fully compatible with Minecraft 1.21.4. Once the version is officially released, simply update PacketEvents to the latest version. While initial tests show everything works seamlessly, please report any unexpected issues!
### **Fixes and Improvements**
- Permission Bug Fix**: Resolved a bug that unintentionally granted the
TotemGuard.Updatepermission to all players by default, resulting in unnecessary update alerts. Apologies for the inconvenience! - Dependency Update**: Upgraded Ebean to the latest stable version.
- General Enhancements**: Made several small optimizations and code improvements for better performance and stability.
### **Acknowledgments**
A big thank you to [@MattMX](https://github.com/Matt-MX) and [@athulsib](https://github.com/athulsib) for their valuable contributions. Your work continues to enhance the quality and functionality of TotemGuard.
### **Community Note**
We are grateful for your ongoing support and feedback. Every suggestion and issue reported helps make TotemGuard more effective. If you encounter bugs or have ideas for new features, feel free to submit an issue on GitHub or join our Discord community linked in the plugin description.
- Full Changelog**: https://github.com/Bram1903/TotemGuard/compare/v1.1.0...v1.2.0
## What's New
### Version Support
- Added support for Minecraft 1.21.2 and 1.21.3**
### Enhancements and New Features
- Tracker Feature**: Run
/track <player>to monitor their totem speed and data in real-time. - Color Scheme Customization**: Customize the plugin's color scheme directly from the configuration file.
- Rewritten Check Command**: The check command has been completely overhauled for improved performance and usability.
- Alert Customization**: Configure the alert messages when they are enabled or disabled for better personalization.
### Fixes and Improvements
- Compatibility Fix**: Resolved compatibility issues with PacketEvents 2.6.0.
- Database Configuration**: Fixed an issue where the database type setting in the config did not accept lowercase input.
- False Positive Correction**: Addressed a rare false positive in the totem processor when bulk-clicking a totem.
### General Improvements
- Numerous minor bug fixes and performance enhancements to improve overall stability.
## Thank You!
A special thank you from @OutDev0 and me to all users of TotemGuard! This project remains completely free and open-source, available for all rather than limited to a few large servers. Seeing so many servers benefit from it validates our decision to share it openly.
## Feedback and Support
If you encounter any issues with this release, please report them in our [GitHub repository](https://github.com/Bram1903/TotemGuard/issues).
- [View Full Changelog](https://github.com/Bram1903/TotemGuard/compare/v1.0.0...v1.1.0)**
- Introduced several new checks for enhanced detection
- Refined and optimized existing checks
- Overhauled the internal code structure for better performance and maintainability
- Implemented full database support for tracking alerts and punishments
- Made alerts fully configurable to suit various server needs
- Added support for offline servers
- Introduced multiple new commands (see README for details)
- Resolved several intermittent console errors
- Added BetterReload support thanks to @amnoah
- Corrected negative values appearing in certain check results
- Fixed various small memory leaks, improving overall stability
This summary covers the most notable changes, though the plugin has been extensively improved across nearly every aspect and is significantly enhanced compared to the previous snapshot release.
## New Contributors
- @amnoah made their first contribution in https://github.com/Bram1903/TotemGuard/pull/2
- Full Changelog**: https://github.com/Bram1903/TotemGuard/compare/v1.0.0-SNAPSHOT...v1.0.0
