Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
1.7.x
1.6.4
1.6.1–1.6.2
1.5.x
1.4.4–1.4.7
1.4.2
1.3.x
1.2.x
1.1
1.0
Platforms
Links
Tags
Creators
Details
Licensed Synkai Plugins
Published 2 months ago
Advanced Synkai IP Limiter
A powerful Velocity proxy plugin that prevents multiple accounts from joining your server using the same IP address. Includes account binding, alt-account detection, and Discord webhook notifications.
Features
- 🔒 IP-Based Player Limiting - Restrict concurrent connections per IP address
- 🔐 Account Binding - Bind player accounts to their IP address
- 🚫 Alt-Account Detection - Automatically detect and prevent alt accounts
- 🔑 Permission-Based Bypass - Allow ops and VIPs to bypass restrictions
- 📢 Customizable Messages - Color code support (&c, &4, etc.)
- 🔔 Discord Webhook Support - Get real-time notifications of violations
- ⚪ IP Whitelist - Configure trusted IPs with custom limits
- ⏰ Binding Expiration - Set binding duration (never, 1 week, 1 month)
- 🐛 Debug Mode - Enhanced logging for troubleshooting
Installation
- Download the latest compiled JAR file from the build directory
- Place it in your Velocity proxy's
plugins/directory - Restart your Velocity proxy server
- Configuration file will be auto-generated at
plugins/IPLimit/config.yml
Configuration
Edit plugins/IPLimit/config.yml to customize the plugin:
# IP Limit Configuration
# Max players allowed per IP (This limits concurrent sessions for the valid account)
max-players-per-ip: 1
# Permission to bypass checks (Ops usually have this)
bypass-permission: "iplimit.bypass"
# Message shown when kicked due to IP limit/Binding (Supports Color Codes like &c, &4)
kick-message: "&cYou are not allowed to join with this IP! 1 Account per IP limit."
# Message shown when kicked for using an Alt account
alt-kick-message: "&cAlt accounts are not allowed! This IP is bound to another account."
# Binding expiration policy (never, 1w, 1m)
binding-expiration: "never"
# Discord webhook settings (optional)
discord-webhook-enabled: false
discord-webhook-url: "webhookurl here"
discord-webhook-username: "Advanced Synkai IP limiter"
discord-webhook-embed-color: 16711680
# Whitelisted IPs (These IPs bypass all checks)
whitelisted-ips:
- "192.168.1.1"
- "10.0.0.1"
# Optional limits for whitelisted IPs (overrides normal max)
whitelisted-ip-limits:
"127.0.0.1": 3
# Debug mode (prints more info to console)
debug: false
Configuration Options
| Option | Type | Description | Default |
|---|---|---|---|
max-players-per-ip |
Integer | Maximum players allowed per IP | 1 |
bypass-permission |
String | Permission node to bypass checks | iplimit.bypass |
kick-message |
String | Message when player hit IP limit | Customizable |
alt-kick-message |
String | Message for alt accounts | Customizable |
binding-expiration |
String | Binding duration: never, 1w, 1m |
never |
discord-webhook-enabled |
Boolean | Enable Discord notifications | false |
discord-webhook-url |
String | Discord webhook URL | webhookurl here |
discord-webhook-username |
String | Bot username for webhooks | Advanced Synkai IP limiter |
discord-webhook-embed-color |
Integer | Embed color (RGB decimal) | 16711680 |
whitelisted-ips |
List | IPs that bypass all checks | - |
whitelisted-ip-limits |
Map | Custom limits for specific IPs | - |
debug |
Boolean | Enable debug console output | false |
Permissions
| Permission | Description | Default |
|---|---|---|
iplimit.bypass |
Bypass IP limit and binding checks | Ops |
iplimit.admin |
Access admin commands | Ops |
Commands
/iplimit [subcommand]
Subcommands
info- Show player IP binding informationreload- Reload configuration from diskunbind <player>- Remove IP binding for a playerwhitelist <ip>- Add IP to whitelistdebug [on|off]- Toggle debug mode
Discord Webhook Setup
To get real-time notifications of IP violations:
- Create a Discord webhook in your server settings
- Copy the webhook URL
- Edit
config.yml:discord-webhook-enabled: true discord-webhook-url: "https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN" - Customize the webhook username and embed color as desired
- Reload the plugin with
/iplimit reload
How It Works
- First Connection - Player joins with their IP, account is bound to that IP
- Same IP, Same Account - ✅ Allowed (logged in again)
- Same IP, Different Account - ❌ Kicked (alt account detected)
- Different IP, Same Account - ⚠️ Allowed (new IP, rebinding)
- Whitelisted IP - ✅ Always allowed
- Bypass Permission - ✅ Ops and VIPs bypass all checks
Features in Detail
Account Binding
Once a player joins, their account is bound to their IP address. This prevents other accounts from using the same IP.
Binding Expiration
Configure how long bindings remain active:
never- Bindings are permanent1w- Bindings expire after 1 week1m- Bindings expire after 1 month
IP Whitelist
Add trusted IPs (proxy, testing, corporate networks) to bypass all checks:
whitelisted-ips:
- "192.168.1.1"
- "10.0.0.1"
Set custom limits for whitelisted IPs:
whitelisted-ip-limits:
"127.0.0.1": 5 # Allow 5 players from localhost
Debug Mode
Enable debug logging to troubleshoot issues:
debug: true
Check console for detailed information about:
- Player connections
- IP bindings
- Permission checks
- Webhook requests
Troubleshooting
Players Getting Kicked Unexpectedly
- Check the player's IP:
/iplimit info <player> - Verify whitelisted IPs if needed
- Check if player has
iplimit.bypasspermission - Enable debug mode for more info
Discord Webhook Not Working
- Verify the webhook URL is correct
- Check
discord-webhook-enabled: true - Ensure the webhook hasn't been deleted from Discord
- Check console for error messages with debug enabled
Config Not Updating
- Use
/iplimit reloadto reload configuration - Ensure YAML formatting is valid
- Check file permissions on config.yml


