From ac59628788cd1586a8b126024235c162c6265e17 Mon Sep 17 00:00:00 2001 From: fireb0rngg Date: Mon, 25 May 2026 22:55:18 -0500 Subject: [PATCH] Match session takeover on transport identifier only ReplaceExistingSessionIfPresent matched on UniqueClientIdentifier OR AuthKey. Because AuthKey is persisted in ModSettings and shared across all clients launched from the same install, two local clients connecting to the same server caused the second connection to displace the first. Restrict the match to UniqueClientIdentifier, leaving the legitimate same-transport reconnect path intact. --- SSMP/Game/Server/ServerManager.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SSMP/Game/Server/ServerManager.cs b/SSMP/Game/Server/ServerManager.cs index 989b103e..3560f8ca 100644 --- a/SSMP/Game/Server/ServerManager.cs +++ b/SSMP/Game/Server/ServerManager.cs @@ -1501,8 +1501,7 @@ string uniqueIdentifier ) { var existingPlayer = _playerData.Values.FirstOrDefault(playerData => playerData.Id != netServerClient.Id - && (string.Equals(playerData.UniqueClientIdentifier, uniqueIdentifier, StringComparison.OrdinalIgnoreCase) - || string.Equals(playerData.AuthKey, clientInfo.AuthKey, StringComparison.OrdinalIgnoreCase))); + && string.Equals(playerData.UniqueClientIdentifier, uniqueIdentifier, StringComparison.OrdinalIgnoreCase)); if (existingPlayer is null) return;