Uminchu - Auto Fishing Bot

04/11/2016 04:17 jelio#1
Uminchu (ウミンチュ or 海人) is Okinawan dialect for Person of the Sea / Fisherman. It is also a lightweight FFXIV [Only registered and activated users can see links. Click Here To Register...] and [Only registered and activated users can see links. Click Here To Register...] with some particular features.

[Only registered and activated users can see links. Click Here To Register...]

Hotkeys:
  • Some hotkeys are configured by the user. Please keep at least one copy of the skills on the keyboard style hotbars, even if they are unbound/hidden. Especially Sprint.
  • Many other hotkeys are automatically detected using the primary keybinding.
  • Modifiers for movement keys and all mouse buttons are not supported.
  • The primary hotbar must be set to hotbar #1.

Features:
  • Free. Send a PM if you would like to donate.
  • DX11 support. EN/JP/DE/FR clients supported. (DX9 currently out of date.)
  • Multibox support. Click PID to toggle/reattach FFXIV clients.
  • Gig (Spearfishing), Mooch, Mooch II, Chum, Patience 1/2, Fish Eyes, Hooksets.
  • Auto collect/reject based on quality. Optional custom collectability threshold and timeout setting.
  • Filter activity by Eorzean hour, weather.
  • Hooking by Tug Strength, Mooch Tug Strength.
  • Pregame and Double Pregame features. Automatically pause fishing after single/double mooches. Select continuous to resume.
  • Short history of recent hooks.
  • Catch log file (uminchu.csv). Persistent settings file (uminchu.ini).
  • User-defined keybinds.
  • Anima light tracker.
  • Max distance, POV, Min/Max Pitch camera hacks. Change "HackCameraNice" in the .ini to 1 to enable. This will write to the game client memory.
  • Automatic updates.
  • Automation features for [Only registered and activated users can see links. Click Here To Register...], Cuff-a-Cur (~12kMGP/hr), Out On A Limb (~32kMGP/hr), The Finer Miner (20-50? kMGP/hr), chocobo racing, scrip/leve/potd/workshop/eureka turnins, desynthesis/reduction, skipping cutscenes and dialog, accepting quests, melding, reassigning ventures, gardening, simple gathering and combat.
  • No nonsense GUI.
  • No start/stop button. Just start and it will continue for you. Interrupt it and it will stop.

Features in consideration:
  • Fishing node name resolution
  • Buff detection for verbose logging and intelligent handling of Fish Eyes. (Done, need to implement for fishing.)
  • Auto Repair/Cordial use/Well Fed buff
  • Catch statistics
  • Blacklist fish for auto release
  • Levequest autostart
  • Chocobo racing improvements
  • Graphical overlay / 3D radar
  • Triple Triad automation vs NPCs

Remarks:
  • Place sprint on a hidden global hotbar to ensure the bot can always correctly determine if your character is ready to act.
  • You can hold any modifier key while the game has focus to delay the pressing of any keys.
  • Minimizing the game or putting it out of focus reduces interference.
  • Minimizing the bot makes it consume less CPU time.
  • See the More… window for a variety of automation settings and detailed tooltips.
  • Set what you prefer in hotkey 5 - Patience or Patience 2 or Fish Eyes - these will be used at max GP if the "Patience" setting is enabled. Make sure Patience is on the hotbars somewhere. You could probably put Fish Eyes in 4 to use it ASAP.
  • Since each fish has a unique minimum and maximum tug time, you can use the timeout setting to increase the gather rate of some fish. For example, use medium tugs, a 826 collectability rating, and a 14 second timeout to maximize Illuminati Perch collectables. Illuminati Perch has a 6 to 14 second tug period by my observations.
  • Although [Only registered and activated users can see links. Click Here To Register...], some scanners may block the update process because the program has to download an executable from the internet. If you have problems, please temporarily disable those scanners such as NOD32 that block the update.
  • Requires [Only registered and activated users can see links. Click Here To Register...] installed, or vcruntime140.dll (attached) in the same directory or system folders.

History:
  • 0.218.07.12
    • Tuned Bard combat routine.
    • Now it will only attempt wind/venom debuffs if target has at least 5 debuff spots free to reduce the chance it will get stuck with an invisible debuff.
    • Foe Requiem only triggers when the target is within 20 yards and should not recast immediately in the event of lag.
    • Debuffs are refreshed at 5 seconds, up from 4.
  • 0.218.07.10
    • Added AutoBRD().
  • 0.218.07.04
    • Updated for 4.35 except chocobotting.
    • Added support for The Finer Miner and Out On A Limb.
    • Minigames are now limited to 40 minute sessions.

Alternate download:
sendspace
.com/file/m7hity

Previous version download count: 2200+
04/11/2016 08:46 Dexuir#2
This is actually amazing :o
I'mma test it out and let you know if there're any problems.
04/12/2016 22:58 Dexuir#3
Can you make it so it appears on taskbar? Whenever I minimize it it stays above the start button.
04/13/2016 00:37 jelio#4
Sure, easy to change. I'll do this after work.

Also working on DX11 support. :)
04/13/2016 22:04 Dexuir#5
Nice \o/
04/26/2016 16:09 jelio#6
Updated to 2016-04-26. Now automatically collects or rejects based on quality if you have manually enabled Collector's Glove in game. No need to set up anything except default NumPad hotkeys. :)

If anyone has any recommendations for detecting the state of the gamepad/numpad cursor and the currently focused windows, please let me know. What I've looked at so far makes it seems like I should just look at window and cursor x/y screen positions. I can see if the numpad cursor is currently active, but I don't know how to find the currently focused window yet.
04/26/2016 21:50 StolasZagan#7
Quote:
Originally Posted by jelio View Post
Updated to 2016-04-26. Now automatically collects or rejects based on quality if you have manually enabled Collector's Glove in game. No need to set up anything except default NumPad hotkeys. :)

If anyone has any recommendations for detecting the state of the gamepad/numpad cursor and the currently focused windows, please let me know. What I've looked at so far makes it seems like I should just look at window and cursor x/y screen positions. I can see if the numpad cursor is currently active, but I don't know how to find the currently focused window yet.
Here is what I do:

I track whether the game wants me to accept or reject a fish, and by pressing the "Display Subcommands" button (Default is NUM*) the game focuses on the Accept/Reject dialog window. The cursor will always be on the "Accept" button after the window is focused, so from there it's a simple press if you accept or move right and then press to reject.

I could make it more robust than that, tracking the actual position of the cursor, but this solution works fine, assuming there is no human intervention. Oh and I have some short delays between each action, just to make sure the bot doesn't press the button too fast.
04/27/2016 02:32 jelio#8
Quote:
Originally Posted by StolasZagan View Post
I track whether the game wants me to accept or reject a fish, and by pressing the "Display Subcommands" button (Default is NUM*) the game focuses on the Accept/Reject dialog window. The cursor will always be on the "Accept" button after the window is focused, so from there it's a simple press if you accept or move right and then press to reject.
Thanks! Display Subcommands will be nice to use since I can press it at anytime to refresh the cursor state for this window. I had been using Cursor Up which happens to work due the layout of this window.

Eventually, I want to be robust against user fiddling so I'll have to figure out these UI structures (currently displayed, currently focused windows and so on).
05/06/2016 09:27 jelio#9
Updated for 2016-05-06. Added tooltips for settings / PID. Added custom collectability threshold, which works in the old way if you leave it set to 0 (collects only HQ). Minor change to collectability window interaction (now using Display Subcommands instead of Cursor Up).
05/17/2016 07:37 jelio#10
Updated for 2016-05-17.

Changed PID button to an actual button for ease/recognition of use.

Added log file output to uminchu.csv in the same directory. It will be appended without limit if it already exists. I want to add more data to this in the future, but I need to discover more memory structures first.

Added Timeout setting. This will press Hook if we have had our line out for x number of seconds or more. This is useful for gathering a lot of a certain fish which have a short tug period. For example, through testing I have observed that Illuminati Perch has a tug period of 6 to 14 seconds with Brute Leech as bait, and other fish in the same spot go beyond 14 seconds. Once 14 seconds have elapsed, we know it is not an Illuminati Perch so we can recast if that's our objective, saving time and bait. The default of 0 disables the timeout feature. Props to [Only registered and activated users can see links. Click Here To Register...] for pointing this out, which inspired looking into and developing the log and timeout features.
06/11/2016 18:39 jelio#11
0.116.06.12 - Updated for 3.3. Removed AOB scanning from most memory structures - only one survived the patch, so it's more trouble than it's worth for now. This will speed up the startup time a bit and make DX11 support easier. Added Eorzean time tracking to the log file and UI. Can filter bot activity by Eorzean hour now. Added a double check to the timeout feature - if a tug occurs after you try reel in, it will try again to hook now.

0.116.06.12.2 - Small update to fix bait ID address. Also added a check to prevent continuous scanning while not logged in.

0.116.06.16 - Updated an AOB scan which was not robust enough.

0.116.06.16.2 - Fixed a bug with the hour conditionals when wrapping around to the next day.
06/27/2016 00:56 X1650#12
Eagerly awaiting DX11 for this bot, if you're still working towards that. I prefer yours to Aquabot 100% and I would much rather use yours.
06/27/2016 01:57 jelio#13
Thanks for the supportive words. As you can tell I had put DX11 on hold, but it shouldn't be hard with the recent changes. I have been a little busy but I think I can get DX11 support and an update for DX9 out this week. :)

[edit] DX9 is out. Sorry for the delay.
06/28/2016 12:55 jelio#14
Updated for 2016-06-28
  • Added DX11 support. The app is now 64bit for this reason, so users on 32bit OSes will not be able to run it. Let me know if this is a problem for anyone and I'll put up 32bit/64bit variants.
  • No longer does any AOB scanning.
  • Now the bot will use Cast straight from Idle (no rod out) when a previously invalid time setting becomes valid.
  • Added some quick reference to fish details to Collect/Timeout/Hours tooltip (see current screenshot).

If you use the bot, you might want to subscribe to this thread so you can get notified when it is updated. A bit was changed to support DX11, so please let me know if something broke.

I'm thinking of merging in some of my personal routine scripts (desynthesize, chocobo racing, scrip turnins) into the app. They currently do not use any memory scanning at all, but doing this will probably motivate me to play with making them a bit more clever. (choco bot basically holds forward and left, but gets an average of 1.6th place at rank 240 with a great chocobo. Had Fenrir not long after GS release). I might also try my hand at the newer minigames since they seem quite profitable and not too difficult if I can figure out the UI memory structures.

Let me know what else you'd like to see, for fishing or other features. At this point, anything requiring navigation is probably above my skill.
07/03/2016 17:36 KrudeMetal#15
Catch statistics would be very cool indeed. That way, you could actually put the Timeout function to good use, if you can get some statistics on which fish you catch after what waiting time.
And weather conditionals are sorely needed for a go at some of the more ridiculously picky high end fish.