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

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

📑 Other Scripts by Lex


View attached image.
7 years ago*

Comment has been collapsed.

Looks like some charts have issue with special characters in title interpreted as Markdown.

This is my fix:

title.replace(/[-\[\]|\\#_+*()>`~]/g, '\\$&');
7 years ago
Permalink

Comment has been collapsed.

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,]*).*

7 years ago
Permalink

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/*
7 years ago
Permalink

Comment has been collapsed.

Thank you for this! I was wondering where the Chart button went.

6 years ago
Permalink

Comment has been collapsed.

  • The script need to be updated for https
  • When Enhanced Steam is enabled, the support for sub/bundle pages doesn't work
6 years ago
Permalink

Comment has been collapsed.

I updated it to work with HTTPS.

6 years ago
Permalink

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.

6 years ago
Permalink

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?

6 years ago
Permalink

Comment has been collapsed.

Done!

4 years ago
Permalink

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

6 years ago
Permalink

Comment has been collapsed.

Done!

4 years ago
Permalink

Comment has been collapsed.

Hey Lex

Is it possible to put the two following things

  1. A achievements column addition.
  2. A SG giveaway column page, so that people who are giving away that particular game on SG could be redirected anyways

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

6 years ago
Permalink

Comment has been collapsed.

I've added an achievements column! I'm not entirely sure what #2 is. Could you elaborate?

4 years ago
Permalink

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?

6 years ago
Permalink

Comment has been collapsed.

+1 Just noticed the same issue in Chrome + Tampermonkey..

5 years ago
Permalink

Comment has been collapsed.

data-tooltip-text is now data-tooltip-html on the steam page

5 years ago
Permalink

Comment has been collapsed.

Ah, that fixed it :) Thanks!

5 years ago
Permalink

Comment has been collapsed.

Thanks for the fix! I updated the script.

4 years ago
Permalink

Comment has been collapsed.

New version released! Now includes achievements, details, and platforms columns!

4 years ago*
Permalink

Comment has been collapsed.

I fixed the no CV checking and greatly improved the handling of bundles and subpackages (like Special Editions).

4 years ago
Permalink

Comment has been collapsed.

  1. Can I request a feature to disable/enable the different columns, such as if we don't want the platforms column or the price column we can disable it. I don't know if we can do that already or not but right no I need to manually go through all the text and delete the column I don't want.
  2. Also, idk why but in this thread the CV details are "NaN" (which I think is supposed to be N/A). Why is that? Is it something I did wrong?
  3. And for the prices, do you know any way to get the prices in US$ instead of my local currency/regional pricing other than manually looking through SteamDB?
    Thanks again!
4 years ago
Permalink

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.

4 years ago
Permalink

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?!)

4 years ago*
Permalink

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!

4 years ago*
Permalink

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! 😅

4 years ago
Permalink

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

4 years ago
Permalink

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

4 years ago
Permalink

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.

4 years ago
Permalink

Comment has been collapsed.

Updated to version 0.2.9.1and still shows the same thing.

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?

Nope.

View attached image.
4 years ago
Permalink

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.

4 years ago
Permalink

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.

4 years ago
Permalink

Comment has been collapsed.

Also, for the platforms idk why but all the games are available only on Windows but it says it's available on all W M L. Is it something I did wrong?

4 years ago
Permalink

Comment has been collapsed.

Is this script somehow broken? Haven't used it for several months and right now I can't see any button to add games. Tried Chrome and Firefox, also reinstalled the script.

3 years ago
Permalink

Comment has been collapsed.

Try the new version 0.2.12

3 years ago
Permalink

Comment has been collapsed.

Thanks, that fixed the problem. :)

3 years ago
Permalink

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.

View attached image.
View attached image.
View attached image.
1 year ago
Permalink

Comment has been collapsed.

Were you able to fix it? I've been modifying a couple of things, but I don't know much about it and doesn't work.

10 months ago
Permalink

Comment has been collapsed.

No. I didn't figure it out and I kinda left it as it was. Idk why the API doesn't do much. I found out how to obtain it, but other than that I can't seem to make it work.

10 months ago
Permalink

Comment has been collapsed.

Welp, thanks anyway!

10 months ago
Permalink

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.

10 months ago
Permalink

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).

9 months ago*
Permalink

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.

9 months ago*
Permalink

Comment has been collapsed.

Released 0.3.0 update which fixes bundle fetching. Card fetching and US retail price fetching are still broken.

Looks like steamcardexchange shut down their API. Anyone know an alternate way to fetch Steam Card info?

3 months ago
Permalink

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. 😩

3 months ago
Permalink

Comment has been collapsed.

In 0.3.1 I fixed the card handling by using Augmented Steam's additions to the game page.

3 months ago
Permalink

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
3 months ago*
Permalink

Comment has been collapsed.

Necroking shows as bundled 0 times but the tooltip shows 1 ongoing bundle... is that working as intended?

3 months ago
Permalink

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.

3 months ago
Permalink

Comment has been collapsed.

Ah, got it.

3 months ago
Permalink

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

3 months ago
Permalink

Comment has been collapsed.

Come to americaland where the numbers work!

I'll see if I can fix the EU pricing

3 months ago
Permalink

Comment has been collapsed.

Come to americaland where the numbers work!

Language-wise I did by adding ?l=english to the store page. This fixed the cheevos not being recognised.

3 months ago
Permalink

Comment has been collapsed.

I guess so far people posting charts on SG are from the US or use a VPN, so adjustments for other countries should probably be a low priority.

3 months ago
Permalink

Comment has been collapsed.

Just released, give 0.3.12 a try!
Here's what it looks when I try it

View attached image.
3 months ago*
Permalink

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.

3 months ago
Permalink

Comment has been collapsed.

3 months ago
Permalink

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).

3 months ago*
Permalink

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.

3 months ago*
Permalink

Comment has been collapsed.

I just released 0.3.9 which improves the default position of the dialog boxes.

3 months ago
Permalink

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

3 months ago
Permalink

Comment has been collapsed.

Perfect, thanks again!

3 months ago
Permalink

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:

  • $26.00

CV:

  • 3.9000

Chart created with Lex's SG Chart Maker

3 months ago
Permalink

Comment has been collapsed.

Fixed in 0.3.11

Game Ratings Details Platforms Bundled Retail Price Discount Current Price
Sengoku Dynasty 73% of 4,346 reviews 4.50 CV app/1702010 W D🛇 0 $29.99 -25% $22.49 20,24€
3 months ago*
Permalink

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 :)

3 months ago
Permalink

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.

3 months ago
Permalink

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.

3 months ago
Permalink

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).

3 months ago
Permalink

Comment has been collapsed.

Love this idea. I didn't know how to access the game page from the appid!

Updated in 0.3.13

Game Ratings Details Platforms Bundled Retail Price
Blasphemous 2 92% of 10,019 reviews 4.50 CV app/2114740 W D✅ 0 $29.99
3 months ago
Permalink

Comment has been collapsed.

🩷

3 months ago
Permalink

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

3 months ago
Permalink

Comment has been collapsed.

Fixed in 0.3.14. Looking forward to seeing your posts in the deals forum!

3 months ago
Permalink

Comment has been collapsed.

Any chance you can replace D🛇 with D❌ for Steam Deck Unsupported games? The 🛇 symbol does not display properly on my Android device, instead showing up as a rectangle with an X inside (example)

2 months ago
Permalink

Comment has been collapsed.

Done! 0.3.15 switched the icon as requested

2 months ago
Permalink

Comment has been collapsed.

My goodness that was fast! Thanks Lex!

2 months ago
Permalink

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
1 month ago
Permalink

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.

1 month ago
Permalink

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?

1 month ago
Permalink

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.

1 month ago*
Permalink

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!

1 month ago
Permalink

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.

1 month ago
Permalink

Comment has been collapsed.

Cool I'll try it for the next bundle.

1 month ago
Permalink

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!

1 month ago
Permalink

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.

1 month ago
Permalink

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.

1 month ago
Permalink

Comment has been collapsed.

Sign in through Steam to add a comment.