Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
VoidAuth
Mandatory Authentication Mod for Minecraft 26.1โ26.1.2 | Fabric | Both-Side Install
VoidAuth is a security authentication mod designed for the Minecraft 26.1 series, requiring both server and client installation. Beyond basic login/registration, it architecturally solves long-standing issues in traditional auth mods โ flickering, death-state lockups, and elytra disconnect void traps โ while providing full GUI management, fine-grained permissions, and a developer API.
๐ Quick Start
- Install Fabric Loader 0.19.2+ and Fabric API
- Place VoidAuth in both server and client
modsfolders - Start the server โ config auto-generates at
config/voidauth.json - Players join and type
/voidauth register <password>to register, then/voidauth login <password>each visit - Type
/voidauth helpto see all commands (clickable!)
๐ก Uses JSON storage by default โ zero dependencies, works out of the box. For SQLite/MySQL, just drop the driver jar into the mods folder.
๐ Requirements
| Item | Requirement |
|---|---|
| Minecraft | 26.1 / 26.1.1 / 26.1.2 |
| Java | 25 |
| Fabric Loader | 0.19.2+ |
| Fabric API | 0.145.1+26.1 |
โ ๏ธ Mandatory both-side install โ Clients without VoidAuth will be rejected and prompted to install it.
โจ Unique Features at a Glance
These features are not found in other Minecraft authentication mods:
| # | Feature | One-Liner |
|---|---|---|
| ๐ | 4-Layer Position Lock | Client input freeze + server position sync + move packet intercept + deviation correction โ eliminates flickering and X-ray |
| ๐ | Darkness Anti-Bypass | Darkness effect + forced gamma=0 + F3 screen block โ even Fullbright can't see through |
| ๐ช | Elytra Disconnect Protection | Auto-loads 7ร7 chunks on join, prevents void trap after elytra disconnect |
| ๐ | Death-State Auto-Recovery | Detects death on logout and auto-respawns on rejoin โ no admin intervention needed |
| โฑ๏ธ | Flight Check Grace Period | Configurable grace period after login suppresses fly-hack detection during falling/elytra glide |
| ๐ก๏ธ | BCrypt Truncation Guard | Validates password UTF-8 length โค 72 bytes, closes the silent BCrypt truncation vulnerability |
| ๐ | Sequential Character Detection | Blocks abc/123/cba/321 patterns โ rejects weak passwords |
| ๐ | Admin Audit Log | All admin actions auto-logged, one-click export with timestamp |
| ๐ | Fine-Grained Permission Nodes | 7 independent permission nodes, supports Fabric Permissions API |
| ๐ | Developer API | Callback system + data queries + exception isolation for third-party mod integration |
| ๐ | Auto Migration | Config and data auto-migrate on upgrade or storage type switch |
| ๐ก๏ธ | MySQL Password Protection | Config sync uses placeholder ***, prevents password leak via network |
| โ๏ธ | bcryptCostFactor Validation | Server enforces range 10โ14, prevents DoS via malicious cost factor |
๐ Unique Features in Detail
๐ 4-Layer Position Lock โ Eliminates Login Flickering & X-Ray
Traditional auth mods only intercept move packets server-side, leaving the client free to move โ causing flickering and X-ray. VoidAuth implements four coordinated layers:
- ClientInputMixin โ Freezes all keyboard/mouse input
- tickFreeze() + LockPositionPacket โ Locks client to server-specified position, zero velocity + no gravity + render interpolation lock
- ServerPlayHandlerMixin โ Intercepts all move and vehicle move packets
- ServerPlayerEntityMixin โ Actively corrects position deviation, resets fly-check counters
Key innovation: A dedicated LockPositionPayload network packet syncs the server-side coordinates to the client, preventing block-embedding caused by position desync.
๐ Darkness Anti-Bypass
Traditional mods use Blindness, which Fullbright resource packs easily bypass. VoidAuth uses triple protection:
- Darkness effect โ Cannot be penetrated even with max brightness
- Client gamma forced to 0 โ Locks render brightness during login, restores after
- F3 debug screen blocked โ Prevents coordinate and entity info leaks
โฑ๏ธ Flight Check Grace Period
After login, players may still be falling or gliding with elytra. Traditional mods immediately trigger fly-hack detection and kick them. VoidAuth provides a configurable grace period (flightCheckGracePeriodSeconds) that suppresses flight checks, letting players land safely.
๐ช Elytra Disconnect Protection
When a player disconnects mid-elytra-flight and rejoins, traditional mods leave them stuck in the void (chunks not loaded). VoidAuth proactively loads a 7ร7 chunk area around the player on join.
๐ Death-State Auto-Recovery
Players who die and disconnect get stuck in a "dead" state on rejoin with traditional mods. VoidAuth records the death state on logout and auto-executes respawn on rejoin.
๐ก๏ธ BCrypt 72-Byte Truncation Guard
BCrypt silently truncates passwords beyond 72 bytes. Attackers can exploit this prefix collision to access other accounts. VoidAuth validates UTF-8 byte length and rejects passwords exceeding 72 bytes.
๐ Sequential Character Detection
Beyond requiring letters + digits, VoidAuth detects ascending/descending sequences (e.g. abc, 123, cba, 321) to reject weak passwords.
๐ Admin Audit Log
All admin actions are automatically logged to logs/voidauth-admin.log. Export a timestamped copy with /voidauth exportlog.
๐ Fine-Grained Permission Nodes
| Permission Node | Action |
|---|---|
voidauth.admin.reset |
Reset player password |
voidauth.admin.setpassword |
Force-set password |
voidauth.admin.delete |
Delete player account |
voidauth.admin.list |
View player list |
voidauth.admin.reload |
Reload config |
voidauth.admin.config |
Modify config |
voidauth.admin.exportlog |
Export admin log |
Falls back to OP check when Fabric Permissions API is not installed.
๐ Developer API & Callback System
VoidAuthAPI.registerCallback(new AuthCallbackAdapter() {
@Override
public void onAuthenticated(UUID uuid) { /* Login success */ }
});
Set<UUID> authenticated = VoidAuthAPI.getAuthenticatedPlayers();
Optional<PlayerData> data = VoidAuthAPI.getPlayerData(uuid);
AuthCallbackAdapterprovides empty implementations for selective override- Callback exceptions are auto-isolated โ one failing callback won't affect others
๐ Auto Migration
- Config: Automatic version migration on mod upgrade โ no lost settings
- Data: Automatic migration when switching storage type (JSON โ SQLite โ MySQL)
๐ก๏ธ MySQL Password Protection
Config sync packets replace the MySQL password with ***. The server only updates the password when the client sends a non-empty, non-placeholder value.
โ๏ธ bcryptCostFactor Validation
Server enforces BCrypt cost factor range 10โ14, preventing DoS via maliciously high values.
๐ฎ Full Feature List
Player Commands
| Command | Description | Click Behavior |
|---|---|---|
/voidauth login <password> |
Login | Fills command, type password |
/voidauth register <password> |
Register | Fills command, type password |
/voidauth info |
View personal info | Click to execute |
/voidauth changepassword |
Open change password GUI | Click to execute |
/voidauth email |
Open email management GUI | Click to execute |
/voidauth unregister |
Delete account (requires confirmation) | Fills command, confirm after prompt |
/voidauth help |
Show help menu | Click to execute |
Admin Commands
| Command | Description | Permission | Click Behavior |
|---|---|---|---|
/voidauth reset <player> |
Reset player password | voidauth.admin.reset |
Fills command, type player name |
/voidauth setpassword <player> <password> |
Force-set password | voidauth.admin.setpassword |
Fills command, type name & password |
/voidauth list [page] |
View registered players | voidauth.admin.list |
Click to execute |
/voidauth delete <player> |
Delete player account | voidauth.admin.delete |
Fills command, type player name |
/voidauth reload |
Reload config | voidauth.admin.reload |
Click to execute |
/voidauth config |
Open config GUI | voidauth.admin.config |
Click to execute |
/voidauth exportlog |
Export admin log | voidauth.admin.exportlog |
Click to execute |
๐ก All commands in the help menu are clickable. Commands requiring parameters auto-fill into the chat bar.
GUI Screens
- Login Screen โ With countdown timer, auto-kick on timeout
- Register Screen โ Optional email binding during registration
- Change Password Screen โ Old + new + confirm password fields
- Email Management Screen โ Bind / change / unbind modes
- Config Management Screen โ Visual editor for all settings
- Account Management Screen โ Unified entry point
Security
- BCrypt password hashing (configurable cost factor 10โ14)
- Password strength validation (min 6 chars + letters & digits + sequential char detection + 72-byte cap)
- Login failure lockout (configurable attempts & duration)
- Same-IP auto-login (configurable validity period)
- Account deletion with confirmation + effect cleanup + data purge
Data Storage
| Storage | Description | Dependency |
|---|---|---|
| JSON | Default, zero-dependency | None |
| SQLite | For small-medium servers | Install sqlite-jdbc in mods folder |
| MySQL | For large servers / multi-server | Install mysql-connector-j in mods folder |
Data auto-migrates when switching storage type. Falls back to JSON with a warning if driver is missing.
๐ง Optional Dependencies
| Dependency | Purpose | Installation |
|---|---|---|
| sqlite-jdbc | SQLite storage | Place jar in mods folder |
| mysql-connector-j | MySQL storage | Place jar in mods folder |
| Fabric Permissions API | Fine-grained permissions | Place in mods folder |
Auto-fallback to defaults (JSON storage + OP permission check) when not installed. Core features unaffected.
โ๏ธ Configuration
| Setting | Default | Description |
|---|---|---|
loginTimeoutSeconds |
120 | Login timeout (seconds) |
maxPasswordAttempts |
5 | Max password attempts |
lockDurationMinutes |
30 | Account lock duration (minutes) |
bcryptCostFactor |
10 | BCrypt cost factor (10โ14) |
ipAutoLoginEnabled |
true | Enable same-IP auto-login |
ipAutoLoginDurationHours |
24 | Auto-login validity (hours) |
storageType |
json | Storage type (json/sqlite/mysql) |
flightCheckGracePeriodSeconds |
30 | Flight check grace period (seconds) |
mysqlHost |
localhost | MySQL host |
mysqlPort |
3306 | MySQL port |
mysqlDatabase |
voidauth | MySQL database name |
mysqlUsername |
root | MySQL username |
mysqlPassword |
MySQL password | |
mysqlPoolSize |
5 | MySQL connection pool size |
๐ Developer API
// Add dependency
dependencies {
modImplementation "com.voidauth:voidauth:1.0.0"
}
// Register callback
VoidAuthAPI.registerCallback(new AuthCallbackAdapter() {
@Override
public void onAuthenticated(UUID uuid) { /* Login success */ }
});
// Data queries
Optional<PlayerData> data = VoidAuthAPI.getPlayerData(uuid);
Set<UUID> authenticated = VoidAuthAPI.getAuthenticatedPlayers();
boolean isAuth = VoidAuthAPI.isAuthenticated(uuid);
โ FAQ
Q: Can players join without VoidAuth installed? A: No. Clients without VoidAuth are rejected and prompted to install it.
Q: Do I need to login in singleplayer? A: No. The host player auto-authenticates in singleplayer (including LAN).
Q: How do I switch storage type?
A: Change storageType in config/voidauth.json and restart. Existing data auto-migrates.
Q: What if I forget my password?
A: Admins can use /voidauth reset <player> to reset it.
Q: Which Minecraft versions are supported? A: 26.1, 26.1.1, and 26.1.2. Not compatible with older versions.
๐ License
ยฉ 2025 VoidAuth. All Rights Reserved.
This mod is closed-source software. All rights are reserved. Without prior written authorization from the author, the following are prohibited:
- Decompiling, reverse engineering, or disassembling this software
- Modifying, adapting, or creating derivative works
- Distributing, re-licensing, or selling the source code of this software
- Removing or altering any copyright notices in this software
Users are granted a non-exclusive, non-transferable license to install and use this software solely for personal, non-commercial purposes.


