Raised This Month: $51 Target: $400
 12% 

[TF2] Bots with 'STEAM_ID_PENDING'


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
PC Gamer
Veteran Member
Join Date: Mar 2014
Old 09-27-2018 , 22:50   [TF2] Bots with 'STEAM_ID_PENDING'
Reply With Quote #1

What would cause Bots to have "STEAM_ID_PENDING", and how can I prevent it?

Issue: When targeting @humans, it will sometimes include one or more Bots.

When I kick the Bot and review the log it shows this:

Code:
L 09/27/2018 - 19:05:40: [basecommands.smx] "Console<0><Console><Console>" kicked "Gambit<638><STEAM_ID_PENDING><>" (reason "")
Also, If I view info of bot in-game using a tool called 'information' (https://forums.alliedmods.net/showthread.php?t=184945), it shows this interesting information:
SteamID: STEAM_ID_STOP_IGNORING
IP Address: Real IP, of the last person who disconnected and connected

Last edited by PC Gamer; 09-28-2018 at 00:08. Reason: Added new information
PC Gamer is offline
Powerlord
AlliedModders Donor
Join Date: Jun 2008
Location: Seduce Me!
Old 09-29-2018 , 04:09   Re: [TF2] Bots with 'STEAM_ID_PENDING'
Reply With Quote #2

STEAM_ID_STOP_IGNORING isn't a real Steam ID. It's what GetClientAuthString and GetClientAuthId put in the Steam ID when they return false in order to get plugin authors to stop ignoring their return values.

So, why do these functions return false? Well, it's when the server can't authenticate a user's Steam ID.

What's odd is I thought srcds would automatically put BOT (or whatever the BOT Steam ID is) even without having to authenticate with Steam.

The short version is that TF2 (and/or SourceMod?) isn't recognizing that these are bots for some reason and is instead trying to validate their Steam IDs, but can't because they're bots.
__________________
Not currently working on SourceMod plugin development.
Powerlord is offline
Fyren
FyrenFyrenFyrenFyrenFyren FyrenFyrenFyrenFyrenFyren FyrenFyrenFyrenFyrenFyren FyrenFyrenFyrenFyrenFyren
Join Date: Feb 2106
Old 09-29-2018 , 18:00   Re: [TF2] Bots with 'STEAM_ID_PENDING'
Reply With Quote #3

Does this happen if you only run MM:S and SM, without any third-party plugins or extensions?
Fyren is offline
PC Gamer
Veteran Member
Join Date: Mar 2014
Old 09-30-2018 , 11:01   Re: [TF2] Bots with 'STEAM_ID_PENDING'
Reply With Quote #4

I'll try with only MM:S and SM.

For now I offer these observations:
Note 1: It seems to occasionally occur when human player(s) disconnect on map change. If viewd from the Information Plugin referenced above the BOT will have the 'STEAM_ID_STOP IGNORING' and the IP Address of the disconnected human player. If the BOT is kicked from the game the log will show the BOT as having 'STEAM_ID_PENDING'.

Note 2: I only started noticing the Bot problem in July 2018 after upgrading to SourceMod 1.9.0.6244. I don't recall the version number I was using before that, but the problem didn't exist before. The only significant changes to the SourceMod versions that I noted were related to playermanager.cpp .

Note 3: I'm currently running SourceMod 1.9.0.6252 and the Bot problem still exists.
PC Gamer is offline
ddhoward
Veteran Member
Join Date: May 2012
Location: California
Old 10-01-2018 , 04:17   Re: [TF2] Bots with 'STEAM_ID_PENDING'
Reply With Quote #5

At no time does any client have "STEAM_ID_STOP_IGNORING_RETVALS" as his/her/its Steam ID.

GetClientAuthId() is the function that Sourcemod plugins use to retrieve a client's Steam ID. (GetClientAuthString is the older version of it)

The function features a return value, true if the operation was successful, and false if it was not. If it ever returns false, it usually means that the human client is not yet authenticated via Steam. If the function returns false, then the string buffer does NOT have the Steam ID put into it, because there isn't one (yet).

However, some newbie plugin developers weren't checking the return value. They just assumed that the function always worked, and passed the empty string to whatever other functions they used it with. Worse, in the days of decl, garbage data would be used as a "steam id," potentially causing server crashes, storing IDs that looked like gibberish, etc.

So, the Sourcemod developers decided to prevent that. If GetClientAuthId/String were to ever fail and need to return false, it no longer leaves the string variable alone. Instead, it loudly tells plugin developers to stop ignoring the return value, with the message "STEAM_ID_STOP_IGNORING_RETVALS"

If a plugin is telling you that a player's Steam ID is "STEAM_ID_STOP_IGNORING_RETVALS" then it's a really shitty plugin.


You DO seem to have another issue happening, but it's important to note why you're seeing "STEAM_ID_STOP_IGNORING"
__________________

Last edited by ddhoward; 10-01-2018 at 04:20.
ddhoward is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 14:56.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode