There should be, by default, a history of players who have been disconnected on clients.
Trying to hunt for some asshole’s SteamID in console/chat so you can ban him for aimbotting everyone(or whatever else) and leaving before you can react is balls.
Having to edit(and maintain your edit of, or make a pull request to) a gamemode so you can easily right click them on the “Disconnected” section of the scoreboard in order to ban them or at least grab their SteamID is also balls.
// Getting information. DisconnectedPlayers dcPlayers = Player.GetDisconnected(); var id = dcPlayers.SteamID(); var plUID = dcPlayers.UniqueID(); var plName = dcPlayers.Name(); var plScore = dcPlayers.Score(); var plLeftTime = dcPlayers.LeaveTime(); // For when a user doesn't need to see them anymore. dcPlayers.Forget(); // For when a user wants to clean up this information. dcPlayers.ForgetAll(); // Ran on start for users that would prefer not to have clutter. // Clicking the "Disconnected" label(or an adjacent button) would toggle the CVar too. Scoreboard.SetCollapsed("lang_sb_disconnected", CVar.GetBool("cl_sb_disconnected_hide"));
Implementing this in the base gamemode(and all included gamemodes) would help make this a standard and give an example that can be copied. It’s a quality of life feature we should not have to go without in my opinion.
Optionally when the client joins you could network to the client the last 5(or so) players who left before the client joined, for cases where an admin is called and loads in afterwards.