Farm Manager - Tribal Wars 2 Farmbot

This bot farms barbarian villages in Tribal Wars 2.
It automatically detects barbarian villages, available troops and configured army presets to attack.

Features

Easy to Configure

  • Automatically reads the required information from the game: Locations of farms, available units, army presets, current attacks per village, etc.
  • Use the in-game army presets to configure which villages should attack and which units to use.
  • Requires no input focus: You can continue using your PC as usual while the bot runs in the background.

Efficient

  • Fast enough to send 800 attacks per hour.
  • Supports multiple army presets per village to make the best use of your troops.
  • Takes into account the limit of 50 attacks per village.
  • Option to avoid barbarian villages under a certain amount of points.
  • Avoid having your troops die at remaining walls: Option to avoid barbarian villages with specific coordinates.
  • Supports running on multiple accounts simultaneously on a single PC.

Safe

  • Supports random breaks between farming cycles.
  • Uses a normal web browser to interact with the game server for maximum security.
  • Stops the farming when the configured time limit is met to avoid perpetual activity on your account.

Starting the Farmbot

This video shows the process of starting the farmbot and setting up your Tribal Wars 2 account:

Following are the first steps shown in the video:

Then we land on this screen where we can select the Tribal Wars 2 farmbot:

Screen to select the Tribal Wars 2 Farmbot

  • Here click on the ‘Tribal Wars 2 farmbot’ under ‘Bundled Bot’
  • On the next screen, scroll down and click the button ‘Start Play Session’

Start the play session

Then the bot starts and we see a screen like this:

Tribal Wars 2 farmbot session started

In the left pane, we see information about the play session and controls to pause and continue the bot. The left pane also shows a status report from the bot under ‘Status text from bot’.

Here the bot also informs us about any setup we need to complete manually.
When we have just started the session, the bot also shows this text:

I did not yet read game root information. Please log in to the game so that you see your villages.

In the right pane, the bot opens a web browser tab. The web browser tab is initially empty, but there is an address bar at the top where we can enter a new web page to load, just as in other web browsers.
Here we enter the address of the Tribal Wars 2 game world we want to enter with the bot. Since the browser by the bot is completely separate from other web browsers and has a separate user profile, we need to log in to the game to be able to enter the game world.
After logging in and selecting the game world, this new browser tab shoulds the game as any other web browser:

Tribal Wars 2 farmbot session started

Then the bot displays a message like this:

Found no army presets matching the filter ‘farm’.

Or, in case our Tribal Wars 2 account has no army presets configured at all, it shows this message:

Did not find any army presets. Maybe loading is not completed yet.

In any case, we need to configure at least one army preset before the bot can start farming.

Configuring Army Presets

The bot only uses an army preset if it matches the following three criteria:

  • The preset name contains the string ‘farm’.
  • The preset is enabled for the currently selected village.
  • The village has enough units available for the preset.

If multiple army presets match these criteria, it uses the first one by alphabetical order.

If no army preset matches this filter, it switches to the next village.

You can use the in-game user interface to configure an army preset and enable it for villages:

Configuring Army Presets in-game

Besides the army presets, no configuration is required.
The bot searches for barbarian villages and then attacks them using the matching presets. You can also see it jumping to the barbarian villages on the map.

Under ‘Status text from bot’, you can read about the number of sent attacks and what the bot is currently doing:

Session performance: attacks sent: 129, coordinates read: 1478, completed farm cycles: 1
---
Sent 129 attacks in the current cycle.
Checked 1413 unique coordinates and found 364 villages, 129 of wich are barbarian villages.
Found 3 own villages.

Current activity:  
+ Currently selected village is 871 (482|523 'Segundo pueblo de skal'. Last update 6 s ago. 537 available units. 11 outgoing commands.)
++ Best matching army preset for this village is 'farm beta'.
+++ Farm at 567|524.
++++ Send attack using preset 'Farm 1'.
[...]

When all your villages are out of units or at the attack limit, the bot stops with this message:

Finish session because I finished all 1 configured farm cycles.

Configuration Settings

All settings are optional; you only need them in case the defaults don’t fit your use-case.
Following is a list of available settings:

  • number-of-farm-cycles : Number of farm cycles before the bot stops. The default is only one (1) cycle.
  • break-duration : Duration of breaks between farm cycles, in minutes. You can also specify a range like 60 - 120. The bot then picks a random value in this range.
  • farm-barb-min-points: Minimum points of barbarian villages to attack.
  • farm-barb-max-distance: Maximum distance of barbarian villages to attack.
  • farm-avoid-coordinates: List of village coordinates to avoid when farming. Here is an example with two coordinates: ‘567|456 413|593’. This filter applies to both target and sending villages.
  • farm-player: Name of a player/character to farm. By default, the bot only farms barbarians, but this setting allows you to also farm players.
  • farm-army-preset-pattern: Text for filtering the army presets to use for farm attacks. Army presets only pass the filter when their name contains this text.
  • limit-outgoing-commands-per-village: The maximum number of outgoing commands per village before the bot considers the village completed. By default, the bot will use up all available 50 outgoing commands per village. You can also specify a range like 45 - 48. The bot then picks a random value in this range for each village.
  • restart-game-client-after-break: Set this to ‘yes’ to make the bot restart the game client/web browser after each break.
  • open-website-on-start: Website to open when starting the web browser.

You can enter any combination of settings before starting the bot. When in the ‘Configure Session’ view, scroll to the ‘Bot Settings’ section and click on ‘Edit’.

Button to enter configuration

This opens a popup where you can enter a settings text:

Text input to enter bot settings

When using more than one setting, start a new line for each setting in the text input field.
Here is an example for three farm cycles with breaks of 20 to 40 minutes in between:

number-of-farm-cycles = 3
break-duration = 20 - 40

After entering the settings, use the ‘Save’ button to apply these to the new session.

When you have applied settings for multiple farm cycles, the bot displays this message during the breaks between farm cycles:

Next farm cycle starts in 17 minutes. Last cycle completed 16 minutes ago.

Pricing and Online Sessions

You can test the bot for free. When you want the bot to run more than 15 minutes per session, use an online session as explained at https://to.botlab.org/guide/online-session

Online sessions cost 2000 credits per hour. To add credits to your account, follow the instructions at https://reactor.botlab.org/billing/add-credits

For more about purchasing and using credits, see the guide at Purchasing and Using BotLab Credits - Frequently Asked Questions (FAQ)

Frequently Asked Questions

How can I make the bot remember the locations of the barbarian villages?

To make it remember the farm locations, configure the number of farm cycles to be at least two. The bot automatically remembers all locations of barbarian villages within the same session, so it can reuse this knowledge, starting with the second farm cycle. It sends only one attack per target per farm cycle, so the remembering does not affect the first farm cycle. If you don’t use any configuration, the bot only performs one farm cycle and then stops.

How much time does this bot need to send all attacks on my account?

Sending one attack takes less than four seconds. The bot can cover 800 farms per hour. The first farm cycle per session is a special case: For the first cycle, it needs additional time to find the farm villages. The game limits us to 50 concurrent attacks per village, and the bot switches to the next village when the currently selected village hits that limit. One farm cycle is complete when all your villages are at the limit, either because of the attack limit or because no matching units are remaining.

How can I farm (multiple) inactive players?

To select multiple player characters for farming, use the character-to-farm setting name multiple times. Here is an example of a complete bot-settings string with multiple character-to-farm:

number-of-farm-cycles = 36
break-duration = 30 - 60
character-to-farm = player character one
character-to-farm = player character two
character-to-farm = player character three

There is no limit to the number of characters here, you can add as many character-to-farm as you want.

How to use it with multiple accounts at the same time?

Start a new instance of the bot for each account. This separation also means the instance configurations are separate. For example, you could assign each instance another break duration.

To use multiple instances simultaneously, you need to expand the bot-settings in the configuration of each instance. When the bot starts, it opens a new browser window and will also close other browser windows. To avoid it closing the browser window of another instance, we need to assign it a scope of browser instances in bot-settings explicitly.

To configure this scope, use the new web-browser-user-profile-id bot-setting like this:

web-browser-user-profile-id = profile-beta

While running, the bot displays the profile ID, so you can check that each running instance has a unique value:
bot displays the web-browser-user-profile-id setting

Note that browser state like bookmarks and cookies belong to that web browser profile. That means you need to log in to the game for each new profile that you create.

Getting Help

When asking for help with the bot, include one of these two artifacts to help us see what happened on your setup:

  • The summary from the Report Problem or Share Session dialog in the play session interface. Either upload the saved JSON file or copy the text in that file. To reach this dialog, use the buttons labeled Get Help With This Bot Session and then Report Problem or Share Session.
  • The play session recording archive from the session view in Devtools.

Reserved for later additions

I tried evrything cant get it to work :confused: do i need to copy/paste this in the botengine.exe ? or in command prompt because it can never find anything or the bot just closes and nothing happends

C:\path\to\the\BotEngine.exe  run-bot  "https://github.com/Viir/bots/tree/42b11c257f99c61538b7060ea1a4fd4f7d40f0eb/implement/applications/tribal-wars-2/tribal-wars-2-farmbot"

Copy the command into the Command Prompt app. Will look like in this screenshot:
command in the Command Prompt app

Thx after 2 hours i got it working :slight_smile:

Sorry to read it took so long for you. I recommend anyone who gets stuck for more than ten minutes to report their problem.

@Viir you could provide a .bat for people who struggle with the cmd thingy?

a universal batch file wouldn’t work as everyone will have stored the botengine files in different locations on their computer.

im trying to figure out how to run this bot online but i keep getting a message 'this app cant be executed

i typed this in command prompt botengine run-bot MY SESSION KEY “bots/implement/applications/tribal-wars-2/tribal-wars-2-farmbot at 42b11c257f99c61538b7060ea1a4fd4f7d40f0eb · Viir/bots · GitHub” i dont get what im doing wrong ?

How? What does this mean? How does that work?

Where do you get this error message from?

What command did you use before it stopped working? for example in this case:

What was the last change before it stopped working?

it never worked i cant get it to work i did like the online bot guide said i made a online session key then i type the following in command prom

then it just says this app can’t be executed on your pc

@Random12 you don’t need an online session key. No key is required to run the bot.

In the screenshot you linked, I see the following error message, after an attempt to use the botengine command:

Toegang geweigerd

As far as I understand, it translates roughly to ‘Access denied’. Not sure what could caus this, but in any case, you probably can avoid this by specifiying the complete path to the BotEngine.exe file, with a command like this:

C:\path\to\the\BotEngine.exe  run-bot  "https://github.com/Viir/bots/tree/42b11c257f99c61538b7060ea1a4fd4f7d40f0eb/implement/applications/tribal-wars-2/tribal-wars-2-farmbot"

This works only when your current user account has access to the executable file. In case you don’t have that, download the executable file from https://botengine.blob.core.windows.net/blob-library/by-name/2020-02-03.botengine-console.zip

Yes this works C:\Users\Tjebbe\Downloads\2020-01-24.botengine-console\BotEngine.exe run-bot “bots/implement/applications/tribal-wars-2/tribal-wars-2-farmbot at 42b11c257f99c61538b7060ea1a4fd4f7d40f0eb · Viir/bots · GitHub” but thats not online session after 15 mins it stops i cant seems to figure out how to make that bot online im very bad with this stuff :confused:

To start an online bot session, change the command to add the --key-to-start-online-session option between then run-bot part and the bot source. So you go from

C:\Users\Tjebbe\Downloads\2020-01-24.botengine-console\BotEngine.exe run-bot "https://github.com/Viir/bots/tree/42b11c257f99c61538b7060ea1a4fd4f7d40f0eb/implement/applications/tribal-wars-2/tribal-wars-2-farmbot"

To:

C:\Users\Tjebbe\Downloads\2020-01-24.botengine-console\BotEngine.exe  run-bot  --key-to-start-online-session=your-personal-key-here  "https://github.com/Viir/bots/tree/42b11c257f99c61538b7060ea1a4fd4f7d40f0eb/implement/applications/tribal-wars-2/tribal-wars-2-farmbot"

hmm when i type

like u said im getting this now

sorry im a total nub as this sort of stuff xd

Kann ich diesen Bot öfters als nur einmal laufen lassen? Nach einem Durchlauf stoppt der Bot und schließt die Konsole automatisch. Wenn ja wie mache ich es

@Random12, I see I should have given some more details about how to compose the command. In the example I posted, you will need to replace the part your-personal-key-here with the key that you can make visible by clicking the Show key button after logging in at https://app.botengine.org/
I could not post this final step in public because this key is personal and should not be shared in public. In case the instructions above are not clear, I can send you a private message with the command composed accordingly.

finally its working thx dude ! now i can enjoy tw again haha

Hallo Harkum, ich habe eine Version erstellt die das farmen widerholt. Du kannst diese so starten:

botengine  run-bot  "https://github.com/Viir/bots/tree/5e082111848380c9362a93a6a20a169d514f63c6/implement/applications/tribal-wars-2/tribal-wars-2-farmbot"
1 Like