Your unlocked icon
Drop a square icon (PNG keeps transparency). We render the locked version from it — all in your browser.
Steam matches icons to achievements by file name, so downloads are named
API_NAME_ACHIEVED.png and API_NAME_UNACHIEVED.png.Locked look
How the achievement appears before it's earned.
Upload an icon to preview
Unlocked256×256
Locked preview
Locked—
Steam requires disclosure: achievement icons made with AI ship to players, so declare them in the Generative AI section of your Steamworks content survey (pre-generated content). Valve reviews AI art like any other art. Check what else to disclose →
AI image provider
Bring your own key. It's stored only in this browser and sent straight to the provider — never to ShipIndie's servers.
Prompts
The master style keeps every icon consistent; the subject changes per achievement.
One achievement per line. Optional
NAME → subject — use the achievement's API name so Steam can match the icon to it. Without a NAME the file is named after the subject. Separators: →, ->, | or a tab.Result
Unlocked result
Unlocked256×256
Locked result
Locked—
Upload to Steamworks
Steam's achievements editor takes icons in bulk. Our ZIP is already named the way it expects, so there's nothing to rename.
- Generate your icons above and download the ZIP. Unzip it.
- In Steamworks, open Edit Steamworks Settings → Stats & Achievements → Achievements and switch to the Bulk Import/Export tab.
- Drag the .png files onto the upload box. Files named API_NAME_ACHIEVED.png and API_NAME_UNACHIEVED.png are assigned to the matching achievement automatically.
- If your icons are in the same upload as a definitions CSV, they're only assigned to achievements in that CSV. To upload icons on their own, leave the CSV out.
- Review the file list and pending changes, then click Save imported data. Nothing is saved until you do.
The achievements must already exist, because icons are matched by API name. You can also tick Automatically generate unachieved icons on that tab to let Steam make plain grayscale ones from your achieved icons.
Older shortcut: upload from the previous achievements page
A small snippet that ran on Steamworks' previous achievements page and uploaded each icon through your existing Steam login. Nothing is sent to ShipIndie. It still reads the NAME_ACHIEVED / NAME_UNACHIEVED file names.
Steam replaced that page with the new editor, and this snippet hasn't been tested against it. Use the bulk upload above unless you're still on the old page. Automating the partner site isn't officially supported by Valve, so only use it on your own app and account.
Steam recommends 256×256 PNG achievement icons (square, 64×64 minimum, larger images are scaled down, JPG also accepted). Upload your art at 256×256 or larger for the cleanest result. Every achievement needs an icon to pass the release checklist. AI generation uses your own provider account and key — you pay the provider directly, ShipIndie never sees the key or the images.