Hand Shaker
7.0.1-1.21+PaperSolution for server owners or modpack developers to disconnect users with unwanted mods, allow or require mods
⚠️ This project requires to be set up on both sides, client and server side ⚠️
HandShaker 7.0.0 (alpha) Wiki is there!
📋 What is HandShaker?
HandShaker is a cross-platform mod/plugin verification system for Minecraft servers and clients. It enables servers to detect which mods players are running and enforce mod restrictions with customizable policies.
🎯 Core Functionality
- Fabric/Neoforge Client → Sends your active mod list to the server upon join
- Paper/Fabric/NeoForge Server → Validates mod lists against configured rules and enforces restrictions
- Multi-platform Support → Works across Fabric, Paper, and NeoForge
- Cryptographic Integrity → Prevents tampered or self-compiled HandShaker mods
- Flexible Configuration → Per-mod rules: Required, Allowed, or Blacklisted
✨ Key Features
| Feature | Description |
|---|---|
| Individually set mod allowance to Required, Allowed, or Blacklisted | |
| Configurable kick messages and auto-ban capabilities | |
| Store and query player mod histories | |
| Administrators can see other players' mod lists | |
| Cryptographic signatures prevent spoofed mod reports | |
| 🔐 Custom Actions | Allows to setup custom events (commands) for triggered mods |
🏗️ Platform Comparison
Supported/Working
Issues/Unsupported
Unsupported/Broken
| Features | Paper (1.x - 6.x) | Fabric (2.x - 6.x) | NeoForge (6.x+) |
|---|---|---|---|
| Integrity Checking | |||
| Configurable Rules | |||
| Database Storage | |||
| GeyserMC/Floodgate | |||
| Permissions | |||
| Folia Compatibility | |||
| Clickable text in chat |
🚀 Quick Start
Commands
Installation
-
Download the appropriate mod/plugin for your platform:
- Fabric Client: Place JAR in
mods/folder - Paper Server: Place JAR in
plugins/folder - NeoForge Client: Place JAR in
mods/folder
- Fabric Client: Place JAR in
-
Configure the mod/plugin
Basic Configuration
config: v4
# Behavior: "strict" - Force requires client-side mod or "vanilla" allow also non-mod clients
behavior: strict
# Integrity Mode: "signed" or "dev" - allow unsigned mods (if you are building own client/server fork)
integrity-mode: signed
# Whitelist mode: true = only allowed mods (inside whitelisted.yml), false = allowed by default.
# To work properly set "mods-whitelisted-enabled" must be true
whitelist: false
# Allow Bedrock players
allow-bedrock-players: false
# Player Database: Store and track player mod history (requires playerdb to be enabled)
playerdb-enabled: false
# Mod List Toggles: Enable/disable each mod list without losing configuration
mods-required-enabled: true
mods-blacklisted-enabled: true
mods-whitelisted-enabled: true
# Kick Messages - customize as needed (use {mod} for mod name)
messages:
kick: "You are using a blacklisted mod: {mod}. Please remove it to join this server."
no-handshake: "To connect to this server please download 'Hand-shaker' mod."
missing-whitelist: "You are missing required mods: {mod}. Please install them to join this server."
invalid-signature: "Invalid client signature. Please use the official HandShaker client mod."
ban: "You have been banned for using a blacklisted mod: {mod}."
bedrock: "Bedrock players are not allowed on this server."
# custom messages for actions can be added here
# placeholders are {mod} - mod which triggered, {player}
test_action: "Hi, {player}! You are using {mod}! Thanks for using it!"
actions:
# System actions (Uses hardcoded functions, not recomended to copy these)
kick:
commands:
- "kick {player} {messages.kick}"
ban:
commands:
- "ban {player} {messages.ban}"
log: true
log:
missing: "{player} tried to join but missing required mod/mods: {mod}"
blacklisted: "{player} tried to join with blacklisted mod/mods: {mod}"
# Examples of custom actions
# placeholders are {mod} - mod which triggered, {player}, {messages.name_from_config.yml}
test_action:
commands:
- "msg {player} {messages.test_action}"
- "give {player} minecraft:diamond 1"
- "say Say Hello to {player}, who is using {mod}!"
watchdog:
commands:
- "ac increase_alert_level {player} 1000"
📝 Permissions
| Permission | Description | Default |
|---|---|---|
handshaker.admin | Access to admin commands | Operator |
handshaker.bypass | Bypass mod restrictions | False |
🎮 Supported Versions
| Loader | Versions | Status | Versions | Status |
|---|---|---|---|---|
| Fabric | 1.21 - 1.21.10, 1.21.11 | N/A | N/A | |
| Paper | 1.21+ | N/A | N/A | |
| NeoForge | 1.21 - 1.21.10, 1.21.11 | 1.20.1 | Planned |
📚 Documentation
Full Wiki
Installation Guide
Configuration Guide
Commands Reference
Building from Source
Changelog
Roadmap
- More QoL features
🤝 Contributing
Issues, pull requests, and suggestions are welcome! Check the GitHub repository for contribution guidelines.
Similar projects
Modpack →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.3MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
26.2MSueta
Chunky
Pre-generates chunks, quickly and efficiently
20.8MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta