๐Ÿ“š ProtectCord Documentation

Complete guide to setting up and using ProtectCord for maximum Discord server security.

๐Ÿ“‹ Table of Contents

๐Ÿ“š Overview

ProtectCord is an advanced Discord security bot designed to protect your server from malicious users, bots, and threats. It provides comprehensive verification systems, real-time threat detection, and powerful API integrations.

๐Ÿ” Verification System

Advanced CAPTCHA verification with bot detection and automated role assignment.

๐ŸŒ Threat Detection

Real-time VPN, proxy, and Tor detection with 99.9% accuracy using global threat intelligence.

๐ŸŒ Regional Blocking

Country-based access controls and geographical restrictions for enhanced security.

๐Ÿ“Š Analytics Dashboard

Comprehensive security insights with detailed logs and threat analysis.

๐Ÿ”‘ Powerful API

RESTful API for custom integrations and automated security workflows.

โšก High Performance

Built for scale with sub-second response times and 99.9% uptime.

๐Ÿš€ Getting Started

Get ProtectCord running on your Discord server in under 5 minutes with these simple steps:

๐Ÿ“‹ Prerequisites:
  • Discord server with Administrator permissions
  • Bot permissions: Administrator (or specific permissions listed below)
  • Channel where ProtectCord can send verification messages

Step 1: Invite ProtectCord

Click the invite link and select your Discord server:

Invite Link
https://discord.com/oauth2/authorize?client_id=1239704447681302641&permissions=8&scope=bot

Step 2: Run Initial Setup

Use the /setup command to configure your security settings:

Discord Command
/setup

Step 3: Configure Settings

The setup wizard will guide you through:

โœ… Success! Your server is now protected by ProtectCord. Users will need to complete verification before accessing your server.

โš™๏ธ Detailed Setup Guide

Required Permissions

ProtectCord requires the following permissions to function properly:

Permission Required Purpose
Manage Roles โœ… Yes Assign verified role to users
Manage Channels โœ… Yes Set up verification channels
Send Messages โœ… Yes Send verification prompts and messages
Embed Links โœ… Yes Display rich verification messages
Use Slash Commands โœ… Yes Bot command functionality
Kick Members โš ๏ธ Optional Auto-kick blocked users
Ban Members โš ๏ธ Optional Auto-ban repeat offenders

Verification Flow

Understanding how ProtectCord verifies users:

  1. User joins server - New member joins your Discord server
  2. Verification prompt - ProtectCord sends verification message in designated channel
  3. IP analysis - User's IP is checked against threat databases
  4. CAPTCHA challenge - User completes verification on secure web portal
  5. Security checks - Additional checks based on your settings
  6. Role assignment - Verified users receive the designated role

Configuration Options

/setup

Interactive setup wizard with the following options:

Setting Description Default
Verification Channel Channel where verification messages are sent Required
Verified Role Role assigned to verified users Required
Welcome Channel Channel for welcome messages (optional) None
VPN Blocking Block VPN connections Enabled
Proxy Blocking Block proxy connections Enabled
Tor Blocking Block Tor connections Enabled
Anti-Alt Protection Prevent same IP from joining multiple servers Disabled
Regional Blocking Block specific countries Disabled

๐Ÿ›ก๏ธ Security Features

Verification System

๐Ÿค– Bot Detection

Advanced algorithms detect and block automated bot accounts using behavioral analysis and pattern recognition.

๐Ÿงฉ CAPTCHA Challenges

Human verification through secure CAPTCHA challenges with multiple difficulty levels and accessibility options.

โšก Real-time Processing

Sub-second verification processing with instant role assignment and security feedback.

Threat Detection

๐ŸŒ VPN Detection

99.9% accurate VPN detection using global threat intelligence and machine learning algorithms.

๐Ÿ”’ Proxy Blocking

Comprehensive proxy detection including HTTP, SOCKS, and transparent proxies with real-time updates.

๐Ÿง… Tor Detection

Complete Tor network detection with exit node tracking and relay identification.

๐Ÿข Datacenter Filtering

Block connections from known datacenter IPs and hosting providers to prevent abuse.

๐Ÿ”„ Real-time Updates

Threat database updated every 60 seconds with new indicators and emerging threats.

๐ŸŽฏ Custom Rules

Create custom security rules and whitelists for your specific use case and requirements.

Regional Blocking

Control access based on geographical location:

โš ๏ธ Important: Regional blocking should be used carefully to avoid excluding legitimate users. Consider your community's global nature before enabling strict geographical restrictions.

๐Ÿค– Bot Commands

Complete reference for all ProtectCord commands. All commands require appropriate permissions.

Setup & Configuration

/setup

Description: Launch the interactive setup wizard to configure ProtectCord

Permissions: Administrator

Parameters: None (interactive wizard)

Example Usage
/setup
/refresh

Description: Refresh the verification message and update security settings

Permissions: Administrator

Example Usage
/refresh

Security & Management

/verify [user]

Description: Manually verify a user and assign the verified role

Permissions: Administrator

Parameter Type Required Description
user User Yes The user to manually verify
Example Usage
/verify @username
/lookup [user_id]

Description: Look up user verification history and security information

Permissions: Administrator

Parameter Type Required Description
user_id String Yes Discord user ID to lookup
Example Usage
/lookup 123456789012345678
/checkip [ip_address]

Description: Check an IP address for threats and security information

Permissions: Administrator

Parameter Type Required Description
ip_address String Yes IPv4 address to analyze
Example Usage
/checkip 1.1.1.1

IP Management

/ipmanage

Description: Manage IP whitelist and blacklist (Administrator only)

Permissions: Administrator

Subcommands:

  • whitelist [ip] [reason] - Add IP to whitelist
  • blacklist [ip] [reason] - Add IP to blacklist
  • remove [ip] - Remove IP from lists
  • check [ip] - Check IP status
Example Usage
/ipmanage whitelist 1.1.1.1 Trusted user
/ipmanage blacklist 192.168.1.1 Suspicious activity
/ipmanage check 8.8.8.8

API Management

/apikey

Description: Manage your ProtectCord API keys

Permissions: User (for own keys)

Subcommands:

  • info - Display API key information and usage
  • generate - Generate a new API key
  • revoke - Revoke your current API key
Example Usage
/apikey info
/apikey generate
/apikey revoke

Utility Commands

/help

Description: Display help information and command list

Permissions: None

Example Usage
/help
/sync

Description: Sync command permissions and update bot status

Permissions: Administrator

Example Usage
/sync

๐Ÿ”‘ API Documentation

ProtectCord provides a powerful RESTful API for custom integrations and automated security workflows.

Getting Started with the API

  1. Generate an API key using /apikey generate or the web dashboard
  2. Include your API key in all requests as a query parameter
  3. Use HTTPS for all API calls
  4. Handle rate limits and errors appropriately
๐Ÿ“‹ Base URL: https://api.protectcord.com
๐Ÿ”‘ Authentication: API key via key query parameter
โšก Rate Limit: 32 requests per minute (default)
๐Ÿ“ก Response Format: JSON

Core Endpoints

Check IP Address

Analyze an IP address for threats and security information.

HTTP REQUEST
GET https://api.protectcord.com/checkip/{ip}?key=YOUR_API_KEY
Parameter Type Required Description
ip String Yes IPv4 address to check
key String Yes Your API key
{ "ip": "1.1.1.1", "vpn": false, "proxy": false, "tor": false, "datacenter": false, "country": "AU", "country_name": "Australia", "city": "Sydney", "isp": "Cloudflare, Inc.", "threat_score": 0, "is_safe": true, "blocked": false, "whitelisted": false, "blacklisted": false }

Generate API Key

Generate a new API key for a Discord user. Requires admin privileges.

HTTP REQUEST
GET https://api.protectcord.com/generate-key?key=ADMIN_KEY&name=USERNAME&discorduserid=123456789&rate_limit=32
Parameter Type Required Description
key String Yes Admin API key
name String Yes Display name for the key
discorduserid String Yes Discord user ID
rate_limit Integer No Requests per minute (default: 32)
{ "success": true, "api_key": "abc123def456ghi789jkl012mno345pqr678stu901vwx234yz567890abcdef12", "name": "Username#1234", "rate_limit_per_minute": 32, "is_admin": false, "discord_user_id": "123456789012345678", "created_at": "2024-01-15T10:30:00Z", "created_by": "Admin", "message": "API key generated successfully. Please save this key as it won't be shown again." }

Code Examples

JavaScript/Node.js

JAVASCRIPT
const axios = require('axios'); async function checkIP(ip, apiKey) { try { const response = await axios.get(`https://api.protectcord.com/checkip/${ip}`, { params: { key: apiKey } }); const data = response.data; console.log(`IP: ${data.ip}`); console.log(`VPN: ${data.vpn}`); console.log(`Proxy: ${data.proxy}`); console.log(`Country: ${data.country_name}`); console.log(`Safe: ${data.is_safe}`); return data; } catch (error) { console.error('API Error:', error.response?.data || error.message); } } // Usage checkIP('1.1.1.1', 'your_api_key_here');

Python

PYTHON
import requests import json def check_ip(ip, api_key): try: response = requests.get( f'https://api.protectcord.com/checkip/{ip}', params={'key': api_key}, timeout=10 ) response.raise_for_status() data = response.json() print(f"IP: {data['ip']}") print(f"VPN: {data['vpn']}") print(f"Proxy: {data['proxy']}") print(f"Country: {data['country_name']}") print(f"Safe: {data['is_safe']}") return data except requests.exceptions.RequestException as e: print(f"API Error: {e}") return None # Usage result = check_ip('1.1.1.1', 'your_api_key_here')

cURL

BASH
curl -X GET "https://api.protectcord.com/checkip/1.1.1.1?key=YOUR_API_KEY" \ -H "Accept: application/json"

Error Handling

The API uses standard HTTP status codes and returns detailed error messages:

Status Code Meaning Description
200 OK Request successful
400 Bad Request Invalid request parameters
401 Unauthorized Invalid or missing API key
403 Forbidden API key lacks required permissions
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry
{ "error": true, "message": "Invalid API key", "code": "INVALID_API_KEY", "status": 401 }

๐ŸŽฎ Minecraft Plugin

Protect your Minecraft server from VPNs, proxies, and malicious connections with ProtectCord's official plugin.

โœ… Multi-Platform Support

Works on Spigot, Paper, Folia, BungeeCord, and Velocity - covering all major Minecraft server platforms.

โšก Lightning Fast

Fully async IP checking with zero server lag. Most API calls complete in under 100ms.

๐Ÿ”’ Real-Time Protection

Blocks VPNs, proxies, datacenters, and high-risk connections before players can join your server.

๐ŸŽฏ Smart Whitelist

Bypass protection for trusted players by name, UUID, or IP address with simple commands.

๐Ÿ“ข Discord Webhooks

Get real-time alerts in Discord when players are blocked or allowed to join.

๐Ÿ’ฐ Free Forever

32 requests per minute included free. Perfect for small to medium servers.

Installation

Get started in just a few steps:

  1. Download the plugin for your platform from Modrinth
  2. Drop the JAR file into your server's plugins/ folder
  3. Get a free API key from protectcord.com
  4. Add your API key to the config file
  5. Restart your server or run /protectcord reload
โœ… Done! Your Minecraft server is now protected with real-time IP verification.

Supported Platforms

Platform Versions Java Version Download
Spigot 1.8.8 - 1.21+ Java 8+ Download
Paper 1.13 - 1.21+ Java 17+ Download
Folia 1.19+ Java 17+ Download
Velocity 1.8.8 - 1.21+ Java 17+ Download
BungeeCord 1.8.8 - 1.21+ Java 8+ Download

Configuration

The plugin configuration is located at plugins/ProtectCord/config.yml (or plugins/protectcord/config.toml for Velocity):

YAML Configuration (Spigot/Paper/Folia/BungeeCord)
api-key: "YOUR_API_KEY_HERE" # Block settings enable-ip-check: true block-vpn: true block-proxy: true block-datacenter: false block-bogon: true blocked-risk-level: "HIGH" # Discord webhooks (optional) discord-webhook: enabled: false url: "" events: denied: true accepted: false whitelisted: true error: true

Commands

Command Description Permission
/protectcord reload Reload configuration protectcord.admin
/protectcord stats View API usage statistics protectcord.admin
/protectcord check <player|ip> Manually check an IP address protectcord.admin
/protectcord whitelist add player <name> Whitelist a player by name protectcord.admin
/protectcord whitelist add uuid <uuid> Whitelist a player by UUID protectcord.admin
/protectcord whitelist add ip <ip> Whitelist an IP address protectcord.admin
/protectcord list View all whitelisted entries protectcord.admin

Aliases: /pc, /protect

How It Works

  1. Player Connects - A player attempts to join your server
  2. IP Captured - Player's IP address is extracted from the connection
  3. Background Check - IP is checked against ProtectCord API (fully async)
  4. Threat Analysis - API returns VPN/Proxy/Datacenter status and risk score
  5. Decision Made - Plugin decides to allow or block based on your config
  6. Action Taken - Player either joins successfully or sees custom kick message
  7. Webhook Alert - Optional Discord notification is sent

Network Setup (Proxy Servers)

๐Ÿ’ก Best Practice: For BungeeCord or Velocity networks, install ProtectCord only on the proxy, not on backend servers. This provides network-wide protection and reduces API usage.

Proxy setup checklist:

Java Code Example

Integrate ProtectCord API into your own Minecraft plugin:

JAVA (Spigot/Paper)
import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONObject; public class ProtectCordExample implements Listener { private final String API_KEY = "your_api_key_here"; @EventHandler public void onPlayerLogin(AsyncPlayerPreLoginEvent event) { String ip = event.getAddress().getHostAddress(); try { URL url = new URL("https://api.protectcord.com/checkip/" + ip + "?key=" + API_KEY); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); if (conn.getResponseCode() == 200) { // Parse JSON response BufferedReader reader = new BufferedReader( new InputStreamReader(conn.getInputStream()) ); String response = reader.readLine(); JSONObject json = new JSONObject(response); boolean isVPN = json.getBoolean("vpn"); boolean isProxy = json.getBoolean("proxy"); String risk = json.getString("risk"); if (isVPN || isProxy || risk.equals("HIGH") || risk.equals("CRITICAL")) { event.disallow( AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "ยงcยงlConnection Blocked\n\n" + "ยง7Your IP has been flagged as suspicious.\n" + "ยง7Please disable your VPN/Proxy and try again." ); } } } catch (Exception e) { e.printStackTrace(); } } }
โš ๏ธ Important Notes:
  • All IP checks are fully async to prevent server lag
  • Localhost and private IPs are automatically bypassed
  • Whitelisted players bypass all security checks
  • API calls typically complete in under 100ms

๐Ÿ”— Webhooks

Receive real-time notifications about security events in your Discord server.

Setting Up Webhooks

  1. Create a webhook URL in your Discord channel settings or use any HTTPS endpoint
  2. Navigate to your server settings in the ProtectCord Dashboard
  3. Go to the "Webhooks" section for your server
  4. Enable webhooks and enter your webhook URL
  5. Select which events you want to receive notifications for
  6. Save your settings and test the webhook connection
๐Ÿ’ก Dashboard Configuration: Webhooks are now configured through the user-friendly dashboard interface. Visit /dashboard/guild/YOUR_GUILD_ID/webhooks to set up webhooks for your server.

Webhook Events

Event Description Payload
verification_success User successfully completed verification User info, verification method, country code
verification_blocked User blocked due to security threat User info, block reason, security flags
vpn_detected VPN usage detected during verification User info, country code, security flags
tor_detected Tor network usage detected User info, country code, security flags
alt_account_detected Potential alt account detected User info, country code, security flags
regional_block User blocked due to geographic restrictions User info, country code, block reason

Webhook Payload Example

{ "event": "verification_blocked", "guild_id": "123456789012345678", "user_id": "987654321098765432", "username": "SuspiciousUser#1234", "timestamp": "2024-01-15T10:30:00Z", "country_code": "US", "verification_method": "browser", "block_reason": "VPN detected", "security_flags": { "vpn": true, "proxy": false, "tor": false } }
๐Ÿ”’ Privacy Protection: User IP addresses are never included in webhook payloads for privacy and security reasons. Only country codes and security flags are provided.

๐Ÿ”ง Troubleshooting

Common Issues

Bot Not Responding to Commands

Possible causes:
  • Missing permissions (Use Slash Commands, Send Messages)
  • Bot role is too low in hierarchy
  • Commands not synced to your server
Solutions:
  • Check bot permissions in server settings
  • Move ProtectCord role higher in role list
  • Run /sync command or re-invite the bot

Verification Not Working

Possible causes:
  • Verification channel not configured
  • Missing Embed Links permission
  • Users can't access verification URL
Solutions:
  • Run /setup to reconfigure
  • Grant Embed Links permission in verification channel
  • Check if verification portal is accessible

Role Assignment Issues

Possible causes:
  • Bot can't manage the verified role
  • Role hierarchy is incorrect
  • Missing Manage Roles permission
Solutions:
  • Ensure ProtectCord role is above verified role
  • Check Manage Roles permission
  • Verify role configuration in /setup

API Issues

Possible causes:
  • Invalid or expired API key
  • Rate limit exceeded
  • Incorrect endpoint URL
Solutions:
  • Generate new API key using /apikey generate
  • Implement rate limiting in your application
  • Verify API endpoint URL and parameters

Debug Steps

  1. Check bot status: Ensure ProtectCord is online and responding
  2. Verify permissions: Review all required permissions
  3. Test commands: Try basic commands like /help
  4. Check logs: Look for error messages in your server
  5. Re-run setup: Use /setup to reconfigure
  6. Contact support: Join our Discord for help

Performance Optimization

โ“ Frequently Asked Questions

General Questions

Q: Is ProtectCord free to use?

A: Yes, ProtectCord is completely free for Discord servers. API usage has rate limits, but these are generous for most use cases.

Q: How accurate is the threat detection?

A: ProtectCord achieves 99.9% accuracy in VPN/proxy detection using multiple data sources and machine learning algorithms.

Q: Can I whitelist specific users or IPs?

A: Yes, use the /ipmanage whitelist command or contact support for user-based whitelisting.

Q: Does ProtectCord store user data?

A: ProtectCord only stores verification status and security metadata. No personal information is retained after verification.

Technical Questions

Q: What happens if the verification site is down?

A: ProtectCord has multiple fallback systems and 99.9% uptime. Manual verification is always available via /verify.

Q: Can I integrate ProtectCord with my own bot?

A: Yes! Use our comprehensive API to integrate security features into your existing Discord bots and applications.

Q: How often is the threat database updated?

A: Our threat intelligence database is updated every 60 seconds with new indicators from global security partners.

Q: Can I export security logs?

A: Yes, security logs are available through the web dashboard and API endpoints with detailed filtering options.

Setup Questions

Q: What permissions does ProtectCord need?

A: Minimum required permissions are: Manage Roles, Send Messages, Embed Links, Use Slash Commands. See the detailed setup guide above.

Q: Can I use ProtectCord on multiple servers?

A: Yes, ProtectCord can be added to unlimited servers. Each server has independent configuration and security settings.

Q: How do I customize verification messages?

A: Use the /setup command and select custom message options. You can personalize verification, success, and blocked messages.

Still have questions? Join our Discord support server for live help from our community and development team.

Join Support Server