How osutitanic/hook works
Titanic! Hook launches an existing osu! client under a loader, then patches its runtime so older stable clients can connect to private servers and avoid compatibility issues. The main flow runs launch checks, loads the client, installs early hooks, and initializes the broader hook set at client startup. The graph preserves documented connection redirection, compatibility fixes, and plugin support. Some hook wiring is represented at directory level because those implementations were not sampled.
Main entry points: EntryPoint.cs Hook entry point · Program.cs Loader · OsuStartHook.cs Client start hook · PatchManager.cs Patch manager
Components 21
Client launch
- Loader
TitanicHook.Loader/Program.cs - Launch checks
TitanicHook.Loader/PreLaunchChecks.cs - Update handling
TitanicHook.Loader/Updater.cs
Hook runtime
- Configuration
TitanicHook.Core/Configuration.cs - Early load hooks
TitanicHook.Core/Hooks/Loading - Client start hook
TitanicHook.Loader/OsuStartHook.cs - Hook entry point
TitanicHook.Core/EntryPoint.cs - Patch manager
TitanicHook.Core/Framework/PatchManager.cs - Patch definitions
TitanicHook.Core/Framework/TitanicPatch.cs - Version-agnostic scanning
TitanicHook.Core/Helpers/SigScanning.cs - Client version detection
TitanicHook.Core/OsuInterop/OsuVersion.cs
Network redirection
- DNS redirection
TitanicHook.Core/Hooks/Connection/DnsHostByNameHook.cs - TCP redirection
TitanicHook.Core/Hooks/Connection/TcpClientHook.cs - HTTP connection hooks
TitanicHook.Core/Hooks/Connection
Fixes and extensions
- Client behavior patches
TitanicHook.Core/Hooks/Misc - Compatibility fixes
TitanicHook.Core/Hooks/Fixes - Plugin loader
TitanicHook.Core/PluginApi/PluginLoader.cs - Plugin API
TitanicHook.PluginBase/IPlugin.cs
Other components
- Player
- osu! client
- Private server
Connections 23
- Player → Loader: starts
- Loader → Update handling: checks updates
- Loader → Configuration: loads
- Loader → Launch checks: runs
- Loader → osu! client: loads assembly
- Loader → Early load hooks: installs
- Loader → Client start hook: hooks entry
- Client start hook → Hook entry point: initializes hooks
- Hook entry point → Configuration: reads and saves
- Hook entry point → Client version detection: detects version
- Hook entry point → Patch manager: applies patches
- Patch manager → Patch definitions: patches
- Client version detection → Version-agnostic scanning: uses IL scanning
- Hook entry point → DNS redirection: applies
- Hook entry point → TCP redirection: conditionally applies
- Hook entry point → HTTP connection hooks: applies supported hooks
- TCP redirection → Private server: resolves Bancho IP
- DNS redirection → Private server: redirects lookups
- HTTP connection hooks → Private server: redirects requests
- Hook entry point → Client behavior patches: applies
- Hook entry point → Compatibility fixes: conditionally applies
- Hook entry point → Plugin loader: loads optionally
- Plugin loader → Plugin API: loads implementations