steam-leaderboards

Implement and query Steam Leaderboards via Steamworks SDK and Web API.

1|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/TMHSDigital/Steam-Cursor-Plugin --skill steam-leaderboards-tmhsdigital
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: steam-leaderboards
Source: https://github.com/TMHSDigital/Steam-Cursor-Plugin/tree/main/skills/steam-leaderboards
Command: npx skills add https://github.com/TMHSDigital/Steam-Cursor-Plugin --skill steam-leaderboards-tmhsdigital

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding competitive ranking systems to a Steam game requires navigating the Steamworks SDK's callback-based API, choosing correct sort methods, and handling Web API authentication, which is error-prone without guidance. ## Core Features & Use Cases - Leaderboard Creation & Score Upload: Create leaderboards via the Partner site or FindOrCreateLeaderboard, then upload scores with KeepBest or ForceUpdate methods in C++, C# (Steamworks.NET), or GDScript (GodotSteam). - Entry Download & Display: Download global top scores, around-user entries, or friends-only rankings and process them in callbacks. - Web API & MCP Queries: Query leaderboard entries via ISteamLeaderboards REST endpoints or the Steam MCP server tools. - Use Case: A speedrun game developer creates per-level leaderboards with ascending sort and millisecond time display, uploads best times, and shows the global top 10 plus the player's surrounding ranks. ## Quick Start Ask the AI to add a Steam leaderboard for your game, specifying the App ID, leaderboard name, sort method, and whether times or high scores are ranked.

Frequently Asked Questions about steam-leaderboards

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a leaderboard to my Steam game?▼

Create the leaderboard in the Steamworks Partner site under Stats & Achievements, or call FindOrCreateLeaderboard in the Steamworks SDK at runtime. Then upload scores with UploadLeaderboardScore and download entries with DownloadLeaderboardEntries.

How do I upload scores to a Steam leaderboard in C++?▼

Call SteamUserStats()->UploadLeaderboardScore with the leaderboard handle, an upload method (KeepBest or ForceUpdate), the score, and optional detail data. You must first resolve the leaderboard name to a handle using FindOrCreateLeaderboard.

What is the difference between KeepBest and ForceUpdate upload methods?▼

KeepBest only updates the leaderboard if the new score beats the player's existing score, while ForceUpdate always overwrites it. Use KeepBest in production to avoid accidentally resetting a player's best result.

Why does the Steam leaderboard Web API return HTTP 403?▼

The GetLeaderboardEntries endpoint uses the partner API, which requires a publisher API key with your server IP allowlisted in the Steamworks partner site. A standard user API key from steamcommunity.com/dev/apikey will be rejected.

Can I change a leaderboard's sort method after creation?▼

No, the sort method (ascending or descending) cannot be changed after a leaderboard is created. You must create a new leaderboard with the correct sort method and migrate to it.

How much data can I attach to a Steam leaderboard entry?▼

Leaderboard entry detail data is limited to 64 int32 values (256 bytes). This is suitable for small metadata like flags or level IDs, but not for replays or complex data structures.