tf2autobot-wiki

Table of Contents

Steam Desktop Authenticator

Steam Desktop Authenticator is a desktop implementation of Steam’s mobile authenticator app. Which you can use if you for example do not have a phone, or if you need easy access to your account secrets for a bot account.
You can download it here

Where are my account secrets?

You can find your shared_secret and identity_secret by going to your Steam Desktop Authenticator folder, then into the maFiles folder. Here you will find account files. Find the one with your steamID and open it.
If you are unable to read anything, your file is likely encrypted. Check out Decrypting and Encrypting below.
If it is not encrypted, simply copy and paste the shared_secret and identity_secret into your bots ecosystem.json or .env file. Depends on which one you are using.

Decrypting and Encrypting

If your file is encrypted, meaning the contents probably look something like AJHSASJLDHASKLJHD87ASDASLNJ3S..., you can decrypt it by opening Steam Desktop Authenticator, clicking Setup Encryption on the top right, enter your passkey and then click Accept 2 more times, without entering in a new passkey.
Now re-open your maFile. You should be able to get your secrets now.

Trading

I set my items to bank, my bot bought one but never put it to sell. Why?

For your information, every time the bot bought/sold any items, it will run a check on the price list whether a listing for that item already been created or removed. When your bot did not put an item that it bought to sell, it’s probably because Backpack.tf still did not fully load your items in their item server. If you see your bot backpack and the item already appeared, make sure it’s not in Using Fallback status, or you can try to send !refreshlist to your bot, which your bot will execute checks on all items that it has and create sell orders for the missing items. If it’s still not working, then try restarting your bot.

Why are my bot buy or sell orders just suddenly disappearing or not being listed over time?

We don’t have enough information regarding this issue. It could be a rate-limit with backpack.tf when your bot updating prices on a lot of items. The only way to solve this issue is by restarting your bot, or just let it recover by itself.

UPDATE:

An experiment conducted by @SkiLEXx that show the effect of Backpack.tf listings count on time. The timezone is CET (GMT +01:00).

Bot1
Bot2
Based on the results above, you're about to expect that this will happen sometimes. Most autoprice=true items will be affected by this kind of listings disappearing, because at some point prices.tf burst to update multiple items prices and maybe got rate-limited on backpack.tf.

How much does bot count a Craftable weapon as? 0.05 or 0.11 ref?

All craft weapons listed here and uncraft weapons here (if you set miscSettings.weaponsAsCurrency.withUncraft to true) are counted as 0.05 ref IF you set miscSettings.weaponsAsCurrency.enable as true and you did not add that particular item in your price list.

If you set miscSettings.weaponsAsCurrency.enable to true AND you manually add and set the price, it will not count as 0.05 ref, instead will follow your manually set prices.

If you set miscSettings.weaponsAsCurrency.enable to false, then all of that craft/uncraft weapons will not be priced if you not manually set the prices.

Why my bot don’t accept/decline the trade automatically?

If someone sent an offer with wrong values, any items that are not in the pricelist, items that already reached maximum stock and etc, and manualReview.enable is set to true, then you should expect this to happen.

Some descriptions of each reason:

🟥_INVALID_VALUE

The value of your side (Asked) and the trade partner side (Offered) and not equal or more. If you want to automatically decline any offer that ONLY has this reason, you need to set offerReceived.invalidValue.autoDecline.enable to true. You can also set an exceptional value for an offer with this reason to be accepted by filling the item sku(s) in the offerReceived.invalidValue.exceptionValue.skus array and set the offerReceived.invalidValue.exceptionValue.valueInRef value. Find more about it here.

🟦_OVERSTOCKED

Some of their items might already in your bot inventory and will reach or have already reached maximum stock if you accept the trade. The bot will automatically accept overstocked offers by default if the trade partner is overpaying. If you don't want this, simply set offerReceived.overstocked.autoAcceptOverpay to false. If you want your bot to automatically decline any offer that ONLY has this reason, you'll need to set offerReceived.overstocked.autoDecline.enable to true.

🟩_UNDERSTOCKED

Some of our items will be less than the minimum stock if you accept the trade (if you set the item minimum to other than 0). Your bot will automatically accept understocked offers by default if the trade partner is overpaying. If you don't want this, simply set offerReceived.understocked.autoAcceptOverpay to false. If you want your bot to automatically decline any offer that ONLY has this reason, you'll need to set offerReceived.understocked.autoDecline.enable to true.

🟨_INVALID_ITEMS

Some of the items are not in your bot price list. If you have used tf2-automatic before, any 🟨_INVALID_ITEMS items will not be priced (0 keys, 0 ref value), but TF2Autobot will get the price of that particular item from prices.tf and price it by default. You can disable this feature by changing the offerReceived.invalidItems.givePrice default value to false. Your bot will also accept invalid items offers by default if the trade partner is overpaying (set offerReceived.invalidItems.autoAcceptOverpay to false if you want to disable it). Don't worry, if your bot has accepted any 🟨_INVALID_ITEMS, your bot will mention you (if you enable Discord Webhook for trade summary), AND your bot will automatically add that particular item(s) to the pricelist with intent=sell (if and only if the items are priced with prices.tf).

🟫_DUPED_ITEMS

The setting for this can be found here. offerReceived.duped.enableCheck is set to true by default. If some items the trade partner is/are offering more than offerReceived.duped.minKeys value, then your bot will run a duped check on that particular item. If it's found that it's duped, then you should expect your bot to send this to you. If you want to decline duped items that are more than the manualReview.duped.minKeys value, simply set the offerReceived.duped.autoDecline.enable to true.

🟪_DUPE_CHECK_FAILED

This might occur if the item is not fully loaded by backpack.tf, which the history page of that particular item is not available.

⬜_ESCROW_CHECK_FAILED

This can occur when the Steam Client is down. It's temporary but if the trade partner keeps on sending it, you might just manually accept it. Escrow means trade holds, in which your and their items will be held to the Steam items server for some period of time. If you don't care about Escrow, simply set bypass.escrow.allow to true.

⬜_BANNED_CHECK_FAILED

This can occur when Steamrep.com or backpack.tf is down. This is temporary and will be back in operation when Steamrep.com or backpack.tf is online. You will need to manually browse the trade partner backpack.tf page to see if that person is banned on Steamrep or not. If you just blindly accept the trade, your bot has the potential of getting banned from using backpack.tf services.

Why my bot doesn’t list some of the items that I have recently added?

If you add your items using tf2-automatic-gui while your bot is running, then this might be the cause of the problem. Adding items while your bot is still running will cause the items added will not be priced correctly (see this) and will not list it on backpack.tf. One way of fixing this issue is to send !update all=true&autoprice=false and then send !update all=true&autoprice=true to your bot and it will fix the prices.

Please make sure to stop your bot when you’re replacing your pricelist.json from the tf2-automatic-gui config folder to your bot files folder, or if you change the path of the tf2-automatic-gui, make sure your bot is not running when you’re using it.

Custom settings

How to set custom welcome/success messages?

All settings for custom messages can be found here.

When you’re applying your custom messages, make sure to always obey the JSON format. You can not add a new line with ENTER, but instead you’ll need to add \n for the new line. The \ symbol is called escape characters. Another important escape characters are:

\n - new line

\" - double quote

\\ - backslash

Click here to see some example.

accept-message
What it looks like in your options.json file: options.json "customMessage.success": "/quote ✅Success! The offer went through successfully. Want a bot like this? Visit: https://github.com/idinium96/tf2autobot and join our Discord Server: https://discord.gg/ZrVT7mc\n\nFeel free to leave +rep!\nSteam: https://steamcommunity.com/id/IdiNium-Fumino/\nThanks!",