I have played Ark Survival Evolved for a long time and I have been on the receiving end of almost every cheat at some point in time short of being wizarded - cheater force joins tribe and claims all as owner. I have been dev wiped twice as collateral when playing in mega-tribe and lost two different Shadow Caves bases via meshing; once after successfully defending against a large tribe for several days only to be meshed before the next attack. If Ark players can't beat you legitimately, they will resort to cheating; a time proven tale.
Cheating aside, I enjoy the game and it provides a medium for my friends and I to play together. I recall back to 2016 living on 10/10, an iceberg base, wishing I had an alt account to ride my ankylo so that I may individually farm metal with my quetzal. That was 7 years ago, and I still play Ark, but now, now I have the ability to do what I wished then.
This program aims to provide myself and others the ability to do the things I wish I could have back in my younger days, to improve the quality of life in a game that often needs it. To address those who call this cheating, play the game longer, Youtube chanceware ark and you'll see the horrors Gaijin has most likely forced Studio Wildcard to permit. Youtube the tribe TEA on ark, see how tribes of players get unjustifiably banned, Youtube videos about Mek and capped Tek Suit duping in Ark. In a game that takes ridiculous effort and time where all can be lost overnight as you sleep to cheats, this quality of life application is not the problem.
To run this program, double click the run.ahk
file.
- Auto Clicker
- Auto Metal Farm
- Handle Metal Farm Junk
- Auto Transfer All (give & take)
- Auto Drop All (self & other)
- Auto Consume (healing, food, water)
- Auto Fertilizer
- Auto Fish
- 2560x1440, Fullscreen or Windowed Fullscreen
- 1920x1080, Fullscreen or Windowed Fullscreen
- UI Slot Scale must be 100%.
- Gamma must be default value; type:
gamma
in ARK's cmd prompt to set as default.
Listed below are all the functions or scripts supported in this application.
By default performs a left click at a specified interval, but can be configured to send keystrokes instead. To send keystrokes, set a keystroke in the keystroke hotkey box labeled Keystroke. To return to default left click functionality, clear Keystroke input and set.
- Use default to level tank dino health
- Use keystroke
A
to afk spam craft - Use keystroke
E
to afk spam heal carnivore by feeding raw meat - Use keystroke
T
to afk feed a baby dinosaur
Interruptable & Resumable By |
---|
Handle Metal Farm Junk |
Give All |
Take All |
Self Drop All |
Other Drop All |
To read about function interrupt, go here.
Auto left clicks with periodic handling of resources gathered. Listed below describes the handling process:
- Take all of flint.
- Drop all berries.
- Drop all stone.
Interruptable & Replaceable By |
---|
Auto Clicker |
To read about function interrupt, go here.
Start State | End State |
---|---|
Not In Inventory, On Dino | Not In Inventory, On Dino |
Invokes the following to immediately run once:
- Take all of flint.
- Drop all berries.
- Drop all stone.
- Drop all junk when farming metal while using normal auto clicker near the end of the farming run
Start State | End State |
---|---|
Not In Inventory | Not In Inventory |
Transfers all from a source inventory to a target inventory with optional filter usage.
- Take opponent's inventory after their defeat
- Give raw meat to baby dinos quickly
- Take all hide when farming meat
- Take all paste from your snails
Start State | End State |
---|---|
Not In Inventory | Not In Inventory |
Drop all from an inventory with optional filter usage.
- Drop all thatch when farming wood
- Drop your baby dino on their head and get a mutation
Start State | End State |
---|---|
Not In Inventory | Not In Inventory |
Allows the automatic consumption of consumables once a threshold is reached.
- 🩹 AutoBrew, consume med brews
- 🥞 AutoEat, consume hunger based consumable
- 🍹 AutoDrink, consume water base consumable
Interruptable & Resumable By |
---|
Handle Metal Farm Junk |
Give All |
Take All |
Self Drop All |
Other Drop All |
Note: Ensure your in-game hotbar keybinds for healing, eating, and drinking are set under the In-Game Keybinds tab.
To read about function interrupt, go here.
Goto here to read how auto consumption works.
Produce slot caps of fertilizer by using a irrigated toilet. Character must be ready to defecate and be seated on an irrigated toilet.
Start State | End State |
---|---|
Not In Inventory | Not In Inventory |
Note: Will automatically stop at 250 fert and cannot be paused; you ate Taco Bell 🙏🏻.
Automatically detects fishing prompts and fulfills them.
Goto here to read about how Auto Fishing works.
To change the auto click interval follow these steps:
- Open
config.ini
. - Find autoClickInterval under the [delay] section.
- Replace the default 50 with your interval in milliseconds.
To make functions easier to use, they should be pauseable, resumeable, and replaceable to allow:
- Prevent unwanted function execution overlap
- Prevent user request being placed in a queue delaying execution
- Allow long running and quick task to work together
Therefore, the interrupt logic table has been defined below.
Functions that can be momentarily paused while another functions executes and later resumed afterwards automatically.
- Auto Clicker
- Metal Farm
- Auto Brew
- Auto Eat
- Auto Drink
Functions that can be interrupted (execution terminates) and be replaced by another.
- Handle Metal Farm Junk, (only effected by Auto Clicker)
Functions that cannot be interrupted by other functions and therefore, can only be enabled/disabled directly.
- Bot (omitted from default application)
- Paste Farm (omitted from default application)
- Suicide Farm (omitted from default application)
- Fert Farm
- Take All
- Give All
- Self Drop All
- Other Drop All
Functions that can interrupt other functions or fail to execute if an uninterruptable function is currently active.
- Take All
- Give All
- Self Drop All
- Other Drop All
- Handle Metal Farm Junk
In short, auto consumption functions based on the presence of the low health, food, and water mask. Below are samples of low health with different backgrounds that can be used to calculate ARK's mask low stat mask.
We cannot simply sample the color of a pixel to know if we have low health without calculating/checking the mask because of transparency. Therefore, think of the mask as a pattern between the RGB (red, green, blue) channels that make up every pixel. The pixel can be any color, but a certain pattern will always exist between those channels, and if it doesn't, the characters health, food, or water stat is not low.
To calculate the mask, first acquire the color of a pixel with the mask. In my calculations, I found the white background low health to have the color of 0x43CAED
. Taking the hex representation and breaking it down into it's individual RGB components yields:
Red Hex: 43
Green Hex: CA
Red Hex: ED
To start finding the mask, calculate the difference in color value between each color component like so:
*Math is all in Hex*
CA - 43 = 16, difference between green and red
ED - CA = 7, difference between blue and green
ED - 43 = 1D, difference between blue and red
A more visual illustration of what we just did:
Moreover, combining the channels reveals our calculated mask value isn't far off.
All that is left is to calculate the mask a few more times sampling different backgrounds before averaging them. Once that is done, compare the mask value found at runtime with the pre-determined including a level of permitted variance and you're done.
Two separate approaches were used in developing the auto fishing solution. The first, was using the ImageSearch &OutputVarX, &OutputVarY, X1, Y1, X2, Y2, ImageFile
function to search for letters within a generalized screen space. Below are a few of the images that were to be matched with:
They were emaciated as to reduce the extra white space needed to match against because ARK's prompt text is near pure white in the center of it's letters and lesser so closer to the edges. Therefore, matches were to be made with the near pure white center of prompt text. This approach led to heavy CPU usage and made my PC stutter. In short, my computer was looking for several needles in a hay stack every second. Even more so, it didn't work, but fret not, I had another card up my sleeve.
Approach #2, the basis of this idea for text recognition came from my days working on the Tribe Logger bot. In that application I used Tesseract, an open source Optical Character Recognition (OCR) library for pulling text from images. It is then, I had the thought of how one should be able to discriminate between characters as shown below:
This diagram describes the sequence characters are check in, and the locations that are checked in each iteration. Each red dot is a point checked during that iteration through the entire set of characters. In order for a given letter to be determined preset, each point check must return true (AND gates all the way). After a character is found, a virtual key is sent to simulate user input and the entire process starts again at the specified SetTimer
interval.