Click the "Fork" button at the top right of this page.
- Go to your forked repository's Settings
- Click Pages in the left sidebar
- Under "Source", select Deploy from a branch
- Under "Branch", select main (or master) and / (root)
- Click Save
- Wait 1-2 minutes for deployment
Your site will be available at: https://YOUR-USERNAME.github.io/REPO-NAME/
- Create a branch named 'user'. This branch will store all your achievement files.
- Create folder structure:
AppID/[Steam AppID]/ - Example:
AppID/730/for Counter-Strike 2 - Upload your supported achievement files
- Commit and push to the branch
- Your site will update automatically!
By default they are stored in: %AppData%\GSE Saves\{AppID}
Your achievements.json should look like this:
{
"Defeat_Mantis": {
"earned": true,
"earned_time": 1754144765
},
"Obtain_Archetype": {
"earned": true,
"earned_time": 1754144765
}
}By default they are stored in: %AppData%\Achievement Watcher\steam_cache\data
and/or %AppData%\Achievement Watcher\steam_cache\user\{SteamID}\
A Steam label will be added automatically to these types of games.
Your {AppID}.db should look like this:
[
{
"apiname": "ACHIEVEMENT_reached_speed_1",
"achieved": 0,
"unlocktime": 0
},
{
"apiname": "ACHIEVEMENT_spam_obstacles",
"achieved": 0,
"unlocktime": 0
}
]Visit your GitHub Pages URL and you should see your achievement viewer!
your-repo/ (main branch)
โโโ index.html # Main viewer page
โโโ hub.html # Hub viewer page
โโโ css/ # Pages layout styles folder
โ โโโ hub.css
โ โโโ styles.css
โโโ js/ # Pages javascript code folder
โ โโโ utils.js
โ โโโ GameLoader.js
โ โโโ GameRenderer.js
โ โโโ HubRenderer.js
โโโ .github/
โโโ workflows/
โโโ fetch-game-data.yml # Automation workflow
The only important thing in the user branch below is the AppID folder, inside that the game's Steam AppID folder, inside that "Your achievement data".
All other files are optional or auto-generated.
your-repo/ (user branch)
โโโ AppID/ # Achievement data folder
โ โโโ 730/ # Counter-Strike 2
โ โ โโโ achievements.json # Your achievement data (only one "Your achievement data" file is required)
โ โ โโโ game-info.json # (Auto-generated) Auto-generated by workflow
โ โโโ 570/ # Dota 2
โ โ โโโ 570.db # Your achievement data (only one "Your achievement data" file is required)
โ โ โโโ game-info.json # (Auto-generated) Auto-generated by workflow
โ โโโ 928960/ # Godfall
โ โโโ achievements.json # Your achievement data (only one "Your achievement data" file is required)
โ โโโ Epic.platform # (Optional) Platform indicator empty file (displays the text before ".platform" on the game card below AppID)
โ โโโ blacklist # (Optional) Skipped achievements to display. You have to use achievement API names in every lines! (Useful in cases like with Godfall where Steam version has more achievements than Epic)
โ โโโ game-info.json # (Auto-generated) Auto-generated by workflow
โโโ gamercard.html # (Optional) Displayed on the right side of "{User}'s summary". It can be any website's "gamercard"
โโโ game-data.json # (Auto-generated) Combined data, auto-generated by workflow
โโโ top_owners.json # (Auto-generated) Auto-generated and auto-updated by workflow
The viewer automatically uses:
- Your GitHub username in the header
- Your GitHub profile picture as the avatar
These are detected automatically from your repository URL!
- Edit/replace files in
AppID/[Steam AppID]/achievements.json - Commit and push changes
- Site updates automatically within minutes
The workflow runs daily at midnight UTC, or manually:
- Go to Actions tab
- Select Fetch Steam Game Data
- Click Run workflow
โ
Supported achievement data file in AppID/[Steam AppID]/ with your unlocked achievement data
โ
GitHub Pages enabled
โญ You can see all optional files in the "AppID/appid" folder in this main branch. (remove .example from them and use them as it is written inside them)
- Your GitHub Pages site is public by default
- No personal Steam account needed - just upload your achievement files
- The viewer works offline after initial load
No games showing?
- Check that your
AppID/*/folder has any supported format achievement data files as mentioned in the Supported Formats section. - Verify the files are valid (use a json or db etc. validator, depending on the file)
- Check browser console for errors (F12)
Games show but no names/icons?
- Most likely Steam is using another Steam AppID for that game. (Example: for Dishonored the correct Steam AppID is 205100, because 217980 somehow doesn't work. You can check these things with SteamDB, you can check there if there are multiple AppIDs if you enter the game's name)
Profile picture not showing?
- Falls back to default Steam logo if GitHub avatar unavailable
- Check that your GitHub profile is public
Workflow not running?
- Verify the workflow file exists at
.github/workflows/fetch-game-data.yml - Check Actions tab for error messages
- Automatic Steam Integration - Fetches game names, icons, and achievement details
- Hidden Achievement Support - Retrieves hidden achievement descriptions
- Rarity Display - Shows how many players have each achievement
- Golden Glow - Rare achievements (<10%) get a special animated effect
- Spoiler Protection - Hidden achievements show spoiler text (hover to reveal)
- Sorting Options - Sort by completion % or recent activity
- Perfect Games Tracking - Shows your 100% completed games
- Responsive Design - Works on desktop and mobile
- The Hub feature - A community interface. Everybody who forks the main repo automatically gets added to it.
- Compare achievements - From your profile go to the Hub ("Open Hub" button in the upper right) and press on the user you want to be compared to.
- Achievement groups - Achievements that were added later with a DLC or an update, it will be displayed in a new row.
Free to use and modify!
At first this was made for GBE fork users.
Implemented and automatized the logic behind alex47exe's gse_fork_tools for hidden achievement retrieval.
Credit goes to darktakayanagi for the enhanced hidden achievement retrieval.
Credit goes to darktakayanagi for the Hub.