CertiFried-TechtonicaDirectConnect icon

TechtonicaDirectConnect

Connect to Techtonica dedicated servers via direct IP. Bypass Steam lobbies and join 24/7 community servers!

CHANGELOG

Changelog

1.0.26

  • CRITICAL FIX: Removed NetworkedPlayer patches that were breaking save sync!
  • Client was skipping OnStartLocalPlayer which prevented RequestInitialSaveData() from being called
  • Server was never receiving the client's request for world data (causing "Timing out for strata")
  • Now properly receives save/world data from server

1.0.25

  • CRITICAL FIX: Set NetworkManager.networkAddress BEFORE calling JoinGameAsClient
  • The game was trying to connect but didn't know where (caused timeout)
  • Removed redundant ConnectAfterSceneLoad coroutine - game handles connection internally

1.0.24

  • Patched FizzyFacepunch (Steam transport) to prevent NullReferenceException spam
  • Disabled FizzyFacepunch.ClientEarlyUpdate/ClientLateUpdate/ServerEarlyUpdate/ServerLateUpdate
  • Enables KCP transport before calling JoinGameAsClient to prevent Steam transport errors
  • Now works without Steam networking active!

1.0.23

  • Fixed FlowManager.JoinGameAsClient call - now calls it directly instead of via reflection
  • Properly loads game scenes when connecting from main menu
  • Removed unnecessary instance check that was causing "FlowManager.instance is null" error

1.0.22

  • NEW: "Join Multiplayer" button in main menu! Uses the game's hidden button (no more F11 required)
  • Patched MainMenuUI.RefreshHiddenButtonState to show the multiplayer button
  • Patched MainMenuUI.JoinMultiplayerAsClient to show our connection dialog
  • Added Assembly-CSharp reference for direct game type access
  • F11 hotkey still works as a fallback

1.0.21

  • Added join-from-main-menu support using FlowManager.JoinGameAsClient
  • Pressing F11 and Connect from main menu now automatically loads game scenes
  • Added DoConnect helper to reduce code duplication
  • Added ConnectAfterSceneLoad and WaitForGameWorldAndConnect coroutines
  • No longer requires loading a save first - connects like joining a friend!

1.0.20

  • Added patch for NetworkMessageRelay.SendNetworkAction
  • Suppresses NullReferenceException when quest system tries to send network actions
  • Fixes error spam when playing in single player before connecting

1.0.19

  • Fixed crash when connecting from main menu
  • Simplified scene detection - just warns user instead of trying auto-load
  • Clear message: "Load a game first, then press F11"

1.0.18

  • Added scene detection - checks if you're in game world before connecting
  • Logs all loaded scenes for debugging

1.0.17

  • Added patches for NetworkedPlayer.OnStartClient() and OnStartLocalPlayer()
  • These methods crash when connecting because the player spawns before scene objects exist
  • Now patches 5 methods total to prevent NullReferenceException spam

1.0.16

  • Added null safety patches to prevent error spam when connecting
  • Patches NetworkedPlayer.Update() to skip (prevents NullReferenceException)
  • Patches ThirdPersonDisplayAnimator.Update() to skip (prevents NullReferenceException)
  • Patches ThirdPersonDisplayAnimator.UpdateSillyStuff() to skip (prevents NullReferenceException)
  • These errors occurred because the game creates player objects before they're fully initialized

1.0.15

  • Added NetworkClient.Ready() call after connection
  • Added NetworkClient.AddPlayer() to request player spawning
  • Increased connection timeout to 15 seconds
  • Added detailed logging for connection/ready/spawn sequence

1.0.14

  • Fixed double-toggle bug (OnGUI is called multiple times per frame)
  • Added frame guard to ensure UI only toggles once per key press
  • Event.current now properly detected and working!

1.0.13

  • Complete rewrite following ConsoleCommands mod pattern
  • Update/OnGUI now run directly on plugin (like working mods)
  • Added [BepInProcess("Techtonica.exe")] attribute
  • Added HideFlags.HideAndDontSave to persist gameObject
  • Triple input detection: Unity Input, Windows API, and Event.current
  • Removed separate MonoBehaviour (was not initializing properly)

1.0.12

  • Added robust logging for DirectConnectBehaviour lifecycle (Awake, Start)
  • Added fallback F11 detection via Unity's Event.current in OnGUI
  • Added error handling to prevent silent failures
  • Fixed potential null reference issues in Update/OnGUI

1.0.11

  • Updated changelog with all version history

1.0.10

  • Updated mod icon

1.0.9

  • Fixed Update/OnGUI not being called by creating dedicated MonoBehaviour
  • Changed keybind from F8 to F11 (F1-F10 are used in-game)

1.0.8

  • Added debug logging to diagnose input detection issues

1.0.7

1.0.6

  • Attempted changelog fix

1.0.5

  • Fixed input detection for games using Rewired input system
  • Now uses Windows API (GetAsyncKeyState) to detect key presses
  • Works regardless of game's input system

1.0.4

  • Added alternative input detection via OnGUI events
  • Added debug logging for UI toggle

1.0.3

  • Version bump to force Thunderstore cache refresh

1.0.2

  • Added missing kcp2k.dll dependency (fixes mod not loading)

1.0.1

  • Updated README with server hosting information
  • Fixed GitHub repository links

1.0.0

  • Initial release
  • Direct IP connection to Techtonica dedicated servers
  • In-game UI with F8 hotkey
  • KCP transport for reliable UDP connections
  • Auto-saves last connected server