-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE REQUEST] ISteamMatchmakingServers.ServerRules #424
Comments
Rules you get directly from the server iirc |
You can get them from the TCP connection if you want https://github.com/SteamDatabase/Protobufs/blob/master/steam/steammessages_gameservers.steamclient.proto#L101-L108 |
@rossengeorgiev @Gobot1234 |
The SteamClient connects to a TCP socket, when you fetch a game server's rules using a2s you connect to the game server's socket that can however be queried using steam using that protobuf message I linked. |
@Gobot1234
Queried how? Also, are you saying this data is mirrored on Steam API side as well? If so I'd prefer to fetch from Steam since now all servers respond. |
Queried using a unified message (see SteamClient.send_um_and_wait) I can't say for sure that this works with all servers because last I checked it didn't but I think it's a lot easier to use and I don't think it has the same rate limits as a2s |
It only works for server that use Rules and set them. I happen to have an old game that uses them for their server name and descriptions for whatever reason.
Can you elaborate how to use it? I see for
I dont exactly know what
I dont understand, where is the appID? Or where is the specific server address? Or Game/SteamID? I already have a server list obtained, I just need to either query rules for each or somehow get rules together with the server query. |
Use |
Weird argument name for the IP and port. I assume we supply the query port, not game port?
I assume the existing |
Valve:tm: I'd assume it's the query port if you have it, I only seem to get game port from
proto_to_dict shouldn't be necessary here as you should be able to use attribute access on the returned protobuf right? |
It wont accept resp = client.send_um_and_wait("GameServers.QueryByFakeIP#1",
{
"fake_ip": ip,
"fake_port": port,
"app_id": *****,
"query_type": 3
}, timeout=10)
|
Whats the type of fake_ip and how are you making it? Everything else looks fine there to me |
According to stam docs it wants uint one so the raw response from server list unprocessed |
If you have any more ideas I'm willing to try |
https://partner.steamgames.com/doc/api/ISteamMatchmakingServers#ServerRules
Old web-api has
gs.a2s_rules()
but it is [client]-less version and a subject to draconian rate limiters. Some older games use rules as basically ways to set up tags for games.The text was updated successfully, but these errors were encountered: