Search Unity

  1. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Question ParrelSync compatibility fix no longer working

Discussion in 'Authentication' started by dchipman, Aug 10, 2022.

  1. dchipman

    dchipman

    Joined:
    Jan 4, 2015
    Posts:
    38
    So far I've been relying on the workaround described here to allow ParrelSync clones to play nicely with UGS: https://forum.unity.com/threads/current-limitations-of-relay.1198198/#post-7666501

    Last night I started observing that the Lobby service is no longer treating the clone as a separate user. Rate limits are shared, and when trying to join the same lobby, a conflict error is encountered: `[Lobby]: LobbyConflict, (16003). Message: player is already a member of the lobby`

    Was this an intentional change? Is there a new recommended workflow for local testing with multiple users?
     
    trombonaut likes this.
  2. dchipman

    dchipman

    Joined:
    Jan 4, 2015
    Posts:
    38
    Upon further investigation, I'm getting assigned the same PlayerId by Unity's AuthenticationService regardless of auth via anonymous or Steam. I've never called the Link API, so there's no reason those authentication methods should be resulting in the same account.
     
  3. dchipman

    dchipman

    Joined:
    Jan 4, 2015
    Posts:
    38
    Anonymous auth appears to be using cached credentials of some sort. Authenticating with different Steam accounts successfully changes which PlayerId I am assigned, but subsequent anonymous auth uses whatever Id I was last logged into as a Steam user. This is not only a development workflow issue, but an account security issue.

    I've submitted a bug ticket for this finding.
     
    Last edited: Aug 10, 2022
  4. veleek_unity

    veleek_unity

    Ben Randall Unity Technologies

    Joined:
    Aug 25, 2021
    Posts:
    59
    Thanks for submitting a bug. This is not specific to the Lobby service, but the Authentication package, so I'm moving this thread to that forum.
     
    dchipman likes this.
  5. erickb_unity

    erickb_unity

    Unity Technologies

    Joined:
    Sep 1, 2021
    Posts:
    89
    Hello,

    You can use authentication profiles to isolate your players
    More information here: https://docs.unity.com/authentication/ProfileManagement.html

    Example:
    Code (CSharp):
    1. // Player 1
    2. var options = new InitializationOptions();
    3. options.SetProfile("Player1");
    4. await UnityServices.InitializeAsync(options);
    5.  
    6. // Player 2
    7. var options = new InitializationOptions();
    8. options.SetProfile("Player2");
    9. await UnityServices.InitializeAsync(options);
    The profile can also be set in the Authentication service directly prior to authenticating.

    You could probably use the clone folder name to feed the profile in your use case, or any other information ParrelSync might offer for this.

    Let us know if that works and if you have any other questions
     
  6. dchipman

    dchipman

    Joined:
    Jan 4, 2015
    Posts:
    38
    Hi Erickb, thank you for pointing out the Profiles feature, I am now using that to resolve the workflow aspect.

    I do believe this is still a player account security issue, but I am already following up on that in a support ticket (1333970).
     
    trombonaut likes this.