COWMODSКаталог модов

VelocityNavigator

Smart lobby routing and failover for Velocity networks. Nine load-balancing modes, circuit breakers, sticky sessions, Java + Bedrock server selectors, parties and queues. One jar for proxy and backend.

1,5 тыс.17обновлён 18 окт. 2026 г.
УправлениеТранспортУтилиты

Описание

VelocityNavigator

VelocityNavigator banner

High-performance lobby routing, native visual selectors, self-healing circuit breakers, zero-dependency NPCs, and practical proxy operations for modern Velocity networks.

VelocityNavigator takes the guesswork out of proxy load balancing. Instead of blindly cycling connections, it continuously evaluates backend health, server capacity, maintenance windows, drain states, lifecycle status, and geographic latency before routing a single player.

Whether running a two-lobby community or a multi-proxy enterprise network with dozens of regional backends, VelocityNavigator delivers resilient, explainable routing that scales effortlessly.

Universal Single-JAR Architecture: Install the exact same JAR on your Velocity proxy and on any Paper, Spigot, or Folia backend where you want NPCs, YAML menus, Java inventory selectors, PlaceholderAPI values, or backend Redis registration. Zero separate bridge plugins required.


1. Intelligent Lobby Routing & Balancing

Intelligent lobby routing

Simple round-robin routing breaks in production networks. Disconnections, player grouping, and varied server hardware create severe load imbalances. VelocityNavigator provides nine specialized routing strategies designed for real-world proxy architectures:

  • Power of Two Choices (power_of_two): The modern industry standard for distributed load balancing. Selects two candidate lobbies at random and routes to the one with lower load. Mathematically eliminates herd behavior and load skew without requiring global locks.
  • Least Players (least_players): Routes new connections directly to the lobby with the fewest online players. Ideal for ensuring new players land in active, populated environments.
  • Weighted Round Robin (weighted_round_robin): Distributes traffic proportionally across backends according to assigned server weights. Perfect for mixed hardware deployments (e.g. directing 3x more players to a 64GB dedicated node than an 8GB VPS).
  • Consistent Hashing (consistent_hash): Uses a Ketama hash ring with virtual nodes to consistently map player UUIDs to specific backends. Provides deterministic routing while smoothly re-distributing only a fraction of keys when servers are added or removed.
  • Latency-Aware Ping Routing (latency / ping): Actively evaluates round-trip ping to each backend and assigns incoming players to the lowest-latency responsive node.
  • Least Connections (least_connections): Scores servers using smoothed player counts and recent connection rates to distribute burst traffic.
  • Geo-Location Routing (geo): Automatically routes international players to regional backend clusters based on player country and continent codes. Supports MaxMind GeoLite2, IP-API, and native GeoRestrict integration.
  • Sequential Round Robin (round_robin): Strict cyclic distribution across all healthy candidate backends.
  • Uniform Random (random): Pure random distribution across available healthy lobbies.

Sticky Sessions & Player Affinity

Returning players hate being thrown into a random lobby every time they switch worlds. VelocityNavigator provides configurable player affinity:

  • Remembers a player's previous lobby within a configurable time window.
  • Automatically routes players back to their familiar lobby upon reconnecting.
  • Fully persistent across proxy restarts with atomic on-disk storage.
  • Instant expiration bypass when the preferred lobby is full, draining, or undergoing maintenance.

Live Route Explanations

Need to diagnose why a player routed to a specific lobby? Run /vn debug player <username> to view the real-time routing trace: candidate pool discovery, filter rules (health, capacity, drain, maintenance, affinity), scoring calculations, and the selected winner.


2. Resilient Self-Healing & Circuit Breakers

Resilient routing and circuit breakers

When a backend crashes or suffers severe TPS drops, standard proxies leave players waiting on timeout screens. VelocityNavigator acts as a self-healing traffic manager with enterprise-grade defensive systems:

  • Three-State Circuit Breaker (CLOSED ➔ OPEN ➔ HALF-OPEN): Each registered backend server maintains an independent circuit breaker. When connection failures or ping timeouts exceed your configured threshold, the circuit trips OPEN, instantly cutting off player routing to that server before players experience connection freezes. After a cool-down window, it enters HALF-OPEN to test server health with canary connections before resuming full traffic.
  • Exponential Backoff with Jitter: When disconnected backends recover, reconnect attempts back off progressively with pseudo-random jitter. This prevents the devastating "thundering herd" effect where hundreds of players flood a recovering server simultaneously.
  • Continuous Multi-Vector Health Checks: Active ping checks, TCP socket verification, MOTD query checks, and backend bridge heartbeats keep proxy state continuously synchronized with real server conditions.
  • Zero-Downtime Drain System (/vn drain <server>): Safely take lobbies offline without kicking active players. Draining servers immediately stop receiving new joins and /lobby transfers while existing players finish their games. Once player count reaches zero, maintenance can be performed safely.
  • Empty Lobby Fallbacks: If every lobby in a pool becomes unreachable, VelocityNavigator gracefully directs players to a configured fallback server or provides a friendly, localized disconnect notice instead of an unformatted network exception.

3. Unified Visual Selectors

Deliver a consistent navigation experience across every Minecraft client platform:

Native Java dialog selector

Java inventory selector

Bedrock form selector

  • Native Java Dialogs (Minecraft 1.21.6+ & Paper 1.21.7+):
    • Clean, modern native client dialog interfaces for lobby selectors, party management, authentication, and backend YAML menus.
    • Zero chest inventory clutter or item flickering: lobbies appear as native dialog buttons with pagination and hover tooltips.
    • Configurable UI modes (auto, dialog, inventory, sign, command, chat) with seamless automatic fallbacks for older clients and backends.
    • Built-in security with expiring, single-use action tokens bound to the player session.
  • Java Chest Inventory GUI:
    • Multi-page pagination with customizable row sizes (1–6 rows).
    • State-aware item presentation: configure distinct materials, display names, and lore for Open, Full, Draining, Maintenance, and Offline lobbies.
    • Live player counts, capacity counters, and dynamic lore placeholders.
    • Automatic GUI refresh intervals so player counts stay accurate while menus remain open.
    • Cryptographic token validation to prevent slot injection and click-spoofing attacks.
  • Native Bedrock / Geyser Form:
    • Clean, native Floodgate/Geyser dialog forms designed specifically for touch and controller navigation.
    • Displays server display names, live player counts, descriptions, and custom icon images.
    • Direct server switching on button press without clunky Java GUI emulation.
  • Interactive MiniMessage Chat Selector:
    • Lightweight, zero-GUI text selector accessible from any client.
    • Formatted with rich MiniMessage styling, hover tooltips showing server details, and single-click connection commands.
  • One Server Configuration for All Selectors:
    • Define server metadata once in your configuration: display_name, description, menu_order, and show_in_menu. Changes immediately synchronize across Native Dialogs, Java Inventory, Bedrock Forms, and Chat selectors.

4. Zero-Dependency Backend Bridge & NPCs

Universal JAR architecture

Interactive NPCs in-game

Unlike other proxy navigators that require separate Spigot plugins, protocol hacks, or heavy dependencies like Citizens, VelocityNavigator is completely self-contained:

  • Single Universal JAR: The exact same JAR file placed on Velocity runs on Paper, Spigot, and Folia backends.
  • Zero-NMS Packet NPCs:
    • Spawn lightweight, high-performance NPCs on backend servers without version-locked NMS code.
    • Compatible across Paper 1.16.5 through 26.3 and Folia out of the box.
    • Fetch custom player skins by username or Mojang texture properties.
    • Configure flexible click actions: connect to a server, open a custom menu, or execute proxy/backend commands.
    • Manage NPCs in-game with /vn npc create <id> <name>, /vn npc skin <id> <player>, and /vn npc delete <id>.
  • Backend YAML Menus (plugins/VelocityNavigator/menus/*.yml):
    • Build full custom inventory menus on backends without third-party GUI plugins.
    • Configurable slot grids, materials, custom model data, skull owners, and sounds.
    • Multi-action execution: server transfer, commands, broadcast messages, submenus, pagination, and close.
  • PlaceholderAPI Bridge:
    • Access real-time proxy values on any backend: %velocitynavigator_lobby%, %velocitynavigator_party_leader%, %velocitynavigator_party_size%, %velocitynavigator_server_status_<server>%, and %velocitynavigator_queue_position%.

5. Built-in Proxy Systems & Social Features

Built-in proxy systems

VelocityNavigator includes production-ready networking tools that eliminate the need for bloated third-party add-ons:

  • Capacity Queue System:
    • Never turn players away during player spikes. When all routed lobbies reach capacity, players enter a graceful queue in a designated holding server.
    • Displays dynamic actionbar and title countdowns with live queue position and estimated wait time.
    • Priority bypass permissions (velocitynavigator.queue.priority) for VIPs and staff.
  • Cross-Server Party System:
    • Complete party management: /party create, /party invite <player>, /party join, /party leave, /party kick, and /party disband.
    • Leader Follow: When the party leader switches lobbies or minigames, all online party members are automatically transferred together.
    • Private cross-proxy party chat (/party chat <message>) and open/invite-only party toggles.
  • Network & Per-Server Maintenance:
    • Toggle network-wide maintenance or lock individual backends (/vn maintenance set <server> true).
    • Custom kick reasons with rich MiniMessage and color formatting.
    • Permission-based bypass (velocitynavigator.bypass.maintenance) for administrative testing.
    • Dynamic MOTD integration showing maintenance badges and countdowns.

6. Multi-Proxy Clustering & Redis Sync

Running multiple Velocity proxies behind a BGP Anycast IP or DNS round-robin? VelocityNavigator provides built-in distributed clustering via Redis:

  • Cross-Proxy Health & Circuit Synchronization: Circuit breaker trip states and backend health snapshots synchronize in milliseconds across every proxy node.
  • Cluster-Wide Player Affinity: Sticky sessions persist across proxies, ensuring returning players connect to the correct lobby regardless of which proxy receives their connection.
  • Dynamic Server Registration: Backends can announce themselves dynamically over Redis Pub/Sub, registering with proxy pools on boot and unregistering on shutdown without editing proxy configuration files.
  • Authenticated & Channel-Isolated: Secure Redis authentication with configurable channels and key prefixes for multi-network environments.

7. Security & Authentication Engine

Defensive design and security

Protect your proxy network with modern defensive security:

  • Argon2id Password Hashing: Uses fixed costs of 64 MiB memory, three iterations, and four lanes. Verifies legacy salted SHA-256 credentials and upgrades them after a successful login when Argon2id is configured.
  • Brute-Force Rate Limiting: Per-account failure tracking, temporary account lockouts, and a global attempt limit restrict password guessing. Reconnecting to the same proxy preserves account lockouts.
  • Holding Lobby Quarantine: Unauthenticated players are isolated in a lightweight holding lobby. Player movement, block interactions, inventory access, and chat commands (outside /login and /register) are completely restricted until authentication succeeds.
  • Native Bedrock Auth Forms: Bedrock players via Floodgate receive native modal dialogs for registration and password entry instead of typing passwords into open chat.
  • Expiring Session Tokens: Proxy-local sessions remember authenticated players across quick reconnects to the same proxy within a configurable TTL.

8. Real-Time Operations & Observability

Operations dashboard and metrics

HTML dashboard preview

  • Embedded HTML Operations Dashboard:
    • Built-in lightweight web dashboard running on its own dedicated port.
    • Real-time lobby status table showing active player counts, max capacity, latency, and circuit health.
    • Visual routing distribution charts, sticky session counters, and join/leave metrics.
    • Secured via HTTP Bearer Token authentication.
  • Prometheus & Grafana Metrics:
    • Native /metrics endpoint exports Prometheus metrics out of the box: routing counts, circuit trips, health check latency, party counts, and queue depth.
    • Import directly into Grafana for 24/7 network monitoring.
  • Dynamic MiniMessage MOTD Rotation:
    • Dynamic MOTD manager supporting Random, Sequential, or Scheduled Time-Window rotations.
    • Embed dynamic player counts, custom hex colors, gradients, and maintenance status lines.
  • Self-Documenting Configuration & Validation:
    • /vn config validate performs deep syntax and semantic checks with Levenshtein distance typo suggestions.
    • /vn menu validate audits GUI item slots, materials, duplicate keys, and placeholders before players encounter broken menus.

9. Global Localization

Localization and languages

Deploy globally with 15 bundled language translations out of the box:

LanguageCodeLanguageCodeLanguageCode
EnglishenSpanishesGermande
FrenchfrRussianruPortuguese (BR)pt_br
Chinese (Simp.)zh_cnJapanesejaKoreanko
ItalianitDutchnlPolishpl
TurkishtrArabicarHindihi
  • Custom .properties files can be added to plugins/velocitynavigator/languages/ with zero recompilation.
  • Full hot-reloading with /vn reload.

10. Multi-Engine Storage Architecture

Store player data, sticky sessions, and auth credentials in the storage engine that matches your infrastructure:

  • Plain JSON Files: Simple, zero-setup storage for small networks.
  • SQLite: Embedded SQL database with zero configuration or external database servers required.
  • MySQL & MariaDB: High-performance database storage with HikariCP connection pooling and automatic schema migrations.
  • PostgreSQL: Robust enterprise database backend for large network deployments.

11. Quick Start Guide

Get up and running in under five minutes:

  1. Download VelocityNavigator-4.6.0.jar and place it into your Velocity proxy's plugins/ directory.
  2. Start the proxy once to generate default configuration files, then stop the proxy.
  3. Open plugins/velocitynavigator/navigator.toml and list your lobby servers (matching names in velocity.toml):
[routing]
selection_mode = "power_of_two"
balance_initial_join = true
default_lobbies = ["lobby-1", "lobby-2", "lobby-3"]

[routing.fallback]
strategy = "disconnect"
message = "<red>All lobbies are currently full or undergoing maintenance.</red>"

[health]
check_interval_seconds = 5
timeout_millis = 2000
circuit_breaker_threshold = 3
circuit_breaker_reset_seconds = 30
  1. Run /vn config validate from the console to verify your configuration.
  2. Start the proxy and type /lobby in-game to test routing!

Adding backend features? Copy the exact same JAR into the plugins/ folder of each Paper, Spigot, or Folia backend where you want NPCs, YAML menus, or the Java inventory selector.


12. Command & Permission Reference

Administrative Commands

CommandPermissionDescription
/vn healthvelocitynavigator.adminConsolidated proxy diagnostics and circuit health overview
/vn serversvelocitynavigator.adminPaginated table of server health, capacity, drain, and circuits
/vn debug player <player>velocitynavigator.adminLive trace explaining routing decisions for a specific player
/vn drain <server>velocitynavigator.adminToggle drain mode to safely evacuate backends without kicks
/vn maintenance [server] [on/off]velocitynavigator.adminToggle network-wide or per-server maintenance mode
/vn affinity cleanvelocitynavigator.adminManually purge expired sticky session mappings
/vn bridge statusvelocitynavigator.adminDisplay detected Paper/Folia backend bridge connections
/vn config validatevelocitynavigator.adminAudit configuration files for syntax or typo errors
/vn menu validatevelocitynavigator.adminValidate custom menu items, slots, and materials
/vn reloadvelocitynavigator.adminHot-reload all configurations, menus, and language packs

Player Commands

CommandPermissionDescription
/lobby or /hubnone (configurable)Route player to the best available healthy lobby
/lobby menunone (configurable)Open the interactive server selector
/partynone (configurable)Access the cross-server party management system

13. Compatibility Matrix

Compatibility matrix

  • Proxy Platforms:
    • Velocity 3.4.x (Java 17+)
    • Velocity 3.5.x (Java 21+)
    • Velocity 4.0.0 (Java 25)
  • Backend Platforms (Optional Bridge):
    • Paper 1.16.5 – 26.3+
    • Spigot 1.16.5 – 26.3+
    • Folia 1.20.x – 26.3+
  • Ecosystem Integrations:
    • GeyserMC & Floodgate (Native Bedrock forms and Floodgate UUID translation)
    • PlaceholderAPI (Rich backend placeholders)
    • GeoRestrict & MaxMind GeoLite2 (Geographic routing)
    • Prometheus & Grafana (Metrics monitoring)

14. Documentation & Community Support

VelocityNavigator bStats

VelocityNavigator footer


Sponsored by Nexeu Hosting

Nexeu Hosting

High-performance, affordable Minecraft hosting with premium NVMe hardware, DDoS protection, and 24/7 technical support.

Галерея

plugin-iconhero-banner

Последние версии

Все версии →
release

VelocityNavigator 4.6.0

4.6.0
18 окт. 2026 г.165Minecraft: 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot, velocity
Скачать
Что нового
### Added - Native Java dialogs for lobby selectors, party management, authentication, and backend YAML menus, including NPC menu entry points. New configurations select dialogs on supported clients and Paper backends, with inventory, sign, and chat or command fallbacks. - Configurable Java UI modes per feature and per YAML menu. Existing selector choices survive migration; Bedrock forms retain their existing behavior. - Expiring, single-use dialog actions bound to the player and backend, private authentication input forwarding, and visible-password warnings. - Cross-proxy language propagation across the UI bridge protocol, dynamically synchronizing proxy player locales to backend native Java dialogs and chest menus without requiring duplicate backend localization configuration. - Dynamic multi-language localization for native Java dialog controls (`Previous`, `Next`, `Refresh`, `Close`) supporting all 15 built-in locales and custom language packs. - Inline `{lang:key}` placeholder token resolution in backend custom menu YAML configuration for titles, item display names, and lore lines. - Configurable empty slot filler decoration (`fill_empty_slots` and `filler_material`) for backend chest menus. - Tests for UI protocol validation, callback/session binding, configuration migration, and pagination independent of chest dimensions; an optional Paper runtime dialog probe. ### Fixed - Reopening an authentication prompt no longer resets the authentication deadline.
release

VelocityNavigator 4.5.2

4.5.2
9 окт. 2026 г.135Minecraft: 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot, velocity
Скачать
Что нового
### Added - Added Halloween easter egg. ### Fixed - Enforce authentication on every proxy backend transfer, including requests initiated by other commands or plugins. Pending players can enter only the configured holding server; an unavailable authentication service blocks admission. - Preserve account login failures and lockouts across disconnects. Successful authentication and expiry still clear them. - Read the `[settings]` layout emitted by the authentication file writer and shown in the setup guide. Authentication enablement, hashing, holding-server selection, and session settings now override main-file values correctly; legacy `[auth]` and flat layouts remain supported. - Keep repeated Redis circuit snapshots from restarting cooldowns or resetting half-open probes. Transition timestamps reject stale state after recovery, including transitions within the same clock millisecond. - Include contextual fallback-chain lobbies in health inspection so routing can select healthy static backups. - Verify legacy SHA-256 credentials with their original algorithm and upgrade them to Argon2id after a successful login when Argon2id is configured. ### Improved - Verify Argon2id records using their encoded version and cost parameters, with limits on memory, iterations, parallelism, salt length, and hash length. Reject malformed credential records without opening a session. - Preserve the existing Redis circuit state fields for older peers and add transition timestamps for upgraded peers. - Correct descriptions of hashing costs, account lockouts, proxy-local sessions, and the player-load scoring used by `least_connections`.
release

VelocityNavigator 4.5.1

4.5.1
18 сент. 2026 г.206Minecraft: 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot, velocity
Скачать
Что нового
## [4.5.1] - 2026-09-18 Small patch release fixing server routing for backend NPCs and menus, plus compatibility updates for Paper 26.3+. ### Fixed - **NPC & Menu Routing**: Resolved an issue where clicking a backend NPC or YAML menu targeting a server (like `server:survival`) failed with “Selection unavailable” if that server wasn't listed in `default_lobbies`. You can now route players directly to any server registered in Velocity's `velocity.toml` from backend NPCs and menus. - **Documentation**: Fixed a typo in the command reference tables where `/lobby menu` was incorrectly listed as `/menu`. ### Added / Improved - **Paper & Folia 26.3+ Compatibility**: Updated internal packet handling (NPC entity spawning, head rotation packets, and Netty channel interception) to support Paper, Spigot, and Folia 26.3+ runtimes.
release

VelocityNavigator 4.5.0

4.5.0
6 сент. 2026 г.68Minecraft: 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2folia, paper, purpur, spigot, velocity
Скачать
Что нового
# VelocityNavigator v4.5.0 VelocityNavigator v4.5.0 is our most comprehensive release to date, introducing a unified universal JAR architecture, a zero-dependency packet NPC engine, global GeoIP distance routing, dynamic MOTD rotations, cross-server party synchronization, expanded PlaceholderAPI support, Argon2id authentication, multi-engine storage, and native Folia support. ## New: Universal Single-JAR Architecture • **Dual-Descriptor Deployment**: VelocityNavigator now compiles as a single universal fat JAR containing both `velocity-plugin.json` for Velocity and `plugin.yml` for Paper, Spigot, and Folia backends. • **Automatic Runtime Adaptation**: When installed on Velocity, the JAR boots the proxy routing core. When installed on Paper, Spigot, or Folia, it automatically loads backend NPCs, YAML menus, and PlaceholderAPI integrations. • **Zero Version Desyncs**: Internal bridge protocol packets through `MenuBridgeProtocol` and Redis payload serializers remain binary-compatible across the entire network. • **Multi-Platform Support**: Formally tested with Velocity 3.4.x, 3.5.x, and Velocity 4.0.0 running on Java 17, 21, and 25. ## New: Native Packet-Level NPC Server Selectors A completely new in-game NPC server selector engine has been added directly into the backend bridge with zero external dependencies. • **Real Player-Model NPCs on 1.20.5+**: Spawns genuine player models using direct packet transmission on Paper, Spigot, and Folia 1.20.5 through 1.21.x. • Supports Mojang skins, full-size interaction hitboxes, held items, and smooth head rotation. • No Citizens, ProtocolLib, or version-locked NMS dependency is required. • **Billboarded TextDisplay Holograms**: Multi-line floating labels automatically face nearby players for cleaner visibility from every direction. • **Scoreboard Team Glowing**: NPC glow colors can be configured through `/vnavnpc glow <id> <on|off> [color]` without interfering with existing player scoreboard teams. • **Packet-Level Netty Click Interception**: Direct Netty handlers detect interactions with fake players while enforcing a configurable 6-block interaction range. • **Smart Click Actions & Conditional Routing**: NPCs can connect players to servers, open custom menus, run commands, or execute permission-based routing. • Example: `action:cond(perm=velocitynavigator.vip?server:vip-lobby|server:lobby)` • **Dynamic Proximity Head Tracking**: NPCs smoothly rotate toward the nearest player within 64 blocks. • **Paper 26.2 Mannequin & Folia Safety**: Native support has been added for Paper mannequin entities and Folia's regionized scheduler system. • **Automatic Legacy Fallback**: Servers older than 1.20.5 automatically fall back to optimized armor-stand mannequins with Interaction hitboxes. • **Full In-Game Management**: `/vnavnpc` now supports `create`, `action`, `skin`, `glow`, `hand`, `offhand`, `status`, `respawn`, `tp`, `remove`, `list`, and `reload`. ## New: GeoIP Distance Routing Engine VelocityNavigator can now route players to geographically closer lobby clusters using physical distance calculations. • **Geo-Distance Mode (`geo_distance`)**: Uses the Haversine formula to calculate Great-Circle distance between a player location and configured datacenter coordinates. • **Multiple GeoIP Providers**: Native support for MaxMind GeoLite2 databases, `ip-api.com`, and GeoRestrict integration. • **VPN & ASN Detection**: GeoRestrict can act as a primary lookup source for VPN, proxy, and autonomous system detection. • **Country & Continent Affinity Overrides**: Specific countries or continents can be mapped directly to selected lobby pools. • **Thread-Safe Subnet Matching**: High-performance in-memory IP caching and CIDR subnet matching provide fast routing decisions without blocking the main thread. • **Initial Join Affinity**: Regional routing is applied immediately during the first connection handshake as well as through `/lobby`. ## New: Dynamic MOTD System A standalone server-list MOTD engine has been added through `motd.toml`. • **Dynamic MOTD Rotation**: Supports `ROTATING`, `RANDOM`, and `SEQUENTIAL` display modes. • **Readable TOML Formatting**: MOTDs can use clean multiline TOML strings while preserving comments and configuration structure. • **Maintenance Overrides**: Dedicated maintenance MOTDs automatically replace standard MOTDs when global maintenance is enabled. • **MiniMessage Styling**: Supports gradients, hex colors, font tags, and legacy color code translation. • **Real-Time Placeholders**: Available placeholders include `{online}`, `{max}`, `{maintenance_reason}`, and `{version}`. • **Live Administration**: MOTDs can be managed using `/vn motd reload`, `/vn motd list`, `/vn motd add`, `/vn motd remove`, and `/vn motd setmode`. ## New: Authentication & Defensive Security The authentication system has been substantially expanded with stronger hashing, quarantine handling, and native Java and Bedrock interfaces. • **Argon2id Password Hashing**: Powered by BouncyCastle with configurable memory cost, iterations, and parallelism. • **Legacy SHA-256 Support**: Existing password databases can still authenticate users and automatically upgrade stored credentials. • **Interactive Sign GUI for Java**: Java players can enter passwords privately through an in-game sign interface instead of public chat. • **Native Floodgate Forms**: Bedrock players receive modal login and registration forms through Floodgate. • **Holding Lobby Quarantine**: Unauthenticated players can be restricted to a holding server with movement, interaction, building, item usage, and chat locked until authentication succeeds. • **Brute-Force Protection**: Global and per-account limits trigger a five-minute lockout after repeated failed attempts. • **Bridge-Authenticated Sign Sessions**: Authentication submissions pass through validated internal bridge sessions to prevent spoofing. • **Reload-Persistent Sessions**: Active authentication sessions survive proxy reloads without forcing connected users to log in again. ## New: Cross-Server Party & Team Engine VelocityNavigator now includes complete proxy-wide party management with Java and Bedrock interfaces. • **Party Roles**: Supports `LEADER`, `OFFICER`, and `MEMBER`. • **Promotion & Demotion**: Players can be promoted or demoted through `/party promote` and `/party demote`. • **Custom Party Names**: Party names support MiniMessage formatting and colors. • **Leader Follow**: Members can automatically follow the party leader during server transfers. • **Public & Private Parties**: Parties can be opened or closed using `/party open` and `/party close`. • **Dual Platform GUIs**: Bedrock players receive native Cumulus forms while Java players receive inventory-based menus. ### PlaceholderAPI Support • `%velocitynavigator_party_in_party%` • `%velocitynavigator_party_name%` • `%velocitynavigator_party_leader%` • `%velocitynavigator_party_size%` • `%velocitynavigator_party_max_size%` • `%velocitynavigator_party_is_leader%` • `%velocitynavigator_party_role%` • `%velocitynavigator_party_is_open%` • `%velocitynavigator_party_members%` • `%velocitynavigator_ping%` • `%velocitynavigator_lobby%` • EssentialsX integration placeholders are also supported. ## New: Custom Backend Menu System VelocityNavigator now includes fully customizable YAML-based menus for Paper and Spigot servers. • Create unlimited menus inside `menus/*.yml` • Configure slots, materials, CustomModelData, skull owners, and sounds • Link menus together using nested menu actions such as `menu:games` • Execute proxy or backend commands directly from menu items • Route players to individual servers or lobby clusters • Use live refresh through `@refresh:N` • Use pagination through `@page:N` • Disable unavailable items with `@disabled` • Default `main`, `games`, and `lobbies` menus are generated automatically • `/vnavmenu` includes `open`, `add`, `remove`, `title`, `rows`, `list`, and `reload` ## New: Multi-Engine Database Storage Player affinity, authentication sessions, credentials, and other persistent data can now use multiple storage engines. • **SQLite**: Zero-configuration embedded storage with bundled drivers. • **MySQL & MariaDB**: High-throughput SQL storage backed by HikariCP connection pooling. • **PostgreSQL**: Designed for larger and multi-proxy network deployments. • **JSON Storage**: Lightweight file-based storage for smaller servers. • **Automatic Schema Migration**: Database tables and column upgrades are automatically applied during startup. ## New: Native Folia Support Full compatibility has been added for Folia's regionized multi-threading model. • Runtime Folia detection through MethodHandle reflection • Backend tasks use entity-owned region schedulers where required • Standard Bukkit scheduling is retained for Paper and Spigot • `plugin.yml` now declares `folia-supported: true` ## New: Maintenance & Graceful Evacuation Servers can now be taken offline without abruptly disconnecting active players. • Network-wide or individual server maintenance states • Safe evacuation to healthy destination servers • Maintenance restrictions apply to both Navigator routing and direct backend transfers • Custom kick messages and dynamic countdown badges ## New: Backend Update Checker Paper and Spigot backends now include their own update checker. • Periodic Modrinth API checks • Exponential backoff when HTTP 429 rate limits occur • Configurable interval through `update_check_interval_minutes` ## New: Version Mismatch Detection The proxy can now actively detect mismatched backend plugin versions. • Backend versions are compared during bridge HELLO handshakes • `/vn bridge` displays backend compatibility states: `✓ Up to date` `⚠ Outdated` `✗ Not detected` ## New: Backend bStats Telemetry Dedicated bStats support has been added for Paper and Spigot backends under plugin ID `32887`. Available charts include: • `folia_enabled` • `server_software` • `inventory_menu_enabled` • `handshake_enabled` • `refresh_enabled` • `redis_registration_enabled` ## New: Modular Configuration Architecture Configuration has been reorganized into cleaner dedicated files. • `storage.toml` • `geo.toml` • `auth.toml` • `motd.toml` • **Config Version 9** with automatic migration from v8 • All backups are stored in a dedicated `backups/` folder • Old backups are automatically pruned • Backend `config.yml` automatically migrates from version 1 to version 2 ## New: Administrative & Diagnostic Commands • `/vnavnpc` Manage NPC creation, actions, skins, glow, equipment, status, respawning, teleportation, removal, listing, and reloads. • `/vnavmenu` Manage custom backend menus. • `/vn config validate` Validates `navigator.toml` and the server registry while providing typo suggestions. • `/vn server dry-run` Tests server registration without writing changes to disk. • `/vn affinity clean` Removes expired sticky-session entries. • `/vn debug player <player>` Displays a live routing trace explaining why a player was sent to a specific server. ## Updated: Multi-Proxy Synchronization Multi-proxy synchronization has been expanded from v4.3. • HMAC-SHA256 verification for registration payloads • Timestamp freshness validation against replay attacks • Signature deduplication inside the freshness window • Host allowlisting with wildcard support ## Updated: NavigatorAPI The public developer API has been expanded. Developers can now access: • `pluginVersion()` • `server()` • `logger()` • `dataDirectory()` • `config()` • `bedrockHandler()` Casting `NavigatorAPIProvider.get()` to internal implementation classes is no longer required. ## Updated: Language Support VelocityNavigator now includes 15 bundled languages. • `en` • English • Updated • `ru` • Russian • Updated • `es` • Spanish • Updated • `fr` • French • Updated • `de` • German • Updated • `pt_br` • Brazilian Portuguese • Updated • `zh_cn` • Simplified Chinese • Updated • `ja` • Japanese • New • `it` • Italian • New • `ko` • Korean • New • `nl` • Dutch • New • `pl` • Polish • New • `tr` • Turkish • New • `ar` • Arabic • New • `hi` • Hindi • New ## Fixed • **Sign GUI Authentication**: Password entries are now forwarded directly to the proxy through the bridge channel where rate limiting and session validation apply. • **Brute-Force Protection**: Registration and login attempts are now rate-limited both globally and per account. • **`/vn connect` Token Bypass**: Manual server connections can no longer bypass menu-token validation. • **Geo Routing Context**: `geo_distance` groups now apply country affinity on initial connection just as they do through `/lobby`. • **Party Ghost Invites**: Invites from disconnected players or disbanded parties are immediately invalidated. • **Circuit Breaker Recovery**: Half-open requests that never complete correctly return the breaker to its open state after cooldown. • **Server Health Cache**: Running `clearCache()` during `/vn reload` no longer causes valid servers to appear missing or expose raw `CancellationException` errors. • **Fail-Closed Registration**: Empty `registration_secret` values now reject unsigned backend registrations instead of trusting them. • **Redis Subscriber Recovery**: Registration subscribers now respect `subscriber_timeout_ms` to recover cleanly from stalled connections. • **Authentication Reload Persistence**: Active sessions survive `/vn reload`. • **MOTD `{version}` Placeholder**: Now resolves the actual running plugin version rather than a hardcoded value. • **Command Permissions**: `/vn help` and `/vn version` can pass the outer Velocity permission gate without requiring administrator access. • **General Robustness**: Oversized semantic version values no longer crash parsing, expired cooldown entries are cleaned automatically, connection logs are capped, and skin lookups now deduplicate concurrent requests while closing HTTP resources correctly. ## Improved • **Uptime in `/vn status`**: Displays real-time proxy uptime. • **Menu Validation**: Invalid menu files are skipped with useful warnings instead of breaking the entire menu system. • **Configurable Menu Token Timeout**: Session token lifetime can now be configured between 5 and 3600 seconds, with a default of 60 seconds. • **Theme Uniformity**: Commands now consistently use VelocityNavigator's aqua accent and clean gray descriptions.
release

VelocityNavigator 4.4.0

4.4.0
20 июл. 2026 г.178Minecraft: 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot, velocity
Скачать
Что нового
## [4.4.0] - 2026-07-20 ### Added - Added verified Velocity 4.0.0 support while retaining the Java 17 bytecode and Velocity 3.4 API baseline used by Velocity 3.4.x and 3.5.x installations. A Java 25/API 4/Adventure 5 compatibility build and a Velocity 4.0.0 startup smoke test now guard the same JAR in CI. - Added optional per-server `display_name` values in `gui.toml`. A name such as `lobby1` in `velocity.toml` can now appear as `Main Lobby 1` in the Java inventory, Java chat selector, and Bedrock form. - Added optional per-server `description`, `menu_order`, and `show_in_menu` values. Descriptions are available through `{description}`, explicit menu order is shared by all selectors, and hidden entries remain eligible for automatic routing. - Added selector placeholders for presentation and diagnostics: `{server}` and `{display_name}` resolve to the configured alias, `{server_id}` exposes the raw Velocity server ID, and `{description}` resolves to the shared menu description. - Added `/vn menu validate` to audit selector server IDs, duplicate display names, slots, material-identifier syntax, and curly-brace placeholders before players open a menu. - Added global Java inventory styles for `[states.full]`, `[states.draining]`, `[states.offline]`, and `[states.in_game]`, each with optional `material`, `name`, and `lore` overrides. ### Changed - Inventory navigation controls are now kept in the reserved bottom row for every supported `layout.rows` value. This prevents an automatic server item from occupying a custom control slot and silently hiding that control. - Bedrock `sort_mode = "name"` now sorts by the displayed alias instead of the raw server ID. - Explicit nonnegative `menu_order` values are the primary order in Java inventory, Java chat, and Bedrock selectors. Unset values keep the existing candidate order; Bedrock uses its configured `sort_mode` to resolve equal ordering values. - `show_in_menu = false` removes a server from all three selectors without draining it or removing it from automatic routing. - Blank or missing aliases fall back to the raw server ID. Selector changes are applied by `/vn reload`; no proxy restart or `navigator.toml` schema migration is required. - Display aliases are presentation-only. Inventory targets, one-time token allowlists, chat callbacks, Bedrock response mapping, health lookups, and connection requests continue to use the raw registered server ID. - Java inventory state styles are applied after availability is resolved. A per-server `name` or `lore` remains final; otherwise the matching state template is used before the localized default. For unavailable entries, a per-server `unavailable_material` remains final, followed by the state material and global unavailable fallback. Healthy entries keep their per-server/global normal material. - `gui.toml` now uses `config_version = 2`; `navigator.toml` remains at config version 8. ### Not included - Localized per-language display names are not part of 4.4.0. Existing language packs still control shared selector templates and status text. ---
release

VelocityNavigator 4.3.0

4.3.0
13 июл. 2026 г.26Minecraft: 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot, velocity
Скачать
Что нового
## [4.3.0] - 2026-07-14 ### Advanced proxy systems - Added native parties with `/party invite`, `accept`, `deny`, `kick`, `leave`, and `disband`, private `/p` chat, and leader-follow synchronization on `ServerConnectedEvent`. - Added a virtual lobby-capacity queue with action-bar position updates, asynchronous slot polling, automatic connection, `/queue leave`, and optional initial-join `holding_server` support. - Added a dependency-free Redis RESP client for `vn:servers:register` dynamic registration and cross-proxy circuit-breaker, health-cache, backend-state, and affinity synchronization. - Added backend MOTD lifecycle parsing for markers such as `[STATE:IN_GAME]`; routing only uses configured allowed states. - Geographic-routing integrations and BungeeCord/Waterfall compatibility remain deferred and are not part of v4.3.0. - Added optional server management: `/vn server add game` writes only to `velocity.toml`, while `/vn server add lobby` also persists lobby metadata in `servers.toml` and activates it immediately without reload. - Added `/vn server remove` and `/vn server list`, overwrite protection, custom Velocity-config paths, IPv4/hostname/IPv6 parsing, and atomic configuration writes. - Expanded `gui.toml` Bedrock controls with enable/fallback switches, sorting, button limits, visibility toggles, and title/content/button overrides with color conversion. - Added backend `config.yml` switches for the bridge, inventory channel, handshake, refresh, delay, title length, and fallback material. ### Added - **Configurable language packs** — explicit `en`, `ru`, `es`, `fr`, `de`, `pt_br`, and `zh_cn` selection plus arbitrary custom codes. Built-in changes rewrite active text; player locale is never auto-detected. - **Separate `gui.toml`** — rows, materials, fillers, refresh interval, navigation slots, and per-server fixed slot/material/name/lore overrides. - **Universal Java inventory selector** — the same 4.3.0 JAR runs in Velocity proxy or Paper/Spigot bridge mode and announces its mode at startup. - **Pagination, live refresh, and unavailable indicators** for Java inventory menus. - `/vn bridge status` reports detected backend bridge versions and last-seen times. - Universal bridge integration tests cover proxy-open, backend-click, navigation, handshake, and proxy-selection flows. - Exponential backoff with jitter for connection retries — each retry waits progressively longer with a small random jitter to avoid thundering-herd reconnects. - Player affinity persistence — unexpired sticky-session mappings are now saved to disk and restored across proxy restarts. - `/vn health` command — consolidated one-shot diagnostics: routing mode, lobby count, circuit-breaker states, drained servers, cache sizes, and affinity entry count in a single screen. - **HTML operations dashboard** — a separate HTTP server on its own port serving a live lobby table, routing distribution chart, affinity map, config summary, recent routing events, and joins/leaves-since-start counters. Disabled by default and authenticated via a bearer-token login flow. - `velocity-plugin.json` descriptor — modern Velocity plugin metadata alongside the existing `@Plugin` annotation. - New reproducible marketplace brand system with a plugin icon, hero banner, social card, nine feature panels, platform-specific listing copy, meaningful alt text, and a visual feature overview in the wiki. - Built the backend bridge against the Spigot API 1.16.5 baseline without version-specific NMS. ### Changed - Dashboard documentation now distinguishes the universal `127.0.0.1` loopback example from provider addresses and explains allocated ports, container binds, and browser URLs. - The official wiki URL is now built in. `startup.wiki_url` is no longer written or accepted as a custom documentation target, and legacy entries are removed during configuration normalization. - Language documentation now explains structural test coverage, custom packs, and how native speakers can contribute new or improved translations. - `routing.use_menu_for_lobby` replaces `use_chat_menu_for_lobby`; the old key remains a compatible alias. - Selector mode/fallback lives in `navigator.toml`, language in `messages.toml`, GUI presentation in `gui.toml`, and managed lobby metadata in `servers.toml`. The plugin/config versions are 4.3.0/v8. - MiniMessage, classic `&`/`§`, `&#RRGGBB`, and Bungee-style hex colors are accepted in configurable text. - Server health cache keys are now normalized to lowercase. Mixed-case server names no longer produce duplicate cache entries. - Consistent hash ring uses a thread-local `MessageDigest` instead of allocating one per lookup. Throughput on `consistent_hash` mode improves by roughly 3–4× under load. - `RoutePlanner` now builds a `Map<String, LobbyEntry>` once per planning call instead of scanning the lobby list linearly per candidate. - Config reload now uses a dedicated `ReentrantLock` instead of `synchronized(this)`. Admin commands and event subscribers no longer contend on the same monitor during a reload. - Bedrock form text stripping now matches legacy color codes case-insensitively. `&C` and `&L` are now stripped alongside `&c` and `&l`. - Update checks are now silent by default — no startup log line, no periodic console message. `/vn updatecheck` still works for manual checks. Set `update_checker.silent = false` in `navigator.toml` to restore the old behavior. - **Config version bumped to 8.** Adds the final 4.3.0 advanced-system, managed-server, selector, dashboard, and Redis settings. Older configs are auto-migrated and backed up; network-facing systems remain disabled by default. ### Fixed - Party commands now expose explicit `/party status` and `/party chat <message>` paths, while `/p <message>` and multiword messages use Velocity raw-command parsing. - Escaped MiniMessage entities such as `&lt;player&gt;` are no longer mistaken for the legacy `&l` bold color code. - Dashboard API version data now comes from the plugin metadata instead of a hardcoded prerelease string. - Redis RESP parsing on the Velocity proxy now enforces line, bulk, array, total-frame, and nesting limits before allocation or recursion. - Backend Redis lifecycle registration now rejects oversized response lines instead of allowing peer-controlled heap growth. - Dashboard bearer credentials are accepted only through the `Authorization` header. The browser login keeps the token in memory and never places it in URLs or persistent browser storage. - `MetricsService.active()` and `statusLine()` are now `volatile`. Reader threads (Prometheus exporter, `/vn status`) no longer risk seeing stale values after a config reload. - `PrometheusExporter.start()` now clears the `server` reference if `start()` throws. Previously the next `stop()` call would operate on an unstarted server. - `UpdateChecker` now uses the non-deprecated `JsonParser.parseString(...)` and the `nextAllowedCheck` read-modify-write is guarded by a `synchronized` block to prevent duplicate 429 retries under concurrency. - `ConfigManager`'s generated `navigator.toml` header box no longer overflows on the bStats URL line. - Empty `if` branch in `applyLoadedConfiguration` removed — round-robin reset logic is now a single positive check.
release

VelocityNavigator 4.2.0

4.2.0
30 мая 2026 г.174Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2velocity
Скачать
Что нового
### Added - **Embedded Prometheus Exporter & Admin Panel** — Built-in HTTP server exposing real-time metrics (`/metrics`) on routing distributions, pings, CB statuses, and connection events. - **Grafana Dashboard Setup Command** — `/vn setup grafana` auto-generates a premium, pre-configured Grafana telemetry dashboard configuration JSON file. - **Interactive Selector Menus** — Native Bedrock Form GUI (via Geyser/Floodgate integration) and clickable Java Chat Selector Menu with hover tooltips displaying health and latencies. - **Ping-Based Routing Strategy (`latency`)** — Dynamically select the server with the lowest ping latency to optimize player connections. ### Fixed - Hardened Java and Bedrock lobby menu selections so stale or manually forged choices cannot bypass drain mode, circuit breakers, capacity checks, or configured lobby pools. - Started the Prometheus exporter during initial proxy boot when enabled, not only after `/vn reload`. - Restored true consecutive-failure behavior for the circuit breaker. - Preserved update notification settings during config rewrites and aligned admin join notifications with `[update_checker].notify_admins`. - Accepted the documented `latency` routing mode in config validation and migration normalization. - Normalized contextual group names consistently so mixed-case mappings continue to route. - Aligned Maven artifact version, Velocity plugin metadata, and user-facing docs for the 4.2.0 release. ### Changed - **Config version bumped to 6.** The generated `navigator.toml` has been completely redesigned with section banners, grouped documentation, and a friendlier layout. Existing configs are auto-migrated and backed up.
release

VelocityNavigator 4.1.0

4.1.0
26 мая 2026 г.36Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2velocity
Скачать
Что нового
## [4.1.0] — 2026-05-26 ### Added - **Bedrock/Geyser Player Support** — Soft-dependency integration with Geyser and Floodgate. Strips advanced Kyori Component formatting (gradients, hover, click actions) to display beautifully on Bedrock clients, and maps authentic Java UUIDs for player affinity tracking. - **First-Run Experience Polish** — Beautiful console-printed welcome dashboard on fresh installs. Detects plugin upgrades and showcases a clean release notes changelog digest. - **`/vn servers` Diagnostics Command** — Elegant paginated status dashboard for all configured lobbies, complete with player count/max capacity limits, circuit breaker state tracking, and drain statuses. - **Configurable Dashboard Colors** — Customizable status tags/colors for `/vn servers` supporting full hex, RGB, and MiniMessage styling in `navigator.toml`. - **Typo Auto-Correction & Levenshtein Validation** — Dynamic typo detection on config reload/load using Levenshtein distance metrics (e.g., suggesting `"least_players"` for `"leadt_players"`). - **Self-Documenting Configuration Keys** — The entire `navigator.toml` file comments are dynamically populated on generation/migration, pointing users to the exact section anchor of the official Wiki page. - **Automatic Legacy Color Code Converter** — Seamlessly matches and converts all 22 standard `&` and `§` legacy formatting codes to MiniMessage syntax on load (supports `"auto"` with one-time warnings, `"minimessage"`, or `"legacy"` modes). - **Periodic Update Checker with Backoff** — Recurring scheduled task loop to check for updates with exponential backoff on HTTP 429 errors (scales dynamically up to 4 hours). - **Empty Lobby Routing Fallbacks** — Customizable degradation strategies (`"disconnect"` or `"fallback_server"`) when all primary lobby options are offline or circuit-broken. - **Permission Default Change** — Standardized `/lobby` default command permission changed to `"none"` for immediate out-of-the-box adoption. Existing migration preserves existing admin-defined configurations safely.
release

VelocityNavigator 4.0.0

4.0.0
21 мая 2026 г.35Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2velocity
Скачать
Что нового
## [4.0.0] — 2026-05-01 ### Added - **Power of Two selection algorithm** (`power_of_two`) — picks two random candidates, selects the one with fewer players. Near-optimal distribution at O(1) cost. - **Weighted Round Robin selection algorithm** (`weighted_round_robin`) — interleaved WRR that distributes traffic proportionally to server weights. - **Least Connections selection algorithm** (`least_connections`) — selects the server with the lowest exponential moving average (EMA) of connection load and rate. - **Consistent Hash selection algorithm** (`consistent_hash`) — deterministic player-to-server mapping using a consistent hash ring with 150 virtual nodes and SHA-256 hashing. Provides session affinity. - **LobbyEntry format** — servers can be configured as plain strings or inline tables with `max_players` and `weight` fields. Backward compatible with plain strings. - **Per-lobby max-player cap** — servers at their `max_players` capacity are automatically excluded from routing. - **Circuit Breaker** — automatic server failure detection with CLOSED → OPEN → HALF_OPEN state machine. Unhealthy servers are excluded from routing until they recover. - **Server Drain Mode** — `/vn drain <server>`, `/vn undrain <server>`, `/vn drain status` commands for graceful server maintenance. - **Connection Retry with Fallback** — automatic retry on connection failure with configurable `max_retries`. Shows retry message with `<attempt>/<max>` placeholders. - **Per-Group Selection Mode Override** — contextual routing groups can specify their own `mode`, overriding the global `selection_mode`. - **Fallback Priority Chain** — ordered fallback groups when a contextual group's servers are all unavailable. - **Player Affinity Routing** — sticky sessions with configurable `stickiness` probability (0.0–1.0). Players tend to return to their previous lobby. - **Graceful Degradation** — when all health checks fail, fall back to a configured degradation mode (default: `random`) instead of showing "No lobby found". - **Geo-Based Routing (experimental)** — stub implementation for geo-based lobby routing using MaxMind GeoLite2 Country database. - **Routing Metrics API** — new `NavigatorAPI` methods: `getRoutingDistribution()`, `getHealthCheckLatencies()`, `getCircuitBreakerStatuses()`. - **Connection Rate Tracking** — sliding window (60-second) connection rate tracker used by `least_connections` mode. - **Server Load Tracking** — EMA-based server load tracker used by `least_connections` mode. - **Routing Stats** — per-server connection counts with 60-second reset, shown in `/vn status`. - **Enhanced /vn status dashboard** — now shows circuit breaker status, drained servers, and routing distribution. - **`/vn updatecheck` command** — manually check for updates (replaces recurring auto-update check). - **Startup update notification** — one-time update check 5 seconds after proxy start. - **Admin join update notification** — players with `velocitynavigator.admin` permission are notified in-game when they join if an update is available. Controlled by `notify_admins_on_join` config. - **`<player>` placeholder** — new placeholder available in all message templates. - **`<attempt>` and `<max>` placeholders** — available in `messages.retrying`. - **`messages.retrying` config** — new message template for connection retry notifications. - **`notify_on_startup` config** — suppress startup update notification. - **`notify_admins_on_join` config** — enable/disable in-game admin update notification on join. - **Health check cache purge** — expired cache entries are automatically purged every 60 seconds. - **`getCachedOnlineServers()` method** — synchronous cached player count access for initial join balancing (replaces blocking `.join()` call). - **Config version field** — `CURRENT_VERSION` set to 4. Auto-migration from v3 configs with `.bak` backup. ### Changed - **Removed `.join()` blocking call** in `onPlayerChooseInitialServer` — replaced with synchronous cache lookup. Falls through to Velocity's built-in try list on cold start. - **Round-robin state only resets when lobby topology changes** — `applyLoadedConfiguration()` now compares previous and current lobby lists before resetting. - **Contextual groups** — changed from `Map<String, List<LobbyEntry>>` to `Map<String, GroupConfig>` where GroupConfig contains `servers` and optional `mode`. - **UpdateChecker** — removed recurring schedule; now runs a single check on startup. Removed `enabled`, `notifyConsole`, `startupDelaySeconds` fields. - **ConfigManager** — reads both plain strings and inline tables for lobby entries (backward compatible). Writes inline tables when `max_players` or `weight` is non-default. - **MessageFormatter** — added `player`, `attempt`, `max` to allowed placeholders. - **`noLobbyFound` message** — now includes `(<reason>)` placeholder by default. - **`ServerCandidate` record** — now includes `effectiveWeight` and `emaLoad` fields. - **`RouteDecision`** — provides ordered candidate list for retry fallback. ### Fixed - **Blocking `.join()` in event handler** — `onPlayerChooseInitialServer` no longer blocks the event loop with `.join()` calls. Uses cached data synchronously instead. - **Round-robin reset on every reload** — round-robin counter is now only reset when the lobby topology actually changes, preventing unnecessary redistribution on config reload. - **Health check cache memory leak** — expired cache entries are now purged every 60 seconds. - **Permission node inconsistency** — `velocitynavigator.bypasscooldown` now also checks `velocitynavigator.bypass.cooldown` for consistency. ### Deprecated - **`velocitynavigator.bypasscooldown` permission** — use `velocitynavigator.bypass.cooldown` instead. The legacy name still works as a fallback. ### Removed - **`update_checker.enabled` config field** — the update checker now always runs on startup. - **`update_checker.notifyConsole` config field** — update notifications are always logged to console. - **`update_checker.startupDelaySeconds` config field** — startup delay is fixed at 5 seconds. - **Recurring update check schedule** — replaced by one-time startup check and `/vn updatecheck`. ---
release

VelocityNavigator 3.0.0

3.0.0
9 апр. 2026 г.52Minecraft: 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2velocity
Скачать
Что нового
## [3.0.0] — 2026-04-10 ### ✨ New Features - **Initial Join Balancing** — Players are now load-balanced the moment they connect to the proxy, not just when they run `/lobby`. Configurable via `balance_initial_join` in `navigator.toml`. - **Developer API** — Third-party plugins can now hook into VelocityNavigator via `NavigatorAPI` and `NavigatorAPIProvider`. Preview routes, inspect server health, and read routing config programmatically. - **Three Routing Modes** — Choose between `least_players`, `round_robin`, and `random` selection algorithms. - **Contextual Routing** — Route players to game-specific lobbies (e.g., BedWars lobby) based on which server they are leaving. - **Self-Documenting Config** — The generated `navigator.toml` now includes rich inline comments explaining every setting and routing mode, with links to full documentation. ### 🏥 Reliability - **Async Health Checks** — Ping candidate lobbies before routing to ensure they are alive. Configurable timeout and caching. - **Ping Coalescing** — Multiple simultaneous `/lobby` requests share the same `CompletableFuture` ping, preventing network storms on high-traffic proxies. - **Pre-Execution Cooldown Locking** — The anti-spam cooldown is applied *before* command execution begins, preventing macro-based abuse from bypassing the lock. - **Graceful Failover** — If all contextual lobbies are offline, the plugin falls back to the default lobby pool instead of showing an error (configurable). ### 📊 Telemetry & Updates - **bStats Integration** — Anonymous usage telemetry via [bStats](https://bstats.org/plugin/velocity/Velocity%20Navigator/28341) (plugin ID: 28341). - **Modrinth Update Checker** — Automatic version checking during startup with configurable release channel (`release`, `beta`, `alpha`). ### 🛠 Admin Tools - `/vn reload` — Hot-reload `navigator.toml` without restarting the proxy. - `/vn status` — View runtime status (version, routing mode, health checks, bStats, update checker). - `/vn version` — Check installed vs. latest version. - `/vn debug player <name>` — Preview the routing decision for a specific player. - `/vn debug server <name>` — Inspect a server's real-time health snapshot. - Full tab-completion for all admin commands. ### 🔧 Configuration - **Automatic Migration** — Seamless migration from v1/v2 configs with backup generation. - **Field-Level Validation** — Invalid config values are corrected with warnings, never crashes. - **MiniMessage Support** — All player-facing messages support MiniMessage rich text formatting.