{"id":16324,"date":"2026-05-31T22:01:13","date_gmt":"2026-05-31T19:01:13","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/"},"modified":"2026-05-31T22:01:13","modified_gmt":"2026-05-31T19:01:13","slug":"antispoof","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/","title":{"rendered":"AntiSpoof"},"content":{"rendered":"<p># AntiSpoof &#8211; Advanced Client Spoof Detection<\/p>\n<div align=\"center\">\n  <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/Tyji4mJ.jpeg\" alt=\"AntiSpoof Banner\" style=\"width:500px; height:auto;\"><\/p>\n<p>  **Advanced, customizable Minecraft plugin for detecting client spoofing through brand analysis and channel monitoring**<\/p>\n<p>  ![Java](https:\/\/img.shields.io\/badge\/Java-21%2B-orange)<br \/>\n  ![Minecraft](https:\/\/img.shields.io\/badge\/Minecraft-1.20.4%2B-brightgreen)<br \/>\n  ![License](https:\/\/img.shields.io\/badge\/License-GPL%20v3-blue)\n<\/p><\/div>\n<p>&#8212;<\/p>\n<p>## \ud83d\udccb Table of Contents<\/p>\n<p>&#8211; [Key Features](#key-features)<br \/>\n&#8211; [Download Options](#download-options)<br \/>\n&#8211; [What AntiSpoof Can Do](#what-antispoof-can-do)<br \/>\n&#8211; [What AntiSpoof Cannot Do](#what-antispoof-cannot-do)<br \/>\n&#8211; [Why AntiSpoof is the Best Solution](#why-antispoof-is-the-best-solution)<br \/>\n&#8211; [Design Philosophy](#design-philosophy)<br \/>\n&#8211; [Installation](#installation)<br \/>\n&#8211; [Commands &#038; Permissions](#commands&#8211;permissions)<br \/>\n&#8211; [PlaceholderAPI Integration](#placeholderapi-integration)<br \/>\n&#8211; [Configuration](#configuration)<br \/>\n&#8211; [How It Works](#how-it-works)<br \/>\n&#8211; [Troubleshooting](#troubleshooting)<br \/>\n&#8211; [FAQ](#frequently-asked-questions)<br \/>\n&#8211; [Support &#038; Development](#support&#8211;development)<br \/>\n&#8211; [Complete Configuration Example](#complete-configuration-example)<br \/>\n&#8211; [License](#license)<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83c\udf1f Key Features<\/p>\n<p>### Client Brand Analysis<br \/>\n&#8211; **Brand Filtering**: Block\/whitelist specific client brands (Fabric, Forge, Lunar Client, etc.)<br \/>\n&#8211; **Pattern Matching**: Use regex to identify suspicious brand patterns<br \/>\n&#8211; **Geyser Verification**: Detect Java players pretending to be Bedrock clients<\/p>\n<p>### Channel Monitoring<br \/>\n&#8211; **Vanilla Verification**: Flag players claiming to use vanilla with plugin channels<br \/>\n&#8211; **Channel Control**: Whitelist or blacklist specific plugin channels<br \/>\n&#8211; **Strict Matching**: Enforce exact channel requirements for specific client types<\/p>\n<p>### Bedrock Player Integration<br \/>\n&#8211; **Floodgate Integration**: Seamless support for Floodgate API<br \/>\n&#8211; **Prefix Verification**: Identify Bedrock players by username prefix<br \/>\n&#8211; **Special Handling**: Configure exempt or ignore modes for legitimate Bedrock users<\/p>\n<p>### Advanced Detection<br \/>\n&#8211; **Multiple Check Modes**: Customize which checks are active and their severity<br \/>\n&#8211; **Configurable Actions**: Define custom punishment commands for each violation type<br \/>\n&#8211; **Real-time Alerts**: Notify staff when suspicious activity is detected<\/p>\n<p>### Diagnostic Tools<br \/>\n&#8211; **Player Inspection**: Check detailed client information of any player<br \/>\n&#8211; **Brand Analysis**: View and verify client brands in real-time<br \/>\n&#8211; **Channel Listing**: Inspect registered plugin channels for any player<\/p>\n<p>### Discord Integration<br \/>\n&#8211; **Webhook Support**: Send alerts to your Discord server<br \/>\n&#8211; **Customizable Embeds**: Configure colors, fields, and formatting<br \/>\n&#8211; **Comprehensive Data**: Include player details, violation reasons, and more<\/p>\n<p>### PlaceholderAPI Support<br \/>\n&#8211; **Client Information**: Access player client details from other plugins<br \/>\n&#8211; **Detection Status**: Check if players are using modified clients<br \/>\n&#8211; **Bedrock Integration**: Verify Bedrock player status<\/p>\n<p>### Rich Color Messaging<\/p>\n<p>* **Hybrid formatting engine** \u2013 one string can mix<\/p>\n<p>  * MiniMessage tags `<gradient:#ff7f00:#ffd700><bold>Hello<\/bold><\/gradient>`<br \/>\n  * Legacy `&#038;` color\/style codes `&#038;aGreen &#038;lBold`<br \/>\n  * Hex colours `&#038;#FFAA00` or `&#038;x&#038;F&#038;F&#038;A&#038;A&#038;0&#038;0`<br \/>\n* Powered by the new `MessageUtil.miniMessage()` helper, so every configurable alert, Discord embed, or command output can use gradients, bold, italics, obfuscated text, etc.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udce6 Download Options<\/p>\n<p>AntiSpoof is available in two versions to suit different server setups:<\/p>\n<p>### Full Version (Recommended for most users)<br \/>\n&#8211; **All-in-one package** with PacketEvents included<br \/>\n&#8211; No additional plugins required<br \/>\n&#8211; Simple drop-in installation<br \/>\n&#8211; Larger file size but simpler setup<\/p>\n<p>### Lite Version (For advanced setups)<br \/>\n&#8211; **Requires external PacketEvents 2.7.1+ installation**<br \/>\n&#8211; Significantly smaller file size<br \/>\n&#8211; Prevents duplicate PacketEvents instances<br \/>\n&#8211; Ideal for servers already using plugins that depend on PacketEvents<br \/>\n&#8211; Better for performance on servers with multiple PacketEvents-based plugins<\/p>\n<p>Both versions provide identical functionality &#8211; the only difference is whether PacketEvents is included in the JAR file or needs to be installed separately.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83c\udfaf What AntiSpoof Can Do<\/p>\n<p>AntiSpoof is designed to catch the vast majority of cheaters who don&#8217;t properly spoof their client brand or channels:<\/p>\n<p>### 1. Detect Obvious Spoofers<br \/>\nMost hacked clients (like Wurst, Meteor, Impact, LiquidBounce, etc.) don&#8217;t properly spoof their brand or channel information. Their modifications often leave telltale signs that AntiSpoof can easily detect.<\/p>\n<p>### 2. Enforce Vanilla-Only Policies<br \/>\nIdentify players who claim to be using &#8220;vanilla&#8221; but have registered plugin channels (which is technically impossible with a true vanilla client).<\/p>\n<p>### 3. Block or Whitelist Specific Clients<br \/>\nUse powerful regex patterns to control exactly which client brands and channels are allowed on your server, giving you granular control over which modifications are permitted.<\/p>\n<p>### 4. Protect Against Geyser Spoofing<br \/>\nDetect Java players who attempt to disguise themselves as Bedrock players to bypass security measures.<\/p>\n<p>### 5. Create Custom Security Policies<br \/>\nThe flexible configuration system allows you to tailor the plugin to your specific server&#8217;s needs, from extremely strict (vanilla only) to more permissive (allowing certain mods).<\/p>\n<p>&#8212;<\/p>\n<p>## \u26a0\ufe0f What AntiSpoof Cannot Do<\/p>\n<p>Due to Minecraft&#8217;s inherent limitations, there are some things that AntiSpoof cannot detect:<\/p>\n<p>### 1. Stop Sophisticated Spoofers<br \/>\nA determined cheater with a custom client can spoof both their client brand and channels to perfectly mimic a vanilla client. However, such sophisticated spoofing is extremely rare and requires significant technical knowledge.<\/p>\n<p>### 2. Detect VPNs or Alt Accounts<br \/>\nAntiSpoof focuses on client-side detection and does not include IP-based or account-based checks. For these protections, you would need additional security plugins.<\/p>\n<p>### 3. Replace a Full Anti-Cheat<br \/>\nAntiSpoof is not designed to detect in-game cheats like fly hacks, kill aura, or other movement\/combat hacks. It complements traditional anti-cheat plugins but does not replace them.<\/p>\n<p>### 4. Guarantee 100% Protection<br \/>\nNo anti-cheat solution can provide absolute protection. AntiSpoof is a powerful layer in your security stack but works best when combined with other protective measures.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcaa Why AntiSpoof is the Best Solution<\/p>\n<p>Despite the limitations, AntiSpoof remains one of the most effective tools for detecting modified clients:<\/p>\n<p>### 1. Catches 95% of Spoofing Cheaters<br \/>\nThe vast majority of cheaters don&#8217;t use sophisticated spoofing techniques. AntiSpoof catches these players easily, blocking most hacked clients with minimal false positives.<\/p>\n<p>### 2. Highly Customizable<br \/>\nEvery server has different needs. AntiSpoof&#8217;s extensive configuration options allow you to tailor the plugin precisely to your requirements, from very strict to more permissive.<\/p>\n<p>### 3. Specialized Use Cases<br \/>\nWhether you want to block non-vanilla clients entirely, enforce specific mod policies, or just protect against Geyser spoofing, AntiSpoof has you covered with targeted detection methods.<\/p>\n<p>### 4. Realistic Expectations<br \/>\nAntiSpoof acknowledges Minecraft&#8217;s limitations and focuses on what *can* be done effectively rather than making unrealistic promises. This honesty and transparency is why server owners trust it.<\/p>\n<p>### 5. Lightweight &#038; Efficient<br \/>\nDesigned with performance in mind, AntiSpoof has minimal impact on your server&#8217;s resources while providing robust protection.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83e\udde0 Design Philosophy<\/p>\n<p>AntiSpoof was built with several core principles in mind:<\/p>\n<p>### Granular Control Over Client Types<br \/>\nInstead of a traditional blacklist\/whitelist approach, AntiSpoof implements a sophisticated per-brand configuration system. This allows server administrators to:<\/p>\n<p>&#8211; Define precise detection criteria for specific clients<br \/>\n&#8211; Set custom policies for different client types<br \/>\n&#8211; Craft tailored responses to various violations<\/p>\n<p>### Defense in Depth<br \/>\nThe plugin uses multiple layers of detection to catch different types of spoofing:<br \/>\n&#8211; Client brand verification<br \/>\n&#8211; Channel pattern analysis<br \/>\n&#8211; Channel registration monitoring<br \/>\n&#8211; Bedrock authentication checks<\/p>\n<p>This multi-layered approach ensures that even if one check is bypassed, others may still catch suspicious activity.<\/p>\n<p>### Balance Between Security and Usability<br \/>\nAntiSpoof strikes a careful balance between:<br \/>\n&#8211; Strong security measures to catch malicious clients<br \/>\n&#8211; Flexibility to allow legitimate client modifications<br \/>\n&#8211; Clear, actionable alerts for server staff<br \/>\n&#8211; Minimal false positives to avoid frustrating genuine players<\/p>\n<p>### Transparent Operation<br \/>\nThe plugin is designed to provide clear visibility into what it&#8217;s detecting and why:<br \/>\n&#8211; Comprehensive debug logging options<br \/>\n&#8211; Detailed check commands for staff<br \/>\n&#8211; Explicit violation messages<br \/>\n&#8211; User-friendly configuration format<\/p>\n<p>This transparency helps administrators understand exactly how the plugin is working and make informed adjustments to their security policies.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd27 Installation<\/p>\n<p>### Requirements<br \/>\n&#8211; Java 21 or higher<br \/>\n&#8211; Spigot, Paper, or compatible fork (1.20.4+)<br \/>\n&#8211; Appropriate server permissions to install plugins<\/p>\n<p>### Optional Dependencies<br \/>\n&#8211; **Floodgate** (for better Bedrock player detection)<br \/>\n&#8211; **PlaceholderAPI** (for placeholders in other plugins)<br \/>\n&#8211; **ViaVersion\/ViaBackwards** (for version compatibility information)<br \/>\n&#8211; **PacketEvents 2.7.1+** (required for Lite version only)<\/p>\n<p>### Installing the Full Version<br \/>\n1. Download the latest `antispoof-[version].jar` from the releases page<br \/>\n2. Place the JAR file in your server&#8217;s `plugins` folder<br \/>\n3. Restart your server<br \/>\n4. Configure the plugin via the generated `plugins\/AntiSpoof\/config.yml` file<br \/>\n5. Apply changes with `\/antispoof reload`<\/p>\n<p>### Installing the Lite Version<br \/>\n1. First, ensure PacketEvents 2.7.1+ is installed:<br \/>\n   &#8211; Download PacketEvents 2.7.1+<br \/>\n   &#8211; Place the PacketEvents JAR in your server&#8217;s `plugins` folder<br \/>\n2. Download the latest `antispoof-lite-[version].jar` from the releases page<br \/>\n3. Place the AntiSpoof Lite JAR in your server&#8217;s `plugins` folder<br \/>\n4. Restart your server<br \/>\n5. Configure the plugin via the generated `plugins\/AntiSpoof\/config.yml` file<br \/>\n6. Apply changes with `\/antispoof reload`<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd0d Commands &#038; Permissions<\/p>\n<p>### Command Reference<br \/>\n| Command | Description | Permission |<br \/>\n|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `\/antispoof check [player]` | Check if a player is spoofing (empty for all online players) | `antispoof.command` |<br \/>\n| `\/antispoof runcheck [player]` | Re-analyze player data and run detection checks again | `antispoof.admin` |<br \/>\n| `\/antispoof channels <player>` | View a player&#8217;s registered plugin channels | `antispoof.command` |<br \/>\n| `\/antispoof brand <player>` | Show a player&#8217;s client brand | `antispoof.command` |<br \/>\n| `\/antispoof reload` | Reload the configuration | `antispoof.admin` |<br \/>\n| `\/antispoof blockedchannels` | Show current channel whitelist\/blacklist configuration | `antispoof.admin` |<br \/>\n| `\/antispoof blockedbrands` | Show current brand whitelist\/blacklist configuration | `antispoof.admin` |<br \/>\n| `\/antispoof help` | Display help message with all commands | `antispoof.command` |<\/p>\n<p>### Permission Nodes<br \/>\n| Permission | Description | Default |<br \/>\n|&#8212;&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;|<br \/>\n| `antispoof.command` | Access to basic AntiSpoof commands | op |<br \/>\n| `antispoof.admin` | Access to administrative commands like reload | op |<br \/>\n| `antispoof.alerts` | Receive in-game alerts when spoofing is detected | op |<br \/>\n| `antispoof.bypass` | Bypass all spoofing checks | false |<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd04 PlaceholderAPI Integration<\/p>\n<p>AntiSpoof integrates with PlaceholderAPI to provide useful placeholders for other plugins. This allows you to display client information on scoreboard plugins, tab list plugins, chat formatting plugins, and more.<\/p>\n<p>### Available Placeholders<\/p>\n<p>| Placeholder | Description | Example Output |<br \/>\n|&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| `%antispoof_brand%` | Shows the player&#8217;s client brand | &#8220;vanilla&#8221;, &#8220;fabric&#8221;, &#8220;lunarclient:v1.8.9-10b0&#8221; |<br \/>\n| `%antispoof_channels%` | Shows a comma-separated list of player&#8217;s registered channels | &#8220;minecraft:brand, fabric:registry\/sync, fabric:screen-handler-api&#8221; |<br \/>\n| `%antispoof_channels_count%` | Shows the number of registered channels | &#8220;5&#8221; |<br \/>\n| `%antispoof_is_spoofing%` | Returns whether the player is detected as spoofing | &#8220;true&#8221; or &#8220;false&#8221; |<br \/>\n| `%antispoof_is_bedrock%` | Returns whether the player is detected as a Bedrock player | &#8220;true&#8221; or &#8220;false&#8221; |<\/p>\n<p>### Usage Examples<\/p>\n<p>Here are some examples of how you can use these placeholders:<\/p>\n<p>#### Chat Format (with a chat plugin)<br \/>\n&#8220;`<br \/>\n[%antispoof_brand%] %player_name%: %message%<br \/>\n&#8220;`<\/p>\n<p>#### Welcome Message (with an essentials-like plugin)<br \/>\n&#8220;`<br \/>\n&#038;aWelcome! &#038;7You&#8217;re using &#038;e%antispoof_brand%&#038;7 with &#038;e%antispoof_channels_count%&#038;7 plugin channels.<br \/>\n&#8220;`<\/p>\n<p>#### Custom Scoreboard<br \/>\n&#8220;`<br \/>\n&#038;6\u2550\u2550\u2550\u2550\u2550 &#038;bServer Info &#038;6\u2550\u2550\u2550\u2550\u2550<br \/>\n&#038;7Client: &#038;e%antispoof_brand%<br \/>\n&#038;7Channels: &#038;e%antispoof_channels_count%<br \/>\n&#038;7Bedrock: &#038;e%antispoof_is_bedrock%<br \/>\n&#038;6\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550<br \/>\n&#8220;`<\/p>\n<p>### Setup Instructions<\/p>\n<p>1. Ensure PlaceholderAPI is installed on your server<br \/>\n2. No additional setup required &#8211; AntiSpoof registers its placeholders automatically<br \/>\n3. Use the placeholders in any PlaceholderAPI-compatible plugin<\/p>\n<p>&#8212;<\/p>\n<p>## \u2699\ufe0f Configuration<\/p>\n<p>The configuration file (`config.yml`) is extensively documented with comments explaining each option. Here&#8217;s a breakdown of the key sections:<\/p>\n<p>### Core Settings<br \/>\n&#8211; **delay-in-seconds**: Time to wait after login before checking a player (default: 1)<br \/>\n&#8211; **debug**: Enable detailed logging for troubleshooting (default: false)<\/p>\n<p>### Detection Methods<br \/>\n1. **Vanilla Spoof Check**: Detect players claiming to use vanilla with plugin channels<br \/>\n2. **Non-Vanilla Check**: Optionally block all clients that aren&#8217;t vanilla (strict mode)<br \/>\n3. **Channel Filtering**: Block or whitelist specific plugin channels with regex support<br \/>\n4. **Brand Filtering**: Block or whitelist specific client brands with regex support<br \/>\n5. **Bedrock Handling**: Special processing for legitimate Bedrock players<br \/>\n6. **Geyser Spoof Detection**: Identify Java players pretending to be Bedrock<\/p>\n<p>### Client Brands Configuration System<\/p>\n<p>The `client-brands` section allows for sophisticated control over different client types. Each brand configuration includes:<\/p>\n<p>&#8211; **Identification**: Regex patterns to identify specific client brands<br \/>\n&#8211; **Flag\/Alert Settings**: Whether to flag, alert, or send to Discord<br \/>\n&#8211; **Custom Messages**: Brand-specific alert messages<br \/>\n&#8211; **Punishment Controls**: Whether to punish and what commands to run<br \/>\n&#8211; **Required Channels**: Channels that must be present for legitimate instances of the client<br \/>\n&#8211; **Special Handling**: Features like strict-check for modified vanilla clients<\/p>\n<p>Example brand configuration:<br \/>\n&#8220;`yaml<br \/>\nlunar:<br \/>\n  enabled: true<br \/>\n  values:<br \/>\n    &#8211; &#8220;^lunarclient:v\\d+\\.\\d+\\.\\d+-\\d{4}$&#8221;<br \/>\n  # Whether to count the player as flagged by AntiSpoof<br \/>\n  flag: false<br \/>\n  # Whether to send in-game alerts for this brand<br \/>\n  alert: true<br \/>\n  # Whether to send Discord alerts for this brand<br \/>\n  discord-alert: false<br \/>\n  # Custom alert messages for this brand<br \/>\n  alert-message: &#8220;&#038;8[&#038;eAntiSpoof&#038;8] &#038;7%player% is using &#038;9Lunar Client &#038;7version: &#038;b%brand%&#8221;<br \/>\n  console-alert-message: &#8220;%player% is using Lunar Client: %brand%&#8221;<br \/>\n  # Whether to punish players using this brand<br \/>\n  punish: false<br \/>\n  # Punishment commands if punish is true<br \/>\n  punishments: []<br \/>\n  # Channels that must be present for this brand to be legitimate<br \/>\n  required-channels:<br \/>\n    &#8211; &#8220;lunar.*&#8221;  # Must have at least one lunar channel<br \/>\n  # Punish players if they do not have the channel(s)? Set to false to simply alert.<br \/>\n  required-channels-punish: false<br \/>\n  required-channels-punishments:<br \/>\n    &#8211; &#8220;kick %player% &#038;cLunar Client spoofing detected&#8221;<br \/>\n&#8220;`<\/p>\n<p>This system allows you to create tailored policies for each client type, rather than a one-size-fits-all approach.<\/p>\n<p>### Action Configuration<br \/>\nFor each detection method, you can configure:<br \/>\n&#8211; Whether it&#8217;s enabled<br \/>\n&#8211; Custom alert messages<br \/>\n&#8211; Whether violations trigger punishment<br \/>\n&#8211; Custom punishment commands with placeholders<\/p>\n<p>### Discord Integration<br \/>\n&#8211; Webhook URL and formatting options<br \/>\n&#8211; Customizable embed content<br \/>\n&#8211; Alert filtering options<\/p>\n<p>The config.yml is thoroughly documented with examples and explanations. For a full example, refer to the default configuration included with the plugin.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd2c How It Works<\/p>\n<p>AntiSpoof uses multiple detection techniques to identify clients attempting to bypass security measures:<\/p>\n<p>### 1. Client Brand Analysis<br \/>\nWhen a player joins, they send their client brand as a packet (e.g., &#8220;vanilla&#8221;, &#8220;forge&#8221;, &#8220;fabric&#8221;). AntiSpoof captures this information and compares it against your configured whitelist or blacklist.<\/p>\n<p>### 2. Plugin Channel Registration<br \/>\nModified clients register plugin channels to communicate with the server. A true vanilla client has no plugin channels, so any client claiming to be &#8220;vanilla&#8221; but registering channels is spoofing.<\/p>\n<p>### 3. Pattern Matching<br \/>\nSophisticated regex pattern matching allows AntiSpoof to identify specific client types or block certain patterns, even when clients try to disguise themselves.<\/p>\n<p>### 4. Bedrock Authentication<br \/>\nFor Geyser\/Floodgate setups, AntiSpoof verifies Bedrock players either through the Floodgate API or by checking username prefixes, preventing Java players from pretending to be Bedrock users.<\/p>\n<p>### 5. Dynamic Checks<br \/>\nAfter initial registration, AntiSpoof continues to monitor channel registrations, allowing it to detect clients that attempt to add suspicious channels later in the session.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd27 Troubleshooting<\/p>\n<p>### Common Issues<\/p>\n<p>#### Players Being Falsely Flagged<br \/>\n1. **Issue**: Legitimate players are being flagged as spoofers<br \/>\n   &#8211; **Solution**: Check your whitelist\/blacklist settings. You may have blocked legitimate client brands. Enable debug mode to see what&#8217;s triggering the flags.<\/p>\n<p>#### No Alerts Being Sent<br \/>\n1. **Issue**: Players are spoofing but no alerts are appearing<br \/>\n   &#8211; **Solution**: Make sure staff have the `antispoof.alerts` permission and verify the plugin is properly enabled.<\/p>\n<p>#### Discord Webhook Not Working<br \/>\n1. **Issue**: Alerts aren&#8217;t being sent to Discord<br \/>\n   &#8211; **Solution**: Check your webhook URL, ensure it&#8217;s correctly formatted, and verify that the `discord.enabled` setting is set to `true`.<\/p>\n<p>#### Performance Concerns<br \/>\n1. **Issue**: Server lag after installing AntiSpoof<br \/>\n   &#8211; **Solution**: The plugin is very lightweight, but try increasing the `delay-in-seconds` value to spread out checks or disable the `debug` mode.<\/p>\n<p>### Debug Mode<\/p>\n<p>Enable debug mode in the config.yml file to get detailed information about detected brands and channels:<\/p>\n<p>&#8220;`yaml<br \/>\ndebug: true<br \/>\n&#8220;`<\/p>\n<p>This will log all client brands and channel registrations to your console, helping you identify what&#8217;s triggering flags and adjust your configuration accordingly.<\/p>\n<p>&#8212;<\/p>\n<p>## \u2753 Frequently Asked Questions<\/p>\n<p>### General Questions<\/p>\n<p>**Q: Which version should I use &#8211; Full or Lite?**<br \/>\nA: Use the Full version for simplicity. Use the Lite version if you already have other plugins that use PacketEvents to avoid library duplication.<\/p>\n<p>**Q: How does AntiSpoof handle Bedrock players?**<br \/>\nA: It uses Floodgate API when available and falls back to username prefix checking. You can set the mode to &#8220;EXEMPT&#8221; or &#8220;IGNORE&#8221; in the config.<\/p>\n<p>**Q: What&#8217;s considered a vanilla client?**<br \/>\nA: In Minecraft terms, a vanilla client is the unmodified game client from Mojang, which reports &#8220;vanilla&#8221; as its brand and has zero registered plugin channels.<\/p>\n<p>**Q: Can AntiSpoof stop all cheaters?**<br \/>\nA: No, but it can stop up to 95% of them depending on your setup. Sophisticated spoofing is rare and requires custom clients.<\/p>\n<p>**Q: Does this work with ViaVersion?**<br \/>\nA: Yes! AntiSpoof is fully compatible with ViaVersion and can even use ViaVersion&#8217;s information to enhance its detection capabilities.<\/p>\n<p>**Q: Will this block all modified clients?**<br \/>\nA: This depends on your configuration. You can set it to block all non-vanilla clients, or you can whitelist specific client brands that you want to allow (like Lunar Client or Badlion).<\/p>\n<p>**Q: How does this compare to traditional anti-cheat plugins?**<br \/>\nA: AntiSpoof focuses specifically on client brand and channel detection, which is a different approach from movement\/combat hack detection. It&#8217;s best used alongside traditional anti-cheat plugins for complete protection.<\/p>\n<p>**Q: What does the `\/antispoof runcheck` command do?**<br \/>\nA: This command re-analyzes existing player data and re-runs the detection checks for a player or all online players. It&#8217;s useful when you&#8217;ve updated your configuration and want to check players against the new rules without making them rejoin.<\/p>\n<p>### Technical Questions<\/p>\n<p>**Q: Can players bypass this plugin?**<br \/>\nA: Sophisticated hackers with custom clients can potentially bypass any detection method. However, the vast majority of cheaters don&#8217;t go to those lengths.<\/p>\n<p>**Q: Does AntiSpoof work with Velocity\/BungeeCord\/Waterfall?**<br \/>\nA: AntiSpoof is designed for Spigot\/Paper servers. While it works in a proxy environment, it should be installed on the backend servers, not on the proxy itself.<\/p>\n<p>**Q: What are plugin channels?**<br \/>\nA: Plugin channels are communication channels that mods and plugins use to exchange data between client and server. They&#8217;re how most mods implement their functionality.<\/p>\n<p>**Q: How do I add custom regex patterns?**<br \/>\nA: Add your patterns to the `values` list under either `blocked-brands` or `blocked-channels`. For example, to block all Fabric mods, you might add `&#8221;(?i).*fabric.*&#8221;`.<\/p>\n<p>**Q: What&#8217;s the performance impact?**<br \/>\nA: AntiSpoof is extremely lightweight. The checks only run when players join and when channel registration packets are sent, which is infrequent.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83e\udd1d Support &#038; Development<\/p>\n<p>### Getting Help<br \/>\n&#8211; **GitHub Issues**: Report bugs or suggest features on our Issue Tracker<br \/>\n&#8211; **Discord**: Message me on Discord for direct support (GigaZelensky)<\/p>\n<p>### Contributing<br \/>\nContributions are welcome! To contribute:<br \/>\n1. Fork the repository<br \/>\n2. Create a feature branch (`git checkout -b feature\/amazing-feature`)<br \/>\n3. Commit your changes (`git commit -m &#8216;Add some amazing feature&#8217;`)<br \/>\n4. Push to the branch (`git push origin feature\/amazing-feature`)<br \/>\n5. Open a Pull Request<\/p>\n<p>### Development Guidelines<br \/>\n&#8211; Ensure compatibility with Java 21+<br \/>\n&#8211; Follow existing code style and architecture<br \/>\n&#8211; Add appropriate documentation for new features<br \/>\n&#8211; Maintain backward compatibility when possible<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udccb Complete Configuration Example<\/p>\n<p>&#8220;`yaml<br \/>\n#        ___          __  _ _____                   ____<br \/>\n#       \/   |  ____  \/ \/_(_) ___\/____  ____  ____  \/ __\/<br \/>\n#      \/ \/| | \/ __ \/ __\/ \/__ \/ __ \/ __ \/ __ \/ \/_<br \/>\n#     \/ ___ |\/ \/ \/ \/ \/_\/ \/___\/ \/ \/_\/ \/ \/_\/ \/ \/_\/ \/ __\/<br \/>\n#    \/_\/  |_\/_\/ \/_\/__\/_\/\/____\/ .___\/____\/____\/_\/<br \/>\n#                            \/_\/<br \/>\n#                   Made by GigaZelensky<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#                  AntiSpoof Configuration<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n# Welcome to AntiSpoof. This plugin helps server admins detect and manage<br \/>\n# client-side modifications by analyzing client information sent by players.<br \/>\n#<br \/>\n# \u26a0\ufe0f Note: While this plugin enhances security, it is not foolproof.<br \/>\n# Skilled users can (ironically) spoof their client details to bypass detection.<br \/>\n#<br \/>\n# By default, the plugin only verifies whether a player claiming to use<br \/>\n# &#8216;vanilla&#8217; has registered plugin channels, something that is impossible<br \/>\n# on a true vanilla client.<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/p>\n<p># \u23f3 Delay (in seconds) before checking for client spoofing.<br \/>\n# Set to 0 for an immediate check upon player login (unrealiable). (Default: 1)<br \/>\ndelay-in-seconds: 1<\/p>\n<p># \ufe0f Debug Mode<br \/>\n# If enabled, logs client channels and brand details in the console when a player logs in.<br \/>\ndebug: false<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#                  Core Detection Settings<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/p>\n<p># Vanilla Spoof Detection<br \/>\n# Detects when a player claims to use vanilla but has registered plugin channels<br \/>\nvanillaspoof-check:<br \/>\n  # Whether to check if a player claiming &#8220;vanilla&#8221; client has plugin channels<br \/>\n  enabled: true<br \/>\n  # Whether to send alerts to Discord for this violation type<br \/>\n  discord-alert: true<br \/>\n  # Custom alert messages for this specific violation<br \/>\n  alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% flagged! &#038;cVanilla client with plugin channels&#8221;<br \/>\n  console-alert-message: &#8220;%player% flagged! Vanilla client with plugin channels&#8221;<br \/>\n  # Whether to punish the player if detection is positive<br \/>\n  punish: false<br \/>\n  # Punishment actions to execute<br \/>\n  # Available placeholders: %player%, %reason%, %brand%, %channel%<br \/>\n  punishments:<br \/>\n    &#8211; &#8220;kick %player% &#038;cVanilla spoof detected: %reason%&#8221;<br \/>\n    # &#8211; &#8220;ban %player% &#038;cVanilla client spoofing detected&#8221;<\/p>\n<p># Super Strict Mode (Not Recommended)<br \/>\n# Blocks players who either:<br \/>\n#    &#8211; Do NOT have a &#8220;vanilla&#8221; client, OR<br \/>\n#    &#8211; Have registered plugin channels (indicating mods\/plugins)<br \/>\n# \u26a0\ufe0f This is an extremely strict mode and may block legitimate players<br \/>\nnon-vanilla-check:<br \/>\n  # Whether to enable this strict check<br \/>\n  enabled: false<br \/>\n  # Whether to send alerts to Discord for this violation type<br \/>\n  discord-alert: false<br \/>\n  # Custom alert messages for this specific violation<br \/>\n  alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% flagged! &#038;cClient modifications detected&#8221;<br \/>\n  console-alert-message: &#8220;%player% flagged! Client modifications detected&#8221;<br \/>\n  # Whether to punish the player if detection is positive<br \/>\n  punish: false<br \/>\n  # Punishment actions to execute<br \/>\n  # Available placeholders: %player%, %reason%, %brand%, %channel%<br \/>\n  punishments:<br \/>\n    &#8211; &#8220;kick %player% &#038;cNon-vanilla client with channels detected&#8221;<br \/>\n    # &#8211; &#8220;tempban %player% 1h &#038;cUsing a modified client&#8221;<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#               No Brand Detection Settings<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n# Some hacked clients avoid detection by not sending a client brand at all<br \/>\n# This check flags players who connect without providing any brand information<br \/>\nno-brand-check:<br \/>\n  # Whether to flag players who don&#8217;t send a client brand<br \/>\n  enabled: true<br \/>\n  # Whether to send alerts to Discord for this violation type<br \/>\n  discord-alert: true<br \/>\n  # Custom alert messages for this specific violation<br \/>\n  alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% flagged! &#038;cNo client brand detected&#8221;<br \/>\n  console-alert-message: &#8220;%player% flagged! No client brand detected&#8221;<br \/>\n  # Whether to punish the player if detection is positive<br \/>\n  punish: false<br \/>\n  # Punishment actions to execute<br \/>\n  # Available placeholders: %player%, %reason%<br \/>\n  punishments:<br \/>\n    &#8211; &#8220;kick %player% &#038;cNo client brand detected&#8221;<br \/>\n    # &#8211; &#8220;ban %player% &#038;cSuspicious client detected (no brand)&#8221;<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#                 Channel Detection Settings<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\nblocked-channels:<br \/>\n  # Enable channel-based detection<br \/>\n  enabled: false<br \/>\n  # Whether to send alerts to Discord for blocked channel violations<br \/>\n  discord-alert: false<\/p>\n<p>  # \u26aa Whitelist Mode<br \/>\n  # &#8211; FALSE: Block listed channels.<br \/>\n  # &#8211; SIMPLE: Only allow players with at least one whitelisted channel.<br \/>\n  # &#8211; STRICT: Only allow players who match the exact whitelist and have no extra channels.<br \/>\n  whitelist-mode: FALSE<\/p>\n<p>  # List of channels to block\/whitelist<br \/>\n  values:<br \/>\n    &#8211; &#8220;^fabric-screen-handler-api-v1:open_screen$&#8221;<br \/>\n    # Add more channels to block here<br \/>\n    # &#8211; &#8220;another:blocked:channel&#8221;<br \/>\n    # &#8211; &#8220;(?i).*litematica.*&#8221;<br \/>\n    # &#8211; &#8220;(?i).*fabric.*&#8221;<\/p>\n<p>  # Custom alert messages for this specific violation<br \/>\n  alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% flagged! &#038;cUsing blocked channel: &#038;f%channel%&#8221;<br \/>\n  console-alert-message: &#8220;%player% flagged! Using blocked channel: %channel%&#8221;<\/p>\n<p>  # Alert when a player&#8217;s plugin channel is modified<br \/>\n  modifiedchannels:<br \/>\n    enabled: true<br \/>\n    # Whether to send Discord alerts for modified channels<br \/>\n    discord-alert: false<br \/>\n    alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% modified channel: &#038;f%channel%&#8221;<br \/>\n    console-alert-message: &#8220;%player% modified channel: %channel%&#8221;<\/p>\n<p>  # Whether to punish the player if detection is positive<br \/>\n  punish: false<br \/>\n  # Punishment actions to execute<br \/>\n  # Available placeholders: %player%, %reason%, %brand%, %channel%<br \/>\n  punishments:<br \/>\n    &#8211; &#8220;kick %player% &#038;cBlocked channel detected: %channel%&#8221;<br \/>\n    # &#8211; &#8220;tempban %player% 1d &#038;cUsing blocked mod channels&#8221;<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#                 Client Brands Configuration<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n# This section allows for granular control over different client types.<br \/>\n# Each brand can have its own detection patterns, alert messages,<br \/>\n# punishments, and special exemptions.<br \/>\nclient-brands:<br \/>\n  # Master switch for the client brands system<br \/>\n  enabled: true<\/p>\n<p>  # Default settings for brands not explicitly configured<br \/>\n  default:<br \/>\n    flag: true<br \/>\n    alert: true<br \/>\n    discord-alert: false<br \/>\n    punish: false<br \/>\n    # Default alert message if not specified for a brand<br \/>\n    alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;7%player% using unknown client: &#038;e%brand%&#8221;<br \/>\n    console-alert-message: &#8220;%player% using unknown client: %brand%&#8221;<\/p>\n<p>  # Brand-specific configurations<br \/>\n  brands:<br \/>\n    # Lunar Client Configuration<br \/>\n    lunar:<br \/>\n      enabled: true<br \/>\n      values:<br \/>\n        &#8211; &#8220;^lunarclient:v\\d+\\.\\d+\\.\\d+-\\d{4}$&#8221;<br \/>\n      # Whether to count the player as flagged by AntiSpoof<br \/>\n      flag: false<br \/>\n      # Whether to send in-game alerts for this brand<br \/>\n      alert: true<br \/>\n      # Whether to send Discord alerts for this brand<br \/>\n      discord-alert: false<br \/>\n      # Custom alert messages for this brand<br \/>\n      alert-message: &#8220;&#038;8[&#038;eAntiSpoof&#038;8] &#038;7%player% is using &#038;9Lunar Client &#038;7version: &#038;b%brand%&#8221;<br \/>\n      console-alert-message: &#8220;%player% is using Lunar Client: %brand%&#8221;<br \/>\n      # Whether to punish players using this brand<br \/>\n      punish: false<br \/>\n      # Punishment commands if punish is true<br \/>\n      punishments: []<br \/>\n      # Channels that must be present for this brand to be legitimate<br \/>\n      required-channels:<br \/>\n        &#8211; &#8220;lunar.*&#8221;  # Must have at least one lunar channel<br \/>\n      # Punish players if they do not have the channel(s)? Set to false to simply alert.<br \/>\n      required-channels-punish: false<br \/>\n      required-channels-punishments:<br \/>\n        &#8211; &#8220;kick %player% &#038;cLunar Client spoofing detected&#8221;<\/p>\n<p>    # Badlion Client Configuration<br \/>\n    badlion:<br \/>\n      enabled: true<br \/>\n      values:<br \/>\n        &#8211; &#8220;^badlion.*&#8221;<br \/>\n        &#8211; &#8220;^BLC.*&#8221;<br \/>\n      flag: false<br \/>\n      alert: true<br \/>\n      discord-alert: false<br \/>\n      alert-message: &#8220;&#038;8[&#038;eAntiSpoof&#038;8] &#038;7%player% is using &#038;b%brand%&#8221;<br \/>\n      console-alert-message: &#8220;%player% is using Badlion Client: %brand%&#8221;<br \/>\n      punish: false<br \/>\n      punishments: []<br \/>\n      required-channels: []<br \/>\n      required-channels-punish: false<br \/>\n      required-channels-punishments:<br \/>\n        &#8211; &#8220;kick %player% &#038;cLunar Client spoofing detected&#8221;<\/p>\n<p>    # Forge Configuration<br \/>\n    forge:<br \/>\n      enabled: true<br \/>\n      values:<br \/>\n        &#8211; &#8220;^fml,forge.*&#8221;<br \/>\n        &#8211; &#8220;^forge.*&#8221;<br \/>\n      flag: false<br \/>\n      alert: true<br \/>\n      discord-alert: false<br \/>\n      alert-message: &#8220;&#038;8[&#038;eAntiSpoof&#038;8] &#038;7%player% is using &#038;b%brand%&#8221;<br \/>\n      console-alert-message: &#8220;%player% is using Forge: %brand%&#8221;<br \/>\n      punish: false<br \/>\n      punishments: []<br \/>\n      required-channels:<br \/>\n        &#8211; &#8220;(?i).*forge.*&#8221;<br \/>\n      required-channels-punish: false<br \/>\n      required-channels-punishments:<br \/>\n        &#8211; &#8220;kick %player% &#038;cChannel spoofing detected&#8221;<\/p>\n<p>    # Fabric Configuration<br \/>\n    fabric:<br \/>\n      enabled: true<br \/>\n      values:<br \/>\n        &#8211; &#8220;^fabric$&#8221;<br \/>\n      flag: false<br \/>\n      alert: true<br \/>\n      discord-alert: false<br \/>\n      alert-message: &#8220;&#038;8[&#038;eAntiSpoof&#038;8] &#038;7%player% is using &#038;b%brand%&#8221;<br \/>\n      console-alert-message: &#8220;%player% is using Fabric: %brand%&#8221;<br \/>\n      punish: false<br \/>\n      punishments: []<br \/>\n      required-channels:<br \/>\n        &#8211; &#8220;(?i).*fabric.*&#8221; # Matches any channel containing &#8220;fabric&#8221; (case insensitive)<br \/>\n      required-channels-punish: false<br \/>\n      required-channels-punishments:<br \/>\n        &#8211; &#8220;kick %player% &#038;cChannel spoofing detected&#8221;<\/p>\n<p>    # LabyMod Configuration<br \/>\n    labymod:<br \/>\n      enabled: true<br \/>\n      values:<br \/>\n        &#8211; &#8220;^labymod.*&#8221;<br \/>\n      flag: false<br \/>\n      alert: true<br \/>\n      discord-alert: false<br \/>\n      alert-message: &#8220;&#038;8[&#038;eAntiSpoof&#038;8] &#038;7%player% is using &#038;b%brand%&#8221;<br \/>\n      console-alert-message: &#8220;%player% is using %brand%&#8221;<br \/>\n      punish: false<br \/>\n      punishments: []<br \/>\n      required-channels: []<br \/>\n      required-channels-punish: false<br \/>\n      required-channels-punishments:<br \/>\n        &#8211; &#8220;kick %player% &#038;cChannels spoofing detected&#8221;<\/p>\n<p>    # Hacked Clients Configuration<br \/>\n    hacked:<br \/>\n      enabled: true<br \/>\n      values:<br \/>\n        &#8211; &#8220;(?i).*wurst.*&#8221;<br \/>\n        &#8211; &#8220;(?i).*impact.*&#8221;<br \/>\n        &#8211; &#8220;(?i).*aristois.*&#8221;<br \/>\n        &#8211; &#8220;(?i).*future.*&#8221;<br \/>\n        &#8211; &#8220;(?i).*meteor.*&#8221;<br \/>\n        &#8211; &#8220;(?i).*inertia.*&#8221;<br \/>\n        &#8211; &#8220;(?i).*sigma.*&#8221;<br \/>\n        &#8211; &#8220;(?i).*liquidbounce.*&#8221;<br \/>\n      flag: true<br \/>\n      alert: true<br \/>\n      discord-alert: true<br \/>\n      alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% is using &#038;c&#038;lknown hacked client: &#038;f%brand%&#8221;<br \/>\n      console-alert-message: &#8220;ALERT! %player% is using known hacked client: %brand%&#8221;<br \/>\n      punish: true<br \/>\n      punishments:<br \/>\n        &#8211; &#8220;kick %player% &#038;cHacked client detected: %brand%&#8221;<br \/>\n        # &#8211; &#8220;ban %player% &#038;cUse of hacked client detected&#8221;<\/p>\n<p>    # Vanilla Configuration<br \/>\n    vanilla:<br \/>\n      enabled: true<br \/>\n      values:<br \/>\n        &#8211; &#8220;^vanilla$&#8221;<br \/>\n      flag: false # Only flags if the player is caught spoofing<br \/>\n      alert: false  # Don&#8217;t alert for vanilla clients by default<br \/>\n      discord-alert: false<br \/>\n      alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;7%player% is using &#038;d%brand%&#8221;<br \/>\n      console-alert-message: &#8220;%player% is using %brand%&#8221;<br \/>\n      punish: false<br \/>\n      punishments: []<br \/>\n      # Special settings for vanilla<br \/>\n      # &#8220;strict-check&#8221; flags if the client has ANY plugin channels (Must be enabled to detect VanillaSpoof)<br \/>\n      # You can add this &#8220;strict-check&#8221; to any client brand and only then will it be processed by the earlier &#8220;vanillaspoof-check&#8221;<br \/>\n      strict-check: true  # Enable strict checking for vanilla (must have NO channels)<\/p>\n<p>    vanilla-variation: # When a client shows &#8220;Vanilla&#8221; or &#8220;vAnilla2&#8221; but not &#8220;vanilla&#8221;<br \/>\n      enabled: true<br \/>\n      values:<br \/>\n        &#8211; &#8220;^(?!vanilla$).*?(?i)vanilla.*&#8221;<br \/>\n      flag: true<br \/>\n      alert: true<br \/>\n      discord-alert: true<br \/>\n      alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% using fake Vanilla: &#038;c%brand%&#8221;<br \/>\n      console-alert-message: &#8220;%player% is using fake Vanilla: %brand%&#8221;<br \/>\n      punish: false<br \/>\n      punishments: []<br \/>\n      strict-check: true<\/p>\n<p>    blankbrand: # When a client sends a blank brand channel<br \/>\n      enabled: true<br \/>\n      values:<br \/>\n        &#8211; &#8220;^$&#8221;   # regex for empty\/blank brand<br \/>\n      flag: true<br \/>\n      alert: true<br \/>\n      discord-alert: true<br \/>\n      alert-message: &#8220;&#038;8[&#038;eAntiSpoof&#038;8] &#038;7%player% &#038;eis using a blank brand&#8221;<br \/>\n      console-alert-message: &#8220;%player% is using a blank brand&#8221;<br \/>\n      punish: false<br \/>\n      punishments: []<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#                Bedrock Handling Settings<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\nbedrock-handling:<br \/>\n  # Choose how to handle Bedrock players.<br \/>\n  # Options:<br \/>\n  #   &#8211; &#8220;IGNORE&#8221;: Completely ignore these players; process them like regular players.<br \/>\n  #   &#8211; &#8220;EXEMPT&#8221;: Process them but don&#8217;t punish them for failing checks.<br \/>\n  #<br \/>\n  # Either way, Bedrock players won&#8217;t get the anti-spoof treatment.<br \/>\n  # &#8220;EXEMPT&#8221; mode is highly recommended as &#8220;IGNORE&#8221; can easily falsely punish Bedrock players.<br \/>\n  mode: &#8220;EXEMPT&#8221;<\/p>\n<p>  # Geyser Spoofing Detection<br \/>\n  # Detects players claiming a client brand including a variation of &#8220;geyser&#8221; without being verified<br \/>\n  # as Bedrock players by the Floodgate API.<br \/>\n  geyser-spoof:<br \/>\n    # Whether to enable geyser spoofing detection<br \/>\n    enabled: true<br \/>\n    # Whether to send alerts to Discord for Geyser spoofing violations<br \/>\n    discord-alert: true<br \/>\n    # Custom alert messages for this specific violation<br \/>\n    alert-message: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% flagged! &#038;cGeyser client spoofing&#8221;<br \/>\n    console-alert-message: &#8220;%player% flagged! Geyser client spoofing with brand: %brand%&#8221;<\/p>\n<p>    # Whether to punish the player if detection is positive<br \/>\n    punish: false<br \/>\n    # Punishment actions to execute<br \/>\n    # Available placeholders: %player%, %reason%, %brand%<br \/>\n    punishments:<br \/>\n      &#8211; &#8220;kick %player% &#038;cGeyser client spoofing detected&#8221;<br \/>\n      # &#8211; &#8220;ban %player% &#038;cGeyser client spoofing&#8221;<\/p>\n<p>  # Check Player Prefix:<br \/>\n  # This option checks whether a player is identified as a Bedrock player by verifying their prefix.<br \/>\n  # When enabled, the system will verify if the player&#8217;s username or identifier starts with the specified prefix.<br \/>\n  # Default prefix is &#8220;.&#8221;, and if a player&#8217;s client brand includes &#8220;geyser&#8221; in any form without matching<br \/>\n  # the expected prefix, they will be flagged.<br \/>\n  prefix-check:<br \/>\n    enabled: true<br \/>\n    # The prefix used to identify Bedrock players.<br \/>\n    prefix: &#8220;.&#8221;<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#                 Discord Webhook Settings<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\ndiscord:<br \/>\n  enabled: false<br \/>\n  webhook: &#8220;&#8221;<br \/>\n  embed-title: &#8220;**AntiSpoof Alert**&#8221;<br \/>\n  embed-color: &#8220;#2AB7CA&#8221;<br \/>\n  violation-content:<br \/>\n    &#8211; &#8220;**Player**: %player%&#8221;<br \/>\n    &#8211; &#8220;**Violations**:%violations%&#8221;<br \/>\n    &#8211; &#8220;**Client Version**: %viaversion_version%&#8221; # Requires Viaversion and PlaceholderAPI<br \/>\n    &#8211; &#8220;**Brand**: %brand%&#8221;<br \/>\n    &#8211; &#8220;**Channels**:&#8221;<br \/>\n    &#8211; &#8220;%channel%&#8221; # Vertical channel list<\/p>\n<p># Global settings for all alerts (used as fallback)<br \/>\n# These options control whether to send join messages for players to Discord<br \/>\n# even when they don&#8217;t trigger any violations<br \/>\nglobal-alerts:<br \/>\n  # Whether to send alerts to Discord when players join with a brand<br \/>\n  join-brand-alerts: false<br \/>\n  # Whether to send alerts to Discord when players register initial channels<br \/>\n  initial-channels-alerts: false<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#                  Update Checker Settings<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n# Checks for updates from GitHub when the server starts<br \/>\nupdate-checker:<br \/>\n  # Whether to check for updates on startup<br \/>\n  enabled: true<br \/>\n  # Whether to notify admins when they join<br \/>\n  notify-on-join: true<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#                Legacy Punishment Settings<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n# Legacy global punishment system (for backward compatibility)<br \/>\n# These punishments will be used if a specific check has &#8216;punish: true&#8217;<br \/>\n# but doesn&#8217;t have its own punishments defined<br \/>\n# Available placeholders: %player%, %reason%, %brand%, %channel%<br \/>\npunishments:<br \/>\n  &#8211; &#8220;kick %player% &#038;cSuspicious client detected!&#8221;<br \/>\n  # &#8211; &#8220;ban %player% &#038;cClient spoofing detected&#8221;<\/p>\n<p># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n#                 Legacy Alert Messages<br \/>\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n# Legacy global alert system (for backward compatibility)<br \/>\n# These messages will be used if a specific check is enabled<br \/>\n# but doesn&#8217;t have its own alerts defined<br \/>\n# Available placeholders: %player%, %reason%, %brand%, %channel%<br \/>\n# Defines the message sent to players with the `antispoof.alerts` permission<br \/>\n# when a spoofing attempt is detected.<br \/>\nmessages:<br \/>\n  # Message shown to players with antispoof.alerts permission<br \/>\n  alert: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% flagged! &#038;c%reason%&#8221;<br \/>\n  # Message logged to console (no color codes needed)<br \/>\n  console-alert: &#8220;%player% flagged! %reason%&#8221;<br \/>\n  # Message for multiple violations<br \/>\n  multiple-flags: &#8220;&#038;8[&#038;cAntiSpoof&#038;8] &#038;e%player% has multiple violations: &#038;c%reasons%&#8221;<br \/>\n  # Message for console when multiple violations<br \/>\n  console-multiple-flags: &#8220;%player% has multiple violations: %reasons%&#8221;<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcc4 License<\/p>\n<p>AntiSpoof is licensed under the GNU General Public License v3.0 &#8211; see the LICENSE file for details.<\/p>\n<p>&#8220;`<br \/>\nCopyright (C) 2025 GigaZelensky<\/p>\n<p>This program is free software: you can redistribute it and\/or modify<br \/>\nit under the terms of the GNU General Public License as published by<br \/>\nthe Free Software Foundation, either version 3 of the License, or<br \/>\n(at your option) any later version.<\/p>\n<p>This program is distributed in the hope that it will be useful,<br \/>\nbut WITHOUT ANY WARRANTY; without even the implied warranty of<br \/>\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br \/>\nGNU General Public License for more details.<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<div align=\"center\">\n<p>Made with \u2764\ufe0f by GigaZelensky<\/p>\n<p>\u2b50 Star us on GitHub if you find this plugin useful! \u2b50<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>(ARCHIVED) Get AntiSpoof-Pro on BuiltByBit.<br \/>\nMore info on 1.2.7 changelog.<\/p>\n","protected":false},"featured_media":16325,"template":"","meta":{"_minecraft_slug":"antispoof","_minecraft_project_id":"DMd5Nhpw","_minecraft_author":"GigaZelensky","_minecraft_license":"GPL-3.0-or-later","_minecraft_downloads":2082,"_minecraft_follows":6,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"antispoof.zip","_minecraft_size_bytes":48533987,"_minecraft_version_count":22,"_minecraft_updated_at":"2026-05-16T06:11:23.318776Z","_minecraft_date_created":"2025-03-12T16:23:26.407565Z","_minecraft_date_modified":"2025-06-18T17:41:35.807923Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/antispoof","_minecraft_icon_attachment_id":16325,"_minecraft_imported_at":"2026-05-31T19:01:14+00:00","_minecraft_import_hash":"dda997b692db33d7dee09013f061f83c","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[89,126,127,128,129,92],"mod_loader":[132,133,134],"minecraft_version":[341,360,385,449,114,117,48,50,53,58,94,101,102,62,37,73,74,38,78,79,30,860,864],"class_list":["post-16324","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-game-mechanics","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-utility","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-10-2","minecraft_version-1-11-2","minecraft_version-1-12-2","minecraft_version-1-13-2","minecraft_version-1-14-4","minecraft_version-1-15-2","minecraft_version-1-16-5","minecraft_version-1-17-1","minecraft_version-1-18-2","minecraft_version-1-19-4","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-8-8","minecraft_version-1-9","minecraft_version-1-9-4"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AntiSpoof - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AntiSpoof - Minecraft\" \/>\n<meta property=\"og:description\" content=\"(ARCHIVED) Get AntiSpoof-Pro on BuiltByBit. More info on 1.2.7 changelog.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i.imgur.com\/Tyji4mJ.jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"24 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/antispoof\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/antispoof\\\/\",\"name\":\"AntiSpoof - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/antispoof\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/antispoof\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/antispoof-icon-8c8f810f8fde7754eb2ca31640729dfa98ca4cdf_96.webp\",\"datePublished\":\"2026-05-31T19:01:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/antispoof\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/antispoof\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/antispoof\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/antispoof-icon-8c8f810f8fde7754eb2ca31640729dfa98ca4cdf_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/antispoof-icon-8c8f810f8fde7754eb2ca31640729dfa98ca4cdf_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/antispoof\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"AntiSpoof\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AntiSpoof - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/","og_locale":"en_US","og_type":"article","og_title":"AntiSpoof - Minecraft","og_description":"(ARCHIVED) Get AntiSpoof-Pro on BuiltByBit. More info on 1.2.7 changelog.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/","og_site_name":"Minecraft","og_image":[{"url":"https:\/\/i.imgur.com\/Tyji4mJ.jpeg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"24 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/","name":"AntiSpoof - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/antispoof-icon-8c8f810f8fde7754eb2ca31640729dfa98ca4cdf_96.webp","datePublished":"2026-05-31T19:01:13+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/antispoof-icon-8c8f810f8fde7754eb2ca31640729dfa98ca4cdf_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/antispoof-icon-8c8f810f8fde7754eb2ca31640729dfa98ca4cdf_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/antispoof\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"AntiSpoof"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/16324","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/16325"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=16324"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=16324"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=16324"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=16324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}