All Mods Resource Packs Data Packs Shaders Modpacks Plugins
VeloAuth

VeloAuth

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

VeloAuth

VeloAuth

Modrinth License bStats Complete Velocity authentication plugin with intelligent nickname protection, premium auto-login, secure offline player management, and optional self-contained embedded limbo.

What is VeloAuth?

VeloAuth is a comprehensive authentication system for Velocity proxy that handles all player authorization before they reach your backend servers. It includes a loopback-only embedded limbo while maintaining full compatibility with existing external limbo servers, all while protecting nickname ownership through intelligent conflict resolution.

Live test server

Want to see VeloAuth in action? 2b2t.pl runs the plugin in production — join the server to test premium auto-login, offline registration and nickname protection on a live network.

Key Features

  • 🔒 Intelligent Nickname Protection - Premium nicknames are reserved unless already registered by cracked players.
  • ⚡ Premium Auto-Login - Mojang account owners skip password entry after session verification; auth/limbo passthrough is an opt-in bypass.
  • 🔄 Automatic Nickname Change Detection - Detects when a premium player renames their Mojang account and updates the database record automatically.
  • 🛡️ Secure Offline Auth - BCrypt password hashing, brute-force protection, and atomic first-owner registration enforced by the database.
  • 📱 Optional Floodgate Support - Bedrock and linked Floodgate accounts are detected before Mojang resolution; only UUIDs confirmed by Floodgate can bypass the auth server.
  • 🧩 Optional Self-Contained Limbo - Use the built-in 1.8-base limbo with a reviewed, checksum-pinned ViaVersion runtime, or keep using an external limbo (NanoLimbo, etc.).
  • 🗺️ Forced Hosts Support - Players connect via custom domains (e.g., pvp.server.com) and are properly routed to their intended server after authentication.
  • 🚫 Smart Command Hiding - Authentication commands (/login, /register) are hidden while authorization is active; expired sessions expose them again.
  • 🚀 High Performance - Bounded three-layer premium cache (in-memory → DB → Mojang/Ashcon API), virtual threads (Java 21), and zero blocking on Velocity event loops.
  • 🔐 Optional 2FA (TOTP) - Opt-in RFC 6238 second factor compatible with Google Authenticator, Authy, Aegis. See 2FA.md for the operator handbook.
  • 🔄 Conflict Resolution - Smart handling of premium/cracked nickname conflicts with /vauth conflicts.
  • 📊 Admin & Diagnostic Tools - Health checks, statistics, and 1-click sanitized diagnostic reports via /vauth report (mclo.gs).
  • 🗄️ Multi-Database - MySQL, PostgreSQL, H2, and SQLite with HikariCP connection pooling.
  • 🌍 17 Languages & HEX Formatting - EN, PL, DE, FR, RU, TR, SI, FI, ZH_CN, ZH_HK, JA, HI, VI, KO, TH, ID, PT_BR with full RGB/HEX color support.
  • 🔄 LimboAuth Compatible - 100% database schema compatibility with automatic, additive in-place migrations.
  • 📢 Discord Alerts - Webhook notifications for security anomalies and resolver failure spikes with automated retry logic.

When to use VeloAuth

  • You run a Velocity proxy with one or more backend servers and need authentication at the proxy layer (not per-backend).
  • You accept both premium and cracked players and need automatic, fail-secure routing — premium players skip /login, cracked players go through BCrypt-hashed registration.
  • You already use LimboAuth and want to migrate without losing data — VeloAuth reads and upgrades the same schema seamlessly.
  • You want high performance — premium status is resolved through a three-layer cache without blocking proxy event loops.

If you only run a single backend server (Paper/Spigot/Folia) without a proxy, use a backend-side auth plugin instead.

Operating Profiles

Choose how strict nickname protection should be in plugins/veloauth/config.yml:

Profile 1 — Mixed strict (default, recommended)

premium:
  check-enabled: true
  allow-cracked-on-premium-nicks: false
  bypass-auth-server: false
  • What you get: Premium players auto-login with real Mojang UUIDs; cracked players go through /register + BCrypt; premium nicknames are strictly reserved for Mojang owners.
  • What you lose: Cracked clients trying to join with a registered Mojang username are rejected ("You are not logged into your Minecraft account").
  • Best for: Public servers accepting both types of players where nickname theft prevention matters.

Profile 2 — Cracked-only

premium:
  check-enabled: false
  • What you get: Zero HTTP traffic to Mojang/Ashcon, deterministic offline UUIDs for everyone.
  • What you lose: Premium auto-login is disabled for all players; first player to register a nickname owns it.
  • Best for: Private networks, dev environments, or pure offline-mode setups.

Profile 3 — Permissive mixed

premium:
  check-enabled: true
  allow-cracked-on-premium-nicks: true
  • What you get: Existing premium accounts retain premium UUIDs; cracked players can register unclaimed premium-looking usernames.
  • What you lose: New premium players connecting for the first time receive offline UUIDs permanently if not pre-registered as premium.
  • Best for: Cracked-first communities that prioritize admitting all players without kick screens.
Goal Recommended Profile
Maximum security, premium UUIDs preserved 1 — Mixed strict
No Mojang calls, pure offline network 2 — Cracked-only
Accept all connections, unreserved nicknames 3 — Permissive mixed

Requirements

  • Java 21 or newer (tested on Temurin 21)
  • Velocity Proxy (3.4.0+ / 3.5.x line)
  • Database: MySQL, PostgreSQL, H2 (default), or SQLite
  • Auth Server Topology:
  • External (default): NanoLimbo, LOOHP/Limbo, LimboService, PicoLimbo, or similar.
  • Embedded (optional): Built-in 1.8 loopback limbo (requires outbound HTTPS to ViaVersion maven repo for runtime staging).

Quick Setup

1. Installation

  1. Download the latest veloauth-X.X.X.jar from Modrinth.
  2. Drop it into your Velocity plugins/ folder.
  3. Start and stop Velocity to generate configuration files in plugins/veloauth/.
  4. Configure database details and auth settings in plugins/veloauth/config.yml.
  5. Start Velocity.

2. Velocity Configuration (velocity.toml)

[servers]
limbo = "127.0.0.1:25566"   # External limbo server (keep out of try list!)
lobby = "127.0.0.1:25565"   # Primary backend lobby
survival = "127.0.0.1:25567" # Secondary backend server

try = ["lobby", "survival"]   # Fallback backend order for authenticated players

[forced-hosts]
# Players joining via survival.example.com authenticate in limbo,
# then get routed directly to 'survival' instead of 'lobby'.
"survival.example.com" = ["survival"]

3. VeloAuth Configuration (plugins/veloauth/config.yml)

language: en

auth-server:
  # 'external' (default) uses registered limbo server; 'embedded' starts loopback limbo.
  mode: external
  server-name: limbo
  timeout-seconds: 300
  embedded:
    port: 0 # 0 = auto-select loopback port
    max-connections: 512
    handshake-timeout-seconds: 10
    login-timeout-seconds: 15

premium:
  check-enabled: true
  allow-cracked-on-premium-nicks: false
  # Set to true only if verified premium players should skip the auth-server completely
  bypass-auth-server: false

# Optional Floodgate integration
floodgate:
  enabled: false
  username-prefix: "."
  bypass-auth-server: true

Password Complexity Policy (Optional)

security:
  min-password-length: 8
  max-password-length: 72
  password-policy:
    min-digits: 0       # e.g., 1 = require at least one digit
    min-uppercase: 0    # e.g., 1 = require at least one uppercase letter
    min-lowercase: 0    # e.g., 1 = require at least one lowercase letter
    min-special: 0      # e.g., 1 = require at least one symbol

Commands & Permissions

Player Commands

Command Description Notes
/register <password> <confirm> Register a new account Hidden once logged in
/login <password> Log into your account Available in auth/limbo
/logout Invalidate session & disconnect Clean disconnect; requires /login upon return
/changepassword <old> <new> Update your account password Requires active session
/2fa setup Begin TOTP authenticator setup Requires active session
/2fa verify <code> Confirm TOTP setup or submit 2FA code Standard RFC 6238 TOTP
/2fa disable <code> Remove 2FA from account Requires valid TOTP code
/2fa qr / /2fa status Show 2FA enrollment status Re-enrollment instructions

Admin Commands (veloauth.admin)

Command Description
/vauth reload Reload configuration & language files
/vauth report Upload sanitized diagnostic bundle to mclo.gs
/vauth stats Show runtime cache, thread, and connection stats
/vauth conflicts List active nickname ownership conflicts
/vauth cache-reset [player] Clear premium resolver/auth caches
/vauth 2fa-remove <nickname> Administrative 2FA reset for recovery
/unregister <nickname> Delete account record from database

LimboAuth Migration

VeloAuth features 100% automatic LimboAuth schema migration:

  1. Stop LimboAuth on your backend servers.
  2. Install VeloAuth on your Velocity proxy.
  3. Configure plugins/veloauth/config.yml with the same database credentials.
  4. Start Velocity. Existing accounts and /premium flags will be converted seamlessly on startup without manual UUID rewrites.

Links & Support

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.3 26.2 26.1.x +14
Velocity
6h ago 1
26.2 26.1.x 1.21.x +13
Velocity
6h ago 1
26.2 26.1.x 1.21.x +13
Velocity
6h ago 1
26.2 26.1.x 1.21.x +13
Velocity
6h ago 1
26.2 26.1.x 1.21.x +13
Velocity
6h ago 1
26.2 26.1.x 1.21.x +13
Velocity
6h ago 1
26.1.x 1.21.x 1.20.x +12
Velocity
6h ago 1
26.1.x 1.21.x 1.20.x +12
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
1.21.x 1.20.x 1.19.x +11
Velocity
6h ago 1
[1.6.2] VeloAuth 1.6.2 by rafalohaki on Oct 15, 2026
Download
## **1.6.2** — 2026-10-07

### Added
  • Automatic auth message language detection based on the Minecraft client locale (detect-client-language).

### Fixed
  • Auth reminders now show /login or /register based on account status.
  • Session expiry is enforced before automatic backend transfers.
  • Premium UNKNOWN results are no longer cached as non-premium.
  • Added a Minecraft Services fallback when the Mojang API is unavailable.
  • hit-ttl-minutes: 0 now correctly disables premium cache lookups.
  • Fixed concurrent database initialization, SQLite migration guards, and database shutdown handling.

### Security
  • MySQL defaults to TLS with server identity verification unless SSL is explicitly configured.
  • Authentication command arguments are redacted from diagnostic reports.
  • Safer processing of long log lines.

### Changed
  • Updated dependencies and build tools.
[1.6.1] VeloAuth 1.6.1 by rafalohaki on Oct 15, 2026
Download
## VeloAuth 1.6.1

  • Fixed**
  • Players could miss the register/login instructions on the auth server (#48).
Instructions are now re-sent every 10s until you authenticate, and a failed
database lookup falls back to the generic prompt instead of silence.
  • H2/SQLite database files were created in the proxy root (data/) instead of
the plugin folder (#48). They now live in plugins/veloauth/data/ — existing
files are migrated automatically and safely (never deleted or overwritten).

  • Notes**
  • No changes for MySQL/PostgreSQL setups.
[1.6.0] VeloAuth 1.6.0 by rafalohaki on Oct 15, 2026
Download
## VeloAuth 1.6.0

  • 🔒 Security fix.** Premium players connecting during the startup window — after Velocity opens
its port but before VeloAuth finishes initializing — were let through with no premium check, and
got an offline UUID on proxies with online-mode = false. The window reopened on every restart
and could be timed deliberately: treat it as a name-sniping vector. Queued logins now go through
the full PreLogin pipeline, and are denied if it isn't ready.

  • ⏱️ Rate limits for premium lookups.** A join wave could multiply into far more upstream requests
than lookups, cross Mojang's limit, and turn its 429s into a proxy-wide login outage. New ceilings
under premium.resolver: mojang-requests-per-minute (120), ashcon- / wpme-requests-per-minute
(60), rate-limit-max-wait-ms (1000). Set to 0 to disable.

  • Upgrading.**
Full proxy restart required.
[1.5.1] VeloAuth 1.5.1 by rafalohaki on Oct 15, 2026
Download
fix typo for ip concurrent users
[1.5.0] VeloAuth 1.5.0 by rafalohaki on Oct 15, 2026
Download
## VeloAuth 1.5.0

A major update focused on the new embedded auth/limbo system, stability and security.

### Highlights

  • Added /logout command
  • Added optional premium-player auth server bypass
  • Added built-in embedded auth/limbo with Minecraft 1.8–26.2 support
  • Improved embedded limbo compatibility with modern clients and Velocity forwarding
  • Fixed Minecraft 1.8 keepalive and modern-client loading issues
  • Improved backend routing and prevented duplicate connection attempts
  • Added embedded runtime diagnostics to /vauth report
  • Added privacy-safe bStats metrics
  • Improved shutdown, reconnect and async task handling
  • Multiple runtime verification and security hardening improvements

### Important

  • Requires **Java 21** and **Velocity 3.5-compatible API**
  • Full proxy restart required after updating
  • Default automatic transfer delay is now **1500ms**

[1.4.0] VeloAuth 1.4.0 by rafalohaki on Oct 15, 2026
Download
## VeloAuth 1.4.0

This release focuses on security, compatibility, and message customization.

  • Added complete HEX color support for all player-facing messages.
  • Improved premium/cracked account handling and LimboAuth compatibility.
  • Hardened session cleanup, duplicate connections, and premium lookup limits.
  • Improved 2FA security and prevented enrolled secrets from being exposed again.
  • Made diagnostic reports privacy-safe by default with opt-in log uploads.
  • Added extensive regression tests and general stability fixes.
[1.3.1] VeloAuth 1.3.1 by rafalohaki on Oct 15, 2026
Download


## 🚀 Features

  • VeloAuth & Auth:** Bumped to v1.3.1 with command refactoring, premium auth improvements (4c8a727), and added allow-cracked-on-premium-nicks config (b14c2e5).
  • 2FA / TOTP:** Implemented TOTP service (05c1347) with clickable QR links (3a852f6, 6d741c3). Enhanced privacy by switching to base32 secrets in URLs (de4c205) and simplified the logic by hardcoding the QR endpoint (a7b5608).

## ⚙️ Refactoring & Fixes

  • Database & Logs:** Refactored DB management, improved TOTP replay protection (fca09e7), and renamed record to save in AuditLogService for consistency (0b588d2).
  • Cleanups:** Removed ASCII QR rendering and its dependencies (6d741c3). Hardcoded shutdown/closed messages to English to prevent encoding issues (f9780f0).


[1.2.0] VeloAuth 1.2.0 by rafalohaki on Oct 15, 2026
Download
  • Password complexity policy.** New optional security.password-policy section in config.yml with min-digits, min-uppercase, min-lowercase, min-special counters. All default to 0 (= no constraint), so existing configs keep working unchanged.
  • Discord webhook alerts are now wired.** `. Previously the service existed but was never instantiated.
  • Kick-reason logs are now readable.**
  • Translation updates**
  • Fixes**
[1.1.3] VeloAuth 1.1.3 by rafalohaki on Oct 15, 2026
Download
0745b2f feat: Add conflict mode, timestamp, and original nickname columns to player database operations. (rafalohaki)

09916dd feat: introduce ListenerFactory for listener instantiation and integrate IPRateLimiter cleanup into AuthCache (rafalohaki)

e4e5573 refactor: Encapsulate internal database components by reducing visibility and simplify virtual thread executor management. (rafalohaki)

f2fed46 feat: make premium resolver more resilient by accepting both 204 and 404 for not-found responses and prioritizing explicit offline results over unknown resolver states. (rafalohaki)

4f14efa feat: Enhance brute force protection by tracking failed login attempts per username (rafalohaki)

d2d4ece Add unit and integration tests for database and authentication components (rafalohaki)

964bc85 feat: add command in progress message and improve premium detection logic (rafalohaki)
[1.1.2] VeloAuth 1.1.2 by rafalohaki on Oct 15, 2026
Download
a271307 mandatory update (rafalohaki)
ea37746 refactor: update dependency injection to use Jakarta and improve initialization handling in VeloAuth and AuthListener (rafalohaki)
6aff115 Fix: Prevent premium player UUID corruption by denying pre-login on database errors, update Velocity API, and add a new 'waiting for server' localization message. (rafalohaki)
[1.1.1] VeloAuth 1.1.1 by rafalohaki on Oct 15, 2026
Download
### 🆕 New Features
  • More languages support
  • Comprehensive Floodgate/Bedrock support with Geyser integration

### 🔧 Improvements
  • Complete configuration management overhaul with SettingsLoader
  • Enhanced Discord webhook URL validation
  • Improved credential handling and password key definitions
  • Virtual thread execution for conflict handling and better performance
  • Enhanced error handling across all components
  • Better bcrypt cost and language code validation
  • Dynamic IP rate limiting settings
  • Async IO operations for improved responsiveness

### 🐛 Bug Fixes
  • Enhanced Floodgate username prefix validation and logging
  • Improved premium detection logic in AuthListener
  • Better database health check and connection management
  • Fixed HTTP JSON client parsing and numeric string conversion
  • Improved thread safety with AtomicInteger for brute force tracking
  • Enhanced error message constants and formatting
  • Fixed nickname conflict resolution in PreLoginHandler
  • Better UUID verification with runtime exception handling

[1.1.0] VeloAuth 1.1.0 by rafalohaki on Oct 15, 2026
Download
  • c3371d9 build**: update HikariCP, Jackson, and JUnit dependency versions. (rafalohaki)

  • 20dee59 update instructions** (rafalohaki)

  • 05cdd6f feat**: Implement asynchronous premium resolution during
PreLoginEvent using EventTask and switch AuthCache eviction to LRU. (rafalohaki)

  • d84f1fc version update** (rafalohaki)
[1.0.4] VeloAuth 1.0.4 by rafalohaki on Oct 15, 2026
Download
  • 6d66e1a fix typo (rafalohaki)
  • 89f773e feat: Implement Mojang API failure handling and advanced nickname conflict resolution using UUIDs to prevent name sniping. (rafalohaki)
  • 426883d feat: Introduce configurable session inactivity timeout and enhance login and cache management robustness. (rafalohaki)
  • ca6c940 Merge pull request #10 from rafalohaki/snyk-upgrade-e534f8f3500dbc96aceb8d2e19fe8747 (rafalohaki)
  • 53afcbe . (rafalohaki)
  • 97f0985 . (rafalohaki)
  • 0620904 update rules (rafalohaki)
  • 1ac55a9 fix: upgrade org.postgresql:postgresql from 42.7.8 to 42.7.9 (snyk-bot)
[1.0.3] VeloAuth 1.0.3 by rafalohaki on Oct 15, 2026
Download
some optimizations and code cleanup
[1.0.2] VeloAuth 1.0.2 by rafalohaki on Oct 15, 2026
Download
add Finnish language support for VeloAuth

small translation changes


delete lang folder to regenerate new
[1.0.2] VeloAuth 1.0.2 by rafalohaki on Oct 15, 2026
Download
update to 1.0.2

please regenerate lang folder
[1.0.1] VeloAuth 1.0.1 by rafalohaki on Oct 15, 2026
Download
add bstats,
cleanup code
[1.0.1] VeloAuth 1.0.1 by rafalohaki on Oct 15, 2026
Download
Updated most i18n translations
[1.0.1] VeloAuth 1.0.1 by rafalohaki on Oct 15, 2026
Download
H2 database fix
I was using mainly postgres, my fault i didnt test h2
[1.0.1] VeloAuth 1.0.1 by rafalohaki on Oct 15, 2026
Download
stable update
quality fixes
[1.0.0] VeloAuth 1.0.0 by rafalohaki on Oct 15, 2026
Download
some fixes
[1.0.0] VeloAuth 1.0.0 by rafalohaki on Oct 15, 2026
Download
refactor
[1.0.0] VeloAuth 1.0.0 by rafalohaki on Oct 15, 2026
Download
refactor(logging): add level checks before logging in cache and connection management
VeloAuth Icon
Download VeloAuth
Select game version
Select platform