diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index 33f6a1cef..04cdfe1aa 100644 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -846,7 +846,11 @@ private static void AttemptLogin(CommandArgs args) return; } - if (args.TPlayer.CCed && Main.ServerSideCharacter) + // Pre-login auth gates can disable movement (SSC/RequireLogin), which may mark the player as CCed. + // Allow login in that temporary state to avoid an auth deadlock. + var disabledForAuthGate = args.Player.IsDisabledForSSC + || (!args.Player.IsLoggedIn && TShock.Config.Settings.RequireLogin); + if (args.TPlayer.CCed && Main.ServerSideCharacter && !disabledForAuthGate) { args.Player.SendErrorMessage(GetString("You cannot login whilst crowd controlled.")); return;