question

Daniel Moniz avatar image
Daniel Moniz asked

Get Match function contains no server details with "Enable server allocation" on

I've got a situation (all in UE4 Blueprint) where:

  • I have only one Matchmaking queue on which "Enable server allocation" is set
  • my matchmaking works as intended (I can see players are matched, the correct callbacks are fired, etc.)
  • I'm calling `Get Match`, which triggers the success callback
  • On success, I'm calling Break MultiplayerGetMatchResult
  • The Server Details pin in is invalid/does not exist.
  • A server is started. (I can see that one server moves from Standby to Active within about a minute.)
  • The server build is apparently healthy (tested both locally and as seen in the Servers tab of the web interface ("Deployed").

The fact that a server starts, but I apparently don't get the server details when calling GetMatch, is the odd part to me. Is there a step I'm missing? Do I need to get the match information, then somehow wait for a server to start? My impression was that enabling Server Allocation would allow for this flow.

In the below picture, note that `ReceiveMatchSuccess` at the top-left is confirmed to run. The code fails gracefully at the `Is Valid` calls on the right, which is being provided the invalid `Server Details` data.

Thanks in advance! I'd be thrilled to push this forward.

unreal
serverissue01.png (260.5 KiB)
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
Citrus Yan avatar image
Citrus Yan answered

To take a closer look at this issue, could you please print out the full response from "GetMatch" to see what's the exact response returned from PlayFab? And, may I have your title id to investigate further?

4 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Daniel Moniz avatar image Daniel Moniz commented ·

Hi Citrus. The title id is DE791.

To add while I'm testing it again, the game is actually crashing when I check for ServerDetails. I'm assuming that given that I apparently _do_ have ServerDetails (see below), I'm unable to decode them using `DecodeGetMultiplayerServerDetailsResponseResponse`. Maybe that's the wrong way to get the server details?

It looks like the response is as follows:

LogPlayFab: Response : {"code":200,"status":"OK","data":{"MatchId":"130be327-fd5a-4a01-9585-cffdba212864","Members":[{"TeamId":"team2","Entity":{"Id":"E55B09325AA1E918","Type":"title_player_account","TypeString":"title_player_account"}},{"TeamId":"team1","Entity":{"Id":"7AA7403CA206D83F","Type":"title_player_account","TypeString":"title_player_account"}}],"RegionPreferences":["EastUs"],"ServerDetails":{"IPV4Address":"52.226.0.66","Ports":[{"Name":"game","Num":30000,"Protocol":"UDP"}],"Region":"EastUs","Fqdn":"dns0040805f-2de9-4471-a481-10a7147a7951-azurebatch-cloudservice.eastus.cloudapp.azure.com"}}}

0 Likes 0 ·
Citrus Yan avatar image Citrus Yan Daniel Moniz commented ·

The problem is that "DecodeGetMultiplayerServerDetailsResponseResponse" is not the right node to decode the server details from GetMatch because it's for decoding the response from GetMultiplayerServerDetails. ServerDetails from GetMatch is a PlayFab Json Object Object reference, you can use nodes such as "GetStringField", "GetField":

to get the fields within ServerDetails.

1 Like 1 ·
get-xxx.png (16.7 KiB)
Daniel Moniz avatar image Daniel Moniz Citrus Yan commented ·

That's it! Nothing more than needing to use the various GetField-type methods to pull IPV4Address and Ports from the ServerDetails object.

Thank you! I've since had my first successful dedicated server test.

0 Likes 0 ·
Show more comments

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.