In this guide I’ll explain what counts for Conductor achievements and present you with 2 ways of reaching the final Level 5 achievement. Unfortunately slow progress and announcement of shutting down the servers pushed me to look for a new approach to unlock these achievements.
What counts for Conductor achievements
With some testing I came to a conclusion that only the following counts for Conductor achievements:
- Online ranked games,
- Solo games against bots
- Tutorial games (sic!)
The progress for offline games (solo and tutorial) is stored locally.
The More Legit way
Yes, you read it right, tutorial games count for the achievement and that’s what we’re gonna use.
Finishing one tutorial game takes ~70 seconds which is almost 4x faster than a game against bot (when farming).
70 seconds x 20,0000 games ~= 389 hours ~= 16 days
We’ll use AutoHotkey, since going through tutorial 20,000 times manually would be extremely boring.
Below is my script, just make sure to:
- Run it always on the same PC – the progress is not saved on the cloud/servers,
- Use AutoHotkey v1.1, the script is not compatible with the newer version. You can download it from here.
- Set your Display resolution to 1920×1080,
- Run the game in Fullscreen mode,
- Run the game and the ahk script, then press F2 key to start the script,
- Stop the script with F3 key before you exit the game.
; This script will keep playing Ticket To Ride F2:: SetDefaultMouseSpeed,6 WinWaitActive Ticket to Ride Run() F3::ExitApp Run() { while true { StartNewTutorialGame() DrawTicket() if (CheckIsStuck()) { Restart() continue } PlayMiamiAtlanta() PlayAtlantaWashington() DrawSecondAndFourth() PlayWashingtonNewYork() DrawNewTicket() DrawFourthAndDeck() PlayNewYorkMontreal() DrawNewTicket() DrawFourthAndFifth() PlayMontrealChicago() DrawSecondAndDeck() PlayChicagoDuluth() DrawSecondAndDeck() PlayDuluthDenver() ConfirmLastTurn() Draw2Deck() ClickForwardAndQuit() } } StartNewTutorialGame() { ;Click Play Click, 713, 299 Sleep, 1000 ;Click Tutorial Click, 1061, 139 Sleep, 1000 ;Click Go Click, 1000, 839 Sleep, 1000 } DrawTicket() { Click, 1846, 345 Sleep, 1000 Click, 1846, 903 Sleep, 1000 } PlayMiamiAtlanta() { Click, 1000, 959 Sleep, 500 Click, 1506, 883 Sleep, 1000 } PlayAtlantaWashington() { Click, 1000, 959 Sleep, 500 Click, 1496, 653 Sleep, 1000 } DrawSecondAndFourth() { Sleep, 2000 DrawSecond() DrawFourth() } PlayWashingtonNewYork() { Click, 1000, 959 Sleep, 500 Click, 1566, 405 Sleep, 1000 } DrawNewTicket() { Sleep, 1000 ;Click Go Click, 1000, 939 Sleep, 1000 ;Click Ticket Pile Click, 1846, 100 Sleep, 1000 DrawTicket() Sleep, 1000 } DrawFourthAndDeck() { Sleep, 2000 DrawFourth() DrawFromDeck() } PlayNewYorkMontreal() { Click, 850, 959 Sleep, 500 Click, 1566, 305 Sleep, 1000 } DrawFourthAndFifth() { Sleep, 2000 DrawFourth() DrawFifth() } PlayMontrealChicago() { Click, 1000, 959 Sleep, 500 Click, 1366, 305 Sleep, 1000 } DrawSecondAndDeck() { Sleep, 1000 DrawSecond() DrawFromDeck() } PlayChicagoDuluth() { Click, 1000, 959 Sleep, 500 Click, 1166, 365 Sleep, 1000 } PlayDuluthDenver() { Click, 1000, 959 Sleep, 500 Click, 876, 445 Sleep, 1000 } Draw2Deck() { Sleep, 1000 DrawFromDeck() DrawFromDeck() } ConfirmLastTurn() { Sleep, 2000 ;Click Go Click, 1000, 839 Sleep, 1000 Send, {Enter 100} } DrawFirst() { } DrawSecond() { Click, 1846, 345 Sleep, 1000 } DrawThird() { } DrawFourth() { Click, 1846, 557 Sleep, 1000 } DrawFifth() { Click, 1846, 757 Sleep, 1000 } DrawFromDeck() { Click, 1846, 803 Sleep, 1000 } ClickForwardAndQuit() { Sleep, 1000 ; Forward Click, 1446, 957 Sleep, 1000 ; Quit Click, 877, 42 Sleep, 1000 } CheckIsStuck() { PixelGetColor, color, 1000, 550, RGB if (color = 0xF4EFE1) { Sleep, 1000 return true } else { return false } } Restart() { Sleep, 1000 Send, {Escape 100} Sleep, 1000 Send, {Escape 100} Sleep, 1000 Send, {Enter 100} }
Feel free to experiment with DefaultMouseSpeed value and Sleep times, but I found above to be the most reliable. Tutorial sometimes get stuck during drawing the ticket, I’ve added some logic to restart it in case of that happening.
The Less Legit way
If 390 hours is still too much and you feel like a bit of cheating is ok, then you can get there much much faster. The progress for offline games is stored locally in UserDefault.xml file. You can find it in local app data:
%localappdata%\Days of Wonder\Ticket to Ride\UserDefault.xml
Just:
- Open the file in your favourite text editor (when the game is not running),
- Find <NbSoloGamesPlayed> element
<NbSoloGamesPlayed>12345</NbSoloGamesPlayed>
- Update the value to 200000 (or whatever you want) and save the file.
- Run the game, done. (Actually you might need to play one more game, didn’t test that).