fix(game/soulmask): set version from rules if available (#772)

* fix Soulmask version

* add Soulmask extra documentation

* update CHANGELOG
This commit is contained in:
Pedro Ivo Hudson 2026-05-11 16:20:00 -03:00 committed by GitHub
parent cb3e096331
commit 62f915ba53
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 17 additions and 2 deletions

View file

@ -3,6 +3,7 @@
## 5.X.Y
* Fix: ignore stale player list entries (By @cetteup #744)
* Feat: Plutonium - Added support (#745)
* Fix: Soulmask set version from rules if available (By @podrivo #772)
## 5.3.2
* Fix: detect BFBC2 Vietnam DLC as BFBC2 (By @cetteup #713)

View file

@ -279,7 +279,7 @@
| sof2 | Soldier of Fortune 2 | |
| soldat | Soldat | [Notes](#soldat) |
| sotf | Sons Of The Forest | [Valve Protocol](#valve) |
| soulmask | Soulmask | [Valve Protocol](#valve) |
| soulmask | Soulmask | [Notes](#soulmask), [Valve Protocol](#valve) |
| spaceengineers | Space Engineers | [Valve Protocol](#valve) |
| squad | Squad | [EOS Protocol](#epic) |
| ssl | SCP: Secret Labratory | [Notes](#ssl) |
@ -518,6 +518,9 @@ For queries to work, A2S needs to be setup in the server config, more info [here
Does not provide players data.
### <a name="soulmask"></a>Soulmask
Soulmask reports a hardcoded version (`1.0.0.0`) in the A2S_INFO response. To get the real game version, pass `requestRules: true` — the actual version is read from the `NO_s` rules key.
Protocols with Additional Notes
---

View file

@ -2794,6 +2794,9 @@ export const games = {
port: 8777,
port_query: 27015,
protocol: 'valve'
},
extra: {
doc_notes: 'soulmask'
}
},
ssl: {

View file

@ -11,7 +11,8 @@ const AppId = {
CS_Source: 240,
EternalSilence: 17550,
Insurgency_MIC: 17700,
Source_SDK_Base_2006: 215
Source_SDK_Base_2006: 215,
Soulmask: 2646460
}
export default class valve extends Core {
@ -275,6 +276,13 @@ export default class valve extends Core {
state.password = true
}
}
// Soulmask reports a hardcoded version in A2S_INFO; real version is in rules
if (appId === AppId.Soulmask) {
if ('NO_s' in rules) {
state.version = rules.NO_s
}
}
}
async cleanup (/** Results */ state) {