FATE
Fishing Script Macro and Pack To Pet Transfer
If you like this script, I have placed all 3 of my Unicorn cards on sale for $3.82 - about the price of buying me a beer or other beverage of choice.

Once they are gone, I'll remove this (they are still available if you're reading this):

http://steamcommunity.com/market/listings/753/246840-Unicorn?l=english
Mine are listed about on page 11 or so.



THE VIDEO

h t t p : / / t i n y u r l . c o m / fatefishing


http://steamcommunity.com/sharedfiles/filedetails/?id=254182283


Thanks to Amanda's "I need gold" thread, I've come up with a fishing script. I want to make it available for everyone - it's really very nice. I let it run all night from around 12 midnight to 7:30am this morning, and the results:

+ ~4.9Million GP

+ 2 Flawless Bettas (permanent nocturne stalker)

+ 1 Flawless Steelbelly (permanent gargoyle)

+ Aegis Wrap (robe Defense=61)
screenshot: http://steamcommunity.com/sharedfiles/filedetails/?id=252584905

+ Sash of the Dead (belt Defense = 19)

I made timing improvements, and now this script picks up an item (usually a fish) once every 2 minutes. It's about how fast I'll catch by playing manually.


So here's the script (spoilers turned on - because admittedly this is not a purist gaming experience and I know not everyone will appreciate it).

Be sure to read the directions after the script on how to run it.  And don't forget the Unicorns!


CALIBRATION:

-- DO THIS FIRST ALWAYS --
Move your mouse to the lower right corner and press CTRL-ALT-z.


PACK MANAGEMENT:

CTRL-ALT-x bonus script to move single items from the 6th through 10th columns of the hero's pack into the pet's empty pack. Run it again after refilling hero's pack.

Must be single items (I haven't tried large items but I don't think they'll work).


FISHING:

CTRL-ALT-s


FISHING WITH OFFSET:

CTRL-ALT-o (more in the description below).



QUITTING:

ESC pauses fishing - hit CTRL-ALT-S to start again.

CTRL-ALT-C kills the script (otherwise it interferes with ESC)


This version allows any screen resolution. PLEASE READ EVERYTHING CAREFULLY.

----------------------------------------------- START SCRIPT -----------------------------------------------



#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.










; ------------------------------------DO THIS FIRST--------------------------
; ------------------------------------DO THIS FIRST--------------------------
; ------------------------------------DO THIS FIRST--------------------------
; ------------------------------------DO THIS FIRST--------------------------
;
; Place your mouse in the lower right corner of the game screen and press CTRL-ALT-z to calibrate
;
; ------------------------------------DO THIS FIRST--------------------------
; ------------------------------------DO THIS FIRST--------------------------
; ------------------------------------DO THIS FIRST--------------------------
; ------------------------------------DO THIS FIRST--------------------------

^!z::
MouseGetPos curX, curY
scaleSet = 1
scaleX := curX / 1920
scaleY := curY / 1200

X1 := ( 950 * scaleX )
Y1 := ( 954 * scaleY )

X2 := ( 950 * scaleX )
Y2 := ( 854 * scaleY )

X3 := ( 950 * scaleX )
Y3 := ( 754 * scaleY )
MouseMove %X1%, %Y1%
MouseMove %X1%, %Y1%
Sleep 500
MouseMove %X2%, %Y2%
MouseMove %X2%, %Y2%
Sleep 500
MouseMove %X3%, %Y3%
MouseMove %X3%, %Y3%
Sleep 500


return



^!o:: ; move mouse to the corner under exclamation and just right of 'g' in "Go Fishing!"
; so it's just not yet touching the black outline of the letters. Now press CTRL-ALT-o (for offset). Will automatically
; start fishing
;
; If you use CTRL-ALT-o - be sure to test it by sending your pet to town, and when they come back it should still click the
; narrow "OKAY" button.
;
offsetSet = 1
MouseGetPos curX, curY
offsetX := curX - ( 1098 * scaleX )
offsetY := curY - ( 774 * scaleY )
;MsgBox, %curX%, %CurY%
;return



^!s::
if ( scaleSet = 1 ) {
} else {
MsgBox, Please go back into the game, put your mouse in the lower RIGHT corner and press CTRL-ALT-Z before running the script
return
}

if ( offsetSet = 1 ) {
X1 := 950 * scaleX + offsetX
X2 := 950 * scaleX + offsetX
X3 := 950 * scaleX + offsetX
X4 := 950 * scaleX + offsetX
X5 := 950 * scaleX + offsetX

Y1 := 868 * scaleY + offsetY
} else {
X1 := 950 * scaleX
X2 := 950 * scaleX
X3 := 950 * scaleX
X4 := 950 * scaleX
X5 := 950 * scaleX

Y1 := 868 * scaleY
}

Y2 := 754 * scaleY

Y3 := 754 * scaleY

Y4 := 854 * scaleY

Y5 := 954 * scaleY

looping = 1;
Loop {

if ( looping < 0 ) {
return
}

if ( looping > 0 ) {
MouseClick Right, %X3%, %Y3%
Sleep 50
}
if ( looping > 0 ) {
MouseClick Right, %X3%, %Y3%
;Sleep 3950
Sleep 2550
}
if ( looping > 0 ) {
MouseClick Right, %X1%, %Y1%
Sleep 50
}
if ( looping > 0 ) {
MouseClick Right, %X1%, %Y1%
;Sleep 3950
Sleep 50
}
if ( looping > 0 ) {
MouseClick Right, %X2%, %Y2%
Sleep 50
}
if ( looping > 0 ) {
MouseClick Right, %X2%, %Y2%
Sleep 150
}
if ( looping > 0 ) {
MouseClick Right, %X3%, %Y3%
Sleep 50
}
if ( looping > 0 ) {
MouseClick Right, %X3%, %Y3%
;Sleep 3950
Sleep 2550
}
if ( looping > 0 ) {
MouseClick Right, %X4%, %Y4%
Sleep 50
}
if ( looping > 0 ) {
MouseClick Right, %X4%, %Y4%
Sleep 150
}
if ( looping > 0 ) {
MouseClick Right, %X5%, %Y5%
Sleep 50
}
if ( looping > 0 ) {
MouseClick Right, %X5%, %Y5%
Sleep 150
}

}
Return





^!t::
X1 = 950 * %scaleX%
Y1 = 954 * %scaleY%

X2 = 950 * %scaleX%
Y2 = 854 * %scaleY%

X3 = 950 * %scaleX%
Y3 = 754 * %scaleY%
MouseMove %X1%, %Y1%
MouseMove %X1%, %Y1%
Sleep 500
MouseMove %X2%, %Y2%
MouseMove %X2%, %Y2%
Sleep 500
MouseMove %X3%, %Y3%
MouseMove %X3%, %Y3%
Sleep 500
Return



^!x:: ; CTRL+ALT+x (user must have open both backpacks 1st; this will move all the 6th - 10th columns of
;items in the hero's pack into the pet's empty pack 6th -10th columns. Refill the hero's pack 6th-10th
; columns, and running again does the same operation and shifts items in the pets pack so the whole thing fills.

if ( scaleSet = 1 ) {
} else {
MsgBox, Please go back into the game, put your mouse in the lower RIGHT corner and press CTRL-ALT-Z before running the script
return
}

PacksX1 := 69 * scaleX
PacksX2 := 157 * scaleX
PacksX3 := 245 * scaleX
PacksX4 := 333 * scaleX
PacksX5 := 421 * scaleX
PacksX6 := 509 * scaleX
PacksX7 := 597 * scaleX
PacksX8 := 685 * scaleX
PacksX9 := 773 * scaleX
PacksX10 := 861 * scaleX
PacksX11 := 949 * scaleX
PacksX12 := 1037 * scaleX
PacksX13 := 1125 * scaleX
PacksX14 := 1213 * scaleX
PacksX15 := 1301 * scaleX
PacksX16 := 1389 * scaleX
PacksX17 := 1477 * scaleX
PacksX18 := 1565 * scaleX
PacksX19 := 1653 * scaleX
PacksX20 := 1741 * scaleX
PacksX21 := 1829 * scaleX
PacksY1 := 847 * scaleY
PacksY2 := 771.666666666667 * scaleY
PacksY3 := 696.333333333333 * scaleY
PacksY4 := 621 * scaleY

t:=40

MouseClick Right, %PacksX21%, %PacksY4%
MouseClick Right, %PacksX21%, %PacksY4%
Sleep t
MouseClick Right, %PacksX10%, %PacksY4%
MouseClick Right, %PacksX10%, %PacksY4%
Sleep t
MouseClick Right, %PacksX5%, %PacksY4%
MouseClick Right, %PacksX5%, %PacksY4%
Sleep t
MouseClick Right, %PacksX21%, %PacksY3%
MouseClick Right, %PacksX21%, %PacksY3%
Sleep t
MouseClick Right, %PacksX10%, %PacksY3%
MouseClick Right, %PacksX10%, %PacksY3%
Sleep t
MouseClick Right, %PacksX5%, %PacksY3%
MouseClick Right, %PacksX5%, %PacksY3%
Sleep t
MouseClick Right, %PacksX21%, %PacksY2%
MouseClick Right, %PacksX21%, %PacksY2%
Sleep t
MouseClick Right, %PacksX10%, %PacksY2%
MouseClick Right, %PacksX10%, %PacksY2%
Sleep t
MouseClick Right, %PacksX5%, %PacksY2%
MouseClick Right, %PacksX5%, %PacksY2%
Sleep t
MouseClick Right, %PacksX21%, %PacksY1%
MouseClick Right, %PacksX21%, %PacksY1%
Sleep t
MouseClick Right, %PacksX10%, %PacksY1%
MouseClick Right, %PacksX10%, %PacksY1%
Sleep t
MouseClick Right, %PacksX5%, %PacksY1%
MouseClick Right, %PacksX5%, %PacksY1%
Sleep t

MouseClick Right, %PacksX20%, %PacksY4%
MouseClick Right, %PacksX20%, %PacksY4%
Sleep t
MouseClick Right, %PacksX9%, %PacksY4%
MouseClick Right, %PacksX9%, %PacksY4%
Sleep t
MouseClick Right, %PacksX4%, %PacksY4%
MouseClick Right, %PacksX4%, %PacksY4%
Sleep t
MouseClick Right, %PacksX20%, %PacksY3%
MouseClick Right, %PacksX20%, %PacksY3%
Sleep t
MouseClick Right, %PacksX9%, %PacksY3%
MouseClick Right, %PacksX9%, %PacksY3%
Sleep t
MouseClick Right, %PacksX4%, %PacksY3%
MouseClick Right, %PacksX4%, %PacksY3%
Sleep t
MouseClick Right, %PacksX20%, %PacksY2%
MouseClick Right, %PacksX20%, %PacksY2%
Sleep t
MouseClick Right, %PacksX9%, %PacksY2%
MouseClick Right, %PacksX9%, %PacksY2%
Sleep t
MouseClick Right, %PacksX4%, %PacksY2%
MouseClick Right, %PacksX4%, %PacksY2%
Sleep t
MouseClick Right, %PacksX20%, %PacksY1%
MouseClick Right, %PacksX20%, %PacksY1%
Sleep t
MouseClick Right, %PacksX9%, %PacksY1%
MouseClick Right, %PacksX9%, %PacksY1%
Sleep t
MouseClick Right, %PacksX4%, %PacksY1%
MouseClick Right, %PacksX4%, %PacksY1%
Sleep t

MouseClick Right, %PacksX19%, %PacksY4%
MouseClick Right, %PacksX19%, %PacksY4%
Sleep t
MouseClick Right, %PacksX8%, %PacksY4%
MouseClick Right, %PacksX8%, %PacksY4%
Sleep t
MouseClick Right, %PacksX3%, %PacksY4%
MouseClick Right, %PacksX3%, %PacksY4%
Sleep t
MouseClick Right, %PacksX19%, %PacksY3%
MouseClick Right, %PacksX19%, %PacksY3%
Sleep t
MouseClick Right, %PacksX8%, %PacksY3%
MouseClick Right, %PacksX8%, %PacksY3%
Sleep t
MouseClick Right, %PacksX3%, %PacksY3%
MouseClick Right, %PacksX3%, %PacksY3%
Sleep t
MouseClick Right, %PacksX19%, %PacksY2%
MouseClick Right, %PacksX19%, %PacksY2%
Sleep t
MouseClick Right, %PacksX8%, %PacksY2%
MouseClick Right, %PacksX8%, %PacksY2%
Sleep t
MouseClick Right, %PacksX3%, %PacksY2%
MouseClick Right, %PacksX3%, %PacksY2%
Sleep t
MouseClick Right, %PacksX19%, %PacksY1%
MouseClick Right, %PacksX19%, %PacksY1%
Sleep t
MouseClick Right, %PacksX8%, %PacksY1%
MouseClick Right, %PacksX8%, %PacksY1%
Sleep t
MouseClick Right, %PacksX3%, %PacksY1%
MouseClick Right, %PacksX3%, %PacksY1%
Sleep t

MouseClick Right, %PacksX18%, %PacksY4%
MouseClick Right, %PacksX18%, %PacksY4%
Sleep t
MouseClick Right, %PacksX7%, %PacksY4%
MouseClick Right, %PacksX7%, %PacksY4%
Sleep t
MouseClick Right, %PacksX2%, %PacksY4%
MouseClick Right, %PacksX2%, %PacksY4%
Sleep t
MouseClick Right, %PacksX18%, %PacksY3%
MouseClick Right, %PacksX18%, %PacksY3%
Sleep t
MouseClick Right, %PacksX7%, %PacksY3%
MouseClick Right, %PacksX7%, %PacksY3%
Sleep t
MouseClick Right, %PacksX2%, %PacksY3%
MouseClick Right, %PacksX2%, %PacksY3%
Sleep t
MouseClick Right, %PacksX18%, %PacksY2%
MouseClick Right, %PacksX18%, %PacksY2%
Sleep t
MouseClick Right, %PacksX7%, %PacksY2%
MouseClick Right, %PacksX7%, %PacksY2%
Sleep t
MouseClick Right, %PacksX2%, %PacksY2%
MouseClick Right, %PacksX2%, %PacksY2%
Sleep t
MouseClick Right, %PacksX18%, %PacksY1%
MouseClick Right, %PacksX18%, %PacksY1%
Sleep t
MouseClick Right, %PacksX7%, %PacksY1%
MouseClick Right, %PacksX7%, %PacksY1%
Sleep t
MouseClick Right, %PacksX2%, %PacksY1%
MouseClick Right, %PacksX2%, %PacksY1%
Sleep t

MouseClick Right, %PacksX17%, %PacksY4%
MouseClick Right, %PacksX17%, %PacksY4%
Sleep t
MouseClick Right, %PacksX6%, %PacksY4%
MouseClick Right, %PacksX6%, %PacksY4%
Sleep t
MouseClick Right, %PacksX1%, %PacksY4%
MouseClick Right, %PacksX1%, %PacksY4%
Sleep t
MouseClick Right, %PacksX17%, %PacksY3%
MouseClick Right, %PacksX17%, %PacksY3%
Sleep t
MouseClick Right, %PacksX6%, %PacksY3%
MouseClick Right, %PacksX6%, %PacksY3%
Sleep t
MouseClick Right, %PacksX1%, %PacksY3%
MouseClick Right, %PacksX1%, %PacksY3%
Sleep t
MouseClick Right, %PacksX17%, %PacksY2%
MouseClick Right, %PacksX17%, %PacksY2%
Sleep t
MouseClick Right, %PacksX6%, %PacksY2%
MouseClick Right, %PacksX6%, %PacksY2%
Sleep t
MouseClick Right, %PacksX1%, %PacksY2%
MouseClick Right, %PacksX1%, %PacksY2%
Sleep t
MouseClick Right, %PacksX17%, %PacksY1%
MouseClick Right, %PacksX17%, %PacksY1%
Sleep t
MouseClick Right, %PacksX6%, %PacksY1%
MouseClick Right, %PacksX6%, %PacksY1%
Sleep t
MouseClick Right, %PacksX1%, %PacksY1%
MouseClick Right, %PacksX1%, %PacksY1%
Sleep t



return





Escape::
looping=-1
Return


^!c:: ; CTRL-ALT-C kills app
ExitApp
Return


----------------------------------------------- END SCRIPT -----------------------------------------------

Follow these steps:

1) To run this, you'll need to download and install a macro program called AutoHotkey. The website is the name of the program, dot com.

This is an open-source macro player, so I believe it's safe. [However, I haven't read their code - so always back up your PC, and never EVER keep sensitive information on your PC. I keep those things in archives seperately.]



2) After installing AutoHotkey, run vim (or your text editor of choice, Notepad should work too) and copy paste the script into the text editor. Save the file as FateFishing.ahk (or whatever you want to name it, but it must have the .ahk extension). With the .ahk extension, double clicking the file in Windows File Explorer will run the script in AutoHotkey, assuming AutoHotkey installed okay.


3) Double click the file to run it. AutoHotkey might bring up a dialog "you want to run this script?". Click Yes to continue.

REMEMBER: This script runs indepently of Fate. It will tie up your ESC key and other games and applications may behave unexpectedly until you kill the script with CTRL-ALT-C



4) Run Fate.



5) Put your mouse cursor at the far lower right corner - you won't see the cursor anymore because it's at the extreme of the screen.


6) Now press CTRL-ALT-Z. The mouse should move somewhat.



7) Place your character over a fishing hole which is large enough that the bottom of the screen has water. See the screenshot below:

http://steamcommunity.com/sharedfiles/filedetails/?id=252570773

The fishing hole MUST be underneath. Try CTRL-ALT-o if it's to the side - see the note in step 8 below.



8) Hit CTRL-ALT-s to start the script. Your character should NOT move. If it does, you might have to fiddle with the starting location. Hit ESC and move around and CTRL-ALT-s again until the character doesn't move, just the mouse.


You should see the buttons showing up that it's fishing. It won't catch every fish - because the screen pixels for AutoHotkey don't work for Fate (at least not for me), so it just uses the same amount of time for every button press.


NOTE: now there's the CTRL-ALT-o script to allow slight offsets for hard-to-reach fishing holes. Place your cursor right here:

http://steamcommunity.com/sharedfiles/filedetails/?id=254041917

Now press CTRL-ALT-o. Works fine on the dock in town!

If you use CTRL-ALT-o - be sure to test it by sending your pet to town, and when they come back it should still click the narrow "OKAY" button. If you're already in town, test it by waiting long enough for a fish to get caught.

After running CTRL-ALT-o once at a given location, subsequent runs after ESC can be done with CTRL-ALT-s - it will remember the location you used in CTRL-ALT-o.



9) Wait maybe 20 minutes - by now it should have caught at least a few fish and maybe some items!


10) Hit ESC to pause the script, but it will continue to interfere with the game's ESC. CTRL-ALT-s restarts. Or hit CTRL-ALT-C to kill the script. Now if you want to run it again, you have to double click the script in Windows and hit CTRL-ALT-s from Fate again.


11) You'll want to watch a full 20 seconds to make sure the script isn't in any way moving your character on the screen - otherwise bad things can happen.  I just found my character had gotten himself killed by trying to run through a pack of monsters...  Oopsie!


That's it!

Please buy a card!


Happy Fishing!
Last edited by Der Liebe Frankie; May 1, 2014 @ 10:41pm
< >
Showing 1-15 of 16 comments
Der Liebe Frankie Apr 27, 2014 @ 1:36pm 
now you can run this from any screen resolution (I've only tested it on 640x480 but it should work - make sure you run the calibration procedure first.
Der Liebe Frankie Apr 27, 2014 @ 6:07pm 
added slight offset support for fishing holes that are hard to get right. Read the description for CTRL-ALT-o (and see the screenshot).
Der Liebe Frankie Apr 28, 2014 @ 7:37am 
slightly longer timing which might give a better yield. Also this is verified to work in town!
Der Liebe Frankie Apr 30, 2014 @ 9:39pm 
video link added to OP
changed the kill script command from CTRL-C to CTRL-ALT-c - this is because CTRL-c in normal windows operations like copy/paste were somehow getting affected.
The Kraken Jul 9, 2020 @ 4:36am 
I know this is a really old thread but I found it but I cannot get the script to work. when i run the script I see the mouse moving but it won't actually click anything. Is there a specific version of AHK I need to use? or is it an issue on Steam?
make sure the resolution is correct ( I think the script says it) - or If I remember right, there is a macro where you have your mouse in the lower right corner and run that macro to adjust for whatever screen resolution you are using. You might have to fiddle with things if the graphics in the game changed or somesuch. I haven't played with this since 2014 either. Good luck.

Also look in the thread - I had posted a youtube video showing initial setup for where the mouse needs to be and some other macro you run to set up for fishing. It's all a bit complicated and maybe a bit of a pain. but I'm pretty sure I tried to explain everything in the thread in the original post.
Last edited by Der Liebe Frankie; Jul 9, 2020 @ 8:26am
I don't know if AHK changed though. If the mouse is moving that means something is working. I am left handed, so it's possible even the mouse clicks are on the wrong mouse button or something wierd like that. But I don't think the code ever took whihc mouse button into account and it all just worked.

The video link is "tinyurl******" in the OP, which works if your remove the spaces.

The video says "CTRL-C" but the script was changed to use CTRL-ALT-C because I didn't want it interfering with windows copy/paste
Last edited by Der Liebe Frankie; Jul 9, 2020 @ 10:59am
Its really works if you change your primary mouse button to the right. THX.
Also you can change "MouseClick Right" events to the "MouseClick Left"
Strato-RPG Aug 24, 2022 @ 8:45am 
This thread may be many years old, but here in 2022, it helped! Though I had to change all the instances of "MouseClick Right" to "MouseClick Left", this has worked perfectly!
Der Liebe Frankie Aug 24, 2022 @ 5:16pm 
Originally posted by Strato-RPG:
This thread may be many years old, but here in 2022, it helped! Though I had to change all the instances of "MouseClick Right" to "MouseClick Left", this has worked perfectly!

Happy to hear it! :successchip:
JBlanket May 13, 2023 @ 2:53pm 
Hey bro, thanks. Helps in the grind of running through Fate.

I tried to update the script, may even try again, but there's an easy get around to fishing. After you throw the lure, you can press H and wait for the exclamation mark to pop up. Then you press H again & instantly click set hook. It nearly guarantees a catch.

Updating the script would be set hook, press H, wait 10-15 seconds, press H & set lure = catch.

Which loop should I update?

Also: here in 2023 😁
Last edited by JBlanket; May 13, 2023 @ 2:53pm
Preacher May 13, 2023 @ 4:50pm 
lovely necro <3
Der Liebe Frankie May 13, 2023 @ 5:11pm 
Originally posted by JBlanket:
Hey bro, thanks. Helps in the grind of running through Fate.

I tried to update the script, may even try again, but there's an easy get around to fishing. After you throw the lure, you can press H and wait for the exclamation mark to pop up. Then you press H again & instantly click set hook. It nearly guarantees a catch.

Updating the script would be set hook, press H, wait 10-15 seconds, press H & set lure = catch.

Which loop should I update?

Also: here in 2023 😁

Thanks JBlanket - feel free to do as you please. I won't take down this thread - I might unfollow because I haven't played this in a long time, and I don't plan to maintain the script. Feel free to post your mods to the script here if you like. Enjoy! :spaceduck:
< >
Showing 1-15 of 16 comments
Per page: 1530 50