I apologize... I can't do leaderboards at the moment, and I have to work on weekdays, so I don't really want to spend time working on this kind of functionality, and I wrote the Steamworks plugin as a free plugin, so I really don't have much motivation to work on this kind of functionality!🙇♀️
Viewing post in NekoGakuen SteamworksAPI comments
I'm really sorry... but with my current abilities, I can't implement this feature yet...
Although I've made some progress on the leaderboards so far through the APIs on the following sites, it may be a long, long time before I'm done...
https://partner.steamgames.com/doc/webapi/ISteamLeaderboards
https://steamapi.xpaw.me/#ISteamLeaderboards
However, the Leaderboards and Microtransactions are still in the Alpha testing stage!
https://rabbitteaparty.itch.io/nekogakuen-steamworksapi/devlog/585239/update-ver...
In addition, Steam itself also provides a page that displays the leaderboards. Take the leaderboards of "OPUS: Rocket of Whispers" as an example, he will be on the View Stats of the community Hub in the following image..
* If you're in-game, you can see the leaderboard information by pressing "Shift+Tab" to open the "Achievements" section of Steam Overlay.
Thank you very much for the information!!
Just as a suggestion, instead of making the score a fixed number, I would use a game variable. I imagine i dont need to tell you how to program this, but I'll leave you what I've implemented in case you want to add it. for future versions:
Metadata:
* @arg scoreVariableID * @text Score Variable ID * @desc ID of the game variable storing the score. If set, it will override the Score setting. * @type variable * @default 0
Plugin command:
PluginManager.registerCommand(NekoGakuen_SteamworksAPI_PluginName, "NekoCommands SetLeaderboardScore_SteamLeaderboard", args => { const scoreValue = args.scoreVariableID && args.scoreVariableID !== '0' ? $gameVariables.value(Number(args.scoreVariableID)) : Number(args.score); if ($gameVariables.value(NekoGakuen_SteamworksAPI.LeaderboardsVariable) === 0) { SoundManager.playBuzzer(); } else { SteamworksAPIManager.setLeaderboardScore(scoreValue, args.scoremethod); } });
Switch:
case 'SetLeaderboardScore_SteamLeaderboard': const scoreValue = args[3] && args[3] !== '0' ? $gameVariables.value(Number(args[3])) : Number(args[1]); if ($gameVariables.value(NekoGakuen_SteamworksAPI.LeaderboardsVariable) === 0) { SoundManager.playBuzzer(); } else { SteamworksAPIManager.setLeaderboardScore(scoreValue, args[2]); } break;