“Learn how to quickly progress in Crush Crush with this 2024 game walkthrough. By using an AHK script to modify the date and restart the game, you can speed up your gameplay and conquer levels in no time. Read on to discover the secrets of maximizing your gaming experience.”
Introduction
It goes from January to December and again.
This allows you to quickly grind money and level up jobs.
Demonstration
Requirements
- Windows 10 (Tested on Version 22H2 (OS Build 19045.4170))
- Select resolution with 16:9 ratio in Windows/Video Driver Settings
Video Guide
Short Guide
- Download and Install AutoHotKey [www.autohotkey.com]v1(Deprecated)
- Download archive [drive.google.com]with ahk files and extract it, or copy and create them by yourself by copying it from section “Source Code”.
- Create a folder “MyTasks” in Task Sheduler and create a new task “LaunchCrushCrush” in it with .exe of the game specified as action. In Security options section, In General Tab make sure it will run under user account and without highest privileges.
We do this to launch the game under the user’s account. This game uses user registry to save the game. - If your interface is not in English edit “crushCrushAutoRestart_en.ahk” and change “settingsTitle” and “changeDateAndTimeTitle” values to ones depicted on pictures below.
This window opens from here:If “Beta: Use UTF-8 for wordwide language support” is enabled in region settings save using UTF-8, otherwise save using ANSI.
To open this window, follow:
- Run “crushCrushAutoRestart_en” as Administrator
- Controls
- To start script press “Spacebar”. (It will open the Date & Time Settings, untick “Set time automatically”, and begins to changing date and launching the game cyclically)
- To soft stop script press “Backspace” (It closes game and ticks “Set time automatically” back on)
- To exit script press “Esc”
Full Guide
- Download and install the latest version of AutoHotKey v1 (Deprecated) from
official site[www.autohotkey.com]:
- Download [drive.google.com]and extract archive with script files.
- Create a new task in Task Scheduler which launches the .exe file of the game. It is needed to launch the game under the user’s account, otherwise game will not load saves located in registry.
- Open Task Scheduler:
- Create a new folder with the name “MyTasks”:
- Create a new task with the name “LaunchCrushCrush”:
- In “Security options” must be selected your current user account if it’s not and unticked “Run with highest privileges” check mark:
- In the “Actions” tab, add a new action and specify the path to the game’s .exe file:
- You can find .exe of the game by going to the game properties -> Installed Files -> Browse:
- Open Task Scheduler:
- If your Windows interface is not in English follow this step, otherwise skip it
- Open “crushCrushAutoRestart_en.ahk” with notepad
- Find in it:
global settingsTitle := “Settings”
global changeDateAndTimeTitle := “Change date and time” - Change “Settings” to the name of the Settings window:
- Open “Time & Language” category:
- Untick “Set time automatically” and click “Change” button:
Change “Change date and time” to the name of the “Change date and time” window:
- Then select File -> Save as… and select correct encoding. How to choose the correct encoding is described in the next subparagraph
- To know which encoding to use go to Settings -> Time & Language -> Language -> Administrative language settings -> Change system locale…:
If the check mark beside “Beta: Use Unicode UTF-8 for worldwide language support” is ticked, save using UTF-8; if unticked, save using ANSI.”
- I remind you again: the script will only work with a resolution with ratio of 16:9 in Desktop.
Make sure to select one in Windows/Video Driver settings if it’s not selected - Start “crushCrushAutoRestart_en.ahk” with administrative privileges (Right click -> Run as administrator).
- Controls
- To start script press “Spacebar”
- To soft stop script press “Backspace” (It closes game and ticks “Set time automatically” back on)
- To hard stop script (just exit script) press “Esc”
Source Code
Make sure to place them in the same folder and use same name for “crushCrushAutoRestartReloadReset.ahk” file.
They don’t have any comments because of the limited number of characters in a section.
crushCrushAutoRestart_en.ahk
CoordMode, Pixel, Client
SetDefaultMouseSpeed, 0
SetKeyDelay, 1
SetMouseDelay, 1
global settingsTitle := “Settings”
global changeDateAndTimeTitle := “Change date and time”
global settings_x1 := 374 * A_ScreenDPI/96
global settings_y1 := 235 * A_ScreenDPI/96
global settings_x2 := 400 * A_ScreenDPI/96
global settings_y2 := 375 * A_ScreenDPI/96
global remindTomorrow_x := A_ScreenWidth/2 + (224 * A_ScreenDPI/96)
global remindTomorrow_y := A_ScreenHeight/2 + (44 * A_ScreenDPI/96)
launchScript(){
closeWindows()
explorerLaunch()
if (firstScriptLaunch){
ensureClick(settingsTitle, settings_x1, settings_y1)
Sleep, 300
}
firstScriptLaunch := False
ensureClickChangeDateAndTime()
firstLoopEntry := True
Loop {
if (firstLoopEntry) {
firstLoopEntry := False
}
else {
while WinExist(changeDateAndTimeTitle){
WinClose, %changeDateAndTimeTitle%
WinWaitClose, %changeDateAndTimeTitle%,,2
sleep, 50
}
if !(WinExist(settingsTitle)){ ; if SystemSettings.exe is closed
Run %windir%\explorer.exe ms-settings:dateandtime
Sleep, 1000
}
else {
Sleep, 100
}
ensureClick(settingsTitle, settings_x2, settings_y2)
}
ensureSend(changeDateAndTimeTitle, “{Tab}”)
ensureSend(changeDateAndTimeTitle, “{Home}”)
Loop 4{
ensureSend(changeDateAndTimeTitle, “{Tab}”)
}
ensureSend(changeDateAndTimeTitle, ” {Enter}”)
; —————————–
gameLaunchClose()
Loop 11 {
while WinExist(changeDateAndTimeTitle){
WinClose, %changeDateAndTimeTitle%
WinWaitClose, %changeDateAndTimeTitle%,,2
Sleep, 50
}
if !(WinExist(settingsTitle)){
Run %windir%\explorer.exe ms-settings:dateandtime
Sleep, 1000
}
else {
Sleep, 100
}
ensureClick(settingsTitle, settings_x2, settings_y2)
ensureSend(changeDateAndTimeTitle, “{Tab}”)
ensureSend(changeDateAndTimeTitle, “{Down}”)
Loop 3 {
ensureSend(changeDateAndTimeTitle, “+{Tab}”)
}
ensureSend(changeDateAndTimeTitle, “{Enter}”)
; ———————–
gameLaunchClose()
}
}
}
gameLaunchClose(){
Run, %comspec% /c schtasks /run /tn “MyTasks\LaunchCrushCrush”
WinWait, Crush Crush Configuration
WinMove, 0, 0
ensureSend(“Crush Crush Configuration”, “{Enter}”)
ensureWindow(“Crush Crush”, title2 = “ahk_class UnityWndClass”)
WinMove, 0, 0
PixelGetColor, color, 0, 0
SetTimer, Restart, 4000
While !(color == “0x173C88” or color == “0xBE009C” or color == “0x173C88″){
PixelGetColor, color, 0, 0
checkWindowsUpdateNotice()
}
SetTimer, Restart, Delete
CoordMode, Mouse, Client
WinGetClientPos(,, gameClientWidth, gameClientHeight,”ahk_class UnityWndClass” )
game_x1 := gameClientWidth * 0.49875
game_y1 := gameClientHeight * 0.711111111
game_x2 := gameClientWidth * 0.491875
game_y2 := gameClientHeight * 0.668888889
game_x3 := gameClientWidth * 0.489375
game_y3 := gameClientHeight * 0.637777778
game_x4 := gameClientWidth * 0.93375
game_y4 := gameClientHeight * 0.0277777778
game_x5 := gameClientWidth * 0.56125
game_y5 := gameClientHeight * 0.591111111
ensureClick(“Crush Crush”, game_x1, game_y1, title2 := “ahk_class UnityWndClass”)
ensureWindow(“Crush Crush”, title2 := “ahk_class UnityWndClass”)
PixelGetColor, color, 0, 0
SetTimer, Restart, 4000
While !(color == “0x4D4E86” or color == “0x6869B4”){
PixelGetColor, color, 0, 0
checkWindowsUpdateNotice()
}
SetTimer, Restart, Delete
CoordMode, Mouse, Client
ensureClick(“Crush Crush”, game_x2, game_y2, title2 := “ahk_class UnityWndClass”)
ensureClick(“Crush Crush”, game_x3, game_y3, title2 := “ahk_class UnityWndClass”)
ensureClick(“Crush Crush”, game_x4, game_y4, title2 := “ahk_class UnityWndClass”)
ensureClick(“Crush Crush”, game_x5, game_y5, title2 := “ahk_class UnityWndClass”)
CoordMode, Mouse, Window
WinWaitNotActive, Crush Crush
}
WinGetClientPos(ByRef X:=””, ByRef Y:=””, ByRef Width:=””, ByRef Height:=””, WinTitle:=””, WinText:=””, ExcludeTitle:=””, ExcludeText:=””) ; source: “https://www.autohotkey.com/boards/viewtopic.php?f=37&t=29689&start=20” by jeeswg
{
local hWnd, RECT
hWnd := WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText)
VarSetCapacity(RECT, 16, 0)
DllCall(“user32\GetClientRect”, Ptr,hWnd, Ptr,&RECT)
DllCall(“user32\ClientToScreen”, Ptr,hWnd, Ptr,&RECT)
X := NumGet(&RECT, 0, “Int”), Y := NumGet(&RECT, 4, “Int”)
Width := NumGet(&RECT, 8, “Int”), Height := NumGet(&RECT, 12, “Int”)
}
ensureClick(title, x, y, title2 := 0){
ensureWindow(title, title2)
Click, %x%, %y%
}
ensureSend(title, keys, title2 := 0){
ensureWindow(title, title2)
Send, %keys%
}
ensureClickChangeDateAndTime(){
ensureClick(settingsTitle, settings_x2, settings_y2)
WinWait, %changeDateAndTimeTitle%,, 2
if (ErrorLevel){
ensureClick(settingsTitle, settings_x1, settings_y1) ; Untick “Set time automatically”
Sleep, 300
ensureClick(settingsTitle, settings_x2, settings_y2)
}
}
ensureWindow(title := 0, title2 := 0){
SetTimer, Restart, 4000
checkWindowsUpdateNotice()
if (title2){
While !(WinActive(title title2)){
WinActivate, %title% %title2%
}
WinWaitActive, %title% %title2%
}
else{
While !(WinActive(title)){
WinActivate, %title%
}
WinWaitActive, %title%
}
SetTimer, Restart, Delete
}
checkWindowsUpdateNotice(){
if WinExist(“Let’s cross this one off your list”){
CoordMode, Mouse, Screen
Click, %remindTomorrow_x%, %remindTomorrow_y%
CoordMode, Mouse, Window
}
}
explorerLaunch(){
WinMinimizeAll
Run %windir%\explorer.exe ms-settings:dateandtime
Sleep, 1000
WinWait, %settingsTitle%
WinMove, 0, 0
WinMaximize, %settingsTitle%
}
closeWindows(){
Loop {
WinClose, Crush Crush
WinWaitClose, Crush Crush,, 4
if (ErrorLevel == 1){
Continue
}
WinClose, Crush Crush Configuration
WinWaitClose, Crush Crush Configuration,, 4
if (ErrorLevel == 1){
Continue
}
if WinExist(changeDateAndTimeTitle){
WinClose, %changeDateAndTimeTitle%
WinWaitClose, %changeDateAndTimeTitle%,, 4
if (ErrorLevel == 1){
Continue
}
dialogExistedAndWasClosed := True
}
Sleep, 300
Break
}
}
reset(){
closeWindows()
explorerLaunch()
if (dialogExistedAndWasClosed){
ensureClick(settingsTitle, settings_x1, settings_y1)
}
else {
ensureClick(settingsTitle, settings_x2, settings_y2)
WinWait, %changeDateAndTimeTitle%,, 1
if !(ErrorLevel){
WinClose, %changeDateAndTimeTitle%
WinWaitClose, %changeDateAndTimeTitle%
ensureClick(settingsTitle, settings_x1, settings_y1) ; Tick “Set time automatically”
}
}
Sleep, 100
WinClose, %settingsTitle%
Reload
}
;Hotkeys
Esc::ExitApp
Space::
global firstScriptLaunch := True
launchScript()
Return
BackSpace::
Run “%A_AhkPath%” /force “./crushCrushAutoRestartReloadReset.ahk”
Return
!s:: ; changing to another hotkey breaks “BackSpace::” hotkey
reset()
Return
!Esc:: ; changing to another hotkey breaks “BackSpace::” hotkey
Reload
Return
!r:: ; ignore this
Restart:
Sleep, 1000
closeWindows()
launchScript()
Return
crushCrushAutoRestartReloadReset.ahk
Sleep, 1000
SendEvent, !s
crushCrushAutoRestart_ru.ahk
CoordMode, Pixel, Client
SetDefaultMouseSpeed, 0
SetKeyDelay, 1
SetMouseDelay, 1
global settingsTitle := “Параметры”
global changeDateAndTimeTitle := “Изменить дату и время”
global settings_x1 := 374 * A_ScreenDPI/96
global settings_y1 := 235 * A_ScreenDPI/96
global settings_x2 := 400 * A_ScreenDPI/96
global settings_y2 := 375 * A_ScreenDPI/96
global remindTomorrow_x := A_ScreenWidth/2 + (224 * A_ScreenDPI/96)
global remindTomorrow_y := A_ScreenHeight/2 + (44 * A_ScreenDPI/96)
launchScript(){
closeWindows()
explorerLaunch()
if (firstScriptLaunch){
ensureClick(settingsTitle, settings_x1, settings_y1)
Sleep, 300
}
firstScriptLaunch := False
ensureClickChangeDateAndTime()
firstLoopEntry := True
Loop {
if (firstLoopEntry) {
firstLoopEntry := False
}
else {
while WinExist(changeDateAndTimeTitle){
WinClose, %changeDateAndTimeTitle%
WinWaitClose, %changeDateAndTimeTitle%,,2
sleep, 50
}
if !(WinExist(settingsTitle)){ ; if SystemSettings.exe is closed
Run %windir%\explorer.exe ms-settings:dateandtime
Sleep, 1000
}
else {
Sleep, 100
}
ensureClick(settingsTitle, settings_x2, settings_y2)
}
ensureSend(changeDateAndTimeTitle, “{Tab}”)
ensureSend(changeDateAndTimeTitle, “{Home}”)
Loop 4{
ensureSend(changeDateAndTimeTitle, “{Tab}”)
}
ensureSend(changeDateAndTimeTitle, ” {Enter}”)
; —————————–
gameLaunchClose()
Loop 11 {
while WinExist(changeDateAndTimeTitle){
WinClose, %changeDateAndTimeTitle%
WinWaitClose, %changeDateAndTimeTitle%,,2
Sleep, 50
}
if !(WinExist(settingsTitle)){
Run %windir%\explorer.exe ms-settings:dateandtime
Sleep, 1000
}
else {
Sleep, 100
}
ensureClick(settingsTitle, settings_x2, settings_y2)
ensureSend(changeDateAndTimeTitle, “{Tab}”)
ensureSend(changeDateAndTimeTitle, “{Down}”)
Loop 3 {
ensureSend(changeDateAndTimeTitle, “+{Tab}”)
}
ensureSend(changeDateAndTimeTitle, “{Enter}”)
; ———————–
gameLaunchClose()
}
}
}
gameLaunchClose(){
Run, %comspec% /c schtasks /run /tn “MyTasks\LaunchCrushCrush”
WinWait, Crush Crush Configuration
WinMove, 0, 0
ensureSend(“Crush Crush Configuration”, “{Enter}”)
ensureWindow(“Crush Crush”, title2 = “ahk_class UnityWndClass”)
WinMove, 0, 0
PixelGetColor, color, 0, 0
SetTimer, Restart, 4000
While !(color == “0x173C88” or color == “0xBE009C” or color == “0x173C88″){
PixelGetColor, color, 0, 0
checkWindowsUpdateNotice()
}
SetTimer, Restart, Delete
CoordMode, Mouse, Client
WinGetClientPos(,, gameClientWidth, gameClientHeight,”ahk_class UnityWndClass” )
game_x1 := gameClientWidth * 0.49875
game_y1 := gameClientHeight * 0.711111111
game_x2 := gameClientWidth * 0.491875
game_y2 := gameClientHeight * 0.668888889
game_x3 := gameClientWidth * 0.489375
game_y3 := gameClientHeight * 0.637777778
game_x4 := gameClientWidth * 0.93375
game_y4 := gameClientHeight * 0.0277777778
game_x5 := gameClientWidth * 0.56125
game_y5 := gameClientHeight * 0.591111111
ensureClick(“Crush Crush”, game_x1, game_y1, title2 := “ahk_class UnityWndClass”)
ensureWindow(“Crush Crush”, title2 := “ahk_class UnityWndClass”)
PixelGetColor, color, 0, 0
SetTimer, Restart, 4000
While !(color == “0x4D4E86” or color == “0x6869B4”){
PixelGetColor, color, 0, 0
checkWindowsUpdateNotice()
}
SetTimer, Restart, Delete
CoordMode, Mouse, Client
ensureClick(“Crush Crush”, game_x2, game_y2, title2 := “ahk_class UnityWndClass”)
ensureClick(“Crush Crush”, game_x3, game_y3, title2 := “ahk_class UnityWndClass”)
ensureClick(“Crush Crush”, game_x4, game_y4, title2 := “ahk_class UnityWndClass”)
ensureClick(“Crush Crush”, game_x5, game_y5, title2 := “ahk_class UnityWndClass”)
CoordMode, Mouse, Window
WinWaitNotActive, Crush Crush
}
WinGetClientPos(ByRef X:=””, ByRef Y:=””, ByRef Width:=””, ByRef Height:=””, WinTitle:=””, WinText:=””, ExcludeTitle:=””, ExcludeText:=””) ; source: “https://www.autohotkey.com/boards/viewtopic.php?f=37&t=29689&start=20” by jeeswg
{
local hWnd, RECT
hWnd := WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText)
VarSetCapacity(RECT, 16, 0)
DllCall(“user32\GetClientRect”, Ptr,hWnd, Ptr,&RECT)
DllCall(“user32\ClientToScreen”, Ptr,hWnd, Ptr,&RECT)
X := NumGet(&RECT, 0, “Int”), Y := NumGet(&RECT, 4, “Int”)
Width := NumGet(&RECT, 8, “Int”), Height := NumGet(&RECT, 12, “Int”)
}
ensureClick(title, x, y, title2 := 0){
ensureWindow(title, title2)
Click, %x%, %y%
}
ensureSend(title, keys, title2 := 0){
ensureWindow(title, title2)
Send, %keys%
}
ensureClickChangeDateAndTime(){
ensureClick(settingsTitle, settings_x2, settings_y2)
WinWait, %changeDateAndTimeTitle%,, 2
if (ErrorLevel){
ensureClick(settingsTitle, settings_x1, settings_y1) ; Untick “Set time automatically”
Sleep, 300
ensureClick(settingsTitle, settings_x2, settings_y2)
}
}
ensureWindow(title := 0, title2 := 0){
SetTimer, Restart, 4000
checkWindowsUpdateNotice()
if (title2){
While !(WinActive(title title2)){
WinActivate, %title% %title2%
}
WinWaitActive, %title% %title2%
}
else{
While !(WinActive(title)){
WinActivate, %title%
}
WinWaitActive, %title%
}
SetTimer, Restart, Delete
}
checkWindowsUpdateNotice(){
if WinExist(“Let’s cross this one off your list”){
CoordMode, Mouse, Screen
Click, %remindTomorrow_x%, %remindTomorrow_y%
CoordMode, Mouse, Window
}
}
explorerLaunch(){
WinMinimizeAll
Run %windir%\explorer.exe ms-settings:dateandtime
Sleep, 1000
WinWait, %settingsTitle%
WinMove, 0, 0
WinMaximize, %settingsTitle%
}
closeWindows(){
Loop {
WinClose, Crush Crush
WinWaitClose, Crush Crush,, 4
if (ErrorLevel == 1){
Continue
}
WinClose, Crush Crush Configuration
WinWaitClose, Crush Crush Configuration,, 4
if (ErrorLevel == 1){
Continue
}
if WinExist(changeDateAndTimeTitle){
WinClose, %changeDateAndTimeTitle%
WinWaitClose, %changeDateAndTimeTitle%,, 4
if (ErrorLevel == 1){
Continue
}
dialogExistedAndWasClosed := True
}
Sleep, 300
Break
}
}
reset(){
closeWindows()
explorerLaunch()
if (dialogExistedAndWasClosed){
ensureClick(settingsTitle, settings_x1, settings_y1)
}
else {
ensureClick(settingsTitle, settings_x2, settings_y2)
WinWait, %changeDateAndTimeTitle%,, 1
if !(ErrorLevel){
WinClose, %changeDateAndTimeTitle%
WinWaitClose, %changeDateAndTimeTitle%
ensureClick(settingsTitle, settings_x1, settings_y1) ; Tick “Set time automatically”
}
}
Sleep, 100
WinClose, %settingsTitle%
Reload
}
;Hotkeys
Esc::ExitApp
Space::
global firstScriptLaunch := True
launchScript()
Return
BackSpace::
Run “%A_AhkPath%” /force “./crushCrushAutoRestartReloadReset.ahk”
Return
!s:: ; changing it breaks “BackSpace::” hotkey
reset()
Return
!Esc:: ; changing it breaks “BackSpace::” hotkey
Reload
Return
!r::
Restart:
Sleep, 1000
closeWindows()
launchScript()
Return
About already existing method
And that wraps up our share on Crush Crush: Speeding Up The Game Walkthrough 2024. If you have any additional insights or tips to contribute, don’t hesitate to drop a comment below. For a more in-depth read, you can refer to the original article here by jekarws, who deserves all the credit. Happy gaming!