Fetching the ratings of a game will fail with certain languages as steam adds an extra space before the % sign:
e.g. for Tribal Pass - this is what my browser displays:
<div class="user_reviews_summary_row" onclick="window.location='#app_reviews_hash'" style="cursor: pointer;" data-tooltip-text="78 % der 118 Nutzerreviews für dieses Spiel sind positiv." itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
vs.
<div class="user_reviews_summary_row" onclick="window.location='#app_reviews_hash'" style="cursor: pointer;" data-tooltip-text="78% of the 118 user reviews for this game are positive." itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
As you can see: language is german, BUT: it seems like there is an extra space behind where regex group one should be, so the regex fails for German just because of ONE space.
I suggest something like this as regex pattern:
(\d+) *%[^\d]*([\d,]*).*
Comment has been collapsed.
The script doesn't work on https URLs.
This is my fix:
// @match *://store.steampowered.com/app/*
// @match *://store.steampowered.com/sub/*
// @match *://store.steampowered.com/bundle/*
Comment has been collapsed.
Thank you for this! I was wondering where the Chart button went.
Comment has been collapsed.
Comment has been collapsed.
Here is an example of how the card farming profits are estimated.
Pain Train has 10 cards costing a total of $0.43. https://www.steamcardexchange.net/index.php?gamepage-appid-576560
Average card price: $0.043. For cards costing $0.22 or less, the script estimates the profit to be the price minus 2 cents, so average profit per card is $0.023. Multiply by the 5 cards you receive and the script estimates you'll get $0.11 from farming Pain Train.
For cards with few market listings or outlier prices, the script will fail miserably.
Comment has been collapsed.
I would love to see the Operating System on which the game can run in the chart. Is it possible to add this?
Comment has been collapsed.
Hello. As you may know, Steam recently started to "learn" about new games in store before making them visible in API. Problem is that after sync on SG those games stay unowned and it's still possible to enter giveaways from them. Is it possible to add a new column that would link to SG search for this game to make it easier to find and hide those games manually? Something like this - Giveaways for this game on SG
Comment has been collapsed.
Is it possible to put the two following things
And thanks for this awesome tool. Wish i could know scripting to do these myself. but i don't :(
Hope to see those changes soon
With love,
Abrix
Comment has been collapsed.
Hello! The script isn't working anymore with Firefox and Tampermonkey. The Chart button is here, but nothing happens when I click it. It was working fine 1 month ago. Can somebody confirm this?
Comment has been collapsed.
data-tooltip-text
is now data-tooltip-html
on the steam page
Comment has been collapsed.
Comment has been collapsed.
I've updated the script to add toggles for all the columns. The reason #2 and #3 are failing for you is because you must input your IsThereAnyDeal API key and click Load Bundle Info. That will trigger it to download the US price data and properly display the CV.
Comment has been collapsed.
How do you get the IsThereAnyDeal API key? It says to register an app which I can't seem to do (I already linked my Steam account to it as well)
Edit: Nvm, managed to get an API key now, thanks for the extremely fast response and the inhumanly fast update! (srsly, how do you get an update this fast?!)
Comment has been collapsed.
Also, for cheevos is it possible for it to show instead something like a ❗ for the games that doesn't have achievements?
Edit: Nevermind again, the games that I am adding to the chart have an "undefined achievement" which I think means that it's not updated on the astats website yet since the games were just released. If possible, could you do something like a N/A instead for "undefined achievements"? Thank you so much again!
Comment has been collapsed.
And... another thing (sorry I'm asking for a lot of features that no one seems to really use/want)
Can I request a feature for the retail price to include the percentage discount of the games and the maybe the full and discounted price as well (maybe make this feature optional? (can be turned on and off)). Thank you... again! 😅
Comment has been collapsed.
I've added columns for Discount percentage and current price. When I add those games to the Chart, the achievements columns all show "-".
Game | Cheevos | Retail Price | Discount | Current Price |
---|---|---|---|---|
Mirror's Edge Catalyst | - | $19.99 | -50% | $9.99 |
Chart created with Lex's SG Chart Maker
Comment has been collapsed.
Mine shows this:
Game | Ratings | Cards | Cheevos | Details | Platforms | Retail Price |
---|---|---|---|---|---|---|
Mirror's Edge™ Catalyst | 96% of 30 reviews | ❤ | 🏆 | 3.00 CV app/1233570 | W M L | $19.99 |
Burnout™ Paradise Remastered | 61% of 72 reviews | ❤ | 🏆 | 3.00 CV app/1238080 | W M L | $19.99 |
Need for Speed™ Heat | 68% of 41 reviews | ❤ | - | 10.50 CV app/1222680 | W | $69.99 |
Crysis® 3 | 93% of 44 reviews | - | 🏆 | 4.50 CV app/1282690 | W M L | $29.99 |
Dragon Age II | 86% of 7 reviews | ❤ | - | 3.00 CV app/1238040 | W | $19.99 |
Chart created with Lex's SG Chart Maker
Comment has been collapsed.
On the store page for one of the games, in the details block (where it shows if it has cards, Single-player, controller support, etc) does it show the game as having achievements? For me those games do not show on the store page as having achievements.
I've changed the achievement detection method. Update the script and give it a shot.
Comment has been collapsed.
Did you remove the game and add it back? Maybe try a different browser? When I access Steam not logged in via a Thai proxy it works for me, so I'm not really sure what's going on here that is causing the platforms and achievements to not detect properly for you.
Comment has been collapsed.
That's wierd. It also shows for me in the Steam store that there are no achievements available for any of the games but the chart says it does. I don't think it's the region problem, but I'll have a look. It may also be helpful to add a 'refresh game data' button to update the current prices and all the other stuff as well? Just a thought.
Comment has been collapsed.
Hi Lex,
I've been using your useful tool for quite some time now and since the changes to isthereadeal website migrating to a new UI and such I've started to have issues Loading Bundle Info from my API from isthereadeal.
I've asked around one source that I knew that she is well-educated in the matter and that is sensualshakti aka Lilly for it, but it seems to be something she might not be able to help unless maybe you can.
What can I do to make this feature work? I'm using it for Steamtrades mostly and I'd like to be able to reuse it again.
Lastly, I'd like to ask if it's possible to maybe add a feature to make things much easier to determine the lowest price of a game. The same way it indicates Retail Price, if it's possible to generate at that point, the lowest price point for that game listed, just like the image below.
Comment has been collapsed.
I'll try to find out from sensualshakti as she is using something else or something like that. I'd like a functional one with any website really.
Comment has been collapsed.
Did you read the ITAD API migration guide?
I don't use the chart maker, but I suspect that one of the things broken is that the script uses the old version of the ITAD API.
So in the code, check all occurrences of "api.isthereanydeal.com" and apply the migration guide if possible.
The docs link at ITAD's app page seems wrong, it points to GitHub. Should probably be https://docs.isthereanydeal.com/ .
"esapi" (for Enhanced Steam probably) is used as well. When visiting a page like
https://esapi.isthereanydeal.com/v01/prices/?cc=US&appids=70&subids=&bundleids=&coupon=true
the response is a blank page. Maybe it doesn't work any more. The following archived documentation for above mentions "api.isthereanydeal.com/v01/game/overview" in the response. So it might have been a redirect to the regular ITAD API.
https://github.com/IsThereAnyDeal/AugmentedSteam_Server/blob/5db77e776c3230e4160873582e9079780c284d74/api/prices.v01.php
According to the migration guide, the overview is now at "/games/overview/v2".
https://docs.isthereanydeal.com/#tag/games/operation/games-overview-v2
So in short, "esapi.isthereanydeal.com/v01/prices" possibly can be replaced with "api.isthereanydeal.com/games/overview/v2". The latter is a "POST" though (expects data to be sent).
Comment has been collapsed.
Found the old API's blue print, this might help with porting:
https://github.com/IsThereAnyDeal/API/blob/2c36c285e10f55b7b997704e2ce3db3a8c4239ca/blueprint.md
The chart maker uses "plains", these aren't updated any more. From the migration guide:
Plain is no longer used as an identifier of games, instead in API 2 we use UUIDs. Legacy endpoints will still work with plains, but these map of plain:uuid is a snapshot. No new plains will be computed. This means that either you won't be able to find some games, or endpoints will return empty string or null when a new game is encountered.
So every line of code containing the word "plain" needs to be rewritten.
Comment has been collapsed.
SteamDB offers the information if a game provides trading cards but I have no idea if that is share via API.
Thanks for the update anyways, very appreciated. I would have needed that when I made my post in the "What have you bought?" sale thread. 😩
Comment has been collapsed.
0.3.8 released with Steam Deck compatibility listing, improved scraping of achievements, and improved scraping of pricing. Includes linking to SteamDB and ProtonDB.
Game | Ratings | Cards | Cheevos | Details | Platforms | Bundled | Retail Price |
---|---|---|---|---|---|---|---|
Necroking | 84% of 444 reviews | ❤ | 🏆 | 0.75 CV app/2852980 | W M D✅ | 0 | $4.99 |
Catizens | 84% of 195 reviews | - | 🏆 | 2.67 CV app/957660 | W D? | 6 | $17.77 |
Styx: Shards of Darkness | 84% of 3,982 reviews | ❤ | 🏆 | 3.00 CV app/355790 | W D🛇 | 12 | $19.99 |
Comment has been collapsed.
It is. If the latest bundle was added within the last 48 hours, it doesn't get added to the count because the table is intended to reflect past bundles excluding the current one. ITAD might learn about the bundle before you go to make the post on Steam Gifts, so that's why I give it a 48 hour window.
The count for Styx matches because the bundle for Styx started more than 48 hours ago.
Comment has been collapsed.
I've tested with the three games above, it shows 0 CV for all of them. Not sure why, maybe something I did wrong. https://i.imgur.com/KDuF7xY.png
Comment has been collapsed.
For me it's unchanged, still says 0 CV and retail price is in Euro. I even disabled all browser add-ons to be sure none of them is interfering. https://i.imgur.com/UxqWJNU.png
Though as said, currently there doesn't seem to be a need for the script to work outside the US.
Comment has been collapsed.
You need to install Augmented Steam too https://chromewebstore.google.com/detail/augmented-steam/dnhpnfgdlenaccegplpojghhmaamnnfp
Comment has been collapsed.
Worked after changing some settings in AS. Connected it with ITAD, changed price comparison to USD, made it always display region comparison with US (Steam only). Not sure which setting did it, or if it was a sync or caching issue.
Also the first time it worked was when I clicked on the "+Chart" symbol next to the price (for a sub / package). But this is probably coincidence. Normally I use the "+Chart" symbol at the top of the page (upper right).
Comment has been collapsed.
Thanks for the updates! One thing I noticed, the title bar of the dialogue box seems to be covered by a Steam menu. Though maybe it's caused by another browser add-on.
https://i.imgur.com/wqfma0A.png
Edit: Another (tiny) issue: If there's no API key entered yet, the dialogue box points to https://isthereanydeal.com/dev/app/ which is a 404.
Comment has been collapsed.
Edit: Another (tiny) issue: If there's no API key entered yet, the dialogue box points to https://isthereanydeal.com/dev/app/ which is a 404.
Fixed now in 0.3.10
Comment has been collapsed.
Will there be a fix for the Steam discounts and current prices?
Game | Ratings | Retail Price | Discount | Current Price |
---|---|---|---|---|
Sengoku Dynasty | 73% of 4,330 reviews | 26,99€ | -undefined% | $undefined |
Retail:
CV:
Chart created with Lex's SG Chart Maker
Comment has been collapsed.
It looks like ITAD moved price information to a separate API call - https://docs.isthereanydeal.com/#tag/Prices/operation/games-prices-v3
Also, fetchNoCV() function doesn't work as expected since rafaelgssa.com/esgst/games/ncv
site is not reachable.
P.S. Sorry, I'm not a programmer, so I can be wrong :)
Comment has been collapsed.
You are correct on both. I deleted all the ITAD api calls for pricing, and have changed it to try to read from Augmented Steam's embedded price info.
As for No CV fetching, I have no fix and no idea how to fix it. It's breaking the Steam Gifts ESGST browser add-on too.
Comment has been collapsed.
I wrote a script to extract bundle games data to json file: https://www.steamgifts.com/go/comment/0d7SUdk
You can find the files here: https://github.com/ngoclong19/sg-spuds/tree/main/dist
I plan to relocate the files, so if you can't find them, please visit the comment or the github repo.
Comment has been collapsed.
Would it be possible to make a change in Details column so that the link that currently leads to GA search result https://www.steamgifts.com/giveaways/search?app=%appid%
would point to the game page
https://www.steamgifts.com/app/%appid%
instead? e.g. it would be https://www.steamgifts.com/app/2114740 for Blasphemous 2.
I think it would greatly improve UX for cases when the game was hidden by a user (search result is empty in that case) plus the game page has some more information there about the game (reduced/no value status dates, some stats).
Comment has been collapsed.
There seems to be odd bug for me that might be caused by how euros are listed (thats all I can think of).
Example:
Game | Ratings | Cards | Details | Platforms | Bundled | Retail Price | Discount | Current Price |
---|---|---|---|---|---|---|---|---|
The Elder Scrolls V: Skyrim Special Edition | 94% of 176,084 reviews | - | 5.99 CV app/489830 | W D✅ | ? | $39.90000000000001 | -90% | $3.99 3,99€ |
It automatically makes a bit bizarre retail price of "$39.90000000000001"
Could this because my steam is in european format - which means the price would look like 39,99 € so with comma instead of dot?
The US price for the game is 39.99 too.
I have only 2 steam related plugins on firefox:
Augmented steam
SteamDB plugin
Comment has been collapsed.
Added the Fantical Bundle Regional Pricing Helper to the OP
Used to create charts like
Quantity | GBP | EUR | USD | CAD | AUD | RUB | JPY |
---|---|---|---|---|---|---|---|
2 | 14.99 | 14.99 | 14.99 | 21.49 | 26.29 | 1695 | 2509 |
3 | 21.99 | 21.99 | 21.99 | 31.49 | 38.59 | 2489 | 3679 |
5 | 34.99 | 34.99 | 34.99 | 50.19 | 61.39 | 3959 | 5859 |
Comment has been collapsed.
Thanks again for this. I modified it a bit for myself to include the converted prices from a currency rates api, but this is very useful.
Comment has been collapsed.
Very helpful chart maker. I am getting a couple of bugs, not sure if it's because of my location (south africa).
The prices are not always picking up correctly. Like on this bundle thread: https://www.steamgifts.com/discussion/gkjed/fanatical-build-your-own-indie-legends-bundle-spring-2025
Not sure what causes that?
And then it's also not picking up the No CV games, but I think that's because https://rafaelgssa.com/esgst/games/ncv seems to be down.
Any ideas on how to fix those issues?
Comment has been collapsed.
A workaround is append ?cc=us
after the store URL (in a private tab), for example: https://store.steampowered.com/app/499180/Braid_Anniversary_Edition/?cc=us
. Then add game to chart like before. I think the script data is shared between normal tab and private tab.
You should modify the URL in the browser address bar, then click the Add to Chart in the upper right corner. It needed to be done in a private tab, otherwise Steam will ignore the cc
and get from your account setting.
Some debug information. If the Steam store currency is not USD, the user script will call convertCurrentPriceToRetailPrice(game.usCurrentPrice, game.discountPercent)
.
Some time discountPercent
isn't from the base package, but a bundle.
Visit https://store.steampowered.com/app/499180/Braid_Anniversary_Edition/?cc=vn
(in a private tab).
The script report usCurrentPrice
is $19.99 (from Augmented Steam add-on), and discountPercent
is -41% (from the bundle). The retail price in the generated markdown table is $33.88.
Maybe we should use these API for Store data:
https://github.com/Revadike/InternalSteamWebAPI/wiki/Get-App-Details
https://github.com/Revadike/InternalSteamWebAPI/wiki/Get-Package-Details
The endpoint for No CV games should be https://esgst.rafaelgomes.xyz/api/games/ncv.
Comment has been collapsed.
Thanks for the tips. I'll try your suggestions to modify the URL.
I've also update the No CV url for now to: https://esgst.rafaelgomes.xyz/api/games/ncv. At least that one loads for me, so thanks for the info!
Comment has been collapsed.
I forgot to mention, you should modify the URL in the browser address bar, then click the Add to Chart in the upper right corner. It needed to be done in a private tab, otherwise Steam will ignore the cc
and get from your account setting.
Comment has been collapsed.
Right so used a different browser where I wasn't logged in, and that seemed to work. But now it didn't show the CV and tier pricing, so don't know if that's the same issue or something new!
Comment has been collapsed.
Did you mean the total retail price and CV, that lies between the table and the line "Chart created with Lex's SG Chart Maker"? If that is the case, there is a Totals button on the top.
Comment has been collapsed.
You're right! I never had to push that button before though. Weird. Maybe I was on an old version of the script on my default browser. But thanks.
Comment has been collapsed.
2,653 Comments - Last post 2 minutes ago by ToatsMcGoats
12 Comments - Last post 8 minutes ago by wigglenose
7 Comments - Last post 11 minutes ago by trunks10k
1,172 Comments - Last post 12 minutes ago by sensualshakti
299 Comments - Last post 14 minutes ago by Creative1989
19 Comments - Last post 43 minutes ago by doomofdoom
5 Comments - Last post 3 hours ago by pb1
10,107 Comments - Last post 3 minutes ago by CurryKingWurst
22 Comments - Last post 4 minutes ago by Atro
210 Comments - Last post 31 minutes ago by TheMuzo
40 Comments - Last post 34 minutes ago by mourinhos86
466 Comments - Last post 1 hour ago by ere43
134 Comments - Last post 1 hour ago by Abominati0n
148 Comments - Last post 2 hours ago by LordSpyMaybe
Lex's SG Chart Maker helps you create charts for bundles to post on SG. On the Steam Store, use the button in the upper right to add games to the chart maker. Drag and drop games to reorder them. Click Load Bundle Info to load the bundled column from ITAD.
Installation
👉 https://greasyfork.org/en/scripts/32567-lex-s-sg-chart-maker
Never installed a Userscript before? Read this https://greasyfork.org/en/help/installing-user-scripts
This script requires an IsThereAnyDeal API key. To get one, go to https://isthereanydeal.com/apps/my/. Once you have one on the site, visit My Apps to get your API Keys (not OAuth. The OAuth client secret is something different).
Works best with Augmented Steam which allows the Chart Maker to parse Trading Cards from a Steam page.
Fantical Bundle Regional Pricing Helper
https://greasyfork.org/en/scripts/529599-fanatical-bundle-regional-pricing
Create regional pricing charts like
📑 Other Scripts by Lex
Comment has been collapsed.