My app is using this library: github icza/s2prot
A game can be one of four types (ranked, unranked, custom, AI).
That library decodes the replay and spits out this:
"gameOptions": {
"advancedSharedControl": false,
"amm": true,
"battleNet": true,
"buildCoachEnabled": false,
"clientDebugFlags": 265,
"competitive": true,
"cooperative": false,
"fog": 0,
"heroDuplicatesAllowed": true,
"lockTeams": true,
"noVictoryOrDefeat": false,
"observers": 0,
"practice": false,
"randomRaces": false,
"teamsTogether": false,
"userDifficulty": 0
},
So ranked/unranked are 100% identical. And custom/AI are both 100% identical.
The only difference is in the fields “amm” and “competitive”.
I thought about using the SC2 web server: localhost:6119/ui
But I don’t think it’s possible to determine if the game just played was ranked for me. The response shows what screens are showing (nav screen, replay screen, etc). If there was a way to tell if the “ladder” button is greyed out that would help.
I searched the sc2replaystats
discord and he uses sc2reader which is a different library to decode replays. All their conversations there say there’s no way to determine from the replay file if it’s an unranked
game.