Hi, may I ask, are there any easy ways to check if a username already exists without trying to upload a new entry with that name. I tried using the following script, but it always returns 1:
In this example, the "test" user is at the 2nd place, but even if I try it with any other placement, it always returns 1. I checked, and all the captions are correct.
You could loop through every entry and compare the usernames, but why not just show a message that a different username must be used when the user tries to submit an entry?
I want to use it for a random username generator. I might try the looping, but I am scared, that it will result in a lot of lag. But thanks for the reply anyway, I might try looking into it a bit more!
Hello Dan! First, i want to say Thank you for developing this Leaderboard.
I have a Question about how it will work, if you uninstall a game on android with your leaderboard integrated. If i uninstall my game and re-install it, i can´t use the same username as before, because the username is still in the list.
And how can i access a name in the leaderboard before i submit a new score. I want to check if the same username already exists. In Unity it gives me a console-error message, when the username already exists and the entry is not uploaded to the leaderboard. But what i want is, that a User has the chance again to entry a other Username, that doesn´t exist.
Thanks for help. If you want, we could write on Discord!?
Hello! Unfortunately, this is something I overlooked and did not take into consideration. For now, you just have the option to disable the "Unique Usernames" toggle for allowing people to have duplicate usernames. Having said that, I am working on a solution that could solve your problem.
The maximum a leaderboard entry can hold is the normal integer max limit (2.1~ billion). One thing you could do is store the score in the extra data and create a prestige system where every certain amount of score threshold you increment the prestige count.
Hi! First of all.. thank you for this AMAZING system! I love it! Been using it in a few projects haha. Now for my question: Is there any implementation to have records based on lowest score by a player (such as a speedrun timer)? Or is the way to go right now simply checking whether the player has gone quicker than their previous time, and only THEN upload/update the result?
Thank you!
EDIT: Figured it out! In case anyone else needs something similar: 1. Upon entering wherever you would submit your new "high score", first check to see if a personal entry already exists. 2. If yes, check if your new score is lower than your personal entry. 3. If yes, and the user presses a submit button: 4. Delete current personal entry 5. In the "Success" callback, put the code to upload an entry.
I'm migrating to 2.7 but I forgot to save the private key before the update. Is there any way for me to access the private key? I still have the public key if that helps.
Hi, I want to get all the entries as an integer so I can initialize depending on the number of entries TextObjects that display the Leaderboard, does somebody know how could do that I´ve tried it with a for loop but that hasnt worked out for me, is there a function im missing?
This would really help me out because I try to optimize my game for my mobile version of my game
I recommend taking a look at the demo scene which has a pagination system setup already. You could limit the receiving of entries to get a certain amount of entries show up per page.
429: This leaderboard has been frozen due to mass requests. If you think this is a mistake, please contact the developer.
I have been receiving this error for the past couple of days. I am currently testing my mobile game internally and there should only be requests coming from me occasionally.
How can I fix this? Also, is it common for this leaderboard to go down?
Please help. I would really like to use this in my new game.
It seems the unfreezing of the leaderboards has stopped working, but I am working on fixing it. I am currently removing all leaderboards from their quarantine state right now, so let me know if your leaderboard works! Again, I apologize for the inconveniences caused.
EDIT: By now all frozen leaderboards should go back to their normal state, if your leaderboard is still frozen, email me at dan@danqzq.games with the public key of your leaderboard and I will check it out for you.
It seems the unfreezing of the leaderboards has stopped working, but I am working on fixing it. I am currently removing all leaderboards from their quarantine state right now, so let me know if your leaderboard works! Again, I apologize for the inconveniences caused.
If there are more than 500 requests within a minute sent to the leaderboard, it will temporarily freeze. While frozen, leaderboard entries can be received, but no new entries would be able to be uploaded. It should automatically unfreeze after 24 hours had passed.
Only 10 people have played my game and they each only load the leaderboard and post their score everytime they win, how can this be 500 request in one single minute ??
A request is retrieving or uploading an entry to the leaderboard. I'm sorry, it's not easy to have the server manage all the leaderboards at once while working on new features. While attempting to fix the last crash that happened a few days ago, it seems the unfreezing of the leaderboards has stopped working, but I am working on fixing it. I am currently removing all leaderboards from their quarantine state right now, so let me know if your leaderboard works! Again, I apologize for the inconveniences caused. This is not a team working on this service, this is just me, providing a free utility for many. 🥲
Hi, Im making a Time Trial based Game and since the leaderboards rank is based of the highest score that somebody has, I wanted to ask how I could implement this system of making the lowest possible time the highest rank position?
@Noaxen - I tried that for a speedrun leaderboard as well, which shows the results in the correct order- HOWEVER, lower times does not update the beaten time on the leaderboards. A higher time does :D
@WerwiewasAnanas have you found a solution? If not, check out my comment (most recent comment on here) or contact me on discord: Kepsert if you need assistance :)
yes you can but im not quite sure if the ranking will be correct but try the Extra field you can use Strings there and convert them as your liking to either int or floats
to the ranking I think that I found a solution for that in the leaderboard you can activate an option called ascending order im not quite sure if this would fix it but you can try
I see your german? Wenn ja dann hier auf deutsch, was bei mir hier die lösung war das z.B. bei LeaderboardCreator.UploadNewEntry(... dort kannst du nach score eine klammer und dann damit du dieses Extra feld benutzen du kannst also: ..., score, extra, ((msg)... nutzen und damit das auch richtig funktioniert musst du bei der Method in der klammer noch "extra" als string deklarieren und je nachdem wo du es referenced auch noch einen string für hinzufügen, sry wenn du es nicht verstehen solltes
If your leaderboard is frozen, then it must be due to a high amount of requests sent on the leaderboard. Within 24 hours, your leaderboard should be automatically unfreeze and continue to work as per usual.
I seem to have the same problem, after several days the leaderboard is still frozen. The last time this happened, I had to delete the players' entries manually and then they could send an entry again.
The Work is really amazing and have been a great asset to my Game!
I would like to tell you this - When there's no network and I play the game - Inside Unity Editor it gives me Debug.LogError and Pauses the Unity Editor-Playmode. Is there a fix for this inside the settings/the leader-board script in this case?
Also can you help with this - suppose the server is down and I want display it on screen, which method shall I call from your script that will help me return those value. ThankYou!
I'm pretty sure you have "Pause on Error" toggled on in the Console tab. Otherwise, if you still want to maintain that behaviour of the editor but mitigate failed connection, just replace the LogError function with Log in the LeaderboardCreator script at line 270.
Please add the ability to override usernames or completely remove some highscores. Because if I rename someone and he opens the app again, his result will be updated. I need something like a blacklist for nicknames.
Hey this is an really amazing tool! Can you answer these for me? 1. What information do you(you as in the creator of this tool) collect from the users and do you use it somehow? 2. Which cloud server are you using eg.Google Cloud 3. Do you sell any of the Leader board information to any third parties? 4. Also do you have a terms and conditions like some document , i cant seem to find one.
1. No information is collected other than the player inputs (usernames, scores, and etc.) 2. A cloud-hosted server written in Go running with MongoDB 3. No data is sold to any third parties 4. No, but the developer is responsible for how they use their leaderboards.
Thank you very much for this system, it allows me to establish a classification table without so much paperwork.
But I still have a very big question and that is how long you will keep the servers active, if by buying the premium package, that money really pays for the server and obviously also if it gives you the profit to continue with this project.
Excellent, then at the end of the month I will buy the premium package, since it brings many more improvements, again thank you very much for everything.
I have a question, yes, in my game the score is the seconds that the game lasts, therefore, I realized that if a player's game lasts 30 and that of another too, he replaces that person and the other disappears, right? Is there a way that instead of that the new player with those 30 seconds is below the previous one, by entry date or something like that?
Just remember that free leaderboards only hold up to 1000 entries and if there is an overwhelming number of requests - your leaderboard will be quarantined for a certain period.
Hi Danial, thanks for your tool! Do you know if 100 players playing simultaneously will cause any issues? (The requests happen when the player dies, and if he reaches a new personal high score)
Can I synchronize player guid across devices? I have an online save system to sync progress. However, if a player switches devices, the highscore will be sent again, but with a different guid.
Great leaderboard, but is it possible to update the score by descending it. For example, in my game the player must complete levels while a timer is running. In the end the scoreboard appear and it needs to update the score if it's less than the current score.
Hey Danial, Thanks so much for releasing and hosting this tool! My friend was showing off his hacking abilities, so my leaderboard now contains an entry with a score past the integer limit :o This makes it so that the leaderboard doesn't display in my game at all. If you wouldn't mind DMing me so we could remove the score listing, that'd be great! Thanks a bunch, and sorry to be a pain in the butt!
I'm just wondering why when I enter a new entry it will replace the previous entry . so always there is only one entry even if I submit several values in editor
If you had not noticed, the FAQ contains an answer to your question:
There may only be one entry per one player. This is done to support features like name editing and deleting an entry in a safe way, such that other people don't mess around with other people's entries. If you do not want this, then disable "Unique Usernames" for your leaderboard and make use of the LeaderboardCreator.ResetPlayer() function during the callback from uploading an entry. Note that after this, a player's previous entry cannot be edited nor deleted by the player themself.
I've created a hack: combining unique usernames with random hashes guarantees unique names, even if the base name is taken. For example, I send "Mike%123456" from one device and "Mike%234958" from another. In my game I can extract the nickname by splitting the string, and display "Mike" part only.
Is there a way that once the player has entered their initials the first time, that any subsequent higher score would update automatically? As it stands the player has to remember every time to enter their name if they want the score to register.
The player does not have to remember their name, as a random GUID is assigned and used by every player for identification. With Unity, there are various ways you can use to save the player's name, e. g. by using PlayerPrefs or writing to a file in a persistent data storage. If you are interested in learning them, I have a tutorial on my YouTube channel which covers exactly that.
No data is collected other than what the user inputs, which is the leaderboard entry. If needed, players can delete their own entries via a method called LeaderboardCreator.DeleteEntry, and I highly recommend that you implement it if you are publishing your game on mobile platforms.
Hi. I need to run 3 leaderboards at the same time for Diff levels speed run ranking. Al 3 setup and added. But it only seems to connect to the first one. The 2nd and 3rd is nulling out on me when posting scores. Don't think they connect.
Well there must be something that you are doing incorrectly. I have set up multiple leaderboards in a game before, so feel free to reach out to me on Discord, I'll show you how I've done it.
← Return to Leaderboard Creator
Comments
Log in with itch.io to leave a comment.
What happened to the leaderboard, why did some players send 5 identical highscores? This didn't happen before.
Hello!
I am not sure what you mean, could you send me the public key of your leaderboard? My email is: dan@danqzq.games
This could also be a client-side issue, so I advise you to check your scripts.
I had no problem, but suddenly some players sent multiple values even though I did not change anything
Hi, may I ask, are there any easy ways to check if a username already exists without trying to upload a new entry with that name. I tried using the following script, but it always returns 1:
Leaderboards.Highscore.GetEntries(LeaderboardSearchQuery.ByUsername("test"), (msg) => {
Debug.LogWarning(msg.Rank);
});
In this example, the "test" user is at the 2nd place, but even if I try it with any other placement, it always returns 1. I checked, and all the captions are correct.
Hello!
You could loop through every entry and compare the usernames, but why not just show a message that a different username must be used when the user tries to submit an entry?
I want to use it for a random username generator. I might try the looping, but I am scared, that it will result in a lot of lag. But thanks for the reply anyway, I might try looking into it a bit more!
Danial, thank you very much for creating this nice tool.
I am not sure if the documentation is lacking or if I need to improve my C# fluency.
Anyway, I managed to create Unity visual scripting (ex Bolt) nodes in the picture.
My problem is, once I add the Submit node the scene fails to load on Android.
I would appreciate your help.
Hello!
Sorry for the late reply, but I am not sure how to help you out with Bolt scripting, as I am not familiar with it.
Thank you for your feedback. I have solved the problem and I will share the script to create nodes in Unity Visual Scripting.
Hello, does anyone know if this package conflicts with the firebase analytics? my firebase SDK isn't initializing for some reason
Hello! The package should not conflict with any other plugins as it is wrapped in its own assembly definition.
Thanks Dan, it was a unity bug. I fixed it yesterday.
Hello Dan! First, i want to say Thank you for developing this Leaderboard.
I have a Question about how it will work, if you uninstall a game on android with your leaderboard integrated. If i uninstall my game and re-install it, i can´t use the same username as before, because the username is still in the list.
And how can i access a name in the leaderboard before i submit a new score. I want to check if the same username already exists. In Unity it gives me a console-error message, when the username already exists and the entry is not uploaded to the leaderboard. But what i want is, that a User has the chance again to entry a other Username, that doesn´t exist.
Thanks for help. If you want, we could write on Discord!?
Hello! Unfortunately, this is something I overlooked and did not take into consideration. For now, you just have the option to disable the "Unique Usernames" toggle for allowing people to have duplicate usernames. Having said that, I am working on a solution that could solve your problem.
Hello!
The maximum a leaderboard entry can hold is the normal integer max limit (2.1~ billion). One thing you could do is store the score in the extra data and create a prestige system where every certain amount of score threshold you increment the prestige count.
You could also submit strings instead of integers by adding a 1M or 2.1B instead of pushing the whole integer. That would look cleaner too.
How would you get the list to sort that?
Some names have boxes instead of characters. How can I fix this?
Hello!
To further investigate your issue, can you send me your leaderboard's public key via email to dan@danqzq.games?
Hi! First of all.. thank you for this AMAZING system! I love it! Been using it in a few projects haha. Now for my question: Is there any implementation to have records based on lowest score by a player (such as a speedrun timer)? Or is the way to go right now simply checking whether the player has gone quicker than their previous time, and only THEN upload/update the result?
Thank you!
EDIT: Figured it out! In case anyone else needs something similar:
1. Upon entering wherever you would submit your new "high score", first check to see if a personal entry already exists.
2. If yes, check if your new score is lower than your personal entry.
3. If yes, and the user presses a submit button:
4. Delete current personal entry
5. In the "Success" callback, put the code to upload an entry.
Hope that helps!
public void RequestRank(string userName)
{
var query = LeaderboardSearchQuery.ByUsername(userName);
LeaderboardCreator.GetLeaderboard(publicleaderboardkey, false, query, (rankData) =>
{
usernameplace = rankData.Rank;
});
}
Hello i am trying to get rank by name but this always return me 0.
Thanks.
Hello!
The search is case sensitive, so make sure the username is written exactly as is.
Hello I checked and it's 100% exactly this name and still returns 0
Try querying with a higher value on the Take parameter field of the query. So after instantiating the query object, write:
Ok Thanks
I'm migrating to 2.7 but I forgot to save the private key before the update. Is there any way for me to access the private key? I still have the public key if that helps.
Hello!
Please send an email with your leaderboard's public key to dan@danqzq.games
Sent :D
Question for migrating from v2.6 to v2.7,
Do we just drag drop the package? or do we have to do some changes in the code too.
Hello!
Dragging and dropping the package should be fine, but ideally it is better to do a clean install. Make sure you save your keys prior to doing so.
Hi. Thank you for your free leaderboard. :)
I will use your loaderboard. I have one question.
How I can find my score in Unity. please teach for c# code or information. :) Thanks.
Hello!
The demo scene shows exactly how this is done with the press of the Get Personal Entry button!
Thanks your reply.
I saw your demo scene. so I trying your code copy & paste.
but I can't anymore. :) If you have some time. please give me hint or teaching me.
If I can't make this maybe give up your leaderboard. I can't find information.
I find this. I can use your leaderboard. thank you !
Hi, I want to get all the entries as an integer so I can initialize depending on the number of entries TextObjects that display the Leaderboard, does somebody know how could do that I´ve tried it with a for loop but that hasnt worked out for me, is there a function im missing?
This would really help me out because I try to optimize my game for my mobile version of my game
Hello!
I recommend taking a look at the demo scene which has a pagination system setup already. You could limit the receiving of entries to get a certain amount of entries show up per page.
Thank you very much I got it now! Thanks for providing us with this awesome tool
429: This leaderboard has been frozen due to mass requests. If you think this is a mistake, please contact the developer.
I have been receiving this error for the past couple of days. I am currently testing my mobile game internally and there should only be requests coming from me occasionally.
How can I fix this? Also, is it common for this leaderboard to go down?
Please help. I would really like to use this in my new game.
Hello!
It seems the unfreezing of the leaderboards has stopped working, but I am working on fixing it. I am currently removing all leaderboards from their quarantine state right now, so let me know if your leaderboard works! Again, I apologize for the inconveniences caused.
EDIT: By now all frozen leaderboards should go back to their normal state, if your leaderboard is still frozen, email me at dan@danqzq.games with the public key of your leaderboard and I will check it out for you.
why suddenly is data not sent to the leaderboard. gives error uploading data entry failed.
data retrieving is fine.
Hello!
It seems the unfreezing of the leaderboards has stopped working, but I am working on fixing it. I am currently removing all leaderboards from their quarantine state right now, so let me know if your leaderboard works! Again, I apologize for the inconveniences caused.
I programmed my leaderboard to update every 15 sec update. The leaderboard gets frozen. that means 4 requests per minute, can you give me a solution?
(leaderboard in separate screen)
Could you email me the public key of your leaderboard to dan@danqzq.games so I could take a further look at your leaderboard?
Seems like it's not working for my Mac users
My bad it's just frozen,
What is the maximum number of requests ?
I can tip to increase it :)
Hello!
If there are more than 500 requests within a minute sent to the leaderboard, it will temporarily freeze. While frozen, leaderboard entries can be received, but no new entries would be able to be uploaded. It should automatically unfreeze after 24 hours had passed.
1. What is a request ? Is loading a leaderboard if X is the number of records ,1 request or X requests ?
2. It hasn't unfroze it's been 48h ... I'm disappointed
Only 10 people have played my game and they each only load the leaderboard and post their score everytime they win, how can this be 500 request in one single minute ??
A request is retrieving or uploading an entry to the leaderboard. I'm sorry, it's not easy to have the server manage all the leaderboards at once while working on new features. While attempting to fix the last crash that happened a few days ago, it seems the unfreezing of the leaderboards has stopped working, but I am working on fixing it. I am currently removing all leaderboards from their quarantine state right now, so let me know if your leaderboard works! Again, I apologize for the inconveniences caused. This is not a team working on this service, this is just me, providing a free utility for many. 🥲
You are doing an incredible job Danial, sorry I was upset lately but I am very grateful you made this ❤️
The problem surely comes from elsewhere. A lot of us have had the same problem lately!
You were right.
1.For the LeaderBoards: I got that froze due to many requests error log.
Does this error occur in the - 15$ version of the creator too? Are there any more advantages of that version except the ones that are listed onsite?
2. Also will it carry the same keys/ will the keys change for the premium version?
1. The advanced leaderboards have a higher bandwidth, and they only have advantages that are specified on the website.
2. You can either request to update your existing leaderboard or get a new advanced one.
Hi, Im making a Time Trial based Game and since the leaderboards rank is based of the highest score that somebody has, I wanted to ask how I could implement this system of making the lowest possible time the highest rank position?
You need to check the Box at the leaderboard "Ascendig order"
@Noaxen - I tried that for a speedrun leaderboard as well, which shows the results in the correct order- HOWEVER, lower times does not update the beaten time on the leaderboards. A higher time does :D
@WerwiewasAnanas have you found a solution? If not, check out my comment (most recent comment on here) or contact me on discord: Kepsert if you need assistance :)
Is it possible to uploud floats or strings to the leatherboard as a score?
Because I need the decimal places
yes you can but im not quite sure if the ranking will be correct but try the Extra field you can use Strings there and convert them as your liking to either int or floats
to the ranking I think that I found a solution for that in the leaderboard you can activate an option called ascending order im not quite sure if this would fix it but you can try
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
using TMPro;
using Dan.Main;
using System.Runtime.CompilerServices;
using JetBrains.Annotations;
public class Leaderboard : MonoBehaviour
{
[SerializeField] PlayerMovement playermovement_script;
[SerializeField] private List<TextMeshProUGUI> names;
[SerializeField] private List<TextMeshProUGUI> scores;
private string[] badWords = new string[] { "Hurensohn", "Wixer"};
private string publicLeaderboardKey = "89ba609eb052086681e456ec870985cb8f14a460da720298cded4a337e9ded2b";
//Scoremanager
[SerializeField] private TextMeshProUGUI inputScore;
[SerializeField] private TMP_InputField inputName;
public UnityEvent<string, int> submitScoreEvent;
private void Start()
{
GetLeaderboard();
}
public void GetLeaderboard()
{
LeaderboardCreator.GetLeaderboard(publicLeaderboardKey, ((msg) =>
{
int loopLength = (msg.Length < names.Count) ? msg.Length : names.Count;
for (int i = 0; i < loopLength; ++i)
{
names[i].text = msg[i].Username;
scores[i].text = msg[i].Score.ToString();
}
}));
}
public void SetLeaderboardEntry(string username, int score)
{
LeaderboardCreator.UploadNewEntry(publicLeaderboardKey, username, score, ((msg) =>
{
if (System.Array.IndexOf(badWords, name) != -1) return;
GetLeaderboard();
}));
}
public void SubmitScore()
{
submitScoreEvent.Invoke(inputName.text, System.Convert.ToInt32(timer_script.lastScore));
}
}
Thats my current script. I am very confused with the extra data. Can you help me with it?
I see your german? Wenn ja dann hier auf deutsch, was bei mir hier die lösung war das z.B. bei LeaderboardCreator.UploadNewEntry(... dort kannst du nach score eine klammer und dann damit du dieses Extra feld benutzen du kannst also: ..., score, extra, ((msg)... nutzen und damit das auch richtig funktioniert musst du bei der Method in der klammer noch "extra" als string deklarieren und je nachdem wo du es referenced auch noch einen string für hinzufügen, sry wenn du es nicht verstehen solltes
Danke, das habe ich soweit verstanden. Aber mir ging es vorallem um die Methode von SubmitScore().
public void SubmitScore()
{
submitScoreEvent.Invoke(inputName.text, System.Convert.ToInt32(timer_script.lastScore));
}
Die Methode sumbmtiScoreEvent.Invoke nimmt nur 2 Argumente (ein String für den Namen und ein Integer für den score)
How do you unfreeze a leaderboard?
Hello!
If your leaderboard is frozen, then it must be due to a high amount of requests sent on the leaderboard. Within 24 hours, your leaderboard should be automatically unfreeze and continue to work as per usual.
Ah nice, thanks!
I seem to have the same problem, after several days the leaderboard is still frozen. The last time this happened, I had to delete the players' entries manually and then they could send an entry again.
hello!, do you know how can I delete the default Scores ? ArtherDev1 ArthurDev2 etc in Unity?? Thanks!
The Work is really amazing and have been a great asset to my Game!
I would like to tell you this -
When there's no network and I play the game - Inside Unity Editor
it gives me Debug.LogError and Pauses the Unity Editor-Playmode. Is there a fix for this inside the settings/the leader-board script in this case?
LeaderboardCreator] Failed To Connect
UnityEngine.Debug:LogError (object)
Dan.Main.LeaderboardCreator:LogError (string) (at Assets/LeaderboardCreator/Scripts/Main/LeaderboardCreator.cs:270)
This stops the unity editor - playmode
Also can you help with this - suppose the server is down and I want display it on screen, which method shall I call from your script that will help me return those value. ThankYou!
Hello!
I'm pretty sure you have "Pause on Error" toggled on in the Console tab. Otherwise, if you still want to maintain that behaviour of the editor but mitigate failed connection, just replace the LogError function with Log in the LeaderboardCreator script at line 270.
Please add the ability to override usernames or completely remove some highscores. Because if I rename someone and he opens the app again, his result will be updated. I need something like a blacklist for nicknames.
Hello! Thank you for the suggestion, I will consider adding this feature in the future updates.
Woo Hooo!! A Surprise!! Thank You for this amazing tool!!
https://play.google.com/store/apps/details?id=com.twinflameinteractive.mergemese...
Hey this is an really amazing tool! Can you answer these for me?
1. What information do you(you as in the creator of this tool) collect from the users and do you use it somehow?
2. Which cloud server are you using eg.Google Cloud
3. Do you sell any of the Leader board information to any third parties?
4. Also do you have a terms and conditions like some document , i cant seem to find one.
For an app on the PlayStore.
Thank You :)
Hey, sure!
1. No information is collected other than the player inputs (usernames, scores, and etc.)
2. A cloud-hosted server written in Go running with MongoDB
3. No data is sold to any third parties
4. No, but the developer is responsible for how they use their leaderboards.
Thank you so much for the kind reply, I shall surprise you with something amazing real soon!!
This is incredible! You are amazing!
Yr a life saver
Hello, i have send a mail, i have some many questions... I want integrated this to my apps. Can i do ?
Thanks
Hey, sorry your email was mistakenly marked as spam for me. Yes you can integrate it anywhere.
Thank you very much for this system, it allows me to establish a classification table without so much paperwork.
But I still have a very big question and that is how long you will keep the servers active, if by buying the premium package, that money really pays for the server and obviously also if it gives you the profit to continue with this project.
Greetings from Chile!
Hello! Glad that it has helped you out! As long as there is demand for it, I'll keep it active!
Excellent, then at the end of the month I will buy the premium package, since it brings many more improvements, again thank you very much for everything.
I have a question, yes, in my game the score is the seconds that the game lasts, therefore, I realized that if a player's game lasts 30 and that of another too, he replaces that person and the other disappears, right? Is there a way that instead of that the new player with those 30 seconds is below the previous one, by entry date or something like that?
You'd have to handle it through the Extra field of each entry
Hi, I`d like to know where guid is stored if I am using webgl build and what will happen if user for example will clear browser dat
Hello! The guid is stored using PlayerPrefs as of now. So if the user clears their browser data, that guid will be lost.
So it means, that if I upload new webgl build to itch.io it won`t load GUID?
Yeah
Awesome Leaderboard! Is there a method to delete a specific entry using a username or similar?
Hello there!
For security reasons, you can only delete the entries from the web app. Players may only be able to delete their own entries.
If I have 5000 DAU, will the free leaderboard work without restrictions? What about bandwidth?
Just remember that free leaderboards only hold up to 1000 entries and if there is an overwhelming number of requests - your leaderboard will be quarantined for a certain period.
Hi Danial, thanks for your tool! Do you know if 100 players playing simultaneously will cause any issues? (The requests happen when the player dies, and if he reaches a new personal high score)
Hey hey, it should be fine :)
Cool ! Thanks !
Can I synchronize player guid across devices? I have an online save system to sync progress. However, if a player switches devices, the highscore will be sent again, but with a different guid.
Hello!
Technically, yes, since the GUID is saved locally, you could use an external service to handle the synchronization.
Great leaderboard, but is it possible to update the score by descending it.
For example, in my game the player must complete levels while a timer is running. In the end the scoreboard appear and it needs to update the score if it's less than the current score.
Hello!
Did you toggle on the Ascending Order toggle?
nope, but i will try. Btw thanks for your reply you are doing great man!
so, i did what you said and they sort in ascending order, but the score doesn't update when it's less than the previous scor
nevermind i turned on ascending order in the game in your site and it worked!! Thank you mate!
Hey Danial,
Thanks so much for releasing and hosting this tool!
My friend was showing off his hacking abilities, so my leaderboard now contains an entry with a score past the integer limit :o
This makes it so that the leaderboard doesn't display in my game at all.
If you wouldn't mind DMing me so we could remove the score listing, that'd be great!
Thanks a bunch, and sorry to be a pain in the butt!
Hello!
I'll make sure this is taken into account and caught in the server too. Message me on Discord, my username is @danqzq
I'm just wondering why when I enter a new entry it will replace the previous entry . so always there is only one entry even if I submit several values in editor
my code
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using Dan.Main;
public class leaderboardd : MonoBehaviour
{
// Start is called before the first frame update
[SerializeField]
private List<TextMeshProUGUI> Names;
[SerializeField]
private List<TextMeshProUGUI> Scores;
private string publicleaderboaedkey = "64284967363c3ef000a80af46de3aba968e5ebfcdcc6406c57cdb0af2b4b5944";
private void Start()
{
GetLeaderboard();
}
public void GetLeaderboard()
{
LeaderboardCreator.GetLeaderboard(publicleaderboaedkey, ((msg) => {
int looplength = (msg.Length < Names.Count) ? msg.Length : Names.Count;
for(int i =0; i< looplength; ++i)
{
Names[i].text = msg[i].Username;
Scores[i].text = msg[i].Score.ToString();
}
}));
}
public void SetLeaderboard(string username,int score)
{
LeaderboardCreator.UploadNewEntry(publicleaderboaedkey, username,score,((msg) => {
GetLeaderboard();
}));
}
}
Hello!
If you had not noticed, the FAQ contains an answer to your question:
There may only be one entry per one player. This is done to support features like name editing and deleting an entry in a safe way, such that other people don't mess around with other people's entries. If you do not want this, then disable "Unique Usernames" for your leaderboard and make use of the LeaderboardCreator.ResetPlayer() function during the callback from uploading an entry. Note that after this, a player's previous entry cannot be edited nor deleted by the player themself.
I've created a hack: combining unique usernames with random hashes guarantees unique names, even if the base name is taken. For example, I send "Mike%123456" from one device and "Mike%234958" from another. In my game I can extract the nickname by splitting the string, and display "Mike" part only.
Is there a way that once the player has entered their initials the first time, that any subsequent higher score would update automatically? As it stands the player has to remember every time to enter their name if they want the score to register.
Hello!
The player does not have to remember their name, as a random GUID is assigned and used by every player for identification. With Unity, there are various ways you can use to save the player's name, e. g. by using PlayerPrefs or writing to a file in a persistent data storage. If you are interested in learning them, I have a tutorial on my YouTube channel which covers exactly that.
Thanks Danial, I'll check it out, thanks for the awesome asset too by the way! :)
Can I ask one more question, in relation to Apple's Privacy Policy, what data do I need to declare is collected if any in relation to the leaderboard
?
No data is collected other than what the user inputs, which is the leaderboard entry. If needed, players can delete their own entries via a method called LeaderboardCreator.DeleteEntry, and I highly recommend that you implement it if you are publishing your game on mobile platforms.
What's the leaderboard's domain? I'm uploading a game to a platform where I have to specify a domain to be allowed access to it.
Found this one, is that correct?
lcv2-server.danqzq.games
Hello! Yes, that is correct.
Hi. I need to run 3 leaderboards at the same time for Diff levels speed run ranking. Al 3 setup and added. But it only seems to connect to the first one. The 2nd and 3rd is nulling out on me when posting scores. Don't think they connect.
Hello there!
Well there must be something that you are doing incorrectly. I have set up multiple leaderboards in a game before, so feel free to reach out to me on Discord, I'll show you how I've done it.