This took me a while to figure out, so here's all you need to know:
- In order to clear an achievement we're going to use Steam's client secret console and
achievement_clearcommand - You'll need the game ID (appid, number like
123456) and an achievement id (text likeACHIEVEMENT_NAME) in order to lock it - Since there is no "clear all achievements" command, we're going to use keyboard simulation to paste a long list of commands to the Steam's client console
- Open https://steamdb.info/ and find your game in the search
- Open "Achievements" page
- Open your browser's DevTools and paste this script into the browser console on SteamDB page:
(() => {
const appId = document.querySelector('[itemtype="http://schema.org/SoftwareApplication"]').getAttribute('data-appid')
const osascript = (
"delay 5\\n" +
Array.from(
document.querySelectorAll('.achievements_list .achievement[id^=achievement]')
)
.map(a => a.querySelector('.achievement_api').innerText)
.map(achid => `tell application \\"System Events\\" to keystroke \\"${`achievement_clear ${appId} ${achid}`}\\" & return\\ndelay 0.1`)
.join('\\n')
)
document.write(`echo "${osascript}" | osascript`)
})()Copy the results in the page to your clipboard
- Open Steam's console by going to
steam://open/console. You can just copy-paste this URL into your browser address bar and it should prompt you to open Steam
Run this line of code in your system's terminal. Make sure your terminal app has access to "System Events" and "Accessibility" in the OS settings in "Privacy & Security". Otherwise it simply won't be able to paste commands and press 'return' key for you.
echo "tell application \"System Events\" to keystroke \"aboba\" & return" | osascript
If you see output like zsh: command not found: aboba then osascript worked correctly and automatically typed the word aboba, so you're good to go!
Paste the long script generated in the browser to your console and press enter.
echo "delay 5\ntell application \"System Events\" to keystroke \"achievement_clear 105600 TIMBER\" & return
<...>
PURIFY_ENTIRE_WORLD\" & return\ndelay 0.1" | osascript
Quickly switch back to the Steam client console, click on the input field and wait 5 seconds until it starts inputting commands.