AMP icon indicating copy to clipboard operation
AMP copied to clipboard

FR: Add A2S query for servers running on the Steam framework

Open southnode opened this issue 2 years ago • 7 comments

This is not for requesting support for new games/applications

To do this you should go to https://github.com/CubeCoders/AMPTemplates and first attempt to build a configuration yourself - otherwise you can request a template from this repo.

Feature Request

Feature Information:

I confirm:

  • [x] that I have searched for an existing feature request matching the description.

Add the ability for a server to utilise A2S querying for Server Statistics within AMP. This can be utilised to perform the following checks:

Current Player Count Maximum Player Count Reserved Slots Server Name ...etc etc - it can depend on the game. The best part is Gamedig for the most part has already done a majority of the work on this - would be a matter of implementing something similar. This avoids the issue wherein some servers can't have their current players checked as the log files are either missing the join/leave lines, or have lines that don't seem to match up when trying to regex yourself in/out of them.

Doing so could also allow for another monitoring point for AMP to determine whether a server is live or not - sometimes a server can still be "alive" yet is unable to be queried, which is effectively a soft lock.

southnode avatar Apr 08 '23 01:04 southnode

I second this. Having a2s query will allow all games to be queried seamlessly. Currently any source based game has an incorrect count or does not have an active means to measure active player count.

xLeviNx avatar Apr 08 '23 14:04 xLeviNx

The A2S query realistically can be regexed for a lot of different statistics of a server at any one time to allow for various scenarios, monitoring where it couldn't otherwise do it, AND it's a standard. With CS2 on the horizon as well, A2S would be a godsend to have in the product already. It's a wonder it's not.

southnode avatar Apr 08 '23 14:04 southnode

Can resolve #680 #825 #188

xLeviNx avatar Apr 09 '23 00:04 xLeviNx

I third this. I am having the same issue with player statistics not showing up, and I have a2s caching enabled on my server so I assume that is the issue. I would not like to disable that because there are obvious benefits to having it enabled. I hope this can get completed with CS2 on the horizon as this is a big bummer that player count is essentially broken for us.

sxon-xo avatar Apr 29 '23 00:04 sxon-xo

I third this. I am having the same issue with player statistics not showing up, and I have a2s caching enabled on my server so I assume that is the issue. I would not like to disable that because there are obvious benefits to having it enabled. I hope this can get completed with CS2 on the horizon as this is a big bummer that player count is essentially broken for us.

Don't think Mike is using a2s to query this data. Hes using another means (regex) which likely is broken

xLeviNx avatar May 28 '23 10:05 xLeviNx

I third this. I am having the same issue with player statistics not showing up, and I have a2s caching enabled on my server so I assume that is the issue. I would not like to disable that because there are obvious benefits to having it enabled. I hope this can get completed with CS2 on the horizon as this is a big bummer that player count is essentially broken for us.

Don't think Mike is using a2s to query this data. Hes using another means (regex) which likely is broken

Yep - definitely not a2s after speaking with him more in the discord. It is a regex issue for sure.

I will post the error here that I found in cs go in case it helps him diagnose once the freeze is over.

[00:27:19] [Logger Error] : Error processing message handler: PlayerJoined, Value cannot be null. Parameter name: address [00:27:19] [Core Error] : ArgumentNullException [00:27:19] [Logger Error] : [0] (ArgumentNullException) : Value cannot be null. Parameter name: address [00:27:19] [Core Error] : at Net.IPEndPoint..ctor (Net.IPAddress address, Int32 port) at srcdsModule.SRCDSApp.PlayerJoined (Text.RegularExpressions.Match match) at ModuleShared.AppServerBase.ProcessOutput (String data) 05/18/2023 - 00:27:19: "SamXon<2><STEAM_1:1:16486321><>" connected, address ""

sxon-xo avatar May 28 '23 14:05 sxon-xo

Very much onboard for this here as well, sometimes we can get player counts of 60/40 because it doesn’t read things properly.

Bryantdl7 avatar Jul 15 '23 22:07 Bryantdl7