All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Hand Shaker

Hand Shaker

by Suskese • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

⚠️ This project requires to be set up on both sides, client and server side ⚠️

🤝 HandShaker 7.0.0 (alpha) Wiki is there!

Modrinth CurseForge Paper Purpur Wiki Fabric API Neo Forge


📋 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
🔐 Per-Mod Configuration Individually set mod allowance to Required, Allowed, or Blacklisted
🚫 Customizable Enforcement Configurable kick messages and auto-ban capabilities
📊 Player History Database Store and query player mod histories
👀 Player Mod Viewing Administrators can see other players' mod lists
✔️ Integrity Verification 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 ✅ 6.x+
⚠️ 3.x - 5.x
✅ 6.x+
⚠️ 3.x - 5.x
✅ 6.0.0+
Configurable Rules ✅ 6.0.0+ ✅ 6.0.0+ ✅ 6.0.0+
Database Storage ✅ 5.0.0+ ✅ 5.0.0+ ✅ 6.0.0+
GeyserMC/Floodgate ✅ 5.2.0+ ✅ 5.2.0+ ❌
Permissions ✅ 5.0.0+ ✅ 5.0.0+ ❌
Folia Compatibility ✅ 6.0.0+ ❌ ❌
Clickable text in chat ✅ ❌ ❌

🚀 Quick Start

Commands

Installation

  1. 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
  2. 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 ✅ Supported N/A N/A
Paper 1.21+ ✅ Supported N/A N/A
NeoForge 1.21 - 1.21.10, 1.21.11 ✅ Supported 1.20.1 Planned

📚 Documentation


Roadmap

  • More QoL features

🤝 Contributing

Issues, pull requests, and suggestions are welcome! Check the GitHub repository for contribution guidelines.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.3 26.2 26.1.x +1
Folia Paper Purpur
1d ago 1
26.3 26.2 26.1.x
Fabric
1d ago 1
26.3 26.2 26.1.x
Neoforge
1d ago 1
26.1.x 1.21.x
Folia Paper Purpur
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
26.1.x
Fabric
1d ago 1
26.1.x
Neoforge
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Folia Paper Purpur
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Folia Paper Purpur
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Folia Paper Purpur
1d ago 1
1.21.x
Paper Purpur
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Paper Purpur
1d ago 1
1.21.11
Fabric Paper Purpur
1d ago 1
1.21.x
Fabric Paper Purpur
1d ago 1
1.21.11
Fabric Paper
1d ago 1
1.21.x
Fabric Paper
1d ago 1
1.21.x
Fabric Paper
1d ago 1
1.21.x
Fabric Paper
1d ago 1
1.21.x
Fabric Paper
1d ago 1
1.21.x
Fabric Paper
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Paper
1d ago 1
1.21.x
Fabric Paper
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Paper
1d ago 1
1.21.x
Fabric Paper
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Paper
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.x
Paper
1d ago 1
1.21.10
Fabric
1d ago 1
1.21.9
Paper
1d ago 1
1.21.9
Fabric
1d ago 1
1.21.8
Paper
1d ago 1
1.21.8
Fabric
1d ago 1
## This version is not compatible with previous alpha

### Core updated to 1.0.5
  • Improved security
  • Fixed DB always used time zone UTC-0
  • Fixed handshaker-enforcement: false
  • Added hwid hash fingerprint to core module for other projects (Placeholder, doesnt do and will not do anything for HandShaker except sending hashed hwid to server on join. If you want, you make own logic that will catch hwid from logs and ban users with same hwid)

### Paper
  • (Experimental) Added /handshaker gui

  • Fixed issue with bedrock player being kicked out
  • Fixed critical issue
  • fixed velton triggering actions second time
# v6.0.0 - Road to Modularity & Improvements
  • Starting from this version, Hand-Shaker will slowly start to become more modular and more customizable.**

> **v6.0.0 ISN'T BACKWARDS COMPITIABLE WITH OLDER SERVER OR CLIENTS DUE BIG REWRITES AND SECURITY IMPROVEMENTS**

## New config system

  • Json file was big mistake but in 6.0.0 yml files are back (even for fabric). Instead of 1 config file, its splited into multiple yml files with comments. Added support for user created messages.**

### Actions

  • Actions is new way to custom actions for each mod, stored inside mods-actions.yml, and then adding then adding actions to the any mod to run if detected**

### Config migration (Beta)

  • New feature of converting v3 configs (v5.x+) to convert into new format of configs**

### New configs

  • New configs to disable database, enable/disable lists to disable them without deleting mods from lists**
[More info here](https://github.com/suskese/Hand-Shaker/wiki/Configuration#600)

## Improved integrity

## Commands

  • Reorganized commands under sub-commands manage, info, manage, mode.**
[More info here](https://github.com/suskese/Hand-Shaker/wiki/Commands)

## Neoforge & Folia support
# GeyserMC/Floodgate Support (Experimental)

Added config "allow_bedrock_players" for new generated configs (manually can be also added) to allow bedrock players to bypass "Hand Shaker" verification

>NOTE:
> It Should work on Both Paper/Fabric, But Fabric server must be Vanilla friendly (Only server-side mods, No big mods).
> This mod wont with a magic allow bedrocks players to join heavy-moded server

# Fixed Issues

  • Fixed issue with crashes caused by missing "client" part
  • Fixed fabric server for 1.21.11 missing permission for commands
  • Fixed that even settings Behavior to Vanilla players would been still checked for Integrity and blacklisted/required mods
Works with v3.x+ Servers

Fixed crash on game start caused by misconfiguration of fabric-mod.json

Can be fixed by editing

"client": [
"me.mklv.HandShaker"
]

to



"client": [
"me.mklv.handshaker.HandShaker"
]


# Limited version ranges (v5.1 Release for 1.21 & 1.21.1)

This is only a technical change related to fabric servers, but because of that, Fabric and paper got splitted away due fabric server-side and dependecy for fabric servers changing code over versions and implementing new features for mod fully broke 5.x version of mod (Fabric server only) meanwhile client-side and paper works perfect.

From this patch/announce instead of universal files would be fully seperated and wont include big range of versions due Fabric servers and sadly I cant split client and server because then it could lead to confusions for modpack creators who will copy paste from clients mods folder
Fabric Client and Server for 1.21.6 to 1.21.10
Fabric Client and Server for 1.21 to 1.21.5
Standalone plugin
## **Fixed plugin crash on UNIX servers (Linux/Mac OS)**
  • Fixed missing HikariCP on UNIX
[5.1.0-1.21] 5.1.0-1.21 by Suskese on Oct 12, 2026
Download
## **Fixed plugin crash on UNIX servers (Linux/Mac OS)**
  • Fixed missing HikariCP on UNIX
### General
  • Fixed Fabric server crash on 1.21.11 version. For client/paper you can use any 5.0.0-1.21 or 5.0.0-1.21.11, but since 5.0.0-1.21 fabric server crashed I couldn't add 1.21.11 version tag to 5.0.0-1.21 release.
  • This version is only for 1.21.11

> ### 5.0.0-1.21.x is partially working on 1.21.11, because Fabric server crashes on join. This will be fixed in 5.0.0-1.21.11

### General
  • Removed old config v1 support (No backwards compatible with configs from 3.0.0 and lower)
  • You can set "action" for every mod to choose to auto BAN or simply warn player by KICK (default)
  • Added Ignore list to hide mods from appearing during adding mods to blacklist and etc
  • Changed config structure
  • Added local database for storing player mods for easier detecting which mods were used by who.
  • Added new commands /handshaker info (mod) and /handshaker ignore add|list|remove <mod>
  • Updated command player now shows date next to mod
  • Added handshaker.bypass permission

### Paper Server
  • Paper now uses .json config to match config from Fabric server
  • Updated command player now shows date when hovered over mod
### Fabric server

Fixed critical issue
### Fixed
Fabric server generates both new and old config strings
### Server
(Paper) Added back /handshaker player <player> [mods] [status]

(Paper & Fabric) Added support for [(Alpha) Velton](https://modrinth.com/project/velton)

### Client

Client mod is still backwards compatible
### Updated to support all server-side improvements
### [Wiki is there!](https://github.com/suskese/hand-shaker/wiki)
### Reworked config file
  • Removed blacklisted mods, whitelisted mods, operation mode settings, now replaced with mods, default mode, making possible to set allowance per mod
### Removed Commands
  • /handshaker mode because its not needed anymore
  • /handshaker whitelist_update because its not needed anymore
### Added commands
  • /handshaker list lists all mods from config with their allowance statuses
  • /handshaker change changes mod allowance status
### Reworked commands
  • /handshaker player (Paper) prints player mods in the chat Mod [allowance status] [A] [R] [B], Fabric stays as command
  • /handshaker add now supports * to list all mods and status to make mods as allowed/required/blacklisted
### Improved security
  • Now mods and integrity are being sent together and are being unique
Signed to work with "Integrity":"Signed"

### Fabric Server

  • Whitelist mode:** to add whitelisted mods use configs or /handshaker whitelist_update <player> to update whitelist based on mod list and then /handshaker mode whitelist to turn on.

  • Integrity:** Version 3.0.0 now has config "Integrity" with variables "Signed" or "Dev", if set to "Signed" only signed, unmodified handshaker clients, are allowed to join. Meanwhile "Dev" allows un-signed/modified handshaker. To allow 2.x clients to join on server with 3.x you must set "Dev"

### Client should work with older version of servers
  • Whitelist mode:** to add whitelisted mods use configs or /handshaker whitelist_update <player> to update whitelist based on mod list and then /handshaker mode whitelist to turn on.

  • Integrity:** Version 3.0.0 now has config "Integrity" with variables "Signed" or "Dev", if set to "Signed" only signed, unmodified handshaker clients, are allowed to join. Meanwhile "Dev" allows un-signed/modified handshaker.

### To allow 2.x clients to join on server with 3.x you must set Integrity to "Dev"
Universal Jar for Fabric Client/Server and paper
# Changes for Hand Shaker 2.0.0 Fabric
## (New) Fabric Server Support
  • Custom kick message for non-mod users.
  • Config Behavior with variables Strict - Allow only clients with mod and Vanilla - Allow Vanilla/Other clients too
  • Ability to block mods from other user mod lists
## Compatibility
Should work with 1.0.0 paper plgin version, but if anything happens update to server side plugin too. 1.0.0 fabric is no longer supported
## Changes for Hand Shaker 2.0.0 paper
  • Custom kick message for non-mod users.
  • Alias command /hs
  • Fixed and renamed config kick mode to Behavior with variables Strict and Vanilla, (kick mode: Fabric -> Behavior: Vanilla and kick mode: All -> Behavior: Strict )
  • Ability to block mods from other user mod lists
  • Instant kick, previously changes only took effect on user rejoin

## Compatibility
Should work with 1.0.0 client mod version, but if anything happens update to client mod too. 1.0.0 paper is no longer supported
Hand Shaker for Fabric 1.21.x (1.21 - 1.21.10)
New version syntex

To make less confusions with version naming it has to be changes to {mod version} - {Minecraft version} {platform}
New version syntex and 1.21.10

To make less confusions with version naming it has to be changes to {mod version} - {Minecraft version} {platform}
Hand Shaker Icon
Download Hand Shaker
Select game version
Select platform