Ticket to Ride

Ticket to Ride

Not enough ratings
How to get the "Conductor" achievements with the help of AutoHotKey
By Sstavix
Do you want to get the Conductor achievements but don't have the time? Let AutoHotKey do it for you! I'll show you how.
   
Award
Favorite
Favorited
Unfavorite
Got some time on your hands?
The "Conductor" achievements are some of the rarest ones to obtain in Ticket to Ride, but not because they are particularly difficult. It's because they require a LOT of grinding. The pinnacle of the achievements, "Conductor Level 5" requires you to play 20,000 games in single player mode. According to another guide here on Steam, at five minutes per game, that works out to be more than 1,667 hours of playing. If you were to play 24 hours a day, that works out to almost 69 1/2 days! Even for the most die-hard Ticket to Ride fan, that's a bit much.

The thing is, these achievements don't really take any skill. You don't have to actually WIN the games, just finish them! Wouldn't it be nice to find a way for the game to play itself while you were asleep, or at work?

That's what I was thinking, too. So that's why I set out to find a way to do it. And I'm happy to announce, to both achievement hunters and Ticket to Ride fans, I found a way!
What needs to be done?
I tried a variety of auto-clickers, but none of the free ones I found would do the job. Eventually, I decided I would have to design my own with the help of a program called AutoHotKey. The program is free and open source, but only works for Windows. Sorry, Mac and Linux users - I wish this solution would work for you as well!

In order for this to work, you need to do a few things first.

1) Download and install AutoHotKey. You can find it at this link: https://www.autohotkey.com/

2) Your screen resolution needs to be set at 1920x1080. The script I created clicks on specific parts of the screen, so if your resolution is set differently, it will probably click in the wrong places.

3) You will have to play in windowed full screen. Just like with the resolution, if you aren't, the cursor will click in the wrong locations. You also need to be playing yellow.


To play in windowed full screen, simply click on the little window icon next to the red "X" in the upper right corner. This should fill the screen, but you should still see the window bar at the top, and your task bar at the bottom.

4) This only works on vertical maps - except France - and I've had my script act a bit wonky on the England Advanced map. I mainly used the India map to test my script while I was building it, but I've also had it work fine on the Nordic Countries, Germany and normal England. It will not work on any of the other maps, since you have to choose your routes along the bottom edge of the screen for those.

Important Notes!
Keep in mind the following things:

1) You will NOT win any games with this script! It is not designed to place any trains, only draw train cards. As a result, your games will always end up in the negatives. This script will only help you get the "Conductor" achievements. You'll have to rely on your own skills to get achievements like Coal Tender or Marco Polo. There are many other excellent guides here on Steam to help you get those. I know - I've used the myself!

2) Do NOT use this script for multiplayer games! As I mentioned above, this script is not designed to win games. Also, there's a chance you could get banned for using a program like this in an online match. I don't know why you would get banned for using a program that would make you lose every time, but still, don't try it. Online games don't get you the achievements in this game, anyway.

3) I am not a professional coder or software developer. I'm just an achievement hunter who found a way to get these achievements, and decided to share my technique with the world. If this doesn't work for you, I may not be able to help you figure it out. (Although I will share another script that I created to help me work this one out, but it'll be up to you to decide what to do with it.)
The Script!
Once you have AutoHotKey installed, you need to program the script. Right-click on your desktop, hover over "New," and select "AutoHotKey script" from the menu. Pick a name for it (I chose "TTR Script"). Now right click on the icon and choose "Edit Script."

Now, copy and paste the following text:


; This script will keep playing Ticket To Ride

^t::

SetDefaultMouseSpeed,50
WinWaitActive Ticket to Ride
Run()

; To stop the application at any time, simply press the Escape button
Escape::ExitApp


;Run the whole application indefinitely when Ctrl + t is pressed

Run() {
while true {
SelectTickets()
CheckForDeck()
LessThan2Train()
Rematch()
Sleep,1000
}
}

SelectTickets()
{
Click, 1846, 245
Click, 1846, 557
Click, 1846, 759
Click, 1846, 803
}

CheckForDeck()
{
; This routine checks to see if the train deck still exists by looking for the color yellow.
PixelGetColor, color, 1824, 803

If (color = 0x1c81EB)
{
Sleep, 1000
Click, 46, 59
Sleep, 2000
Click, 46, 59
Sleep, 2000
Click, 713, 299
Sleep, 2000
Click, 1061, 239
Sleep, 2000
Click, 1029, 581
Sleep, 2000
Click, 921, 987
Sleep, 2000
}
}

LessThan2Train()
{
Click, 964, 702
}

Rematch()
{
Click, 1077, 42
}

Then choose "Save" from the File menu. Your script is set up!
How to use it!
Now that you have your AutoHotKey script set up, it's time to give it a go! Double-click on the icon on your desktop, and the script will start. It won't actually do anything until you hit the proper keys, though.

Set up your Ticket to Ride game according to the instructions I laid out above. Make sure your monitor resolution is set to the correct settings, play yellow, and play in windowed full screen. Choose one of the maps to play that would work - India, Nordic Countries, Germany or England. For the opponents, choose just one. I have had the best luck using SantaBot on Nordic, BreretonBot on India, or JaneBot on the other two. Start your game!

Now hit Control-t. That's the magic hotkey to get the script to work. Feel free to watch it to make sure it's working for a while. Watch it play a game or two, to make sure it's doing what it's supposed to. The script will continue until you hit the Escape key, or your computer decides to shut down for some reason.


To resume the script, you will have to start it again. That means you have to minimize the Ticket to Ride window (which is why it works best in windowed mode), double-click your script, then bring the TTR window back up. Then simply hit Control-t and it will resume.
Neat! How does it work?
The script simply clicks on spots on the screen. For the most part, it doesn't even know what it's clicking on. I told it to click certain specific locations to first in order to select three tickets (because some maps require three tickets to be chosen), then click the "choose" button. It will continue to click in these specific spots as the cycle continues to select train cards. After it's done clicking on the right side of the screen, it will then click in a spot where the "OK" button appears when your opponent is down to two trains or less. Then it will click in the spot where the "rematch" button appears, after the scores are tabulated. Then it will hop back to the right side of the screen and click on spaces where there are tickets or train cards. If you watch the screen while the script is running, you'll see the mouse pointer bounce around quickly - it's moving to each of the spots I designated and clicking those areas.

However, I did run into an issue where the script would freeze up. This commonly happened when the train card deck was completely depleted, but I've had a bug where they simply didn't load, for some reason. It took me a while to figure out how to solve this one, but I found a command which allows the script to "look" at a certain point and see what color it is. That's the reason why I chose the color yellow - the script "looks" at the point where the blind draws are (which also happens to be where the "Choose" button is located) and, if it "sees" yellow, it will go through a sequence to reset the game. Sure, that game won't count towards the achievement, but it's better than the script locking up for hours with nothing getting accomplished.
Troubleshooting? What's that?
I had designed this script to work on my laptop. Obviously, I haven't worked on your computer, so I can't guarantee that it will be completely foolproof! As I mentioned earlier, I'm not a professional software designer. I'm just a gamer who was wondering if I could do this.

But if you're having issues with the script, I can give you a few tips. First, watch and see where the mouse pointer is clicking as it goes through the script. If it seems to be off, find a way to figure out what pixels the mouse needs to point to and change the script accordingly. I used a program called AutoClicker Pro (available on the Windows store) - it didn't work for me since it would quit after about 10 minutes, but it did give real-time feedback about what pixel my mouse pointer was at.

As for determining the color, I actually had to write a separate script for that, which I will include below. You can use this is you want to change the color that the script "looks" at - simply replace the portion that reads "0x1c81EB" with whatever results the script tells you. (Right-click on your desktop and choose "New AutoHotKey Script." I named mine "Get Color," and it will give you the color of the pixel when you press Control-y. If you've changed the location of your mouse pointers, you'll have to change those coordinates in this script as well.)

^y:: ; Control+y hotkey.

PixelGetColor, color, 1824, 803
MsgBox The color at 1824, 803 is %color%.
return

Since this spot is where the "choose" button is located, I wouldn't recommend changing it for red or green. But if you prefer playing blue or purple, you should be able to change it to that color, if you'd like.
Final Words
Before I go, I do have to give credit to another Steam user, Pokerdan99. It was his script that I used to get 100% in a different game, and served as the inspiration and basis for this one. If you're looking to award Steam points (which are always appreciated - thank you!) consider sending some his way as well.

https://steamproxy.net/sharedfiles/filedetails/?id=269329072

Finally, if this guide has been useful to you - or you simply enjoyed it - please mark it as a favorite and rate it! It means a lot to me that others find my guides informative and - hopefully - entertaining. Thank you for reading, and happy rails!

EDIT: This guide was initially posted on August 6, 2022. The 20,000 game achievement popped for me on November 7. So it took four months of this script running when I was at work or in bed for the achievement to be reached.
12 Comments
Sstavix  [author] 27 Jan @ 1:54pm 
Mrkvus - Thank you very much for that information! I know that a lot of players have been looking for this!
Mrkvus 27 Jan @ 11:30am 
Hello there, the progress for offline games is stored here (Windows 10):
C:\Users\[user name]\AppData\Local\Days of Wonder\Ticket to Ride
There is a file UserDefault.xml which you can open with WordPad/Notepad and search for NbSoloGamesPlayed.
Sstavix  [author] 29 Dec, 2023 @ 1:40pm 
LonerD - Unfortunately, there does not seem to be a way to check on your progress. I knew the script was working for me when the 1,000 game achievement popped. I published my guide after that point, since I knew for certain that it was working as it should be.

Good luck!
LonerD 29 Dec, 2023 @ 12:57pm 
Thank you. Simple but awesome script.
Can we check the progress? (how many games already finished)
Sstavix  [author] 12 May, 2023 @ 10:23am 
I didn't try my bot much against Santa, so I can't say how well it works against him. But I suggest watching the game screen for a while as the program runs. If you see the final score screen come up, that game counts. If the game restarts, it does not. So if the game restarts frequently, you may have to switch opponents, or do more tweaking. Good luck!
cronopio.ar 12 May, 2023 @ 9:54am 
No, i still playing vs Santa in Nordic, buy change the SetDefaultMouseSpeed,80 so is a lot faster.
Sstavix  [author] 11 May, 2023 @ 9:21pm 
If you're referring to Chebyshevrolet's suggestion, I tried it as well. My results were quite different. Vanderbot Jr is a card hoarder, and only plays when he has the right cards to claim an entire ticket in one shot. Since this program also claims tickets, I found that the draw pile was depleted more frequently and, as a result, the games were reset more often than when I stuck to Jane Stanbot. It may have taken longer, but I was willing to stick to a more reliable method, rather than one that was more dependent on RNG. Your mileage may vary.
cronopio.ar 10 May, 2023 @ 9:48am 
somebody tried this in the last time.
i have the bot running at full speed, 2 minutes per game, in 400 hours didnt reach the conductor 4 achievement
Sstavix  [author] 25 Oct, 2022 @ 6:20am 
Thank you! I'm glad it helped, and that you were able to tweak it to fit your system.
Jaenyal 25 Oct, 2022 @ 3:09am 
Thanks for your guide! Now there remains only Conductor achievements for me. So I gave it a try and it's working well! For me, rematch button was not pressed, so I adjust the number.
Again I appreciate your nice guide!