SG Train Navigation Assistant is a lightweight userscript which loads quickly, and allows easy manoeuvrability through trains on SteamGifts!

Some backstory as well as the train can be found at the bottom of this post.


Installation

Follow this link and click 'Install this script': SG Train Navigation Assistant (Greasyfork)

If you've never installed a userscript before and need some help, follow these instructions: How to install user scripts (Greasyfork)


Usage

To use this userscript, simply use your arrow keys when in a train, the current available controls are as follows:

  • Left Arrow (←) - Go to the previous train cart
  • Right Arrow (→) - Go to the next train cart
  • Up Arrow (↑) - Open/ Close game screenshots
  • Control - Toggle between images and video media when the 'screenshots' are open

These hotkeys can be customised through the configuration panel, which can be accessed if you click your script manager, and click the 'Configure Script' button, underneath the SG Train Navigation Assistant dropdown.

Note: When writing a comment or changing the description (i.e. when your cursor is active inside a textbox) the shortcut keys will not work.


Issues?

  • If the script doesn’t work, ensure:
    • Tampermonkey is enabled in your browser.
    • The script is active and running when on a giveaway page (such as this).
  • Check the console for errors (Press F12 → Console tab).

Feel free to post any issues in the comments below. As this is my first 'official' public userscript release, please do bear with me if there are any issues.
If there are any other 'Forward' or 'Backward' keywords, please feel free to pop them in this thread also, and I can add them to the script.


So where is the promised sample train?!?!?

Alright, alright, here is the link to the train (Just RemoveThis_ :P). Please feel free to test it out and let me know if you find any issues. I've tried to mix up some of the wagon terminology to really put it to the test.

For some backstory, I made this userscript since my primary method of interaction with Steamgifts is through a trackpad. As such, when there is a large community train, I quickly lose motivation to click through each link.

This poses a problem, especially when I want to contribute, as I need to be able to get to the last cart in the train to add my contribution.

So, through my own laziness, and determination to contribute, I decided to make a small userscript to automatically identify the previous/ next links in the cart, and then allow for keyboard shortcuts to be used to navigate through.

After making a v1 (read as: v0.001) I quickly found that it was a pain to switch between arrow keys and mouse when I wanted to check the screenshots for a game, so I added a shortcut for bringing those up too!

Initially I did consider just using ESGST/ seeing if I could add this to the extension, however it is a fairly heavy plugin, and on the device I use (very old chromebook) takes a while to load, and also loads quite late. This means it takes me several seconds before I can use the hotkeys. My goal with making this a separate userscript was to allow it to load very quickly, and be very lightweight as well (which, from my testing I seem to have achieved!).

At the current stage, I have some other QoL ideas that I may look at adding in the future, such as tracking the cart number to deal with pesky derailments. But currently I think this is at a solid enough stage to maybe (hopefully?) be useful to some.

Next time you make a train, feel free to link this in your post!

Thanks for reading!

tldr; I hope this helps people navigate trains.

7 months ago*

Comment has been collapsed.

Bump! =)

7 months ago
Permalink

Comment has been collapsed.

Lovely train. Thanks bump

7 months ago
Permalink

Comment has been collapsed.

Bhumpp, Thnx !

7 months ago
Permalink

Comment has been collapsed.

buump!!

7 months ago
Permalink

Comment has been collapsed.

Nice! Works like a charm <3

7 months ago
Permalink

Comment has been collapsed.

Great to hear! Thank you!

7 months ago
Permalink

Comment has been collapsed.

Bump! What a useful tool, and a mighty long train to use it on. Thank you very much! <3

7 months ago
Permalink

Comment has been collapsed.

choooochoooobump!

and Happy belated ShipCakeFactory Day! ^_^

7 months ago
Permalink

Comment has been collapsed.

Thank you for the script! Bump.

7 months ago
Permalink

Comment has been collapsed.

Have a big bump from me :D

7 months ago
Permalink

Comment has been collapsed.

Bump!

7 months ago
Permalink

Comment has been collapsed.

Bump! Thank you for that massive train! :D

7 months ago
Permalink

Comment has been collapsed.

Bump!

7 months ago
Permalink

Comment has been collapsed.

Bump & thank you !

7 months ago
Permalink

Comment has been collapsed.

Bamf

7 months ago
Permalink

Comment has been collapsed.

Bump!

7 months ago
Permalink

Comment has been collapsed.

Bump!

7 months ago
Permalink

Comment has been collapsed.

Thank you for the train!

7 months ago
Permalink

Comment has been collapsed.

Quick bump before the train goes away

7 months ago
Permalink

Comment has been collapsed.

Wonderful train! Thank you.

6 months ago
Permalink

Comment has been collapsed.

Sliding in right before the end. Totally missed this train all month.

Happy to empty out my points for some great games. Thx for all the giveaways! o/

Bump

6 months ago
Permalink

Comment has been collapsed.

Bump!

6 months ago
Permalink

Comment has been collapsed.

bump

6 months ago
Permalink

Comment has been collapsed.

Add this ◀ ▶

6 months ago
Permalink

Comment has been collapsed.

I've added these.

thank you for the suggestion!

6 months ago
Permalink

Comment has been collapsed.

awesome

6 months ago
Permalink

Comment has been collapsed.

Link to today's update so it doesn't get buried by my reply: Update 2025-09-08

Continuing the recent discussion about key configuration, there's one problem with users editing the script directly: Automatic updates are blocked in this case to avoid overwriting the changes.

One solution would be to have a settings page, with the options being saved. There are libraries to make it easier, though maybe it's better not to depend on one.

Stackoverflow: Create a "config" or "options" page for a Greasemonkey script

MonkeyConfig isn't updated any more. There are forks which received a few more updates.

View attached image.
View attached image.
3 months ago
Permalink

Comment has been collapsed.

Great point. I hadn't even considered that as I always use the most up-to-date version.

I will take a look into possible config options tonight. I do know it is possible to set configuration in userscript but have never played around with it before.

I'm currently thinking that turning on/off the screenshot hotkey would be one of the options, as you've asked. But also the possibility of customising all the hotkeys, which should help with accessibility, and general user preferences might be good too.

Thank you for the links, and for digging into this!

3 months ago
Permalink

Comment has been collapsed.

Hey there again,

I've done some work on this and I'm quite pleased with the result.

Please update your script and let me know if you come across any issues.
I have found one bug, which I have mentioned in the update note. I will track it down, but otherwise it seems to be working reliably as per my testing. Even though the solution ended up being somewhat 'kit-bashed' and a little 'DIY'...

Thank you once again for the suggestion!

3 months ago
Permalink

Comment has been collapsed.

Thanks, changed keys to WASD style nav and it worked fine. I noticed that the colours and text style used by SquishedPotatoe's SG themes make the configure dialogue hard to read. But that's a very minor issue.

3 months ago*
Permalink

Comment has been collapsed.

I might take a squiz at it tomorrow, I personally don't use any styles so haven't come across any issues. I can probably fix it by just adding a bunch of !important tags everywhere in my styling so it hopefully overwrites whatever any other custom styling does.

Thank you for the update, and glad to hear it's working.

Now we will just need to wait until the next update to make sure the config correctly persists across updates!

3 months ago
Permalink

Comment has been collapsed.

How about a blacklist skip button, or is that impossible? Also, an idea for a game trailer in addition to screenshots. Maybe could also add the what game's genres somewhere.

2 months ago
Permalink

Comment has been collapsed.

Screenshots are provided by the website, not userscript. If you want a trailer, you can create a thread in Bugs / Suggestions

If you're blacklisted, GAs can be opened in incognito mode on your browser. Userscript is working under your login, it won't pass train giveaway that you can't open

2 months ago
Permalink

Comment has been collapsed.

Trailers are also actually provided by the website! A little known fact is you can actually access the trailers from the 'screenshots' pop-up. You just have to click on the 'video camera' icon in the top right to switch from screenshots to videos. (and vice-versa!)

Blacklist skip is also possible, I just hadn't really considered it before, and missingtexture's response below is likely a possible implementation!

2 months ago
Permalink

Comment has been collapsed.

Hmm... it should be possible, probably the same way that the "Blacklist Giveaway Loader" tool in ESGST works (though I didn't look into the code to see how it's implemented). When it detects the "You do not have permission to view this giveaway" message it could try calling something like var response = await(await fetch(window.location.href,{credentials:"omit"})).text(); and then extract the next link from the response.

2 months ago
Permalink

Comment has been collapsed.

Wow, it should work then. If I read this right, it opens the window in incognito mode without credentials (login).

2 months ago
Permalink

Comment has been collapsed.

Not exactly but close enough. This wouldn't open new window, but get the current page without including credentials (cookies) in the request, and store the text (html of the page) in a variable. After this the script could find the next link in the response in a similar way as it already uses. Sorry, I'm not good at explaining. (Or maybe I misunderstood what you meant)

2 months ago*
Permalink

Comment has been collapsed.

Generally, I have almost zero knowledge of userscripts, so it's actually very informative detail :)

2 months ago
Permalink

Comment has been collapsed.

o also new idea, what about Enter button(for giveaway) on keyboard

2 months ago
Permalink

Comment has been collapsed.

I have previously commented on this, and not adding a hotkey for entering giveaways is a deliberate design decision.

My goal with the userscript is to assist with navigating the train. I don't want to encourage people just mindlessly entering giveaways. So I would rather the user conciously need to move their mouse to press on the enter button if they feel they genuinely want to enter a giveaway.

Hope you understand.

The other suggestions I will definitely take a look at!

2 months ago
Permalink

Comment has been collapsed.

Blacklist skip and trailers are very much possible. I can take a look at implementing those in some way.

The trailers are actually already there, just click the little 'video' icon in the top right when the screenshots are open. I just don't have any hotkey to switch to those at this stage.

The blacklist skip could be done as well, I will look into it but a method like what missingtexture has outlined below should be possible.

The genres could be, but personally I don't believe that is something that fits with this Train Navigation Assistant userscript. I believe ESGST has some functionality like this?

2 months ago
Permalink

Comment has been collapsed.

Yes, such a function exists, but frankly, it's a bit inconvenient. You have to open the game's page anyway. The shell may be interesting, but inside there may be a game with mixed reviews. The number of reviews and the price of a game also often play a big role in quality.

2 months ago
Permalink

Comment has been collapsed.

Sign in through Steam to add a comment.