You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug: ModifyCurrentGameAttribute off-by-one error in the attribute index, causing the wrong attribute to change. Steps to reproduce this:
Have three players find unknown heroes with the area set to "I can't decide!", making sure no one else is searching during that time
The host client will randomly decide the area to play in, which will remain set for the remainder of the session. (At this point, the session stored in the database hasn't been updated yet.)
Have one of the players leave
This triggers the ModifyCurrentGameAttribute call, which does update the session in the database, but edits the 2nd attribute instead of the 1st one! As a result, the database still implies that the session has the "I can't decide" area selected
Have the same player find unknown heroes again with the area set to "I can't decide!"
That player will rejoin the same session
Have that player leave and find unknown heroes in a different area
The game submits two sets of search criterias - one in which the first attribute corresponds to the player's desired area to play, and one in which it sets the first attribute to 0, which will also match existing "I can't decide!" lobbies
That player finds the same session as before, but is unable to join and will get a 018-0501 error. This is because the host player wants a different area from the one the other player wants, causing the host client to reject the incoming connection. This is not a NAT traversal error!
Possible bug: nex-protocols-common-go: the 2nd matchmake attribute is sorted on, rather than compared against for equality. This means unknown players are matched regardless of their decision to play with or without bonus challenges
Online Play with friends
Find a friend room hosted by someone in your friend list
Join a friend room
Start playing with friends
(in-progress) Search for unknown heroes while hosting a friend room
Calls the following methods: CloseParticipation, UpdateMatchmakeSessionPart, OpenParticipation
UpdateMatchmakeSessionPart takes an argument of type UpdateMatchmakeSessionParam, specifying the ID of the matchmake session to edit, which properties to edit, and what to set them to:
updates ParticipationPolicy from 98 to 95 and MatchmakeSystemType from 2 to 1
updates all attributes (to reflect the desired search conditions: area, bonus challenges, adventuring style)
updates the ApplicationBuffer (presumably not important)
overrides a few matchmake parameters (the only one that changes is @DR (TypeID 3) from 77 to 0)
Prevent friends from joining a friend session whose host player has started looking for unknown heroes
Failure to do so can cause desync on the voting screen
The steps needed to reproduce this:
player A opens a friend room
player B find existing friend rooms and is prompted to choose a group to join, but waits there
player A starts looking for unknown heroes
player B tries to join the room they found earlier
Auto matchmake as soon as a friend room starts looking for unknown heroes
Otherwise, if someone on 'Unknown heroes' was already searching with the same conditions, either them or the host of the former friend lobby will have change their conditions back and forth
I think auto matchmake is supposed to occur at some point after the OpenParticipation call completes, but i'm not sure how, as neither game client is making additional RMC requests past that point.
Remove the region lock from Online Play
Option A: Remove the region lock entirely, allowing anyone to be matched regardless of game region.
Option B: Remove the region lock when playing with friends, with anyone in the Coliseum, or with unknown heroes in any area except Fortress, Sky Realm, and "I can't decide!". For these 3 area preferences, keep the region lock but allow EU and American heroes to find other EU/Americal sessions so they can play together.
Mitigate or prevent multiplayer desync errors that may arise from removing region lock
Two of the 32 Drablands levels, found in Fortress and in Sky Temple, feature automated dialogue that differs in timing across different regional copies. Those levels are The Lady's Lair (5-4) and Sky Temple (8-4).
EU and American players (who play among themselves) will only experience desync in The Lady's Lair if it is anyone's first time reaching the 4th stage of that level. If it does happen, simply replay the same level with the same people and it won't occur again.
Non-EU, non-Americal players are guaranteed to desync in The Lady's Lair and in Sky Temple unless all players are on the same region.
To this day, Den of Trials has not been known to cause desyncs.
@DR(TypeID 3) from 77 to 0)