Compatibility
Minecraft: Java Edition
26.3
26.2
26.1
1.21.6–1.21.11
Platforms
Tags
Creators
Details
Licensed MIT
Published 2 days ago
Updated 4 days ago
PinGuard
PinGuard is a lightweight login system for vanilla Minecraft servers — no mods, no plugins, just a data pack.
It's made for offline-mode (cracked) servers, where anyone can join with any nickname. PinGuard makes every player register a PIN code and enter it each time they join, so nobody can play under someone else's name.
✨ Features
- 🔐 Register & log in with a PIN (4–9 digits) in a clean pop-up window — no chat commands to type
- 🧊 Frozen until logged in — unauthorized players are put in spectator mode, can't move, see or interact
- 📍 Nothing is lost — after login the player returns to their exact position, dimension, view direction and game mode
- 🔁 Change your PIN anytime via Esc → Account
- 🌍 10 languages, chosen by each player: English, Українська, Русский, Polski, Deutsch, Español, Français, Português, Türkçe, 简体中文
- 🛡️ Brute-force protection — 5 wrong attempts → 60-second lockout, admins get notified
- 🧂 PINs are never stored as plain text — only salted hashes
- 🤫 Clean chat — hides the "Triggered [...]" message
📦 Installation
- Download the version that matches your Minecraft version
- Put the
.zipintoworld/datapacks/ - Restart the server (or run
/reload)
That's it — players will see the registration window on their next join.
🛠️ Admin commands
| Action | Command |
|---|---|
| Get admin notifications | /tag <player> add auth.admin |
| Reset a player's PIN (online) | /execute as <player> run function auth:admin/reset |
| Reset a player's PIN (offline) | /scoreboard players reset <player> auth.reg |
| Unlock everyone before removing the pack | /function auth:admin/uninstall |
⚠️ Limitations (please read)
Vanilla data packs have hard limits, so be aware:
- Digits only. Vanilla can only pass numbers from a dialog to a data pack, so PINs are 4–9 digits — no letters.
- No asterisks. The input field shows the digits while typing (vanilla dialogs don't support hidden input).
- Disables command feedback. To hide the "Triggered" message, the pack turns off the
send_command_feedbackgame rule for the whole server. Error messages still show. You can turn it back on with/gamerule send_command_feedback true(orsendCommandFeedbackbefore 1.21.11). - Doesn't block commands. If someone joins with an operator's nickname, they can still run OP commands before logging in. On offline-mode servers, don't give OP to names others could use — or use a whitelist.
- Not a replacement for online mode. If your server can run in online mode, that's always more secure.
📋 Requirements
- Minecraft Java Edition 1.21.6 or newer (dialogs were added in 1.21.6)
- Works on any server that supports data packs: vanilla, Aternos, Paper, Fabric, etc.
- Players don't need to install anything


