Jubaroo-BifrostConnect icon

BifrostConnect

Direct main menu directory for 1-click connection to Valheim dedicated servers with auto-fill passwords, live-reloading scrollable server list, real-time server status, player counts, and favorite server pinning.

By Jubaroo

CHANGELOG

Changelog

1.2.0

  • Character Switching & Profiles:
    • Added new [Change Character] button in the Join Confirmation dialog to easily connect with a different character even if a previous character was remembered.
    • Added in-game character selector modal displaying all your local Valheim profiles with a current selection star and a one-click [Always Ask] option.
    • Harmony patch on FejdStartup.OnSelelectCharacterBack ensures canceling out of character select properly cancels pending connection state.
  • Relog Reachability & False Offline Fixes:
    • Serialized PlayFab Query Queue (Fixes Search Cancellation): Valheim's internal ZPlayFabMatchmaking.FindHostSession cancels all pending searches when a new search starts. BifrostConnect now serializes PlayFab queries into a dedicated sequential queue with timeout handling, preventing concurrent searches from aborting each other and marking crossplay servers falsely offline.
    • Unified Reachability Pipeline: Eliminated race conditions between the UDP/A2S query and PlayFab lobby search. Servers are only evaluated for final status after all verification stages have completed, preventing premature "Offline" flashes while PlayFab is still checking.
    • Expanded Port Candidate Probing: A2S probing now checks QueryPort, Port + 1, Port, and Port - 1 concurrently, accommodating servers configured with query port offsets or where players entered the Steam query port directly.
    • Challenge Response Routing & Unconnected Sockets: Valve A2S challenge packets now reply directly to the sender's remote endpoint, fixing reachability on multi-homed, multi-port, and NAT-translated servers.
    • Query Timeout & Grace Extension: Increased A2S & Ping timeouts to 2000ms with retry backoff to survive Valheim dedicated server autosaves and network jitter, while extending relog grace to 15 minutes.
    • Negative Cache TTL Optimization: Reduced offline cache TTL to 3 seconds while maintaining 45 seconds for online results, preventing servers from being stuck in "Offline" status for 45s after returning to the main menu.
    • PlayFab Authentication Synchronization: Synchronized with PlayFabManager.OnLoginFinished so Crossplay servers are cleanly re-queried once Valheim finishes re-authenticating with PlayFab upon returning to the menu.
    • Windows UDP Reset (WSAECONNRESET 10054) Fix: Configured SIO_UDP_CONNRESET on UDP sockets to prevent Windows from dropping query sockets due to ICMP Port Unreachable packets during rapid disconnect/relog cycles.
    • Status Unknown for Direct Connect: Servers without a responding query port (e.g. firewalled query port or direct-connect only) are clearly marked with an amber "Status unknown (Direct connect available)" indicator rather than a false red "Offline" flag.
    • Live Reachability in Join Dialog: Added real-time server status indicators (Online, Offline, Verifying...) and an interactive [Recheck] button in the Join Server modal, with automatic background rechecking for offline or uncertain servers.
  • World Modifier Badges & Tooltips:
    • Live display of server world modifier presets (e.g. Combat, Death Penalty, Resource rates) with native Valheim hover tooltips matching the vanilla server browser.
  • 1-Click Address Copy & Quick Join:
    • Added new [Copy] button next to server address on the confirmation modal to copy IP:Port directly to clipboard.
    • Double-click any server row to jump straight into the server without opening the confirmation dialog.
  • Smart Refresh Feedback & Cooldown:
    • Added interactive "Querying..." feedback and cooldown prevention on the refresh button to protect against spam clicking and socket congestion.

1.1.0

  • Smart Disconnect Diagnostics:
    • Intercepts connection errors and mod sync rejections (e.g., ServerSync version mismatches, missing mod requirements, authorization kicks) in real time.
    • Dynamically appends the exact diagnosis reason directly onto Valheim's disconnect screen (Diagnosis: ...) instead of showing the generic "Disconnected" error.
  • One-Click Vanilla Server History Import:
    • Added new [Import Recent] button to seamlessly import your existing Valheim server history and favorites (serverlist_local\recent and favorite) directly into BifrostConnect.
  • Direct Join / Quick Connect:
    • Added new [Direct Join] button allowing instant connection to any IP:Port or domain name with optional password without permanently cluttering your server list.
    • Smart auto-parsing separates host and port automatically if pasted as IP:Port.
  • Real-Time Directory Search & Filter:
    • Added live search bar at the top of the server directory to instantaneously filter servers by name or address as you type.
  • Streamer-Safe Password Masking:
    • Server passwords in the confirmation screen are now safely masked by default (•••••••• (Saved)) with an interactive [Show] / [Hide] toggle button to safeguard streamer credentials.
  • In-Game Server Management: Add, edit, and delete servers directly from the main menu without touching JSON files.
    • New [Add Server] button opens a native woodpanel dialog to add new dedicated servers.
    • New [Edit] and [Delete] buttons inside the server details modal to manage existing servers on the fly.
    • Added confirmation dialog safeguard before deleting servers to prevent accidental removal.
    • Added Required Mods and Modpack Manifest URL fields to in-game editor.
    • Automatically synchronizes and saves changes to BifrostConnect_Servers.json.
  • Pre-Connection Mod Compatibility Verification:
    • Automatically inspects all loaded BepInEx plugins in your active profile via Chainloader.PluginInfos.
    • Compares your local mods against the server's required mod list or remote modpack manifest before connecting.
    • Shows real-time mod compatibility badges directly in the server directory (✓ Mods ready or ⚠ Missing X mods).
    • Added interactive [Check Mods] modal displaying a complete breakdown of installed mods with version numbers vs. missing required mods.
    • Background async fetching for remote modpack manifests (e.g. Thunderstore/GitHub manifests).
  • Authentic Norse Typography: Upgraded all text elements and server listings to native Valheim fonts (AveriaSerifBold & AveriaSerif).
  • Ping & Latency Measurement: Displays real-time round-trip latency (ping) next to each online server.
  • Color-Coded Latency: Ping indicators are dynamically styled with rich text colors:
    • <100ms: Vibrant Green (#70E070)
    • 100ms - 200ms: Warm Gold (#E0C060)
    • >200ms: Soft Orange (#E07070)
  • Dual-Stage Reachability & Crossplay Integration:
    • Integrated Valheim's native ZPlayFabMatchmaking.FindHostByIp on the main thread for servers using -crossplay.
    • Added ICMP ping fallback so servers behind strict UDP/A2S packet firewalls never show as falsely offline.
    • Added asynchronous DNS hostname resolution (supports domain names and DDNS hostnames).
  • Instant Menu Loading: Server directory menu opens with 0ms delay with non-blocking parallel background querying.
  • Refresh & Navigation: Added manual [Refresh] button at the bottom of the list and full gamepad (B / JoyMenu) / keyboard (Escape) modal backout support.
  • Favorite Servers: Click the star icon (★/☆) next to any server to mark it as a favorite and pin it to the top.
  • Smart Sorting & Last Played: Automatically tracks connection timestamps and sorts by favorites first, then most recently played.
  • Password Lock Indicator: Servers with saved passwords now display a lock icon (🔒) for quick visual identification.
  • Scroll Position Memory: The server directory now remembers your scroll position when you close and reopen the menu.
  • Offline Connection Warning: Added log warning when attempting to connect to offline servers instead of silent failures.
  • Server Notes/Descriptions: Added optional notes field to servers, displayed in italic on the confirmation dialog for context like "Friday night survival" or "Modded with Vortex".
  • Clipboard Import: New [From Clipboard] button parses IP:Port:Password format and instantly creates a server entry.
  • Keyboard Navigation: Full arrow key support - use Up/Down arrows to navigate the server list with visual highlight, Enter to connect.
  • Character Profile Tracking: Added LastCharacterName field to server entries for future character auto-selection (foundation for upcoming feature).
  • Animated Panel Transitions: Added fade animation helper methods for smoother panel transitions.
  • Config File Auto-Reload: FileSystemWatcher monitors the config file and automatically reloads when changes are detected (2-second debounce).
  • Export/Import Backup: New [Export] and [Import] buttons allow backing up your server list to BifrostConnect_Export.json and restoring it on other machines.

1.0.4

  • Runtime Reflection Hardening: Converted FejdStartup.m_queuedJoinServer field access and assignment to safe Harmony reflection (AccessTools.Field) with exception handling, fixing runtime System.FieldAccessException on un-publicized vanilla game assemblies.
  • Direct Server Join Fix: Routed server connections through Valheim's native m_queuedJoinServer queue and eliminated the legacy ShowStartGame patch, resolving NullReferenceException in FejdStartup.OnCharacterStart and allowing clean, direct transitions into servers upon character selection.
  • Safe Character Screen Initialization: Transitioned character selection startup to use Valheim's native FejdStartup.OnStartGame flow with safe reflection fallbacks.

1.0.3

  • Character Selection Fix: Fixed an issue where connecting to a server forced an immediate join, bypassing the character selection screen and loading an incorrect profile.
  • UI Transition Hardening: Re-architected the connection flow to safely route through Valheim's native ShowCharacterSelection without triggering overlapping main menu glitches.
  • World Select Interception: Added a seamless Harmony patch to intercept the "Start" button post-character selection, bypassing the local world menu and launching directly into the queued Bifrost server.

1.0.2

  • Fix FieldAccessException: Fixed runtime System.FieldAccessException on FejdStartup.m_menuButtons that caused UI injection to fail on un-publicized game runtime assemblies.
  • Reflection Hardening: Safely wrapped menu button injection and server password injection (FejdStartup.ServerPassword and ZNet.m_serverPassword) using Harmony AccessTools reflection with exception handling to prevent future game patch breakages.

1.0.1

  • Fix Empty Server Directory: Resolved issue where the server directory panel opened completely blank in-game.
  • Native ScrollRect & RectMask2D: Replaced Jötunn's nested canvas CreateScrollView with a clean Unity UI ScrollRect and RectMask2D container residing directly within the woodpanel canvas hierarchy, eliminating canvas sorting order culling and stencil mask issues.
  • Immediate Layout Computation: Added LayoutRebuilder.ForceRebuildLayoutImmediate and Canvas.ForceUpdateCanvases() on menu open to guarantee buttons are measured, centered, and visible on the initial frame.
  • Auto-Hiding Scrollbar: Configured responsive vertical scrollbar with mouse-wheel support that dynamically hides when servers fit within the viewport and appears when the list overflows.
  • Trace Logging: Added server directory build logs detailing loaded server count and layout bounds.

1.0.0

  • Initial Public Release
  • Main Menu Integration: Added native "BIFROST CONNECT" button directly to the Valheim main menu matching vanilla layout, font styling, and button audio cues.
  • Scrollable Server Directory: Added authentic Valheim woodpanel server directory with smooth mouse-wheel scrolling.
  • Join Confirmation Dialog: Added dedicated confirmation modal displaying server name, address, and password protection status before connecting.
  • Automatic Password Auto-Fill: Automatically passes saved server passwords into Valheim's connection sequence to eliminate manual entry.
  • Hot-Reloading JSON Configuration: Fast, live-reloading configuration (BepInEx/config/BifrostConnect_Servers.json) using Valheim's bundled Newtonsoft.Json with support for comments (// and #).
  • Auto-Generated Examples: Automatically generates a documented example template with multiple server formats if no configuration file exists.
  • Input & Navigation: Full Escape key support to close custom menus and return seamlessly to the main menu.
  • Distribution & Antivirus Compliance: Fully compliant assembly metadata, disabled unsafe blocks, and clean 7-Zip packaging for false-positive-free distribution across Thunderstore, Nexus Mods, and Hexium.