What Steam Achievement Sets Beta Changed for Indies - 2026
![]()
If you searched steam achievement sets after October 15, 2026, you do not need another “rebuild the stats schema tonight” thread. You need a map of what Valve actually shipped in the Steam client beta, and what your game binary still does the same way.
Valve put Achievement Sets in the Steam client beta and wrote the rules into the Steamworks achievements guide. Sets group achievements. Players see progress per set and a set-complete marker. Seasonal or retired content can be archived without wiping unlocks people already earned. The guide’s own FAQ is blunt. You do not update the game or the Steamworks SDK to use sets. You configure them in Steamworks. Unlock calls keep the same API names.
That is the whole news. It is not a new SetAchievement signature, and it does not replace the fest hour-one parity checklist you already use when a demo claims the same achievements as the full game. If an unlock fails in a Unity build, the App ID and callback fix still owns that failure. This URL owns the October 15 sets read.
Why this matters now
Achievement pages on long-running Steam games turned into one scroll. A base campaign, three modes, a holiday event, and two DLC packs all sat in one list. Players who never bought the DLC watched a completion bar they could not finish. Developers who retired a seasonal mode either left dead achievements in the list or deleted them and took earned unlocks off profiles.
October 15 offers named groups, a separate DLC completion bar, developer-only test sets, and archive instead of delete. The Steamworks guide still labels Achievement Sets in beta. The Verge reported the same day that the new achievements page is in the latest Steam client beta. Treat the editor as live enough to study, and treat a same-night publish on your shipping app as a separate decision.
Direct answer: Read the sets rules before you click Publish on a live app. Existing achievements already sit in a base game set. Creating zero extra sets leaves players with one list on the new page. The API name you pass today is still the API name you pass after you add a set.
Who this read is for
| Audience | Use it to… |
|---|---|
| Beginners | Learn set versus API name before opening the editor |
| Developers | Map DLC restriction, archive, and publish without a depot rebuild |
| Creators | Explain the player-facing progress bars in a devlog without inventing an SDK bump |
| Companies | See the 40-set cap, the unvetted 100-achievement cap, and the draft-until-publish rule |
Time: about 35 minutes to read, then 15 minutes to open the achievements editor on a copy or unreleased app and only look. Do not publish from that look.
Prerequisites: a Steamworks partner account on an app you can open, and a note of the API names you already ship. You do not need a new SDK drop, a new depot, or a client beta installed on every playtester machine before you read the editor.
What a set is, in plain language
A set is a named group of achievements that Steam shows together. The guide lists the grouping ideas Valve expects. Mode, character, chapter, or event. DLC can be its own set so it does not block base-game completion. Retired content can be archived. New work can be tested in a developer-only set that players never see.
Every app already has one set, even if you never clicked Create New Set. It is called the base game achievements set. Anything you have not assigned elsewhere belongs there. If you create nothing else, players see one list. The base set cannot be renamed, deleted, or reordered. It is always shown first, unless it is empty. An empty base set is not displayed, but it still counts against the set limit.
A set with no achievements in it does not appear to anyone. Creating a named empty set and publishing it does not put a blank header on the public page.
Players see progress for each set. Completing a set is tracked separately from completing the rest of the game. The profile can show how many games and sets a player has completed. A game qualifies for the Completionist Showcase once the player has completed any of that game’s sets. That is a lower bar than “100 percent of every DLC achievement,” and it is why DLC sets matter for the people who never buy the expansion.
What did not change in your game code
The guide states this twice, once in the integration intro and once in the FAQ.
Sets are configured entirely in Steamworks. They do not require additional code. Your game unlocks an achievement that happens to live in a set with the same API names and the same calls this guide already documents. The FAQ answer is “No” to updating the game or the Steamworks SDK.
The call shape stays the one you already ship. You pass a string identifier such as ACH_WIN_ONE_GAME. SetAchievement marks it achieved and you store stats. You may set the same achievement more than once. The call is asynchronous and still surfaces OnUserStatsStored and OnAchievementStored. If Steam is not initialized, the call fails. None of that text gained a set ID parameter on October 15.
Two runtime guards did get explicit. Steam will not unlock an achievement in a DLC set for a player who cannot play that DLC. Steam will not unlock an achievement in an archived set. Your game still has to cooperate. Award DLC achievements only to owners, and stop awarding an achievement once you archive it. The client refusal is a backstop, not a substitute for your own unlock checks. If a Unity build never reaches StoreStats because the App ID or the callback pump is wrong, sets will not fix that. That failure stays on the help page linked above.
Stats and progress bars are also unchanged in kind. An achievement can still point at a progress stat with a min and max that map to 0 percent and 100 percent. The stat must already exist, and it must have the same permission as the achievement. Sets did not invent a new stat type. They added a place to say which set an achievement belongs to.
Where you edit sets
Open the app in Steamworks, then Edit Steamworks Settings, then Stats & Achievements, then the achievements editor. The guide calls the working surface the Achievement Configuration page and the Manage Achievements tab.
The toolbar shows how many achievements and sets the app is using out of the limits, and it links a preview of your own achievements page. Create an achievement with Create Achievement inside the set it should belong to. The achievement form includes an In Set field. The table shows each achievement’s ID, its set, how it is set, and its global unlock rate. Filter by name, description, or API name.
Creating a set is five steps on that tab.
- Click Create New Set.
- Enter a set name. Players see this name.
- Under Restrictions, choose All players of the game, or pick a DLC so only owners of that DLC can earn the set. The list shows your DLC and their app IDs.
- Optionally mark the set Developer-only.
- Save.
Reorder with Reorder Sets. Drag the custom sets. The base game set does not move.
Edit from the set menu. You can change the name, the restriction, the developer-only flag, or mark the set archived. The editor shows visibility in three states.
| Visibility | Meaning |
|---|---|
| Visible | Players can see this set |
| Hidden by restrictions | Not visible yet, for example developer-only or unreleased DLC |
| Will be visible upon publish | Players see it after you publish the draft |
Delete a set only after you move or delete every achievement in it. If the goal is to retire a set without stripping earned unlocks, archive it.
Moving an achievement between sets is allowed after release, and the editor warns you. Moving from a visible set into a hidden or unreleased set hides it from players who already unlocked it. Moving into a set that already has player progress can break completion for those players. Adding an achievement to a set that has already been released does not break completion for players who already finished that set, but the guide says the display may look wrong. The recommended pattern is a new set for new content.
Localization of set names is separate from achievement names. A warning icon appears when languages are missing. The set localization CSV is one row per set, setid plus one column per language, and English is required. You create the set in the editor before that CSV can name it. The base game set cannot be renamed, including through that file.
Limits that matter on a small app
| Item | Limit |
|---|---|
| Achievements per app | 5,000 |
| Achievements on an app that has not been vetted | 100 |
| Sets per app | 40, including the base game set |
Archived achievements still count toward the achievement limit. Archiving is not a way to free slots. An empty base set still counts as one of the 40.
For a new indie that has not passed vetting, the 100-achievement ceiling is the real constraint, not the 5,000. Forty sets is generous next to that. A five-mode game does not need forty sets. It needs a base set plus one set per mode or chapter that you want on its own progress bar.
DLC sets, and why the completion bar changes
A DLC set is a set whose restriction is “owners of a selected DLC.” The guide lists the player-facing rules.
- Every player can explore the set on the game’s achievements page.
- Only players who can play that DLC can earn the achievements in it.
- The set does not count toward completion of the base game or of any other set.
- The set stays hidden until the DLC is released, so you can configure it before launch.
- The achievements page uses the DLC’s store art and store link. If the DLC has no published store page, Steam falls back to the base game’s art and link, and the editor warns you.
- The DLC’s own store page gets an achievements panel for that set.
Steam prefixes the set name with “DLC”. Do not type the word DLC into the name yourself or players will see it twice.
This is the change that fixes the old “I will never 100 percent this because I skipped the soundtrack pack” complaint. Base completion ignores the DLC set. DLC completion counts only for owners. A player who finished the base set can already qualify the game for the Completionist Showcase even if the expansion is untouched.
Your unlock code still has to check ownership before you call SetAchievement on a DLC API name. Steam will refuse the unlock for a player who cannot play the DLC. A refusal in the client is a support ticket if your UI already played a fanfare. Check ownership first. The DLC detection help page is the right place when the ownership query itself is wrong. Sets do not replace that query.
Developer-only sets
A developer-only set is visible only to developers of the app, released or not. Only developers can unlock its achievements. Use it to build icons, names, and progress stats before players can see a locked row.
The guide’s release advice is to test new achievements in a developer-only set first. Preview your own achievements page from the link at the top of the editor before you publish. A developer-only set is the safe place for a name you might still spoil.
Visibility “Hidden by restrictions” covers this case. Players do not see the set. You do. When you clear the developer-only flag and publish, the visibility state moves toward “Will be visible upon publish” and then “Visible.”
How completion is counted now
Completion is per set, not per app.
- A player completes a set by unlocking every achievement in it that is still available.
- Archived achievements that this player has not unlocked are not required.
- Once a player completes a set, that completion stays even if you later add achievements to the same set.
- DLC sets count only if the player owns the DLC.
Read the second bullet with the third. People who already finished a set keep the completed state when you append more achievements. People who had not finished now have a longer list. The set can show as completed for veterans and incomplete for everyone else, with locked rows sitting under a completed badge. The guide calls that confusing and tells you to add a new set for a DLC, an update, or a new mode instead of stuffing the old set.
That is the design change behind “set complete.” It is not a global percentage that recalculates backward for everyone. It is a latch per player per set. Plan content drops as new sets if you care about that latch staying honest.
The refreshed achievements page, as described in the guide, shows progress and completion for each set, including DLC sets, and lets players search and filter by unlock state or set. Community URLs stay useful for sharing a game’s list without a specific player. The store page panel shows achievements and excludes spoiler and archived ones. DLC store pages show that DLC’s set.
Archive versus delete
This is the sharpest behavior change, and it is the one most likely to be misread as “hide the holiday achievement and nobody notices.”
Delete removes the achievement for everyone, including players who unlocked it. If players have already earned it, the editor recommends archive instead.
Archive keeps the achievement visible to players who unlocked it. They can still feature it on a profile. Players who never unlocked it do not see it, and it does not count against their completion of the set. An archived set is visible only to players who previously unlocked something in it. Nothing in an archived set can be unlocked anymore. Players who did unlock something in that set can still see all of the set’s achievements.
Archiving does not change your game. When you archive, you must stop awarding that API name. Steam will also refuse the unlock, but a build that still fires the call is a bug, not a migration.
Hidden achievements were renamed spoiler achievements. A spoiler’s name and description stay hidden until the player unlocks it or chooses to reveal it. Spoiler and archived achievements are omitted from the store-page achievements panel.
Archive is the right tool when a mode shipped, people earned the unlock, and the mode is gone. It is the wrong tool for a typo you can still edit, or for a set you only created this afternoon and nobody has earned. Delete is still available when the achievement was never earned. The editor’s recommendation is specifically about achievements players have already earned.
Do not treat this section as a same-day retire plan for a live seasonal set. The facts above are the contract. The decision of whether to archive a shipping achievement this week is a separate call once you have read who still sees the row.
Draft, publish, and the store checkbox
Edits in the achievements editor save to the app’s draft configuration. They are not live until you publish from the Publish tab in Edit Steamworks Settings, the same way you publish any other Steamworks setting.
Before release you can preview on your own achievements page. To finish the release checklist you also check Steam Achievements under Supported Features in the store page’s basic info. Every achievement needs a name in each language you configured, and an icon. Missing localization is a checklist failure, not a silent fallback to English on the release check.
A set you saved and did not publish stays in “Will be visible upon publish” rather than on the public page. That is the gap between “I created a Halloween set in the editor” and “players on the client beta can see it.”
What players see, and which games already show it
The Verge quoted Valve on the player experience. You still unlock achievements by playing. When you browse them afterward, Steam breaks the long list into the developer-created sets, with a progress bar per set. Finishing a set yields a set-complete trophy on the profile. Valve also described seasonal sets that can be archived, including season-based games and time-limited holiday achievements.
The same report lists games Valve said already support sets. Against the Storm, Age of Wonders 4, American Truck Simulator, Call of Duty Modern Warfare 4, Crusader Kings III, DREDGE, Euro Truck Simulator 2, Forza Horizon 5, Flock Around, He is Coming, LEGO Batman Legacy of the Dark Knight, Left 4 Dead 2, Portal 2, PowerWash Simulator, PowerWash Simulator 2, Team Fortress 2, and Victoria 3.
Use that list as proof the UI is not theoretical. Do not copy their set splits. A live-service shooter and a two-person fishing game do not share a set map. Open one of those community achievement pages only to see bars and set names, then return to your own editor.
The features are in the Steam client beta, not a promise that every stable-client player already has the new page. If a playtester on the default client still sees one flat list, that can be the client channel, not a failed publish. Say that in the patch notes. “Sets are in the Steam client beta” is an accurate sentence. “Everyone’s overlay changed today” is not.
Bulk CSV, if you already have dozens of API names
The editor can import and export definitions. Achievement names and descriptions are not in the definitions CSV. They live in the localization CSV. The definitions file can carry an optional setid. Leave it blank for the base game set. An archived column is true or false. Progress stat name, min, and max are optional columns. The progress stat must already exist.
Set names export as a separate localization CSV, one row per set. You cannot rename the base set there.
For a 12-achievement prototype, the form is faster than a CSV. For a port with hundreds of API names, assign setid in the sheet, then read the editor warnings before publish. A bad setid that points at a hidden set will hide earned achievements. That warning exists because the move is real.
Icons still upload as image files beside the sheet. Sets did not remove the icon requirement on the release checklist.
A read-only first path for this week
This is a map, not a lab that publishes a set. Stay inside these steps on the app you ship.
- Write down the API names your current build actually calls. Ten minutes. If the list in Steamworks and the list in code disagree, stop. Sets will not reconcile a missing string.
- Open Manage Achievements. Confirm every current row sits in the base game set. That is the default the FAQ describes.
- Read the counter in the toolbar. Note achievements used versus the cap that applies to you (100 if unvetted, 5,000 if vetted) and sets used versus 40.
- If you have DLC, list each DLC app ID. Do not create the DLC set yet if you are only reading. Note which API names should move later so base completion stops waiting on that DLC.
- Find any achievement you intended to delete because a mode ended. Check whether players have a global unlock rate above zero. If they do, the editor’s recommendation is archive, not delete. Still do not click it on this pass.
- Confirm the store basic info has Steam Achievements checked if the game is already live with achievements. If it is not checked, sets are not your first problem.
- Close the editor without Publish.
Success check: you can say, in one sentence, which set each live API name belongs to today (almost always the base set), and you did not publish.
The Steamworks and PC distribution resource list is the wider toolkit around depots and partner docs. It does not replace the achievements guide linked above.
What to tell a publisher or a co-founder
Diligence questions that this beta actually answers:
| Question | Answer grounded in the guide |
|---|---|
| Do we ship a new SDK? | No. Same API names and calls |
| Do existing players lose their unlocks because sets exist? | No. Existing rows land in the base set |
| Can DLC block base 100 percent? | Only if you leave DLC achievements in the base set. A DLC set does not count toward base completion |
| If we add five achievements to a finished set, do completers lose completion? | No. Their set stays completed. Unfinished players have more to do. Prefer a new set |
| If we delete a seasonal achievement, do earners keep it? | No. Delete removes it for everyone. Archive keeps it for earners |
| When do players see the edit? | After you publish the Steamworks draft, and the new page is in the client beta |
| How many sets? | 40 including the base set. Empty base still counts |
| Unvetted app cap? | 100 achievements. Archived rows still count |
Cost is partner-admin time, not a build machine. There is no depot upload in the sets path. There is a publish of Steamworks configuration, which is still a production change. Governance is the same Publish tab you already use for price and depots. One person should own that click. A second person should have read the visibility column.
Privacy does not shift. Achievement unlocks remain Steam stats tied to the player’s Steam account. Sets do not add a new data export. They change grouping and who can see a locked row.
Common mistakes on the first read
Planning an SDK upgrade that the FAQ says you do not need. Teams lose a week bumping Steamworks because a client-beta headline sounded like an API break. The break is in the editor and in the client page.
Putting “DLC” in the set name. Steam adds the prefix. The public name becomes “DLC DLC Soundtrack.”
Appending a free update’s achievements to a set players already completed. Veterans keep the completed latch and still see new locked rows. Ship a new set for the update.
Deleting an earned holiday achievement. Earners lose it. Archive if the goal is “people who earned it keep it, everyone else stops seeing it.”
Archiving and leaving the unlock call in the build. Archiving does not patch your game. Stop awarding the API name. Steam’s refusal is the second line of defense.
Assuming the stable Steam client already shows sets to every player. The Verge report places the new page in the client beta. Write patch notes that say beta.
Publishing an empty set and expecting a header. A set with no achievements does not appear.
Moving earned achievements into a developer-only set. The editor warns that this hides them from the players who earned them.
Treating archive as a slot refund. Archived achievements still count toward the 100 or 5,000 cap.
Ignoring localization on the set name. English is required on the set CSV. A missing language flags the editor and can fail the release checklist on achievement names you already had.
How this differs from a Next Fest achievement freeze
The Next Fest hour-one parity checklist answers a different question. Does the demo’s first hour unlock the same stats and achievements the store page implies, and did you freeze that set of claims before the fest? That page uses “set” in the ordinary English sense of “the list you promised.”
Achievement Sets, capital S, are a Steamworks object with an ID, a restriction, a visibility state, and a completion latch. You can run a fest demo without creating a single custom set. You can also create a developer-only set for fest-only test achievements so they never appear on the public page. Those are compatible habits. They are not the same checklist.
If your fest branch still initializes achievements with the wrong App ID, fix that before you reorganize sets. A set cannot unlock what the client never stores.
Monday sentence you can paste
Steam achievement sets, in the October 15 2026 client beta, group existing achievements without a new SDK. Ours already sit in the base set. We will not publish a new set, a move, or an archive until we have listed API names, DLC app IDs, and any row with a non-zero global unlock rate.
That sentence is enough for a stand-up. The editor steps above are enough for the person who has to click. The publish tab is the only click that makes a draft public.
Key takeaways
- Steam achievement sets shipped in the October 15, 2026 Steam client beta, and the Steamworks guide still marks them beta.
- You do not update the game or the Steamworks SDK. The same API names and
SetAchievementplus store-stats calls apply. - Every existing achievement already belongs to the base game set. Creating no extra sets leaves one list on the new page.
- The base set cannot be renamed, deleted, or reordered. An empty base set is hidden but still counts toward the 40 set cap.
- Apps that are not vetted stay on a 100 achievement cap. Vetted apps go to 5,000. Archived achievements still count.
- A DLC set does not count toward base completion, stays hidden until the DLC is released, and only owners can earn it. Do not put “DLC” in the name.
- A developer-only set is visible only to the app’s developers and is the right place to test new rows.
- Completing a set latches. Adding achievements later does not un-complete players who already finished. Prefer a new set for new content.
- Delete removes an achievement for everyone. Archive keeps it for players who earned it and drops it from everyone else’s completion math.
- Archiving does not patch your build. Stop awarding that API name. Steam also refuses unlocks in archived sets and in DLC sets the player cannot play.
- Editor saves are drafts until the Publish tab. The store’s Supported Features checkbox for Steam Achievements is still required for the release checklist.
- The new achievements page is in the client beta. Do not promise that every stable-client player already sees set bars.
FAQ
Do Steam achievement sets require a new Steamworks SDK?
No. The Steamworks achievements guide says sets are configured in Steamworks and your game keeps the same API names and calls. There is no set-ID argument on SetAchievement.
What happened to the achievements I already shipped?
They are in the base game set. If you create no other sets, players see a single list on the new achievements page. Nobody loses an unlock because the feature exists.
Can I finish the base game without buying DLC?
Yes, if the DLC achievements live in a DLC set. That set does not count toward base completion. If you leave DLC achievements in the base set, they still block base completion for players who do not own the DLC.
Will players lose a completed set if I add more achievements?
Players who already completed that set stay completed. Players who had not finished have more achievements to unlock. Valve recommends a new set for new content so a completed badge does not sit above fresh locked rows.
What is the difference between archiving and deleting a Steam achievement?
Delete removes it for everyone, including players who unlocked it. Archive stays visible to players who unlocked it, can still be featured on a profile, and no longer counts against completion for players who never unlocked it. Archived sets cannot be unlocked anymore.
Do I need the Steam client beta to configure sets?
You configure sets in Steamworks on the partner site. Players see the new grouping on the achievements page that Valve placed in the Steam client beta. A playtester on the default client may still see the older list until that client channel updates.
How many achievement sets can one app have?
Up to 40, including the base game set. A set with no achievements is not shown. The empty base set still counts toward 40.
When do players see a set I just created?
When you publish the draft from the Publish tab in Edit Steamworks Settings, the set has at least one achievement, and it is not hidden by a developer-only flag or an unreleased DLC restriction. Visibility in the editor tells you which of those is true before you publish.
What to do next
Open the achievements editor and read. Confirm the base set, the cap, and which API names would move into a DLC set later. Do not publish on the same visit.
Bookmark this page if you need the FAQ in a partner email. Share the Monday sentence with anyone who thought the client beta meant a mandatory SDK upgrade.
The next useful pass on your own app is a written list of API names, DLC app IDs, and any achievement with a global unlock rate above zero. That list is what makes a later set, move, or archive a controlled publish instead of a draft you clicked through because the beta headline was loud.