
Best login security using pin code

🔐 The most stylish authentication plugin for Minecraft.
A 6-digit PIN system with a fully interactive GUI numpad, custom number-head skulls, IP tracking, BungeeCord support, and total account security — all in one.
| 🔐 Login GUI | 📋 Register GUI | ⚙️ Change PIN |
|---|---|---|
| Number-head numpad with live PIN display | Clean 6-slot register flow | Two-step old → new PIN change |
0–9, each with a unique number skin● dots)/maskauth ipinfo <player> to view a player's complete IP history/register <pin> — register with a 6-digit PIN via chat/login <pin> — authenticate via chat commandconfig.ymlconfig.yml& color code support1. Download MaskAuth-1.0.0.jar
2. Drop it into your /plugins/ folder
3. Restart your server
4. Configure plugins/MaskAuth/config.yml
5. ✅ Done!
Requirements: Spigot or Paper 1.20.x · Java 11+
| Command | Description | Permission |
|---|---|---|
/register |
Open register GUI (or /register <pin> legacy) |
— |
/login |
Open login GUI (or /login <pin> legacy) |
— |
/changepin |
Change your PIN via GUI | — |
/unregister <player> |
Delete a player's auth data | maskauth.admin |
/maskauth reload |
Reload the config | maskauth.admin |
/maskauth status |
View live auth status | maskauth.admin |
/maskauth ipinfo <player> |
View player IP history | maskauth.admin |
/maskauth info |
Plugin version info | maskauth.admin |
| Permission | Description | Default |
|---|---|---|
maskauth.admin |
Full admin access | OP |
maskauth.bypass |
Skip authentication entirely | false |
maskauth.ipbypass |
Bypass IP account limit | false |
settings:
session-timeout: 0 # Seconds to remember login (0 = off)
max-attempts: 5 # Wrong PIN attempts before kick
login-timeout: 60 # Seconds to authenticate before kick
blind-on-join: true # Apply blindness until authenticated
freeze-movement: true # Freeze player until authenticated
hide-until-auth: true # Hide player from others until auth
auth-world:
enabled: true
world: "world"
spawn: { x: 0.5, y: 64.0, z: 0.5 }
legacy-support:
enabled: true # Allow /login <pin> and /register <pin>
ip-settings:
max-accounts-per-ip: 3
track-ip-history: true
alert-admins-on-new-ip: true
bungeecord:
enabled: false
is-auth-server: false
forward-server: "lobby"
gui:
register-title: "&8🔐 &bMask&3Auth &8» &7Register"
login-title: "&8🔐 &bMask&3Auth &8» &7Login"
mask-display: true # Show ● instead of actual digits
┌─────────────────────────────────────────────────────┐
│ [●] [●] [●] [○] [○] [○] ← PIN display (6 slots) │
│─────────────────────────────────────────────────────│
│ [ 7 ] [ 8 ] [ 9 ] [ ⌫ ] ← Number skulls │
│ [ 4 ] [ 5 ] [ 6 ] [ ] │
│ [ 1 ] [ 2 ] [ 3 ] [ ✔ ] ← Confirm │
│ [ 0 ] [ ] │
└─────────────────────────────────────────────────────┘
Each number is a custom player head with digit skin
Player enters PIN via GUI
↓
SHA-256( UUID + "::maskauth::" + PIN )
↓
Stored hash compared — raw PIN never saved
↓
✅ Match → Authenticated ❌ No match → Attempt recorded
Salting with the player's UUID means two players with the same PIN have completely different stored hashes.
Player data is stored in plugins/MaskAuth/data/players.yml:
players:
<uuid>:
name: "Steve"
hashed-pin: "a3f5c8..." # SHA-256 hash — never plaintext
registered-ip: "192.168.1.1"
registered-at: 1700000000000
ip-history:
192_168_1_1: 1700000000000
10_0_0_5: 1700005000000
bungeecord.enabled: true in config.ymlis-auth-server: true on your auth serverforward-server: "lobby" to your main server name| Platform | Status |
|---|---|
| Spigot 1.20.x | ✅ Supported |
| Paper 1.20.x | ✅ Supported |
| BungeeCord | ✅ Supported |
| Velocity | ⚠️ Untested |
| Spigot 1.18–1.19 | ⚠️ May work |
Found a bug or have a feature request?
💬 Discord:
allay_gaming_x
🐙 GitHub: @ALLAY-XD-20
Copyright © 2024 Pawan (ALLAY-XD-20)
All Rights Reserved.
This software and its source code are the exclusive property of Pawan.
Unauthorized copying, modification, distribution, sublicensing, or
commercial use of this software, in whole or in part, is strictly
prohibited without express written permission from the author.
You may NOT:
• Redistribute this plugin or its source code
• Modify and re-upload as your own
• Use in commercial products without permission
• Claim authorship or ownership
You MAY:
• Use this plugin on your personal or public Minecraft server
• Report issues and suggest features via GitHub
For licensing inquiries, contact via Discord: allay_gaming_x
⚠️ ALL RIGHTS RESERVED (ARR) — Pawan © 2024