SetTitleMatchMode, 2 SetKeyDelay, 100 #SingleInstance force CoordMode, Mouse, Screen isStarted:=False isPaused:=False point := {} defText1 := "pls beg`npls fish`npls dig`npls hunt" defText2 := "pls beg`npls dig`npls fish`npls hunt`npls search`npls use banknote`nlol`nthis sucks`ndank memes ftw`nhaha`nhi there`nlol`nasdf`nwtf is this game`nwhy am i doing this`nthis is insane`nnice rng bro" Gui, New, hwndhGui AlwaysOnTop Resize MinSize Gui, Add, Text,section w120, Send text in order`nXXX to add break Gui, Add, Edit, R20 vTextInput w120, %defText1% Gui, Add, Text,section ys, Random phrases`nXXX to add break Gui, Add, Edit, R16 w120 +Disabled, %defText2% Gui, Add, Text,xs, Random phrase chance `% Gui, Add, Edit, w120 +Disabled Gui, Add, UpDown, +Disabled , 90 Gui, Add, Text,section ys, Break duration (s) Gui, Add, Edit, w70 +Disabled Gui, Add, UpDown, +Disabled, 4 Gui, Add, Text,yp+3 x+5, - Gui, Add, Edit, w70 yp-3 x+5 +Disabled Gui, Add, UpDown, +Disabled, 5 Gui, Add, Text,xs, Delay between lines (ms) Gui, Add, Edit, w70 Gui, Add, UpDown, vLineDelayMinMS Range1-50000, 2000 Gui, Add, Text,yp+3 x+5, - Gui, Add, Edit, w70 yp-3 x+5 Gui, Add, UpDown, vLineDelayMaxMS Range1-50000, 3000 Gui, Add, Text,xs, Delay after all lines (s) Gui, Add, Edit, w70 Gui, Add, UpDown, vChunkDelayMinS Range1-50000, 40 Gui, Add, Text,yp+3 x+5, - Gui, Add, Edit, w70 yp-3 x+5 Gui, Add, UpDown, vChunkDelayMaxS Range1-50000, 50 Gui, Add, Text,xs, Delay between key presses (ms) Gui, Add, Edit, w70 +Disabled Gui, Add, UpDown, +Disabled, 1 Gui, Add, Text,yp+3 x+5, - Gui, Add, Edit, w70 yp-3 x+5 +Disabled Gui, Add, UpDown, +Disabled, 10 Gui, Add, Text,xs, Times to loop (0 for infinite) Gui, Add, Edit, w70 +Disabled Gui, Add, UpDown, +Disabled, 0 Gui, Add, CheckBox,+Disabled, Disable while typing Gui, Add, Button,w80 gAddClick, Add click Gui, Add, Button,w80 x+0 gTestClick, Test click Gui, Add, CheckBox,xs +Disabled, Click random order Gui, Add, CheckBox, xs Checked +Disabled, Use mouse/keyboard Gui, Add, Button,xm+157 y+15 gPauseit w135 vPauseButton, Start Gui, Add, Link,section xs-222, Full version - Run in background, fully randomize, type all special characters Gui, Show,w450 h380, Discord AutoTyper/Clicker return TextSpam: currChatList := StrSplit(TextInput, "`n") Sleep, 3000 Loop { GoSub, TypeLabel } return TypeLabel: for index, myString in currChatList ; Enumeration is the recommended approach in most cases. { if (isPaused) { return } sendLine(RegExReplace(myString, "[!@]")) } Sleep rand_range(ChunkDelayMinS*1000,ChunkDelayMaxS*1000) return sendLine(myLine) { global isPaused,LineDelayMinMS,LineDelayMaxMS,point Send, %myLine% if (isPaused) { return } Send, {Enter} Sleep rand_range(LineDelayMinMS,LineDelayMaxMS) xx := point.x yy := point.y if (xx && yy) { Click, %xx% %yy% } } Pauseit: Gui, Submit, Nohide if (!isStarted) { isStarted := True UpdateText("PauseButton", "Pause") Settimer, TextSpam, -1 return } isPaused := isPaused ? false : true Settimer, TextSpam, -1 UpdateText("PauseButton", isPaused ? "Resume" : "Pause") return AddClick: Tooltip, Click to set position KeyWait, LButton, D Tooltip MouseGetPos, currx, curry point := {"x":currx,"y":curry} KeyWait, LButton, U return TestClick: xx := point.x yy := point.y Click, %xx% %yy% return rand(range=5) { Random, r, -range, range return r } rand_range(min, max) { Random, r, min, max return r } UpdateText(ControlID, NewText) { ; Unlike using a pure GuiControl, this function causes the text of the ; controls to be updated only when the text has changed, preventing periodic ; flickering (especially on older systems). static OldText := {} global hGui if (OldText[ControlID] != NewText) { GuiControl, %hGui%:, % ControlID, % NewText OldText[ControlID] := NewText } } GuiClose: Gui Cancel ExitApp