#archived-unity-gaming-services
1 messages · Page 6 of 1
i'm guessing the problem lies with await AuthenticationService.Instance.SignInAnonymouslyAsync(); somehow
but the documentation said to use that
nvm
i fixed it
i made a discussion for anyone who will ever encounter the problem after me
i hope it reaches those poor souls
this is how authentication with player accounts works
Hi, I want to track bought virtual items (spells, wands, armor) in our mobile game's shop with Unity Analytics. The user "buys" them with a virtual currency (coins) which he can collect throughout the game. According to the docs I should use the TransactionEvent (For every virtual or real currency transaction in the game, you should always record a transaction event.)
Unfortunately I can't set the property "SpentVirtualCurrencies" for example as it's readonly.
Is this even the right way to track this or should i simply use a CustomEvent and use TransactionEvents only for real IAPs?
Are you using the Economy Service?
No, haven't even seen this. Should I use this?
That would be where "SpentVirtualCurrencies" comes from
ah okey, I will have a look at it then. If it's too complicated I will go for a custom event. I mean the "real" IAP's are already uploaded automatically by the unity IAP. It's just about the virtual items bought with Coins. I just want to know, when a user spends some of his coin for an item
Push notifications are the real pain
I am trying to run a Distributed Authority game on webgl, but I keep getting this error message on the console in the browser.
Relay server data indicates usage of WebSockets, but "Use WebSockets" checkbox isn't checked under "Unity Transport" component.
But the Use Web Sockets in the Network Manager in the Unity Transport is checked.
Do I need to do anything special do run a distributed authority game as webgl?
Thanks for sharing the link to the discussion! I agree the documentation is not easy to follow and the explanation for different concepts is spread out across different pages and landing on the authentication pages doesn't lay out a clear workflow - I think there are some pages that do a good job of this in isolation but you have to kind of stumble on them and then combine them mentally.
We plan to tackle this in Q1 (starting now!) to make it easier for folks to understand, and to reflect on things we can do in the Auth SDK that help with clarity around workflows for creating and managing sessions, the trade off of different flows (e.g. "Sign in Anonymously then Link" vs "Sign in with {Provider}") and of different sign in methods (e.g. Sign in with Apple vs Apple Game Centre vs Unity Player Login, etc).
This is getting a bit out of my area but I think a Custom Event is probably the way to go FWIW!
Thx for your recommendation, will definitely go for a Custom Event as we don't need an entire economy in our game.
We don't know which user is what account.
UGS seems to identify players by player id, but what if we don't know their player id?
How do we query/find a player based off of username, or meta data of the player?
We need to be able to do this so that we can give certain players free currency for testing.
Couldn't you store the player id in that same place you get the username?
Would we store the username/email in a separate database? We would like to query based on email that they registered with.
You could use the Authentication Admin Rest API to get the player id by username
https://services.docs.unity.com/player-auth-admin/v1/
This can be done through Cloud Code as well
Hi Mike!
The Authentication Admin API mentioned by @warm badge above supports Username and External ID lookup and might be useful.
We are really interested in trying to make both the Authentication Admin API and the Dashboard interface that uses it (in Player Management) more useful for use cases like this - be that looking up a user by email address, username, player name, etc.
Another option you could use today is leveraging Cloud Save to store data for players (e.g. by saving their email address in a Protected key named email) and use Cloud Save Queries (using UGS CLI, or call from Cloud Code) to look up players that way:
https://docs.unity.com/ugs/en-us/manual/cloud-save/manual/concepts/queries
The CLI module for Cloud Save currently supports creating indexes for Cloud Save, and Querying Player Data:
https://services.docs.unity.com/guides/ugs-cli/latest/cloud-save/Cloud Save Command Line/Commands/Data Custom/data-custom-query/
The development work to add modifying Player Data via the CLI was completed just before the Winter Holidays and should go out in the next release (later this month, I think).
If you are comfortable using REST APIs you can directly use the Cloud Save Admin REST API to fully automate looking up a list of players and then granting rewards like currency that way:
https://services.docs.unity.com/cloud-save-admin/v1/index.html#tag/Data
hi, is there a simple example of using matchmaker with relay?
The simplest example is using the Multiplayer Services SDK
ok, thank you.
So in the near future, we should be able to query player's by email address, username, cloud save, metadata, directly in the Player Management Dashboard?
multiplay hosting allows only 1 port per server? Using it with mirror, which has a nice thing, allowing for multiple transport protocols on the same server, bound to different ports. But, according to this https://docs.unity.com/ugs/en-us/manual/game-server-hosting/manual/concepts/launch-parameters there's really no "secondary" port, nor is there an option to configure somewhere on the number of ports required per server.
You can also make an editor tool to do this using the Unity Cloud Services APIs
I think we will expand it to Username and Player Name in Player Management first (and by External ID for a platform, if people know that), not being able to search for players that way feels like a gap and those seem like good starting points.
Related: We are also looking at exposing Cloud Save data via the Data Explorer in Analytics, which might be a good way to solve for that sort of use case without even needing an Index being defined in Cloud Save, as it's still decently fast but also doesn't need to run at "player scale" if it's for things like admin operations that involve looking up a user manually (or even multiple users, in a case like this where you have something like a group of beta testers).
There is no charge for using an Index in Cloud Save, so doing that right now for a field you might to be able to look up later is not a bad idea (you can always delete the index later, doing so won't delete the stored data itself, just the index of it).
While your on that, can you guys remove the limitations for UGS economy. Right now there is a limit of 750 number of items. We want more than 750 items
Hello, we use Unity ads for iOS game. We have the ATTracking package setup to ask users permission to track them for advertising purposes. However, our game got rejected apple for the following dialog box
MetaData gdprMetaData = new MetaData("gdpr");
gdprMetaData.Set("consent", "false");
Advertisement.SetMetaData(gdprMetaData);
was already set in the code
note sure why it stills pops up
problem is, this dialog doesnt show up in our region but keeps popping up for the Apple reviewer's
Inventory item limits is the biggest pain point folks run into with Economy.
We are exploring the best options there - in some cases folks have found that using discrete services like Cloud Save, Cloud Code and IAP together to build custom in-game Economy solutions has worked better for them, as it's offered more flexibility (both because there are no limits on the number of items but also because it allow for custom mechanics).
We are evaluating if it's better to invest time in improving the developer experience of using different services together (e.g. additional features in Cloud Save that make it easier to work with inventories, an improved IAP SDK, and exploring what we have internally been calling "Feature Kits" that provide out-of-the-box working examples of services, etc) to provide away of implementing economies/inventories that is low friction but also more flexible.
Some developers with existing Economy solutions have also explored using the existing services together, e.g. using Economy for currency / wallets and using Cloud Save + Cloud Code to handle Inventory (i.e. calling the Economy service, checking for and then deducting currency, then writing the item to inventory stored in Player Data in Cloud Save to complete the "purchase").
Need some clarity.
As I understand the multiplay service currently provides servers with no certificates installed, and hence cannot support wss. The solution is to use the relay service, according to various answers on forums..
My game is supposed to be run from a webgl client, and uses mirror.
Option 1 is setting up a reverse proxy, but I don't think it will work with scaling? Because I need to basicaly set that up for each scaled server, and I'd ideally want 0 servers running when no players are playing.
So option 2 which I've understood is, matchmakers triggers a spins up a multiplay server, which connnects to a relay server, and generates a join code. Now my problem with this is, how do I pass this join code to my clients, without using some external database/service ?
Option 3, is using host mode, but, the example https://github.com/Unity-Technologies/unity-relay-mirror-sample doesn't support Host mode on webgl. Which I assume is because of mirror not supporting it then. Mirror does seem to do now with relay, so is it possible..?
At this point, I have a game, that works in both dedicated server // host + client mode, and I am just not able to deploy it using UGS
If you want to use Multiplay and plan on less than 10 servers then know that it has an admin sdk where u can send http post requests to see the server ip address and port of every listed server.
Then you just need to set the connection data for when a player wants to connect to a specific server:
using Unity. Netcode;
using Unity.Netcode. Transports.UTP;
public class ExampleScript : NetworkBehaviour
[SerializeField] private string ServerIpAddress = "";
[SerializeField] private ushort Port = 0;
private void Start()
NetworkManager. Singleton . GetComponent<UnityTransport> ().
SetConnectionData(ServerIpAddress, Port);
NetworkManager. Singleton . StartClient () ;
Not sure how its done on mirror. The above is an implementation for netcode for gameobjects
This won't work with webgl. The server would need certs installed for secure websockets
Isn't this fixed by using the websocket transport from here:
https://github.com/Unity-Technologies/multiplayer-community-contributions
Hi,
Unity player authentication doesn't work when built for UWP
I get Windows.Networking.Connectivity.dll access denied logs even though I have enabled Internet and Private network access.
Its a multiplayer game developed with netcode for game objects, initially the player prompted to sign in which must open a browser but it does not open at all (works in editor) and i see several access denied logs.
It'd be great if anyone knows how to fix this
@wise ingot !collab
:loudspeaker: Collaborating and Job Posting
We do not accept job or collab posts on Discord.
Please, use Discussions to promote yourself as job-seeking, advertise commercial job offers, or look for non-commercial projects to participate in:
• Collaboration & Jobs
ight
Hi, for some reason I keep getting Object Reference error in my Cloud Code after updating my Unity version to 6.0.33.
I made sure I have deployed it properly on the right environment tho.
For instance, I have int turnData = await gameCode.GetTurn(lobbyId, playerId, turnNo);
which calls public async Task<int> GetTurn(IExecutionContext ctx, IGameApiClient gameApiClient, string _lobbyId, string _playerId, int _turnNo)
Has anyone made cloud builds for Android that uses Admob?
We are trying cloud builds but the builds don't run on device , local builds from editor or batch mode are fine.
The error we see on device is this:
******************************************************************************
* Missing application ID. AdMob publishers should follow the instructions *
* here: *
* https://googlemobileadssdk.page.link/admob-android-update-manifest *
* to add a valid App ID inside the AndroidManifest. *
* Google Ad Manager publishers should follow instructions here: *
* https://googlemobileadssdk.page.link/ad-manager-android-update-manifest. *
******************************************************************************
I created the organization etc. I cant access anything, why is that?
I really need a type of version control for my university project
Universal Windows Platform authentication
Oops, I tried to reply at the same time as making a thread but apparently Discord didn't like that!:
#1331221757839015987 message
Has anyone tried using Matchmaker with a custom hosted solution [Non UGS]? Basically this forum thread https://discussions.unity.com/t/custom-hosting-for-matchmaker-and-its-price/925910/3
Note: Unity Matchmaker is offered free of charge when you're using Multiplay Hosting or a client-hosted solution provided by Unity (Relay and Distributed Authority).
https://docs.unity.com/ugs/manual/matchmaker/manual/matchmaker-overview
It seems usable without using Multiplay or Unity relay...So, is it allowed to be used outside of UGS hosting, and if yes, is it still free?
Hey! Not sure if this is the right place to post but I'm having a hard time getting a team member added to my project with Unity Cloud. THey've been added to the organization and can access the repository from Unity Hub, but when they try to submit they recieve this message. Any ideas?
Have they also been added to the DevOps org?
Why do I have this error after updating Cloud Code recently?
None of my Cloud Functions work anymore, everything just broke after the update.
I even tried inputting a value directly when calling the function just to ensure the data value being passed isn't null.
I also checked the website tutorial for it, and it seems to be still the same and nothing changed. So why updating my Unity version and cloud code package broke it.
Hi, is it the generated binding class that's null? Or the CloudCodeService?
It's forwarding me to the generated binding class as a null, yes.
Even the simple Hello World in Get Started in Cloud Code C# Module doesn't work anymore.
Make sure you've regenerated the bindings, and that you've created an instance of the binding class (should look roughly like this: Example = new MyModule(CloudCodeService.Instance);), and that this initialization occurs before your GetTurn method call. Check for any errors showing up in the console that might indicate it didn't initialize successfully.
I had this which worked before the update. Or do I have to reference the CodeBindings to a method everytime?
StartTurn() btw is called from another script, or that won't work either and really have to reference the CodeBinding inside the method that it is called.
Hi everyone!
I'm working on a simple chess game online. I'm trying to get the server logic ready for upload onto Unity Cloud while using Multiplay Hosting and Matchmaker.
I know I need to start the server when the application has been exported as a dedicated game server. However I have to pass some arguments to the transport in order to start the server. These arguments are found in ServerConfig.
I have a simple question: How do you access the serverconfig with the new Unity Services Multiplayer package ?
Since Unity Services Multiplay is deprecated, ServerConfig does not exist in the new one but all the tutorials I've been looking for use it. What should I do ?
I think you are looking for Multiplay Server Options
https://docs.unity.com/ugs/en-us/packages/com.unity.services.multiplayer/1.0/api/Unity.Services.Multiplayer.MultiplayServerOptions
Multiplayer Services Options does not have the same fields as Server Config no ?
Oops forgot to respond
oh if you need to set the IP and port then use the SessionOption.WithDirectNetwork()
I see
So everything now is a session ? I need to create a new session for everything ?
What kind of script do I need to write for the server logic only ? I need to start the application as a server with the networkmanager single instance but is there anything else I need to write beside that ? I feel like the documentation only covers client-side functions...
Yea. Session unifies most of the services now. The Session Manager will take care of the Query Handler for you. You might need to SetPlayerReadiness() if you are using Matchmaking
https://docs.unity.com/ugs/en-us/manual/mps-sdk/manual/game-server-hosting-support
Does the server start a session upon launch or is it only coming from the client.
I'm sorry, I'm so confused
Both will start a session. The client will start matchmaking which could potentially spin up a new server. The server session manager will start running the query handler that other clients will see during their own matchmaking requests.
Thank you for your time and answers !
Do I need to call UpdateServerCheck() in Update ? I keep getting this error with this code :
private const string _interalServerIp = "0.0.0.0";
private int _serverPort = 7777;
private IMultiplayerService _multiplayerService;
void Awake()
{
// Server optimisation
Application.targetFrameRate = 60;
QualitySettings.vSyncCount = 0;
}
// Start is called once before the first execution of Update after the MonoBehaviour is created
async void Start()
{
StartServer(); await StartServerServices();
}
// Update is called once per frame
void Update()
{
}
private void StartServer()
{
NetworkManager.Singleton.GetComponent<UnityTransport>().SetConnectionData
(_interalServerIp, (ushort) _serverPort);
NetworkManager.Singleton.StartServer();
}
async Task StartServerServices()
{
await UnityServices.InitializeAsync();
try
{
_multiplayerService = MultiplayerService.Instance;
var sessionManagerOptions = new MultiplaySessionManagerOptions()
{
SessionOptions = new SessionOptions()
{
MaxPlayers = 10,
}.WithDirectNetwork()
};
var sessionManager = await MultiplayerServerService.Instance.StartMultiplaySessionManagerAsync(sessionManagerOptions);
var session = sessionManager.Session;
await sessionManager.SetPlayerReadinessAsync(true);
}
catch (Exception ex)
{
Debug.LogWarning($"Something went wrong trying to set up the session:\n{ex}");
}
}
You won't need to StartServer(); StartMultiplaySessionManagerAsync() will handle that
yea
StartMultiplaySessionManagerAsync is supposed to call the query handler as well
So am I messing up or is the manager not doing its job ?
Did you already remove StartServer()?
Died again
weird. Are you getting the session from the session manager?
oh you need to subscribe to they Allocation event to call StartServerServices()
we do have a sample that you could check out for how to use the server allocation callbacks:
I did check out those samples but the issue is they still rely on Unity.Services.Multiplay which is deprecated no ?
the standalone package is indeed deprecated, but Multiplayer Services now encompasses the old standalone variants with slight changes. we are actively improving it 🙂 the concepts should be the same (/ very similar)
Nice, I'll take a look at them then. Thank you
I've found this : https://github.com/Unity-Technologies/com.unity.multiplayer.samples.bitesize/tree/f01d4edc6684a42401785836ee5b433003575c64/Experimental/DedicatedGameServer
Which uses Unity 6 with Multiplay Hosting and Matchmaker but it doesn't create a session, doesn't handle server allocation nor send heartbeats to the agent. Why ?
(I've tested it and go the error :
`Allocated server had issues (Query didn't respond or responded incorrectly [DOWN]), stopping server and deallocating
Server having issues (Query didn't respond or responded incorrectly [DOWN]) for 61 seconds (Restarted 0 time(s))`)
That sample doesn't use the new Multiplayer Services SDK. But also seems to be missing all Multiplay functionality. It would work as a stand alone dedicated server but not through Matchmaking.
I see ! Thank you !
Hi , where can i post my question about how to find my Google Public Key for configurate Unity IAP please
Cant find it on Google Play Console
I assume you probably saw this documentation already, but on the off chance you did not, here is a link to the docs that have quite nice comments on how to set up the connection:
https://docs.unity.com/ugs/en-us/manual/game-server-hosting/manual/sdk/game-server-sdk-for-unity
hey guys.
Quick question, how do you guys replace scriptable objects when working on a multiplayer game with UGS?
I want to implement quests, where the player clicks a button, it progresses. When progress reaches max amount, rewards are given, but i want to make it server authoritative. The problem is knowing how to do that on multiplayer, should i create scriptable objects for client and remote config for the server with the same id for both objects?
Thanks!
Hi !
I did saw this ! It’s referenced in a lot of YouTube tutorials too ! It’s great documentation.
The issue with this is it’s not easily available with the new Unity Services Miltiplayer Package.
As an example, ServerConfig does not exist in the new MultiplayerService.Instance. As well as most of the other functions.
I’m trying to learn the new (and hopefully improved) systems but I’ve been bad at it since I’m kinda new to Networking and the documentation on it is kinda sparse.
The SDK handles most of that for you. Just make sure you are subscribing the Multiplay Server's Allocate Event to start the Server services
When I work with SOs, I keep them in a large list on both client and server. Then you can just pass the list index around when you need to reference them.
sure, but how can i fetch them from the server? Im using cloud code
Would something like this work ? I can't find SubscribeToServerEventsAsync
Found it! Thank you.
You're really knowledgeable on the subject, is there somewhere I can gain your kind of knowledge ? I don't want to bother you everyday for simple things like these...
sorry to tag you dude, but what do you do to get the Scriptable Object from the server, using cloud code?
Lol, keep asking. It makes me dig through the docs the find these things.
Mine is a card game so they are built into the client. But they could be addressables if its like DLC or Live Service type stuff
Hey @balmy meadow ,
If I understand correctly you are actually looking into the quest system use case scenario we posted under:
https://docs.unity.com/ugs/en-us/manual/cloud-code/manual/modules/use-cases/quest-system#Quest_system
and want to make it server authoritative, right? Or do you actually want to create a ScriptableObject based Quest system?
Thoughts ? (Three days I get the same errors)
Ah looks like the StartMultiplaySessionManagerAsync() already subscribes to everything so you don't actually need to do that separately.
Over on the Unity Netcode Discord this was posted as an example by one of the devs
var multiplayCallbacks = new MultiplaySessionManagerEventCallbacks();
multiplayCallbacks.Allocated += allocation =>
{
Debug.Log($"Server {allocation.ServerId} allocated with ID:{allocation.ID}");
_session = _multiplaySessionManager.Session;
Debug.Log($"Server session: {_session.Id}");
};
var sessionManagerOptions = new MultiplaySessionManagerOptions()
{
MultiplayServerOptions = multiplayServerOptions,
SessionOptions = sessionOptions,
Callbacks = multiplayCallbacks
};
...
_multiplaySessionManager = await MultiplayerServerService.Instance.StartMultiplaySessionManagerAsync(sessionManagerOptions);
This can be in your Start() on the server
Can I get an invite to the Unity Netcode Discord ? I'm really interested
Something like this ?
public class UnityCloudManager : MonoBehaviour
{
private static UnityCloudManager _instance;
void Awake()
{
// Singleton pattern to ensure only one instance is active
if (_instance == null)
{
_instance = this;
DontDestroyOnLoad(gameObject); // Optional: persist across scenes
}
else
{
Destroy(gameObject);
return;
}
// Server optimization
Application.targetFrameRate = 60;
QualitySettings.vSyncCount = 0;
}
void Start()
{
if (Application.platform == RuntimePlatform.LinuxServer)
{
Debug.Log("We're detected as a server");
StartServer();
}
}
private async void StartServer()
{
// MultiplayServerOptions variable
var multiplayServerOptions = new MultiplayServerOptions(
"Cardinal",
"Default",
"117534",
"Playgroung",
true);
// Options for the server session
var sessionOptions = new SessionOptions()
{
MaxPlayers = 10,
};
var multiplayCallbacks = new MultiplaySessionManagerEventCallbacks();
multiplayCallbacks.Allocated += allocation =>
{
Debug.Log($"Server {allocation.ServerId} allocated with ID:{allocation.ID}");
};
var sessionManagerOptions = new MultiplaySessionManagerOptions()
{
MultiplayServerOptions = multiplayServerOptions,
SessionOptions = sessionOptions,
Callbacks = multiplayCallbacks
};
var _multiplaySessionManager = await MultiplayerServerService.Instance.StartMultiplaySessionManagerAsync(sessionManagerOptions);
await _multiplaySessionManager.SetPlayerReadinessAsync(true);
}
}
yeah, exactly. I want to 1) Make it server authoritative and 2) find an easy way to actually set-up content(quests) and thought about scriptable objects
That should work. I would put await _multiplaySessionManager.SetPlayerReadinessAsync(true); in the allocated callback
So far, no errors
Do you know why I can't connect to it tho ?
I have entered the IP address and the port of the allocated server but my character won't spawn
Is there some kind of client auth I need to do to connect to the instance (use Relay ?)
Normally you could use the matchmaker to connect to a Multiplay Server. But if you use session options with DirectNetwork() and enter the server IP, it should connecr
is anyone else having an issue with extremely slow cloud code cold starts?
even sometimes regular invocations are taking up to 8 seconds
sometimes i just get a request timeout
the first request takes longer because you're initializing the service
subsequent calls are significantly faster
what is userId?
it doesn't seem to be the same as playerId
what do I do with a userId?
"user": {
"disabled": false,
"externalIds": [],
"id": "3Q0DPmNAplj1ovuRImSTlow1zrjn",
"username": "myname"
},
please provide a bit more context
it looks like they are the same, but were given different names.
Unity Gaming Services allows you to find players in the dashboard by playerid only.
a userid seems to only be found when when calling signup or signin web apis.
I don't know why they give them different names, when the two values seem to be doing the same thing.
can you print out the playerID from cloud code or something and check if they are the same?
yeah, playerId and userId are definently the same.
Not sure why they give them different names when they have the same value.
yea i get that but is that amount of time normal for everyone?
it seems like it goes cold after around 10 minutes
sorry, I am asking vague questions.
But how do I make my own identity/ OAuth provider for UGS identity?
Should I look at OpenIDConnect? Custom ID?
What are some good starting resources for this?
If you don't already handle user credentials, I would not recommend running your own oauth server. Identity Management is an entire field that opens you up for data breaches.
I don’t mind the challenge. I might completely mess up, but I will try my best.
UGS doesn’t seem good at handling user info, so building your own identity provider for UGS sounds like a good solution
Its not the challenge but the liability that I wouldn't want to get near. Have to comply with all the internationals laws is a huge pain.
yeah, exactly. I want to 1) Make it
not very familiar with plastic but once i type in a comment and check in all my changes, im good. right?
As long as there were no errors, yea
@white hill Hi Mike!
So, Unity Authentication supports a dozen or so authentication methods, including Open ID Connect to talk to an existing Oauth server that you own (or a third party one) and lets you have players Sign In or Link with one or more providers. However we don't provide a way to run an Oauth server for other services to connect to.
In addition to supporting sign in you create users, manage usernames and passwords and suspend or delete users via the Player Management view, as well as go from there to view that players data in Cloud Save in the Dashboard (the Cloud Save Dashboard got a big overhaul last year, and we are still working on it). There is no charge for using Unity Authentication or for Player Management (but there is for other services, like Cloud Save).
It's fair to say we think there is a lot we can do to improve the Player Management experience, in particular in the Dashboard. We've already started with some small changes recently and I expect to see more improvements there - there is currently a gap between what is supported in the API and the more limited features exposed in the Dashboard view and it would be good to close those gaps - especially for basic operations like looking up a player by username and/or player name, resetting passwords, etc and I expect our team to work on that this year.
@white hill We are also looking at improving what methods we offer for signing up and managing users.
e.g. a password reset flow using email [ without having to use a web based sign in ] is something we have seen requests for and are considering
The Player Management Authentication API supports doing just about anything you would want to do, but we don't have a turn key solution for things like a player facing website (unless you use the web based Unity Player Account Login flow, which does handle that but comes with some trade offs).
We'd love feedback if there on any features / functionality you'd like to see!
the main features I would like for UGS player management is the ability to query players by username, and other identifying information. We should be able to use something like an SQL like language to find a list of players. Password resets are also important.
But also other information directly inside the player management dashboard. Such as last online, or currently online. There should be ways to customize player management and add more columns for querying.
Some companies in china do phone auth, where you login by typing in your phone number and then your password. For some reason, my CEO wants that feature for some reason.
It would be really cool if UGS player management was it's own/had its own official Unity identity provider. If Unity had its own OpenID Connect/ Identity Provider and OAuth, we can use it for authentication of our players for many applications, and third party developers that are outside of the core development can OAuth our players for their own third party applications.
A lot of the problems that are currently in Player management is lack of features, with the most important one being, unable to query for players, and password resets. It was why I was thinking of creating my own Identity provider just for UGS player management.
Unity does have its own Identity Provider
https://docs.unity.com/ugs/en-us/manual/authentication/manual/unity-player-accounts
Oh. I will look into this
the main features I would like for UGS
Hi there, I keep getting a "Unity.Services.Lobbies.LobbyServiceException: (401) HTTP/1.1 401 Unauthorized" when trying to call LobbyService.Instance.CreateLobbyAsync on a Multiplay Dedicated Server. I've tried authenticating with both ServerAuthenticationService.Instance.SignInWithServiceAccountAsync and ServerAuthenticationService.Instance.SignInFromServerAsync. Same result. I've checked ServerAuthenticationService.Instance.IsAuthorized, which returned true in both case. I've cleared my access policies "statements": []. I could not find any Lobby-related role for the Service Account to be assigned. What am I missing?
I'm not sure why that is not working. Are you able to create Lobbies from the client side?
If you are using Unity 6, I would use the Multiplayer Services SDK
https://docs.unity.com/ugs/en-us/manual/mps-sdk/manual/game-server-hosting-support
If you aren't using Multiplay Hosting, then your players can still browse the Session List like they could for Lobbies
I'm using Unity 6 and Multiplayer Services SDK
Is there any use for the token var token = ServerAuthenticationService.Instance.AccessToken; in the SDK or is it only for the REST API calls?
Only for rest API calls.
No problem creating the lobby from the client side
I get another error when calling the LobbyCreation via the REST API
code: 16000,
detail: 'request failed validation',
details: [
{
errorType: 'validation',
message: "missing serviceId in 'service-id' header"
}
],
status: 400,
title: 'Bad Request',
type: 'http://unity3d/lobby/errors/validation-error'
}
I couldn't find any reference to a service-id header in the docs or online. Any clue what that is? I made the call with both ServerAuthenticationService.Instance.AccessToken; and another method to get a stateless token from my Service Account. Same result.
I'm not sure what the problem is, both of those options should work
When using the rest API, are you adding the bearer authentication?
https://services.docs.unity.com/docs/service-account-auth/index.html#authenticate-an-api-using-service-account-credentials
Admin APIs allow you to access and configure Unity Services as an administrator. To authenticate admin APIs, you must create and use service accounts.
Me neither, also the API calls are working for other services like Cloudsave and I'm using the same logic.
I'll keep trying 💪
Anyone know how to get Muse to make slightly more ..moving animations?
It does jabs and punches fairly well, but I"m trying to get it to do just a bit more. I want it to just wind-back the arm and throw a punch
and it's pretty hard to attempt ot get close to that, even editing an animation
any tips or tricks on this Muse Animate prompt stuff?
I think I found the issue, 'service-id' header is actually the HostId and must be provided when creating a Lobby with the Service Account. So it means it's probably not possible to use the SDK to create a lobby from the Dedicated Server.
D:\Development\Unity\CLI>ugs lobby create lobby.json --service-id **DefaultHostId**
class Lobby {
Id: wjckW79oe6QVHfFLYapAgH
LobbyCode: 77JRDF
Upid: ...
EnvironmentId: ...
Name: Test
MaxPlayers: 4
AvailableSlots: 4
IsPrivate: False
IsLocked: False
HasPassword: False
Players: System.Collections.Generic.List`1[Unity.Services.MpsLobby.LobbyApiV1.Generated.Model.Player]
Data:
HostId: **DefaultHostId**
Created: 04.02.2025 00:51:32
LastUpdated: 04.02.2025 00:51:32
_Version: 1
}
Docs should be updated the reflect that, it's not mentioned anywhere
am trying to do IAP. my project is linked to unity cloud in project settings, and unity hub also reflects that, but I still get an error when starting the game
fixed by regenerating project files 😠
update: selecting custom build profile causes a bug that doesnt take the project ID into account
Does anyone know if I need to ask the user for consent in my steam game if I want to use cloud diagonstics?
You'll need to check your local laws but in a lot of places yes you do
https://docs.unity.com/ugs/en-us/manual/cloud-diagnostics/manual/privacy-overview
Awesome, thanks
Hi, I wonder if there is a complete C# Documentation for Cloud Code similar to the Javascript version? https://docs.unity.com/ugs/en-us/manual/cloud-code/manual/scripts/how-to-guides/unity-services-integration
I'm trying to integrate Lobby into Cloud Code but I can't seem to find a decent example. I've already integrated Cloud Save but other than it, the rest of services don't seem to have complete documentation.
I'm only seeing the GetLobbyData example in Cloud Code but I want to Create Lobby in the Cloud Code, instead it's forwarding me to the Client implementation.
I'm not sure if creating Lobby from a client is good practice so I want to make sure to create it using Cloud Code as much as possible.
The Cloud Code Chess sample creates a lobby in the "HostGame" endpoint/function
https://github.com/Unity-Technologies/com.unity.services.samples.multiplayer-chess-cloud-code
https://github.com/Unity-Technologies/com.unity.services.samples.multiplayer-chess-cloud-code/blob/main/ChessCloudCode/Chess.cs
The author added me but it still doesn't work, what can I do?
Is it possible to save/load a Dictionary with CloudSave? When I do a LoasAsync on the key I saved it seems to be returning the whole Dictionary as one key/value
CloudSave seems to split the original Dictionary's key/values into separate items. So I have to load each of these individually, or is there a way to deserialize the Dictionary itself?
anybody?
If the auth token expired you just need to reauthenticate
You can save the dictionary to json
you mean where?
Hi, thanks for the guide! I'm working on it right now and trying to translate some of the client code to cloud code and encountered this issue when doing specific queries/lobby options.
The code above doesn't work as I apparently have to convert the string into a Lobby Visibilty enum?
This is how I implemented it on the Client code side which works.
I'm loving how simple it is to get up and running with UGS. Are there any plans for more SDK support with Unreal? Things like Economy, Friends etc?
DataObject should be ("Value", VisibilityEnum, Index)
That all should work with the Rest API in Unreal
Really?? I’ll check the docs. Just to clarify you’re saying I can use something like http requests to communicate with those services?
Yea all the services have client and admin web apis
https://services.docs.unity.com/friends/v1/
Wow that’s very helpful. I’ve used http requests briefly with PlayFab for calling cloud script functions is this similar? Where I would use Unity’s cloud code equivalent to string the internal api calls together then that would give me a link to that cloud code where I can call that function from my project using? Sorry for bombarding you.
I believe its a bit different from Azure Cloud Script. The Cloud Code API is here
Oh you're right, I also forgot to hover on the function to see the values it need/proper value arrangement. 🤦♂️ Thanks!
Glad to hear you've found it easy to get started with UGS! Please do keep the questions coming, I'm keen to hear which services you try and how you get on.
Thanks! I'm trying to start simple with the economy sdk. I see in the setup that it wants api calls to come from c# however, unreal doesn't support that. There are no best practices for using other services unity provides other than Multiplay, Authentication & Matchmaker in unreal engine. Does that mean these things aren't supported especially the ones with docs requesting c# invocations?
Ah, never mind I do have to call these api's directly.
Yep you should be able to use the Web APIs for each service from unreal. The page for each API should also let you download an OpenAPI spec if you want to generate your own SDKs.
if i try https://social.services.api.unity.com/v1/names/{playerId} with a wrong playerid it returns a not existing playername. Any idea how to check if a playerid exists?
{"id":"XXXXXXXXXXXXXXXXXXXXXXXXXXXX","name":"TidyComplicatedBird#6"}
and did you read the documentation for that request?
https://services.docs.unity.com/player-names/v1/#tag/Player-Names
Indicates if a player without a name should have one auto generated or not. Defaults to true.
yes but if i try : a existing playerid with: $"https://social.services.api.unity.com/v1/names/{playerId}?autoGenerate=false&showMetadata=true"; it returns : Antwort von Server: {"autoGenerated":true,"id":"MOoDv7lZucf4zfFOGko9fHxuBeC3","name":"MerryBurningGroundhog#9"}
but this player exists, i dont wanna check if player name is autoGenerated, i wanna check if playerid exists
and does that player id have a name associated with it already?
you don't use the player names api to check if a player id exists, you would presumably use whatever api you got the id from, likely the authentication one
I try to check whether the PlayerID exists before sending a friend request, otherwise a request is sent even though the PlayerID is not correct.
You could have the server call GetPlayer()
https://services.docs.unity.com/player-auth-admin/v1/#tag/Player-Authentication-Admin/operation/GetPlayer
All right, then I have to activate the authorizations, otherwise it will only work on my own account. Is there a limit to the API requests?
Just the rate limits
https://services.docs.unity.com/auth/v1/#section/Overview/Rate-Limits
I'm making a new build config and i'm using SQP as the query type. My server always tends to crash with this option turned on no matter what I do.
This is the error Query didn't respond or responded incorrectly [DOWN] In the getting started doc and video there is no demonstration of a "Heartbeat" mechanic. I know playfab and aws have but it's front facing. What is the equivalent in UGS?
I'm using Unreal Engine.
Server works fine with the query type set to none. I'm guessing SQP is for tracking things which I'm wanting to do
Yea I’m actually doing all of these things in C++ in line with the documentation. I’ve also scrubbed this video for as much info as possible. I legit have a change set in my repo where my code matches his minus the things I can’t see and the server still gives the same error. https://youtu.be/IfOMlH8BzCs?t=220&si=ZyFK9vXpxAhsbYX8
In this Game Server Hosting (Multiplay) integration guide for Unreal, we’ll show you how to initialize the Game Server Hosting SDK, create a build, build configuration, fleet, and test allocation, as well as show you what analytics you can get your hands on in the dashboard.
1:02 Installing the Unreal SDK
5:10 Creating a build
6:54 Creating you...
The only obvious solution is to set the query type to none.
You are getting this error because the server query handler is not getting updated. In c# there is a m_ServerQueryHandler.UpdateServerCheck() that you call every frame.
The c++ equivalent might be ServerQueryHandlerSubsystem->Connect()
I’ll test it out. I only call connect once in my code base lol I’ve seen some people in the Unity forums calling that C# function every frame and I was praying that wasn’t the solution lol
It should be called at least once every 60 seconds. Putting it in Update() is just easier to deal with
Looks like Connect() for C++ is the equivalent to MultiplayService.Instance.StartServerQueryHandlerAsync(k_DefaultMaxPlayers, k_DefaultServerName, k_DefaultGameType, k_DefaultBuildId, k_DefaultMap)
Wierd. there should be an Update function but I didn't see one
Yea there isn't one in C++ So I need to find the endpoint that the C# code is calling cant find it in the docs probably gotta open up a unity project and look through that package.. 🤕
No you are right I think!
The Connect function looks like it spins up a thread to listen on which has a wait time. Im guessing when that time expires the thread is removed.
No dice. Calling connect on a timer doesn't work.
Thanks for this. I ended up testing a method out where I used ChatGPT to generate the unreal engine equivalent based on the Open API Spec for the Economy API. It’s pretty accurate and seems to be working but I’m concerned. Is there a reason Unity hasn’t done this themselves? Are there any known limitations or issues?
I also just found out that unreal has a built in plugin that does this automatically 🤯🤯🤯
for the life of me i cant get create workspace to work in unity version control lol. just connection closed all the time....
nevermind. fixed it. had to remake org.
quick question: is anyone having issues with Remote Config not fetching from the default environment ("production")? We just discovered we are having issues in production, it's fetching from a secondary environment
Does anyone know if it's possible for a dedicated server/service account to make a player join a Lobby? I'm getting the following error. Is it by design? I wanted to manage all lobby operations on the dedicated server side and not let the client touch the lobbies.
[Error]:
Error calling JoinLobbyById: {"code":53,"detail":"only players can join lobbies","details":[],"status":403,"title":"Forbidden","type":"http://unity3d/lobby/errors/unknown"}
For help troubleshooting this error, visit this page in your browser:
https://services.docs.unity.com/guides/ugs-cli/latest/general/troubleshooting/unauthorized-error-403
You should be able to use a service account or cloud code to join a lobby as a player
https://services.docs.unity.com/lobby/v1/#tag/Lobby/operation/joinLobbyById
I tried with the CLI, which I believe would provide the same as the API
I logged in via the CLI with my service account and got the above message when joining a lobby I just created
Sounds like the service account doesn't have the correct permissions
Do you mean in terms of role?
Right, though I'm not sure which roles cover lobby access
I thought about that, but I can create lobbies with the same service account and as you pointed out there is no specific lobby role for the service account 🤔
Hi, I'm trying to implement matchmaking into my game but I think the docs is outdated
For Unity 2022 LTS and later: com.unity.services.multiplayer
For earlier versions of Unity: com.unity.services.matchmaker
I can't find
var payloadAllocation = await MultiplayService.Instance.GetPayloadAllocationFromJsonAs<MatchmakingResults>();
The MultiplayService is not there
MultiplayService will only be on you dedicated server.
You'll want to start using the Multiplayer Services SDK
https://docs.unity.com/ugs/en-us/manual/mps-sdk/manual/matchmake-session#Find_a_session_using_Unity_Matchmaker_service
Ok, I don't need to use MultiplayService on my server code or clinet?
I can't allocate servers in my code?
You can use it on you server. But you server shouldn't be creating tickets.
The matchmaking service itself will allocate the server if needed.
https://docs.unity.com/ugs/en-us/manual/mps-sdk/manual/game-server-hosting-support
Ok Thanks
I will try the matchmaking
For some reason it's not working
I tried with
ISession session = await MultiplayerService.Instance.MatchmakeSessionAsync(Mo, sessionOptions, matchmakerCancellationSource.Token);
too
Are you seeing the ticket being created on the Cloud Dashboard? You should also being seeing a server allocated there too
No nothing
no ticket and no server
I tried to do this but it never pass the line 41
Are you initializing UnityServices and Signing in?
In other code, yes
I will try to create ticket after initializing UnityServices and Signing in in the same code
Check for console error. If you are doing both in Start() it could be a timing issue
I don't get any errors or logs
I will try to make them call one by one
it's working now
I get something...
You can use AuthenticationService.Instance.SignedIn += () => { CreateTicket(); }
Did you create the matchmaking queue in the Dashboard?
I will consider that when making production code
yeah
Wait.... it's the Pool name!
Something is working!
It's working!
Thanks evilotaku!
Guys how can i AddInventoryItems on Cloud Code to another Environment different from the context one?
is there any option to use unity auth for verfication on a custom backend? like sending an auth token to the backend and the backend verifying it with ugs?
it doesnt look like the rest api has any functionality for that
I think this is what you're looking for
https://services.docs.unity.com/docs/client-auth/#validate-the-token-id
Client APIs are endpoints that allow you to access Unity Services as a Unity project user. These endpoints are called inside the project after
Am I correct in assuming you cannot deserialize a dictionary within an serialized class? Something like:
{
public Dictionary<string, object> myDictionary;
}```
When I try to log the serialized class, it prints the dictionary's values as a string fine:
string data = query["data"].Value.GetAsString();
MyClass mc = JsonUtility.FromJson<MyClass>(data)
Debug.Log(data);
//Prints something like {"myDictionary": {"someValue": 1, "anotherValue": 2}}
But when I try to log the dictionary itself, it returns null:
Debug.Log(mc.myDictionary);
//Prints in the console as "Null"
Yea. The default dictionary is not serializable. To print it you would have to loop through it and log out the key and values individually
thanks ill check it out
I have another problem
Every time I call the ticket method it allocate a new server
var players = new List<Unity.Services.Matchmaker.Models.Player>
{
new ("Player")
};
var options = new CreateTicketOptions("GameTest");
var ticketResponse = await MatchmakerService.Instance.CreateTicketAsync(players,options);
MultiplayAssignment assignment = null;
bool gotAssignment = false;
do
{
await Task.Delay(TimeSpan.FromSeconds(1f));
var ticketStatus = await MatchmakerService.Instance.GetTicketAsync(ticketResponse.Id);
if (ticketStatus == null)
{
continue;
}
if (ticketStatus.Type == typeof(MultiplayAssignment))
{
assignment = ticketStatus.Value as MultiplayAssignment;
}
switch (assignment?.Status)
{
case MultiplayAssignment.StatusOptions.Found:
gotAssignment = true;
break;
default:
throw new InvalidOperationException();
}
} while (!gotAssignment);
if (ushort.TryParse(assignment.Port.ToString(),out port))
{
GetIntoGame(assignment.Ip,port);
DebugText.text = assignment.Ip+":"+assignment.Port+":"+assignment.Status;
}
I created a new method for joining the game
Changes to get new type of errors 😂
It never reach Debug.Log("session:"+session.Id);
It's working!...
async Task CreateTicket()
{
Debug.Log("Create");
var sessionOptions = new SessionOptions()
{
MaxPlayers = 4,
}.WithDirectNetwork();
ISession session = await MultiplayerService.Instance.CreateOrJoinSessionAsync("215", sessionOptions);
```
This code will automatically join or create a new game!
I just need to see what I can do with this SessionID...
But wait... why there is no server allocated?
This code doesn't use matchmaking. So no server is being allocated. When it was making a server for each ticket, you need to make sure the match rules are set up properly for the queue. It's easy to mess up and make matches for a single player every time.
But how is this working without a server?
also I didn't add any rules to my queue
Its creating a direct connection. by default its 127.0.0.1. I'm assuming you are testing this on the same machine?
yep
Guys it is normal to not have the readiness of the server in the build configuration file? becasue i always have to set it manually after deploy
I updated my setup but now my game stuck at MultiplayAssignment.StatusOptions.InProgress
The ticket is being recived but not matched
the server get's allocated too
The clientBoot script should not be referencing the ServerBoot class. The server should not be running on the client at all
Fixed this one and I'm uploading the new build
But I don't see how this might cause problems sins I use it just for checking if the build is clinet or server... wait this is so dumb...
You can't use IsServer before the server connected in any case. You can use Multiplayer Roles for that if really needed
So removing IsServer and directly set the server will fix this?
I have extremely slow internet so it takes time to test
The client should not be running serverboot so you need to also change that part
Already done
Something else
when I change my build to windows to export the game the server script shows lot of errors related to that Unity.Services.Multiplay is not defined, how do I fix that?
I can set the script to comment but I expect better solution
Unity.Services.Multiplay is only available when the build is set to Server
So I think I should use something like #if UNITY_EDITOR but for server build?
I think its UNITY_SERVER, but you can just remove the ServerBoot script from your client build
Yeah I have done this to avoid these errors, just for future test I will try UNITY_SERVER
Thanks!
Hey all, I am making a multiplayer game for Meta Quest, and Meta is requesting a list of the countries in which my service provider (in that case Unity for Lobbies/Relay/Vivox) is going to process user data. The thing is that I cannot find a detailed answer, even in the Data Processing Addendum on Unity Legal. Can I find a list somewhere, or is it just is the US ? Thanks!
It didn't work
The In progress issue still there
It's logging In progress even after exiting play mode
I think the problem is in the matchmaker dashboard or something
because I can't get this to work again!
The ticket never get matched
"Name": "mainteam",
"MatchDefinition": {
"Teams": [
{
"Name": "red",
"TeamCount": {
"Min": 2,
"Max": 3
},
"PlayerCount": {
"Min": 2,
"Max": 14
}
}
],
"MatchRules": []
},
"BackfillEnabled": true
}```
I tried with teamCount 1 to 4 , 1 to 1
Player count , 1-1,1-20...
<@&502884371011731486>
!ban 514316575612993536 ad spam
karadb019200 was banned.
sup chat
so player hosted games are still charged by the player amount? 🤔
$0.16/month per concurrent player 🤔 I guess is not bad
but like, this is per company name~ not by project~
Is there any way to manage this in a better way?
I feel like I will hit 50 CCU before I make money off of my game,
I see there's distributed authority, which is pretty much what I have in my project
would that replace Relay? 6,000 Connectivity hours sound like a more logical offer for me~
I would probably be able to balance income with this a lot better
Its an average monthly 50 CCU so its 36000 user hours
oh
Hey all, I am making a multiplayer game
What's happening with the build automation queue...
My cloud builds are all stuck in queue
How do you guys usually approach Unity Services Authentication?
i mean... do you create some auth Manager Behaviour?
some bootstrap static class?
do you handle it as separate concern or just as part of some main manu or something?
hey im using mppm and on my main player im able to login to ugs fine with steam auth. usually in the second player i login fine too but randomly ill get a an exception for permission denied, invalid token. this happens every days and the only fix ive found is to restart unity. any idea why this is happening?
How do you guys usually approach Unity
Anyone else experiencing a refresh loop on the Devops -> Build Automation -> Settings -> Source control page in the dashboard? I need to update my Github access token.
Does unity have any official packages for deterministic lockstep (ie. rollback netcode)?
Netcode for Entities has client prediction built in but its not lockstep
Hello everyone, sorry to bother you, but I need your help. I'm working on an online car game in Unity, and I'm facing some issues that I really can't fix on my own. The problem is that I can't get the cars to spawn on the map chosen by the players in the game. Only the host is able to spawn their car on the map. Let me explain the car selection process.
We have a "Host" scene to create a game, then we move to a new scene, which is the lobby. The host creates a game that players can join. Once the players have joined, the host starts the game, which loads a "Game" scene where the menus are displayed, meaning the map selection, then the car category, and finally the car selection. After that, we click on "Play," which loads the map scene and removes all other scenes.
And it's from the map scene that everything bugs. In other words, the cars don’t spawn, even though I set them up with the required Mirror components.
I'll leave my GitHub here—if you could take a look, that would be really great.
https://github.com/scotty800/lobby
Contribute to scotty800/lobby development by creating an account on GitHub.
yeah this happened to me 2 days ago when I missed a permission on the PAT. I was unable to revoke it and set a new one. I needed to just kill the project and start fresh. Its a new project so ok for me
Is anyone having an issue with Slack Integration? I had it working a year ago but now Unity Services is a slack app, its saying that it needs to still be approved by Slack?
does anyone know the pricing of Unity Leaderboard? The pricing page in https://unity.com/products/gaming-services/pricing just says Free for a limited time for leaderboard
I've been getting 502 response a lot from unity services, any idea I can try?
https://discussions.unity.com/t/request-failed-with-status-code-502-from-api-calls-to-unity-services/1610216
Hi ppl, I'm stuck in my game trying to add ADS using Unity ADS service.
I used to have it integrated with IronSource, but it stopped working.
I was wondering if I really need IronSource integration or if I can use Unity ADS standalone.
I tried to follow some tutorials that I found on YouTube, but I'm not being able to use the class Advertisement even including UnityEngine.Advertisements.
Any ideas?
When I publish a new currency on ugs economy, I want to give a player by player Id some free currency for testing.
But the Rest API is unable to find it.
but it does exist in ugs economy
How to fix this?
I don't get it, old currencies still work with rest API and I can manipulate it for players with their player id, but the new currency that I recently added cannot be found by the rest API.
How to fix this?
I think I just found a bug and know how to recreate it.
Player accounts made recently can receive newly made currency that was added to the ugs economy. They can also recieve currency that was created a long time ago.
Player accounts that were made a long time ago cannot receive newly made currency that was added. And can only receive currency that was also created a long time ago.
This was all tested through the web REST API.
So basically for some reason, old UGS accounts that were made a long time ago cannot receive new currency and are bugged, while new UGS accounts that were made recently works fine as normal.
Any ideas why?
old account was made in 2023. and is bugged from receive newly created currency but fine with receiving old currency.
new account was made in 2025. works just fine.
any update on this? is cloud save still the option?
Hello everyone I'm new here, I just join this discord group because I want to learn unity game engine and how to use it to create games pls can anyone here help
Go to the Unity learn website
It’s the best for learning
im doing the tutorials and they good
why is my game (build and editor both) freezes when i try to initialize unity ads (legacy). also the project is connected to cloud and my laptop is connected to internet.
okay, i fixed the error and it was a part of my code, due to the way i was loading and showing banner ad. all fixed all good.
Heyho, when I try to access a players profile like this, it returns null, any ideas why? Haven't found anything online...
var lobby = await LobbyService.Instance.GetLobbyAsync(lobbyId);
var players = lobby.Players;
foreach (var player in players)
{
string key = $"{teamOfKey}{player.Profile.Name}";
//...
Also what is the difference between the AuthenticationService player profile and the LobbyService player profile?
Okay first question is probably resolved, I might have subscribed at a point I didnt want to subscribe
nvm, it seems it works now?
idk what happend or if you guys changed anything.
But it was probably because when I added the new currency, it took a while for it to propagate, and maybe the UGS ecnomy service has replica servers that requires it to be updated. When you upload a new currency, some data is stale and doesn't get updated for a while.
Can you guys please confirm if that was the case?
Economy service might have race condition issues?
Rebooting an old project and having issues with Plastic/Version Control not syncing. All nodes are red, and the standalone app does not pick up any pending changes.
If I do an edit here, I would expect the home icon to move to a dashed circle to the right, this does not happen.
Been overwriting and causing all sorts of issues.
I can successfully commit edits through the in-engine tab, and it will create a new node, but I can not seem to revisit an older node and have unity update its environment correctly..
Please help. Pretty critical, and I'm not figuring it out.
For the last ~12 hours or so, I've been entirely unable to upload files to my build in UGS Multiplay. This is an existing product that has been launched for 2 years - so I'm definitely familiar with the process and requirements. However when I select files to upload to the build, it just sits at 0 files uploaded and 0 files failed, all files "Ready to upload". Came back this morning, relogged in, tried multiple browsers, restarted my PC, everything I can think of and the files just refuse to upload. Anyone have any insight?
A followup - a brand new build works to upload files but updating a build does not. Obviously I can create a new build and reset-up all my fleets, etc. but that's quite an annoyance when updating a build has worked for years. This seems to only be a problem when updating a build and selecting "delete all files" instead of "update files" when updating the build
Since the UGC service is shutting down in May, does anyone know any (preferably budget) alternatives I can look into?
You'll probably have to roll your own with something like addressables and an S3 bucket
hi, i need to budget for additional seats for unity version control. does anybody know how much it costs per seat once you exceed the 3 seats included?
Hello there, are there any plans to include the vivixo visionos package into unity registry instead of a tarball file in the upcoming future?
Hey there, I want to create a First Time User Experience and I'm wondering if Unity's AuthService has a way to know if the player who just signed in is brand-new? (I'm using Unity PlayerAccounts)
Hi there, can anyone tell me how to create a Enumeration for an integer parameter in the Analytics dashboard? can't find any documentation for how that is supposed to work.
You could check PlayerInfo.CreatedAt but I think the right way would be to use a FirstTimeUser bool in the Cloud Save Player Data
You could also make use of Triggers to call Cloud Code if you wanted to take action when users are created in Auth. There's a use case example here https://docs.unity.com/ugs/en-us/manual/cloud-code/manual/triggers/tutorials/use-cases/initialize-new-players
Hello! I'm trying to find this game template in the unity hub: https://unity.com/features/build-a-runner-game
Where should I look?
I think you can find this on "All templates" section
Are you all serious! i did not even have a chance to get to the point of using it! FFS Unity, figure out your target users!
https://discussions.unity.com/t/important-update-sunsetting-user-generated-content-ugc/1614638
a large majority of us are very small teams, or individuals. it takes us a couple years to adopt and integrate things! Stop pulling the rug out from under us!
Damn, I totally missed that mail. I have implemented custom avatars for users this way. I spent quite a bit of time on that feature...
Too be fair, that UGC feature was only in beta. But relying on 3rd party infrastructure as a small developer with no leverage sucks. Thinking about self-hosting again.
Hi — it isn’t listed!
This is a super old template and is only available in the 2021.3 version. After you have the template installed from there you should be able to open it up in Unity 6. No clue about any breaking changes though
Thank you for your help!
Hey, is it normal that the WebGL shareable build from Unity Build Automation cannot load catalog.bin and the .bundle files generated by the addressables? The same build in a local server works just fine. Also if I use a json catalog instead of binary.
I'm checking the network console and all routes look fine but they respond with 404. All my addressables are configured to "Local" and "Built-in"
Thank you!
Hi, for some reason I sometimes get Error 422: Unprocessable entity in Cloud Code. Usually happens when I start my game the first time in the day. The 2nd time I open my game, error is gone. What could have been causing this?
Sounds like it could be due to a cold start
https://docs.unity.com/ugs/en-us/manual/cloud-code/manual/modules/how-to-guides/run-modules/unity-runtime#Call_from_Unity_Runtime
I implemented it the same as this. I even structured it as, Check Internet > InitializeAsync > SignInAnon > CloudCodeBindings
I don't think it's anything you are doing wrong. It's just the first time a module is used, it takes a bit for the cloud server to spin up
Yo guyss, everytime I create a unity project this error would always show up, crashing my unity and deleting the project
new problem: everytime I add any component to a gameObject, unity editor would show this crash error.
since I could not find any solution at all, I will try to just reinstall unity.
my game is universal rp btw
@proven sail Wrong channel. Make sure you've !installed Unity properly and if you have other questions after that use #💻┃unity-talk
- Make sure you have enough space including on
C:drive. - Check that it's not being blocked by antivirus/security programs.
- Look through the logs for a real reason why the setup fails they are pinned [here](#💻┃unity-talk message).
If you still have issues, perform a clean install in another location:
- Install the Hub and Unity in a non-system drive or a clean new folder in the root of
C:drive. - Failing that use the recovery Refresh option or reinstall OS entirely then repeat the previous step.
im following the unity gaming services tutorial and its telling me to install linux even tho im on windows
cant run server_standalonelinux bc not linux so cant progress the tutorial
is this solvable
nvm it ran for some reason
That part is asking you to make a Linux build which you can do on windows but just needs the platform installed from the Hub
Hello! I am working with Unity Economy fo a cosmetic system. Each cosmetic can be purchased with a currency, but I was wondering: can I add a "Virtual Purchase" resource in my Economy Cloud Config from a custom script in the Unity Editor ?
You can add one through the web api.
I’m using Unity Cloud Code C# and attempting to make a virtual purchase using MakeVirtualPurchaseAsync from IEconomyPurchasesApi. However, I keep encountering the following error:
“Value cannot be null. (Parameter ‘id is a required property for PlayerPurchaseVirtualRequest and cannot be null’)”
here is my Cloud Code implementation:
_gameApiClient.EconomyPurchases.MakeVirtualPurchaseAsync(
ctx,
ctx.ServiceToken,
ctx.ProjectId,
ctx.PlayerId,
new PlayerPurchaseVirtualRequest()
{
Id = virtualPurchaseId
}
);
I’ve confirmed that virtualPurchaseId is not null and is a valid string. Interestingly, this works fine in the Unity Editor but fails when executed in Cloud Code.
Has anyone encountered this issue before? Could this be a bug, or am I missing something in the Cloud Code implementation?
Looks like it's lowercase id instead of Id
yo anyone know where i can get a temporary .p12 with password and .mobileprovision? since i need to build my project to IOS today and liscence purchase isnt going through and creating a new apple account with developer enabled wont accept the code i send most likely blocked because i have tried multiple times after multiple errors
idk where to ask this question
Nobody can give you a temporary set of credentials for your app? 🤔
Hi everyone, I’m working on a project that’s integrated with Unity’s Cloud Content Delivery, and I have a few questions:
-
How many GB of data can I store on the free tier?
-
What does the architecture of Cloud Content Delivery look like?
-
Can anyone suggest alternatives to Unity Cloud that don’t rely on third-party services? I’m looking for a way to update content (such as adding scenes, prefabs, etc.) so that users can download the addressable assets online and keep them up to date.
nvm i found temporary free creds from TG
I want to report a major bug in Unity Ads, how do I do it?
You can submit a !bug with the reporting tool.
🪲 To make bug reporting as quickly as possible, we made a bug reporting application for you. When running Unity choose Help->Report a Bug in the menu, or you can access it directly through the executable in the directory where Unity is installed. It will also launch automatically if you experience a crash.
📝 If your bug report is to do with Documentation, either an error, typo, or omission, you can report it by scrolling to the bottom of the page where you found the issue and click ‘Report a problem on this page’!
💡If your report is to do with a new feature idea, you can check the Unity Product Roadmaps page to see if your idea has already been planned.
For more complete instructions on how to report bugs, access: https://unity3d.com/unity/qa/bug-reporting
Use Unity Ads in Kotlin in Android, no use of Unity
Then post on Unity Discussions
In which section, I was looking for that section, but I saw none of the unityads
Does UGS have a rest API to pull data out?
Any future plans to bring back my beloved Heatmaps to UGS? I miss them so much, super powerful for level designers and right now I have to work around with custom built solutions 😢
Hi @clear oriole , I'm the EM for the Unity Analytics product 👋. We don't have any concrete plans to bring this view back. I'd love to hear more about your use cases and workflow though. Feel free to hit me a with DM 🙂
can i grant write permissions to Remote Config and Game Overrides to a user without making them a Manager of an entire Unity Cloud project?
I think it might be easier to do something like this through Cloud Code.
"easier" meaning "not impossible"?
i'd like to allow designers to push the deploy button in the unity editor to deploy remote configs to our dev environment
having to write my own permission management system in cloud code and then hook it up to new editor tooling certainly doesn't sound "easy" 😅
I just mean that it requires a Service Account to write to Remote Config. You could make multiple service accounts for each designer or you could use Cloud Code and just use the one service account. If you are doing this from the editor then you can use the Unity Cloud Services APIs
sure but there's already a perfectly serviceable tool in the editor for deploying stuff, that automatically has authentication through the unity login that every team member already uses, and it works but the problem is having to give full manager permissions to all environments of the entire project
like i don't want to juggle a separate parallel set of accounts and I don't want to write new tools for this, the tool already exists! the accounts already exist!
but i guess the answer is "no, there is no way to grant specific access for normal unity developer accounts to Remote Config, unlike many other unity cloud services"?
where should a feature request for this go?
just to be clear I'm talking about this deployment tool https://docs.unity3d.com/Packages/com.unity.services.deployment@1.4/manual/deployment_window.html
It's already there, it works, I just don't want everyone who needs to use it during development to be a full manager of the entire project including the production environment
The forums would probably by the best place
alright, thanks
Hello, I want to add a script to a GameObject in an Addressable Scene and then upload its update using Cloud Content Delivery without rebuilding the app. How can I do this, considering that Cloud Content Delivery only works for non-code assets?
If it's a new script you just created then you have to rebuild the app. Or make some kind of patch update system
I am trying to use Unity Version Control between my Windows laptop and Mac using the same Unity ID. I tried to import a project from my laptop to my Mac, using "Add from repository". I click "Check in Changes" on the laptop, but when I open the project on my Mac, it appears as a blank project. I tried to make a change on the laptop and checked it in, then updated the workspace on the Mac, but still nothing changed. Can someone please help?
Is this the wrong server for this question?
I don't know much, but I had problems with this too - importing from a Windows to a Mac. I would just take the file for the project, copy it into some space where you can store the project, and access it again on the mac and import it.
Oh, so it's best to just do it manually? I've seen people on the forums with the same question, and they just post a link to some Unity documentation, that outlines how to set up Unity version control for a team, but not for two computers using the same account. I'm unsure now if that even works.
I found an error code:
And most of the time, on Unity Hub, the repositories don't show up in "Add from repository". It just worked one time which is how I was able to get this broken project across.
Anybody know why SignedInPlayerId is returing an empty string? And yes I made sure the player is signed in.
I'm trying to purchase the service for Cloud Content Delivery but I'm stuck here for days, I already put my address in my organization, why is it stuck here?
Did you add a payment method as well?
It requires me to get a service first before I can add a payment method which Cloud Content Delivery leaves me stuck.
Try adding another service like multiplayer Relay first
I did, though this service didn't ask me to check out. I tried upgrading my subscription to Pay-As-You-Go but it's also stuck in the Step 2. Fixed
I have the classical one-million-dollar question for the Unity people here. I have to make a call about where to store the IAP data for the users and related sensitive data. What level of security is guaranteed for the Player Data in Cloud Save?
I'm confused with pricing of Unity DevOps/Version Control. Is the Free Version only lasts for 31 days or it's Free until I reach beyond the free values and then pay for the excess?
I'm torn between using github and uvc due to this.
the compute rolls over but the space cap stays (5GB). Once you have surpassed that you will be billed $0.14/GB/month. This page is more clear I suppose: https://unity.com/products/compare-plans/unity-cloud
Hello! Im using unity version control and it keeps coming up with new errors all the time. I keep getting errors when I open a changeset even though it was working fine the last time i opened it. e.g. maybe a week ago. I get GUID's changing across so many items and its SO frustrating because I just want to get on with the project. This is even without any merges / changes from other users and I dont know how to fix it since it keeps saying to open in safe mode or will errors like prefabs missing even though they havent changed
What kind of errors?
If guids are changing, you're likely not submitting the metadata files.
That looks about right with some of the messages. How would I fix that and prevent it from happening again? A meta data file exists but its asset cant be found. The other is Assembly with name Unity.XR.Interaction.Toolkit.Samples.xxxx already exists
Start with investigating one of the mentioned files. It seems like the metadata file exists, but the asset doesn't on that path. Open that folder in the explorer and confirm that this is what's happening.
Then, open the plastic scm/ unity vcs desktop client and try navigating to the same path in the workspace explorer tab
For some reason a bunch of _dst meta files caused this and I deleted and reimported the XR packages but now somehow changes made in previous merges have disappeared too even though I didnt delete them...
What kind of changes? To what files?
They were new assets added to the scene, I think a new script too
Target a specific case and investigate in pending changes and file history in the workspace.
Not too sure how to, the changes have all gone with it saying there is nothing to merge from that branch anymore
Check the changesets tab to see the changesets history. Do you see the specific changeset that included these changes?
Yes I went to that one and see them in that branch, but when I go back to main where I had successfully merged it before, none of it is there
Then you didn't merge successfully. Do you see the changes in the merge changest?
I used to, until today, it tells me there is nothing to merge now
Where does it tell you that?
When I right click on the other branch then merge this changeset to and select main, then it says 'The merge search has finished; merge destination already contains source changes.'
Honestly, I barely ever used branches so not sure, but I think that when you do merge, it adds the files to the pending changelist. Then you need to actually commit it on the new branch.
Thanks for you help! Might have to be a rebuild or just not use branches then
Can I ask now
Make sure that when(before) you do the merge, you've switched correctly to the target branch and have the latest changeset.
You could ask from the very start. !ask
:thinking: Asking Questions
:mag: Search the internet for your question!
:book: Use the API Scripting Reference and User Manual and this troubleshooting site for commonly posted issues.
:wrench: Attempt to debug your issue.
:thought_balloon: Find an appropriate channel by reading the name and description in #🔎┃find-a-channel
:grey_question: And don't ask to ask, ask a full question illustrating with screenshots if needed.
-# For more posting guidelines, go to #854851968446365696
I have a game idea
I'm a student, don't know coding
Want to share it
If anyone helps to make it
Why are you asking this here?
I'm new in discord
Joined today
Where should I ask
Start from reading the
#📖┃code-of-conduct
Then maybe #854851968446365696
Tnx
I understood that but my question was is the Free plan available only for 31 days and then I have to upgrade to a higher plan after? Or I can keep the Free version for months or years until I decide to upgrade myself and time isn't a restriction.
Its pay as you go. I've never paid more than $5 a month.
I see, so I can't actually keep my Free plan for months of development before I actually rack up cost/go beyond free limit.
You can as long as you keep usage under the limit
Oh, thanks for clarification! That's what I was worried about, being forced to upgrade to pay-as-you-go after 31 days even if I don't exceed my free limit.
Hello everyone!
I've updated my project to Unity 6.1 and installed build automation package. But in the editor it shows me empty history and no build configs, which exist in dashboard. My project is linked to Cloud Services, and cloud builds work, it just doesn't show me anything right in the Editor. Does somebody know what can be an issue? Thanks 🙂
Hi, I just updated to Unity 6.1 and apparently, I keep getting Cloud Code Timeout Error more often than before and then my editor shortly crashes.
Now even my built clients can't connect, Is there an issue with the server today?
Decided to use Unity Version Control, but I can't even connect? I already added payment method, repositories and selected a server in the UGS Dashboard.
CC timeout Error
I'm looking to implement IAP in my Meta Quest game. Meta already provides an API for IAP related things. However, I see that Unity also has an IAP service, however Meta is not supported (unless implementing a custom store).
Is there any benefit to using Unity IAP and adding support for Meta manually?
same issue, were you able to fix it?
Is there documentation or something I can read about built in party functionality? I'd like my players to party up before looking for a match.
why this warning even when my IAP works fine and already tested on internal testing on play store :
- Find out how to initialize Unity Gaming Services by following the documentation https://docs.unity.com/ugs-overview/services-core-api.html#InitializationExample
or download the 06 Initialize Gaming Services sample from Package Manager > In-App Purchasing > Samples.
- If you are using the codeless API, you may want to enable the enable Unity Gaming Services automatic initialization by checking the Automatically initialize Unity Gaming Services checkbox at the bottom of the IAP Catalog window
UnityEngine.Purchasing.UnityPurchasing:Initialize (UnityEngine.Purchasing.IDetailedStoreListener,UnityEngine.Purchasing.ConfigurationBuilder)
IAPManager:SetupBuilder () (at Assets/Script/ADS/IAPManager.cs:54)
IAPManager:Start () (at Assets/Script/ADS/IAPManager.cs:40)```
I saw this, but the overview seems like it's more about server discovery.
I assume the functionality exists somewhere between Lobby and Matchmaker, but I'm looking for an entry point.
Lobbies are the entry point. Or Sessions if you are in Unity 6
Nice. Thanks!
I've never done in app purchases before, but I'm planning to release a mobile game with microtransactions
is there anything I should know beforehand?
e.g. is there a 3rd party company that handles the billing stuff or is it the Play Store/Apple Store?
Its 3rd party handling the billing (so Apple, Google, Steam), verifying purchases and listing items. The rest I’m not sure about, it’s not clear at all what Unity IAP offers (if you’re talking about that). Have some questions too but just got ignored #archived-unity-gaming-services message One of our devs did an investigation and it seems that its p much useless and only adds complexity 🤔 I personally didn’t have the time to mess about and just read docs
are you guys using in app purchases but not Unity IAP?
Currently we use Meta Horizon for IAP (they handle billing, item listing and verification), but we also have Unity IAP installed and implemented a custom store, in this case Meta Horizon. Still just a prototype...
In your case Google and Apple are covered:
Tho I still don't understand why Unity IAP should be used even in these cases, since you can directly call Apple or Google APIs and implement a wrapper interface suited to your game, which you'll most likely be doing anyway. Is this just for people who want to avoid code?
You don't understand why you would use a ready-made IAP package rather than just implementing your own custom solution wrapper twice over that does the same thing, but which you now have to debug and support yourself? What use case do you have where you have to write your own wrapper for Play/Apple store?
You didn’t read what I wrote, my use case is Meta. And yes, I’d still wrap Unity IAP code with my interfaces, just as I do with all external deps
you "don't understand why Unity IAP should be used even in these cases [...]" being Google and Apple. That was what I was referring to. But your comment adds more confusion. You wrap Unity's wrapper with another wrapper? What does that gain you?
Sorry if that was not clear, I was referring to my previous comment.
This is exactly my question - whats the purpose of this product if I have to implement a custom store, what are the benefits?
We'll also launch on Pico, PlayStation and probably Steam, which are not supported it seems out of the box
Also why wrap? Because I don't want to tie my games implementation to Unitys, from experience trying to wrap later if something is not supported is not a good time when shipping to other platforms
well if you support the other two stores, it's probably going to be less work than writing essentially three custom wrappers for each store and then maintaining them
Hmm, I'd argue against this as from the looks of it implementing a custom wrapper is more straight forward than using IAP APIs, the libraries provided by Meta are easier to work with if you don't have to tie your implementation to Unitys. I'm not sure how it is with Pico or PlayStation tho, but I'm assuming implementing a Custom Store will be a similar experience. Nevertheless code is not an issue, I'm more curious what are the added benefits of Unity IAP if I decide to use it and do Custom Stores later for Pico, PlayStation and others
We already use a bunch of other Unity services, except analytics
well you get to skip two stores and have a ready-made unified interface to implement. That's basically it. Most people only need Google and apple so it covers almost all regular use cases already
oh and it has some integration with Unity analytics already like @quick elk discovered; it's optional but they try to nag you with a useless warning to try and onboard you with
Calypzo, if you embed the Unity IAP package you can just comment out that warning and ignore it
This sounds like the right place to post this. I'm not sure if this does any good, but I am raising attention to it (I don't work with rocketwerkz. I'm just in the ksa discord server). Hopefully someone who's able to at least address this can see it
Tldr: unity made some mistakes
There are people whose job it is to find and reach out to companies that they believe are required to own industry licenses.
It's not an automatic switch that suddenly you lose access to everything if they think you are in breach. The post says they asked for clarity, received four bullet of which none were true. They left out any mention of the result of them proving/explaining it to Unity.
As for the names and employees, and how they gather that data: Google searches. It's really not that complicated.
If they're saying they did prove the breaches were not, in fact, true and Unity still said they will require licenses, then there would be a story. But from what they posted here, this is just standard procedure: the studio I work at went through the same.
Hi, I'm using several packages of the UGS and I find it a little difficult to stay up to date on the latest changes, updates, etc. - I know about the changelogs but is there an automated newsletter or RSS feed for these updates?
This is the best page I found for that
https://docs.unity.com/ugs/en-us/manual/overview/manual/release-notes
Hey everyone, I'm using friends, lobby and relay. Is it possible to send party invite requests without players having to share the joincode
CloudSave: I'm having trouble using the LoadOptions class in a LoadAsync() call - I think this worked before:
Dictionary<string, Item> playerData = await CloudSaveService.Instance.Data.Player.LoadAsync(
new HashSet<string> { "playerAvatar" },
new LoadOptions { ReadAccessOptions = new PublicReadAccessClassOptions(playerId) });
Compiler complains with
'LoadOptions' does not contain a definition for 'ReadAccessOptions'
I also tried with new LoadOptions { accessClassOptions = ... }
Found the solution: I think the API might have changed, it's now
new LoadOptions(new PublicReadAccessClassOptions(playerId)));
You can send the lobby/relay code in a direct Friend message and handle it automatically on the clients.
Is it possible to get the name of currently loaded environment after injecting it via?
var options = new InitializationOptions();
options.SetEnvironmentName(environmentName);
await unityServices.InitializeAsync(options);
I believe this works at runtime
https://docs.unity.com/ugs/en-us/manual/overview/manual/environments-api#active-environment
This is only in Editor namespace tho
I currently have this workaround:
var registry = CoreRegistry.Instance;
if (registry == null)
{
return;
}
if (registry.TryGetServiceComponent<IEnvironments>(out var environments) == false)
{
return;
}
var environment = environments.Current;
But it requires pulling in some shady assemblies:
using Unity.Services.Core.Environments.Internal;
using Unity.Services.Core.Internal;
Ah damn, you're right. It cut off on mobile
Is there a way to check all registered accounts?
And is there a way to add another username for the user? I want everyone to have a fixed username that they can't change. which is different from the username they used to sign in. There can be multiple users with the same username. So I can't use it for the sign in process
I want to implement a system for my college. Where I create accounts based on their college ID and a temporary password in which they can change. and the username I want to set is their actual names
Player name is different from username
https://docs.unity.com/ugs/en-us/manual/authentication/manual/player-name-management
Great. Now how can I access the usernames and accounts registered?
where should I write or run this code excatly?
Should I make a scene that is not included in the build and run the code there?
It can be in a editor script or in server code. You would need to make double sure that it never goes out to the client builds
I made a scene and a script in the Editor folder. But I don't know how to use the functions above
The manual explains a bit here
https://docs.unity3d.com/Packages/com.unity.services.apis@1.1/manual/index.html
There is also a sample with examples in the package manager
Thank you for the help 
Hi. I was trying to use Vivox to add proximity voice chat to my game. but when I tried to test I ran into this problem. The code is here:
https://paste.mod.gg/yyaescqzizlx/0
A tool for sharing your source code with the world!
I have the unityservices initialized and the user signed in in another scene
this is in another scene. where user login before creating/joining a lobby. After that he jumps to the scene where the vivox code is
Why i can open any other unity but unity 2019 gives me error: Require team license and then later on it can't be opened?
Would it be possible to use Cloud Code to connect to a database? I’m doing a research project and need a way to collect game data in a queryable way, and would like the same database to be accessed by an eventual website. The plan is to host a webGL build on itch that would use cloud code to connect to and insert data into the database, probably hosted in MS Azure. If anyone has experience with this please let me know
If the database server has a rest API then you can call it from Cloud Code
can we have an web api available for admin player auth to allow the changing of usernames?
We have a web api end point to change player passwords, but not changing usernames.
I want players to be able to change their username.
also I need help.
Best way to store player's email addresses to their username/password accounts through unity gaming services Web API?
should I use cloud save or metadata Web API?
I would probably use Player Accounts instead of username/password.
But to store emails I would use Cloud Save
Anyone know why my ads dont load? I get some java error but ONLY on the mobile version. When I try in editor everything works. See image 1. But once it hits my phone it doesnt work anymore. See image 2. (The messages mirror what is logged to the normal editor's console)
And heres what I do in the method from the log:
public void InitializeAds()
{
Debug.Log("Unity Ads is being initialized.");
#if UNITY_IOS
_gameId = _iOSGameId;
#elif UNITY_ANDROID
_gameId = _androidGameId;
#elif UNITY_EDITOR
_gameId = _androidGameId; //Only for testing the functionality in the Editor
#endif
if(!Advertisement.isInitialized && Advertisement.isSupported)
{
Advertisement.Initialize(_gameId, _testMode, this);
}
else
{
Debug.Log("Unity Ads is already initialized or not supported on this platform.");
Debug.Log("Supported: " + Advertisement.isSupported);
}
}
there is only 1 line that really does anything and thats Advertisement.Initialize(_gameId, _testMode, this); which is of the UnityEngine.Advertisementspackage
Funny enough, it doesnt even call OnInitializationFailed which is implemented via the IUnityAdsInitializationListener Interface.
<@&502884371011731486> obvious scam
I'm trying to use Vivox for text-chat only - is there a way to stop it asking for microphone permissions? Specifically on WebGL builds.
I know the status page shows Friends service is operational but just curious if anyone has been getting 500 status at all using friends service?
I'm trying to sync configuration from Economy service EconomyService.Instance. Configuration.SyncConfigurationAsync();
But I'm getting Json error which says 9999999999 is greater or less than int32.
I modified my Currencies in dashboard to use Unlimited for max value and still got the error. Then I modified it use just 15000 as max balance and still getting the exception. Can somebody help me in that?
that would be because 9,999,999,999 is higher than the max value you can get from an int - the biggest 32 bit int you can have is 2,147,483,647
where is the 9999999999 value coming from?
it seems to me that you've got a value in your economy that is huge
But I have already reduced it
and the error still mentions 9999999999?
Yes
then that's not where 9999999999 appears 😅
there's something somewhere else that has that number
Let me check then
Thanks. It was in the cost field of a virtual purchase I have 😅
I thought it was occuring by a currency.
no problem 😁 easy to overlook things like that!
Hi, how should I use CustomDataDeserializer of a item (currency or inventory item) from economy? Can somebody help me?
!collab
:loudspeaker: Collaborating and Job Posting
We do not accept job or collab posts on Discord.
Please, use Discussions to promote yourself as job-seeking, advertise commercial job offers, or look for non-commercial projects to participate in:
• Collaboration & Jobs
Can you use cloud save (or any other integration I have overlooked) to save player specific data? So data that is not game specific, like an e-mail address for example. Data you might want in multiple games for the same player
yes. well its not cross game though
https://docs.unity.com/ugs/en-us/manual/cloud-save/manual/concepts/player-data
well cross game is literally the purpose Im looking for
what you sent is just useful for game data like idk your inventory
Players are linked to the project not the organization. You would need to use a 3rd party storage and authentication to link projects together.
Actually, you can technically link multiple games to the same cloud project id. That would allow them to share Cloud Save data.
But I suppose that messes with other features e.g. ad revenue being reported as from the same game giving me no insight which game performs how well
Im looking into a making a multiplayer prototype.
I want the user to be able to join a session, select a character, update ready status, and then once everyone is ready, launch the game / spawn the networked players.
Looking up some examples of this I see Dapper Dino's example from 2-3 years ago.
Does anyone know if this is still the preferred method now that things are replaced with unity's multiplayer services? Or can someone point me in a direction?
The main idea is the same but new MP services is much more streamlined
https://docs.unity.com/ugs/en-us/manual/mps-sdk/manual/build-your-first-session
I appreciate the link. I have gone through this getting started tutorial, and have the session being created and at the moment the player object spawning.
Im just trying to figure out how to do the pregame lobby where players can choose character and ready up.
It sounds like older tutorials should still work though? I was thinking that the way I would approach this might have changed since
You can still use the Lobby service directly if you want. You could also make a separate session with no network connection to act as a pre game lobby.
Thank you I think I understand how to approach this now
I think I need to do a refactor... ugh. Let me just.. think this through for a second. I forgot that cloud save Custom Items have a key-value limit of 2000. But I can have infinite custom items, yeah? So I just need to Un-Bucket things and bring them to the top level... Is it possible to save an Object where all of its fields become key-value pairs? or do I have to make a little extension method to do that myself....
What exactly are you trying to do?
currently I have all of my "Team" and "Guild" objects stored in umbrella Custom Items, but this will limit me to 2000 teams accross the entire playerbase, so that's not gonna fly. So I think my solution is saving the teams as Custom items instead of as key-value pairs within custom items
And then I can query open teams from the client as long as I index some things within the team object
this makes sense in my head
There is no limit on the number of custom items. you would make each guild/Team its own custom item.
yeah. I'll do that. And then the Team class can have an internal function to batch save to make my life easy, I think
Also, just a thought I had, but how's the pricing look on the multiplayer services? currently the game is psuedo co-op, just sharing data over cloud modules and cloud save, but this leads to a ton of cloud reads/writes. just in my own infrequent testing, i'm over 1% of the free tier usage. I'm thinking it might be worth activating a lobby for each team when any of the members are active that can hold progress data. Then when it doesn't receive any traffic for a bit, it writes the changes to the cloud save and shuts down. So it's not that I need the legit multiplay functionality from it, i'm just looking to lighten the load on other services. Good idea? Bad idea?
You should definitely be batching changes. And avoid sending strings whenever possible
https://unity.com/products/gaming-services/pricing
hmm. bandwidth and concurrent users.. I don't have a mental metric for that. I'll maybe have to test it and see how it goes
I'm not sure how else I could batch changes, since all progression logic is handled server side, and the modules aren't meant to hold data past a function scope
If your server logic is totally on Cloud Code there is not much you can optimize besides minimizing the data itself.
mhm. which is why I figured I could abuse multiplay / lobbys to hold data for a while and then write changes from there
but I don't know how that works really, if it's client hosted or server hosted, or what. i'll have to do some reading on it
guys can someone help me with some tutorials/pathways from learn.unity.com? some are good? i have a best/good knowledge in coding but not in unity, in c/c++ but i need to learn unity for a project. i did Unity Essentials and Junior Programmer and i want to start rn VR Development from learn.unity.com/pathways but i don t feel like i improved a lot, if someone know some tutorials/courses from learn.unity.com? in this ideea. i need to learn unity/VR
!collab 👇
:loudspeaker: Collaborating and Job Posting
We do not accept job or collab posts on Discord.
Please, use Discussions to promote yourself as job-seeking, advertise commercial job offers, or look for non-commercial projects to participate in:
• Collaboration & Jobs
sorry
Guys If I wanted to create a matchmaking system, is it worth paying for UGS? Im not sure itll be big enough to make my home machine die, and Im too optimistic to say im going to be under 50 CCU. I dont enjoy rewriting network code after when I find out I need to pay a budget of a small european country to keep my game up.
The free tier of Relay is an average of 50 concurrent users for the month. Which is 36000 player hours a month. That is more than most indie games will get. More than that and you will need an actual sustainable business model.
Oh Im an idiot, didnt read that, thanx!
not sure if this is where to post this. is it possible to make something like visiting islands in animal crossing using the UGS stack? I’m thinking each player island has a unique share code that when inputted, other players can see how you decorated your island. No need to sync avatars in realtime. Just need to pass the island data around then the simulation happens locally.
Happy Unity Gaming Services launch day 🥳 https://blog.unity.com/games/build-your-live-game-in-a-single-modular-platform-with-unity-gaming-services
This looks very interesting! As soon as Oculus is added as an identity provider, I can consider using this for my VR game. It's not really an option for VR developers if the biggest VR platform (Quest) is not supported.
I see it's on the roadmap but was delayed recently.
https://forum.unity.com/threads/oculus-and-or-viveport-support.1205842/#post-8178455
Maybe I'm slow, but it's not very clear to me what this actually is. It just says these are services. Do each of these services correspond to a package I assume? The link just says head to the dashboard, and I can't see any further info about it without being forced to sign up and "Pay as I go" - I don't even know what I'd be paying for yet
Is this integrated into the Unity Editor instead of just the website?
I think most of these have packages in the package manager
Or have integration with packages
E.g. Addressables works with ccd
Ah, I see, thanks. Haven't used many of their services before, not sure how that's linked up. Hadn't heard of CCD before. Cool stuff
https://on.unity.com/3biM8PI - Unity Gaming Services!
https://game.courses/beginner/ - Free GameDev Course for Beginners
https://bit.ly/3sKGagG - Game Architecture Course - Advanced
http://unity3d.group - Join the Group (facebook)
https://www.youtube.com/channel/UCX_b3NNQN5bzExm-22-NVVg/join - Join the Channel
https://prf.hn/l/D9nPqPY - Monsters...
Hiya, how does the pricing work for the relay multiplayer option work? I don't really understand what they mean with 50 CCU / month
50 concurrent users a month
but that doesn't add up to me. Like, concurrent means on at the same time, how can this be divided by month?
I think you can go up to 50 CCU each month free, and are billed for any additional CCU
yeah, but what do they mean with CCU then? I'm confused about their definition of concurrent
now that's what i was looking for, thx 😄
Do you guys know about some kind of online Leaderboards with Unity Gaming Services?
Hello
I want to make sure that when I enter a credit card for unity gaming services I won't be billed because of something I did by mistake (for example setting amount of players in lobby too high for free plan). Does unity send a mail or something asking for permission to move to the paid plan when you go past the limits?
Alternatively can you limit your account or organization to only free plan for when you want to?
@tacit nebula there's no functionality for global leaderboards at the moment, but we're looking at it. Keep an eye on https://unity.com/roadmap/unity-gaming-services
Hi,
I am curious to know that how does pricing of Multiplay service varies depending on the number of dedicated servers?
Can someone please tell me about the same.
i'm using the dev environment for analytics services. i want to copy all the events over, is there an easy way to do that or do i really have to go one by one and add events and parameters to match
Have not used is, but from email they sent out there should be tools for it.
For current projects that are actively using the Legacy Unity Analytics service, Unity is providing a data migration tool for basic events, and a migration guide for custom events.
i'm not talking about migrating from legacy analytics though, just taking the event definitions in dev and moving them to beta
@vast plume, how's it going -1?
Has anyone successfully set up In-app Purchases after June 22, 2022?
Also, how do we get In App Purchases 4.2.1? I only see 4.1.5 in the package manager...
Usually it's because higher version is only supported in newer Unity versions only
I'm using 2022.1.3f1...
Then it might not be supported yet
You could install latest one and look if it is supported there
Strange since that's the version that is pointed to with the UGS promotion
Do you have old one installed?
Also if could be preview version and therefore hidden
Ah, shoot! Of course. Thanks!
Nope. I enabled pre-release and still not there...☹️
@simple crescent Yea, opened 2022.1.7f1 highest one is 4.1.5
@simple crescent Please don't ping admins with non server related issues.
Use forums if you have questions
Got it
Haha nice. This one took me a second. 777 is an interesting choice
Hey guys, anyone know were I can go to get valid information about the new (6-22-2022) In-app Purchase package and how to integrate it with Google? Would love a little help finding something. I've been wracking my brain with dead ends and old libraries for about 4 days now. Thanks!
Hey, does anyone know if you use over the limits of free services, does it stop you to use past the limits until you agree to paid services? or maybe there is an option to make sure the account won't go past the limits of free services? I am worried that I will be billed for accidently writing code that I am not sure what is doing.
For those trying to set up Unity In-app Purchases with Google with a new project after 6/22/2022:
If you see the first error below:
And you attempt to set up the Google key you get the second error below:
This is a red herring (npi) ! You do not set the Google key in the Editor anymore. You set it up on the Unity webpage ONLY now. Ignore this error...
We are excited to announce that we have entered into an agreement to merge with ironSource, harnessing the ironSource’s tools, platform, technology, and talent to form an end-to-end platform that enables creators to more easily create, publish, run, monetize, and grow live games and RT3D content seamlessly.
https://on.unity.com/3RtY95z
Hello, some help/info!!!
Hello. I'm being told to set up a gaming server (VR), does anyone have or know of any tutorials?
Thanks a lot!!!
Someone just told you randomly to set up a gaming server without any more details than that?
Honestly, I'm not sure if I'm more afraid that people will stop using Unity as prevalently and my skills will lose their relevance, or if I'm more afraid that I'll be dragged kicking and screaming into the microtransaction and other garbage trends of the gaming industry. I really don't want to root against Unity, I love using it and most of my game design experience and formal education is in Unity and C#, but I honestly hope this mistake doesn't pan out. Well... I guess I hope it's a mistake, because I think the shareholders and a lot of the small developers are at cross purposes. Oh well! Hope I don't get banned!
Hi, we are trying to set up a new collaborate project, however we've got windows flashing and the error message "Cannot get revision from server". Two of us have tried it with the same result. Is the service currently down for anyone else or are wedoing something stupid? Very new to this, hoping to get it up and running before the GMTK game jam tomorrow
This isn't related to this channel. Collaborate has been deprecated. Your options are to use the PlasticSCM package or go third party with Git.
Apologies, but thanks for the info. So it just outright doesn't work? And what channel would be best out of interest?
Yes!!!
😟 😢
bruh
Hey all! I'm trying to contact Unity about access to Game Server Hosting (Multiplay). I've sent an email but don't have an indication of how much longer it will take for a response.
I sent an email 2 weeks ago and still havent heard back as well. In the last bootcamp event they had a few days ago they did mention that they will have news around multiplay coming soon. No timelines or anything but they do understand.
My hope is that they will soon announce a self-managed solution for multiplayer (multiplay) similar to Playfab. Again, thats just my hope and that it will be in the next couple of months as well. 🙂
