tf2autobot-wiki

Setting up options.json for the first time

Using the config generator

You can use the config generator located here (credit to @Bonfire) if itโ€™s your first time using the bot.
It will guide you through the configuration and give explanations. You can also read about the individual settings later on this page.

Once you selected everything on the config generator to your liking, you can download the options.json file and replace the default options.json which was created when running your bot for the first time. The file can be found in ~/tf2autobot/files/<STEAM_ACCOUNT_NAME>/ folder.

Only for advanced users:
If you havenโ€™t started the bot yet, you will have to create the directory yourself which is only advisable for advanced users because it can lead to mistakes.
Inside the root directory created a folder called files and inside that folder create another one called your_bot_steam_username (so the login name that you use to sign into steam). There you can copy the options.json file obtained from the config generator or use the template from here.

Using the manual method

If you donโ€™t want to use the config generator for the initial setup of your options.json file you can do it manually.

To do so you can either start up the bot for the first time, which will create your options.json file located in ~/tf2autobot/files/<STEAM_ACCOUNT_NAME>/ folder and then edit this file yourself by using the explanations for the variables on this page.

Or if you are an advanced user you can obtain the template from here and continue to create the appropriate folders using the method described above.

Configure options.json file after the initial setup (Optional)

After the initial setup and creation of your options.json file you might want to edit some things. You can do so by opening the file and editing the variables.

Remember: This file was generated after you ran your bot for the first time. The file can be found in ~/tf2autobot/files/<STEAM_ACCOUNT_NAME>/ folder.

Click here to view the content.

How to read?

{
	"object1": "valueObj1",
	"object2": "valueObj2",
	"object3": {
    	    "property1_Obj3": "valueProperty1_Obj3",
            "property2_Obj3": {
        	"property1_Prop2_Obj3": "valueProperty1_Prop2_Obj3"
            }
	}
}

To access value of

Example:

{
	"autokeys": {
            "enable": false, 		// autokeys.enable = false
            "minKeys": 3,		// autokeys.minKeys = 3
            "maxKeys": 15,		// autokeys.maxKeys = 15
            "minRefined": 30, 		// autokeys.minRefined = 30
            "maxRefined": 150,		// autokeys.maxRefined = 150
            "banking": {
                "enable": false		// autokeys.banking.enable = false
            },
            "scrapAdjustment": {
                "enable": false, 	// autokeys.scrapAdjustment.enable = false
                "value": 1		// autokeys.scrapAdjustment.value = 1
            },
            "accept": {
                "understock": false	// autokeys.accept.understock = false
            }
        }
}

Later in the following documentation, the Option column will be the last property of an object (or an object itself).


Description of each object property

Options.json structure

๐Ÿ”ฐ Miscellaneous Settings [^](#optionsjson-structure)

Parent property key: miscSettings

- Show only metal โš™๏ธ [^](#optionsjson-structure)

Property: .showOnlyMetal

Option Type Default Description
.enable boolean true If this is set to false, the bot will show all prices in the format of [x keys, y ref]. Example: (5 keys, 10 ref). If this is set to true the bot will instead show all prices in the format of [x ref]. Example: (260 ref).

- Sort inventory ๐ŸŽ’ [^](#optionsjson-structure)

Property: .sortInventory

Option Type Default Description
.enable boolean true If set to false your bot will not automatically sort its own inventory.
.type number 3 By default, your bot will sort inventory by rarity. Other options are 1 - by name, 2 - by defindex, 3 - by rarity, 4 - by type, 5 - by date, 101 - by class, 102 - by slot.

- Creating listings on backpack.tf ๐Ÿท๏ธ [^](#optionsjson-structure)

Property: .createListings

Option Type Default Description
.enable boolean true If set to false, your bot will not list items for trade while it is running (if changed while your bot is running, this wont work unless restarted).

- Add as friend ๐Ÿ™‹โ€โ™‚๏ธ [^](#optionsjson-structure)

Property: .addFriends

Option Type Default Description
.enable boolean true If set to false, your bot will not allow others to add it as a Steam friend (except admins). FALSE IS NOT RECOMMENDED!

- Send group invite ๐Ÿ‘ฏโ€โ™‚๏ธ [^](#optionsjson-structure)

Property: .sendGroupInvite

Option Type Default Description
.enable boolean true If set to false, your bot will not invite people to join Steam groups.

- Autobump (auto-relist) ๐Ÿ”„ [^](#optionsjson-structure)

Property: .autobump

Option Type Default Description
.enable boolean true If set to true, your bot will re-list all listings every 30 minutes. NOTE: DEPRECATED - The bot will fail to re-list items if Backpack.tf website is down for maintenance or experiencing major outage. Please consider donating to Backpack.tf or purchase Backpack.tf Premium to enable automatic listing bumping.

- Counter invalid value offer ๐Ÿ”‚ [^](#optionsjson-structure)

Property: .counterOffer

Option Type Default Description
.enable boolean true By default, your bot will automatically attempt to counter an offer with only ๐ŸŸฅ_INVALID_VALUE error/reason
.skipIncludeMessage boolean false If set to true, if someone sent an offer with incorrect value but they include offer message, the offer will not be automatically countered but will skip for your review instead.

- Skip items in trade โญ• [^](#optionsjson-structure)

Property: .skipItemsInTrade

Option Type Default Description
.enable boolean true By default, when your bot is constructing an offer (trade partner buy/sell through command), your bot will skip any items that are currently in another active trades. Set this to false if you want to disable this feature.

- Weapons as currency ๐Ÿน [^](#optionsjson-structure)

Property: .weaponsAsCurrency

Option Type Default Description
.enable boolean true If set to false, your bot will not value craft/uncraft weapons as currency (0.05 refined).
.withUncraft boolean true If set to false, your bot will exclude uncraft weapons as currency (0.05 refined).

- Full uses check โš”๏ธ๐Ÿ” [^](#optionsjson-structure)

Property: .checkUses

Option Type Default Description
.duel boolean true If set to false, your bot will buy Dueling Mini-Games regardless of how many uses are left. Otherwise, it will only accept full Dueling Mini-Games (5 uses left).
.noiseMaker boolean true If set to false, your bot will buy Noise Makers regardless of how many uses are left. Otherwise, it will only accept full Noise Makers (25 uses left).

- Bot playing game ๐ŸŽฎ [^](#optionsjson-structure)

Property: .game

Option Type Default Description
.playOnlyTF2 boolean false Set to true if you want your bot to only play Team Fortress 2. Setting this to true will ignore the below Option.
.customName string "" Name of the custom game youโ€™d like your bot to play. Limited to only 60 characters. Example: Click here

- Always remove item attributes ๐Ÿ”ฅ [^](#optionsjson-structure)

Property: .alwaysRemoveItemAttributes

- Remove custom texture on decalable items

Sub-property: .customTexture

Option Type Default Description
.enable boolean true Set to false if you donโ€™t want your bot to remove any custom texture (or image) applied to the decalable items (Conscientious Objector, Clan Pride, Photo Badge, Flair!).

- Delete seasonal junk ๐Ÿ—‘ [^](#optionsjson-structure)

Property: .deleteUntradableJunk

Option Type Default Description
.enable boolean false If set to true, your bot will automatically check if seasonal items exists in your bot inventory and delete them on start (Read: #1049).

- Check trade partnerโ€™s reputation status ๐Ÿ” [^](#optionsjson-structure)

property: .reputationCheck

Option Type Default Description
.checkMptfBanned boolean false This is especially for Marketplace.tf whitelisted sellers, which stated in the Seller Terms & Conditions that โ€œYou will not trade with MarketplaceTF banned users, including any bots they may ownโ€.
.reptfAsPrimarySource boolean false Set this to true if you want your bot to get reputation data from rep.tf. Do note that rep.tf has been quite slow nowadays, so itโ€™s recommended to always set this to false. If you set the .checkMptfBanned to true and this to false, please make sure to fill in the MPTF_API_KEY in your enviromental file.

๐Ÿ”Š Send Alert to owner [^](#optionsjson-structure) โ†“

Parent property key: sendAlert

Option Type Default Description
.enable boolean true Set to false to never send any alerts.

- Autokeys alert ๐Ÿ”‘ [^](#optionsjson-structure)

Property: .autokeys

Option Type Default Description
.lowPure boolean true (Discord Webhook not mentioned) Send an alert when the bot is low in keys and ref (less than minimum for both).
.failedToAdd boolean true (Discord Webhook mentioned) Send an alert when the bot failed to add key (when Autokeys is enabled).
.failedToUpdate boolean true (Discord Webhook mentioned) Send an alert when the bot failed to update key (when Autokeys is enabled).
.failedToDisable boolean true (Discord Webhook mentioned) Send an alert when the bot failed to disable key (when Autokeys is enabled).

- Backpack full/almost full alert ๐ŸŽ’๐Ÿ’ฏ [^](#optionsjson-structure)

Option Type Default Description
.backpackFull boolean true (Discord Webhook not mentioned) Send an alert when the bot failed to send an offer due to full backpack problem.

- High-value items alert ๐Ÿฅ‡ [^](#optionsjson-structure)

Property: .highValue

Option Type Default Description
.gotDisabled boolean true (Discord Webhook mentioned) Send an alert when the bot successfully bought an item with high-value attachment(s) and it got disabled (only if highValue.enableHold is true).
.receivedNotIn Pricelist boolean true (Discord Webhook mentioned) Send an alert when the bot successfully bought an item (INVALID_ITEMS) with high-value attachment(s) - this will not automatically added to the pricelist.
.tryingToTake boolean true (Discord Webhook mentioned) Send an alert when the trade partner is trying to take an item with high-value attachment(s) that is still not in the bot pricelist.

- Automatic remove intent=sell (failed) ๐ŸšฎโŒ [^](#optionsjson-structure)

Option Type Default Description
.autoRemoveIntent SellFailed boolean true (Discord Webhook mentioned) Send an alert when an item is sold with intent sell, and pricelist.autoRemoveIntentSell.enable is true but the bot failed to remove it.

- Automatic add painted items ๐ŸŽ€ [^](#optionsjson-structure)

Option Type Default Description
.autoAddPaintedItems boolean true (Discord Webhook mentioned if failed) Send an alert when painted items has been successfully added to sell

- Failed to accept offer โŒ [^](#optionsjson-structure)

Option Type Default Description
.failedAccept boolean true (Discord Webhook mentioned) Send an alert when the bot failed to accept an offer. See Example

- Unable to process offer โŒ [^](#optionsjson-structure)

Option Type Default Description
.unableToProcessOffer boolean true (Discord Webhook mentioned) Send an alert when the bot failed to process an offer due to the broken offer data. The bot will retry but itself, but this is just to inform you if that happened. See Example

- Partial price update alert ๐Ÿ’ฑ [^](#optionsjson-structure)

Sub-property: .partialPrice - related to pricelist.partialPriceUpdate

Option Type Default Description
.onUpdate boolean true (Discord Webhook not mentioned) Send an alert when the bot partially update item prices.
.onSuccessUpdatePartialPriced boolean true (Discord Webhook not mentioned) Send an alert when the bot successfully update the prices for previously partially updated prices.
.onFailedUpdatePartialPriced boolean true (Discord Webhook not mentioned) Send an alert when the bot failed to update the prices for previously partially updated prices.
.onResetAfterThreshold boolean true (Discord Webhook not mentioned) Send an alert when the threshold for partialPriceUpdate exipres and the pricing goes back to normal.
.onBulkUpdatePartialPriced boolean true (Discord Webhook not mentioned) Send an alert when the bot updates many partial priced items at once.

- Received unusual not in pricelist โœจ [^](#optionsjson-structure)

Option Type Default Description
.receivedUnusualNotInPricelist boolean true (Discord Webhook mentioned) Send an alert when the bot received Unusual (probably because your bot bought one from Generic Unusual buy order - read more about it here) that is not in the pricelist - Only if you set pricelist.autoAddInvalidUnusual.enable to false.

- Failed to update old prices โŒ [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .failedToUpdateOldPrices | boolean | true | Send an alert when the bot fails to update an old price. This can happen when using a custom autopricer. Read more about it here.|


๐Ÿ“‘ Pricelist manager [^](#optionsjson-structure)

Parent property key: pricelist

- Partial price update ๐Ÿ” [^](#optionsjson-structure)

property: .partialPriceUpdate

Option Type Default Description
.enable boolean false By default, this feature is disabled. Read more about this here.
.thresholdInSeconds integer 604800 Default value is 7 days. Minimum you can set here is only 1 day (86400 seconds).
.excludeSKU string[] [] By default, this value is an empty string, but Mann Co. Supply Crate Key will always excluded.

- Filter canโ€™t afford to buy ๐Ÿ” [^](#optionsjson-structure)

property: .filterCantAfford

Option Type Default Description
.enable boolean false By default, your bot will list all items in the pricelist. Please read #332 to know more about this feature.

- Automatic remove intent=sell ๐Ÿšฎ [^](#optionsjson-structure)

property: .autoRemoveIntentSell

Option Type Default Description
.enable boolean true By default, any item with intent sell in the pricelist will be automatically removed when the bot no longer have that item. Set to false to disable this feature.

- Automatic add ๐ŸŸจ_INVALID_ITEMS โž• [^](#optionsjson-structure)

property: .autoAddInvalidItems

Option Type Default Description
.enable boolean true If set to false, any accepted ๐ŸŸจ_INVALID_ITEMS will NOT be automatically added to the pricelist.

- Automatic add Invalid Unusual โœจ [^](#optionsjson-structure)

property: .autoAddInvalidUnusual

Option Type Default Description
.enable boolean false If set to true, any accepted Unusual bought from Generic Unusual Buy Order will automatically be added to the pricelist (if the prices from prices.tf are available). Read: #412

- Automatic add painted items ๐ŸŽ€โž• [^](#optionsjson-structure) โ†“

property: .autoAddPaintedItems

Option Type Default Description
.enable boolean true If set to false, any accepted items with painted will not be automatically added to the pricelist (to sell only). This feature only available if your normalize.painted.our is true and normalize.painted.their is false. The bot will set the price to sell by adding the itemโ€™s base autoprice selling price and additional price for paint, in which you should also set your preferred additional price for each paint in detailExtra.painted[paintName].price.

- Price age ๐Ÿ•ฐ๏ธ [^](#optionsjson-structure)

property: .priceAge

Option Type Default Description
.maxInSeconds integer 28800 (8 hrs) If an item in the pricelistโ€™s last price update exceeds this value, the bot will automatically request a price check for the item from prices.tf (only apply on boot).

โœ… Trade Bypass Settings [^](#optionsjson-structure)

Parent property: bypass

- Allow trade with Escrow (Trade hold) ๐Ÿ›… [^](#optionsjson-structure)

property: .escrow

Option Type Default Description
.allow boolean false If set to true, your bot will allow trades to be held for up to 15 days as a result of the trade partner not having Mobile Authentication enabled.

- Allow Overpay ๐Ÿ’ฐ [^](#optionsjson-structure)

property: .overpay

Option Type Default Description
.allow boolean true By default, your bot will allow trade partners to overpay with items or keys/metal (our value more than their value). Set this to false if you want your bot to decline any trades in which it would receive overpay.

- Allow receiving free items without message ๐ŸŽ๐Ÿ’ŒโŒ [^](#optionsjson-structure)

property: .giftWithoutMessage

Option Type Default Description
.allow boolean false If set to true (Not recommended), your bot will accept any gift without the need for the trade partner to include a gift message in the offer message. For a list of all allowed gift messages, please click here.

๐Ÿ“œ Trade Summary settings [^](#optionsjson-structure)

Parent property: tradeSummary

Declined Trade Summary [^](#optionsjson-structure)

Property: .declinedTrade

Option Type Default Description
.enabled boolean false By default declined trades will not be sent to your steam chat / discord webhook.

General [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .showStockChanges | boolean | false | By default the summary will NOT include to show stock changes, example: B.M.O.C (0 โ†’ 1/1). Set to true to enable it. | | .showTimeTakenInMS | boolean | false | Set to true if you want to include time taken to complete the trade in milliseconds. | | .showDetailedTimeTaken | boolean | true | Set to false if you don't want to see the detailed time taken. | | .showItemPrices | boolean | true | Set to false if you don't want to include item prices (buying/selling prices). | | .showPureInEmoji | boolean | false | [Discord Webhook only] Set to true if you want to enable this. Example: [image1](https://user-images.githubusercontent.com/47635037/107742639-6554dd00-6d4a-11eb-8a64-fa9d81b2d8cc.png), [image2](https://user-images.githubusercontent.com/47635037/107866197-0063c900-6ea9-11eb-8996-42ea98142637.png). **You will also need to set [this](https://prnt.sc/101hflc) permission on your trade summary channel** | | .showProperName | boolean | false | Set to true if you want the item name to be shown with "The" (if the item proper_name property in schema is set to true) and full name (will not shorten "Non-Craftable" to "NC" for example). | | .showOfferMessage | boolean | false | Set to true` if you want to include offer message in the trade summary. |

listings

===

Custom text [^](#optionsjson-structure)

Property: customText


Steam chat settings [^](#optionsjson-structure)

Parent property key: steamChat

Custom initializer

Property: .customInitializer

===

Toggle send notification to the trade partner ๐Ÿ”” [^](#optionsjson-structure)

Property: .notifyTradePartner

Option Type Default Description
.onSuccessAccepted boolean true Send notification to the trade partner when the trade was completed.
.onSuccessAcceptedEscrow boolean true Send notification to the trade partner when the trade was accepted but on hold due to trade hold.
.onDeclined boolean true Send notification to the trade partner when the trade was declined.
.onCancelled boolean true Send notification to the trade partner when the trade was canceled due to a problem with Steam, or canceled by user.
.onTradedAway boolean true Send notification to the trade partner when the trade was invalid because some of the items were traded away.
.onOfferForReview boolean true Send notification to the trade partner when the trade is under review

๐Ÿฅ‡ High-value Items settings [^](#optionsjson-structure)

Parent property key: highValue

Option Type Default Description
.enableHold boolean true By default, whenever your bot accepts items with high valued attachments, it will temporarily be disabled so you can decide whether to manually price it. Set this to false if you want to disable this feature.

- Spells ๐Ÿ‘ป [^](#optionsjson-structure)

property: .spells | Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .names | string[] | [] | An array of spells. Must be the spells full name in each element. (Refer: Spells). Example: ["Team Spirit Footprints"]. |

- Sheens โœจ [^](#optionsjson-structure)

property: .sheens | Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .names | string[] | [] | An array of sheens. Must be the sheens full name in each element. (Refer: Sheen). Example: ["Team Shine"]. |

- Killstreakers ๐Ÿ”ฅ [^](#optionsjson-structure)

property: .killstreakers | Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .names | string[] | [] | An array of killstreakers. Must be the killstreakers full name in each element. Refer: Killstreaker. Example: ["Fire Horns", "Tornado"]. |

- Strange Parts ๐ŸŽฐ [^](#optionsjson-structure)

property: .strangeParts | Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .names | string[] | [] | An array of strange parts. Must be the strange parts full name in each element. Refer: Strange Parts. Example: ["Headshot Kills", "Kills"]. |

- Painted ๐ŸŽจ [^](#optionsjson-structure)

property: .painted | Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .names | string[] | [] | An array of paints. Must be the paints full name in each element. Refer: Paints. Example: ["After Eight"]. |

Exception skus [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .exceptionSkus | string[] | [] | An array of full or partial sku that you want to make an exception for it to not be considered as high-value. Example: [";5;u"] - this is a partial sku for all Unusual - useful if you want to ignore painted Unusual cosmetic. |

Note:


๐Ÿ”ฒ Items Normalization settings [^](#optionsjson-structure)

Parent property key: normalize

- Festivized Items ๐ŸŽ„ [^](#optionsjson-structure)

property: .festivized

โ„น๏ธ If set to true, your bot will recognize Festivized items as Non-Festivized variant.

For example, your bot is buying a Strange Australium Black Box and someone sends an offer to your bot containing a Festivized Strange Australium Black Box (their side), the bot will recognize the Festivized Strange Australium Black Box as Strange Australium Black Box if your set normalize.festivized.their as true. Now that item is in your bot inventory, if you set normalize.festivized.our to false, then the bot will recognize it as Festivized Strange Australium Black Box.

Option Type Default Description
.our boolean false Our side (Bot)
.their boolean false Trade partnerโ€™s side
.amountIncludeNonFestivized boolean false Enabling this option will take the non-festivzed version of an item into account when creating buy/sell orders. See the detailed explanation.

- Strange as Second Quality (elevated quality) ๐ŸŽฐ [^](#optionsjson-structure)

property: .strangeAsSecondQuality

โ„น๏ธ If set to true, your bot will recognize any Strange Unique, Strange Haunted or Strange Unusual as Unique, Haunted and Unusual only (ignore ;strange part on itemโ€™s sku).

The example is pretty much the same as in Festivized item normalization.

Option Type Default Description
.our boolean false Our side (Bot)
.their boolean false Trade partnerโ€™s side
.amountIncludeNonStrange boolean false Enabling this option will take the non-strange version of an item into account when creating buy/sell orders. See the detailed explanation.

- Painted items ๐ŸŽจ [^](#optionsjson-structure)

property: .painted

โ„น๏ธ If set to false, your bot will assign painted partial sku on any painted items.

Meaning that youโ€™ll be able to create a separate listing (sell order only) for the painted items. Note that only paint(s) listed in highValue.painted will have painted partial sku assigned on that particular item (if you leave it as an empty array ([]), then all painted items will have painted partial sku assigned).

Important

Option Type Default Description
.our boolean true Our side (Bot)
.their boolean true Trade partnerโ€™s side (false is not recommended)
.amountIncludeNonPainted boolean false Enabling this option will take the non-painted version of an item into account when creating buy/sell orders. See the detailed explanation.
listings
listings

๐Ÿ”– Listing Note Settings [^](#optionsjson-structure)

Parent property key: details

- Templates ๐Ÿ“ [^](#optionsjson-structure)

Option Type Default Description
.buy string "I am buying your %name% for %price%, I have %current_stock% / %max_stock%." This is the note that will be included with each buy order placed on backpack.tf. Maximum allowed characters: 180
.sell string "I am selling my %name% for %price%, I am selling %amount_trade%." This is the note that will be included with each sell order placed on backpack.tf. Maximum allowed characters: 180

Parameters:

Usage example:

listings

- Show bold text [^](#optionsjson-structure)

Sub-parent property key: .showBoldText

show bold text

- High-value in listings note (decoration) โœจ [^](#optionsjson-structure)

Property: .highValue

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .showSpells | boolean | true | Show spell(s) in the listings note. See Example. | | .showStrangeParts | boolean | false | Show Strange parts (only the one you specified in highValue.strangeParts) | | .showKillstreaker | boolean | true | Show killstreaker in the listings note. See Example | | .showSheen | boolean | true | Show Sheen in the listings note. | | .showPainted | boolean | true | Show painted color in the listings note. See Example | *Note: Only for sell orders.

Custom text [^](#optionsjson-structure)

Sub-Property: .highValue.customText

===

- Custom %uses% parameter output ๐Ÿ’ฏ [^](#optionsjson-structure)

Property: .uses

Option Type Default Description
.duel string (๐—ข๐—ก๐—Ÿ๐—ฌ ๐—ช๐—œ๐—ง๐—› ๐Ÿฑx ๐—จ๐—ฆ๐—˜๐—ฆ) Custom %uses% parameter.
.noiseMaker string (๐—ข๐—ก๐—Ÿ๐—ฌ ๐—ช๐—œ๐—ง๐—› ๐Ÿ๐Ÿฑx ๐—จ๐—ฆ๐—˜๐—ฆ) Custom %uses% parameter.

๐Ÿ“Š Trade Statistic settings [^](#optionsjson-structure) โ†“

Parent property key: statistics

Option Type Default Description
.lastTotalTrades integer 0 If you clear out (delete) your polldata.json file, it will reset your total trades count back to zero. This option can be used as an offset to ensure you never lose track of how many trades your bot has completed in total. An example would be if you bot has completed 1000 trades and you want to clear out your polldata.json file. If you set this to 1000, your bot will remember that it has completed 1000 trades in the past.
.startingTimeInUnix integer (Unix) 0 Similar to .lastTotalTrades, this option sets the latest instance a trade was made (in Unix Timestamp). To read more about this option, please read IdiNiumโ€™s Discord Message Regarding This.
.lastTotalProfit MadeInRef integer 0 Similar to .lastTotalTrades, but this is for last profit made (value must in refined metal, i.e. 35.44).
.lastTotalProfit OverpayInRef integer 0 Similar to .lastTotalProfitMadeInRef, but this is for last profit from overpay (value must in refined metal, i.e. 1000.44).
.profitDataSince InUnix integer (Unix) 0 Similar to .startingTimeInUnix, this option sets the latest instance a profit was made (in Unix Timestamp).

- Automatic sending stats ๐Ÿ“ŠโŒš [^](#optionsjson-structure)

Property: .sendStats

Option Type Default Description
.enable boolean false Send the content of !stats command every specified hours below
.time string[] [] Time (local/timezone - 24 hours) in hour:minute format. Example: [โ€œT23:59โ€] will send at only 23:59 PM, everyday. Please include that "T" in front of each time, otherwise this wont work. If this is leave empty array ([]) but .enable is true, then it will use default ["T23:59", "T05:59", "T11:59", "T17:59"].

๐Ÿ”‘ Autokeys Settings [^](#optionsjson-structure)

Parent property key: autokeys

- General settings ๐ŸŽ›๏ธ

Keywords:

Option Type Default Description
.enable boolean false If set to true, your bot will automatically buy/sell Keys based on the availability of the Pure Metals and Keys in your bot inventory. This is done in an effort to ensure that your bot has enough Pure Metals to perform trades.
.minKeys integer 3 When the botโ€™s current stock of Keys is greater than this value, and the botโ€™s current stock of Pure Metals is less than .minRefined, the bot will start selling Keys in order to convert Keys into Pure Metals. Otherwise, the bot will not sell Keys.
.maxKeys integer 15 When the botโ€™s current stock of Keys is less than this value, and the botโ€™s current stock of Pure Metals is greater than .maxRefined, the bot will start buying Keys in order to convert Pure Metals into Keys. Otherwise, the bot will not buy Keys.
.minRefined number 30 The minimum number of Pure Metals the bot can have before it begins selling Keys (to turn Keys into Pure Metals). See .minKeys for more information.
.maxRefined number 150 The maximum number of Pure Metals the bot can have before it begins buying Keys (to turn Pure Metals into Keys). See .maxKeys for more information.

- Banking ๐Ÿง [^](#optionsjson-structure)

Property: .banking

Option Type Default Description
.enable boolean false If set to true, your bot will bank (buy and sell) Keys. If your botโ€™s current Pure Metals supply is between .minRefined and .maxRefined and Keys > .minKeys, it will bank Keys. autokeys.enable must be set to true to enable this option.
.____________________________________________________________.  ._______________________________.
|       **Buying Keys**       |       **Selling Keys**       |  |       **Banking Keys**        |
|       ***************       |       ****************       |  |       ****************        |
|        <โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ—‹        |            โ—‹โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”>    |  |            โ—‹โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”>     |
| Keys -----|--------|----->  |  Keys -----|--------|----->  |  |  Keys -----|--------|----->   |_______________________________.
|                    โ—‹โ€”โ€”โ€”>    |         <โ€”โ€”โ—‹                 |  |            โ—‹โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ—‹         |          **Disabled**         |
| Refs -----|--------|----->  |  Refs -----|--------|----->  |  |  Refs -----|--------|----->   |          ************         |
|          min      max       |           min      max       |  |           min      max        |         <โ€”โ€”โ—                  |
|_____________________________|______________________________|  |______________________________.|  Keys -----|--------|----->   |
                |         **Disabled**        |                 |    **Buying when more ref**   |         <โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ—         |
                |         ************        |                 |          ************         |  Refs -----|--------|----->   |
                |        <โ€”โ€”โ—โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ—ยทยทยท>    |                 |         <โ€”โ€”โ—                  |           min      max        |
                | Keys -----|--------|----->  |                 |  Keys -----|--------|----->   |_______________________________|
                |           โ—โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ—ยทยทยท>    |                 |            โ—‹โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”>     |
                | Refs -----|--------|----->  |                 |  Refs -----|--------|----->   |
                |          min      max       |                 |           min      max        |
                |_____________________________|                 |_______________________________|

- Scrap adjustment ๐Ÿงฎ [^](#optionsjson-structure)

Property: .scrapAdjustment

Option Type Default Description
.enable boolean false If set to true, the bot will make adjustments to the price of Keys when selling or buying. For example, if the current Keys price is โ€œ10 refinedโ€, the bot will take โ€œ10 refinedโ€ and add .value when buying, and subtract .value when selling. This is done in an effort to quickly buy and sell Keys using Autokeys when in a pinch by paying more for Keys and selling Keys for less. This is not possible to do when key banking (autokeys.banking.enable set to true).
.value integer 1 This is the amount of scrap (0.11 refined) the bot will increase the buy listing or decrease the sell listing when buying/selling Keys using Autokeys (if .enable is set to true).

- Accepting ๐ŸŸฉ_UNDERSTOCKED [^](#optionsjson-structure)

Property: .accept

Option Type Default Description
.understock boolean false If set to true, your bot will accept trades that will lead to keys become under-stocked.

Note: The Autokeys feature is meant to have your bot maintain enough pure in its inventory. Enabling โ€œAutokeys - Bankingโ€ may cause the Autokeys feature to not perform as intended.


๐Ÿ”ฉ Crafting/Smelting Settings [^](#optionsjson-structure)

Parent property key: crafting

- Manual crafting ๐Ÿ”จ [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .manual | boolean | false | Set this to true if you want to use !craftToken command (more will come in the future). |

- Weapons ๐Ÿน [^](#optionsjson-structure)

Property: .weapons

Option Type Default Description
.enable boolean true Setting this to to false will prevent your bot from automatically crafting any duplicated/class-matched craftable weapons into scrap. The pricelist takes priority over this config item. That is to say, if a craft weapon is in the pricelist, it will not be crafted into scrap.

- Pure metals โš™๏ธ [^](#optionsjson-structure)

Property: .metals

Option Type Default Description
.enable boolean true Setting this to false (NOT recommended) will disable metal crafting entirely. This may cause your bot and the trade partner to not be able to trade because of missing pure.
.minScrap integer 9 If your bot has less Scrap Metal than this amount, it will smelt down Reclaimed Metal to maintain ample Scrap Metal supply.
.minRec integer 9 If your bot has less Reclaimed Metal than this amount, it will smelt down Refined Metal to maintain ample Reclaimed Metal supply.
.threshold integer 9 If the botโ€™s Scrap/Reclaimed Metal count has reached the minimum amount, and Scrap/Reclaimed Metal count has reached this threshold [in other words, Scrap/Reclaimed Metal count is greater than (min + threshold)], it will combine the metal into the next highest denomination.

๐Ÿ“ฅ Offer received filter settings [^](#optionsjson-structure)

Parent property key: offerReceived

- Send pre-accept message ๐Ÿ’ฌ [^](#optionsjson-structure)

Property: .sendPreAcceptMessage | Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .enable | boolean | true | Set this to false if you do not want your bot to send pre-accepted message to the trade partner. |

- Auto-decline offer that contains Non-TF2 items โŒ [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .alwaysDeclineNonTF2Items | boolean | true | Set this to false if you want you do not want your bot to always decline trades that contains non-TF2 items (all Non-TF2 items will be held for review, read #580. |

- On offer with ๐ŸŸฅ_INVALID_VALUE [^](#optionsjson-structure)

Property: .invalidValue

โ€ข Automatic decline settings โŒ

Sub-Property: .autoDecline

Option Type Default Description
.enable boolean true Set this to false if you do not want your bot to automatically decline any trades with ๐ŸŸฅ_INVALID_VALUE as the ONLY manual review reason where our side value is more than their side value, or do not match exceptionValue.skus and value difference is more than exceptionValue.valueInRef
.declineReply string "" See default declined reply.

โ€ข Invalid-value exception โœ…

Sub-Property: .exceptionValue

Option Type Default Description
.skus string[] [] An array of SKUs that will bypass the ๐ŸŸฅ_INVALID_VALUE offer if the difference between the botโ€™s value and their value is not more than .valueInRef. Letโ€™s say your bot is selling an Unusual and someone sent an offer with 0.11 ref less, and you want your bot to accept it anyway.
.valueInRef integer 0 Exception value for the SKUs that you set above. The default is 0 (no exception).
trade-summary-full2

- On offer with ๐ŸŸจ_INVALID_ITEMS [^](#optionsjson-structure)

Property: .invalidItems

Option Type Default Description
.givePrice boolean false If set to true, your bot will assign price for ๐ŸŸจ_INVALID_ITEMS (items that are not in your price list) using prices from prices.tf.
.autoAcceptOverpay boolean true If set to false, your bot will not accept trades with ๐ŸŸจ_INVALID_ITEMS where the value of their side is greater than or equal to the value of your botโ€™s side.
trade-summary-full2

โ€ข Automatic decline settings โŒ

Sub-Property: .autoDecline

Option Type Default Description
.enable boolean true Set this to false if you do not want your bot to automatically decline trades with ๐ŸŸจ_INVALID_ITEMS.
.declineReply string "" See default declined reply.

===

- On offer with ๐ŸŸง_DISABLED_ITEMS [^](#optionsjson-structure)

Property: .disabledItems

Option Type Default Description
.autoAccept Overpay boolean false If set to true, your bot will accept trades with ๐ŸŸง_DISABLED_ITEMS where some items that exist in your price list is currently disabled but the value of their side is greater than to the value of your botโ€™s side.

โ€ข Automatic decline settings โŒ

Sub-Property: .autoDecline

Option Type Default Description
.enable boolean false Set this to true if you do want your bot to automatically decline trades with ๐ŸŸง_DISABLED_ITEMS.
.declineReply string "" See default declined reply.

===

- On offer with ๐ŸŸฆ_OVERSTOCKED [^](#optionsjson-structure)

Property: .overstocked

Option Type Default Description
.autoAccept Overpay boolean false If set to true, your bot will accept trades with ๐ŸŸฆ_OVERSTOCKED where some items already reach maximum the bot can have but the value of their side is greater than to the value of your botโ€™s side.
trade-summary-full2

โ€ข Automatic decline settings โŒ

Sub-Property: .autoDecline

Option Type Default Description
.enable boolean false Set this to true if you do want your bot to automatically decline trades with ๐ŸŸฆ_OVERSTOCKED
.declineReply string "" See default declined reply.

===

- On offer with ๐ŸŸฉ_UNDERSTOCKED [^](#optionsjson-structure)

Property: .understocked

Option Type Default Description
.autoAccept Overpay boolean false If set to true, your bot will accept trades with ๐ŸŸฉ_UNDERSTOCKED where some items will reach minimum the bot can have the trade is complete but the value of their side is greater than to the value of your botโ€™s side.
trade-summary-full2

โ€ข Automatic decline settings โŒ

Sub-Property: .autoDecline

Option Type Default Description
.enable boolean false Set this to true if you do want your bot to automatically decline trades with ๐ŸŸฉ_UNDERSTOCKED
.declineReply string "" See default declined reply.

===

- On offer with ๐ŸŸซ_DUPED_ITEMS [^](#optionsjson-structure)

Property: .duped

Option Type Default Description
.enableCheck boolean false If set to true, the bot will perform checks on items to determine whether or not they are duplicated.
.minKeys number 10 The minimum number of keys an item must be worth before the bot performs a check for whether or not it is duplicated.

โ€ข Automatic decline settings โŒ

Sub-Property: .autoDecline

Option Type Default Description
.enable boolean false If set to true, the bot will decline any unusual or values more than minKeys items that it determines as having been duplicated.
.declineReply string "" See default declined reply.

===

- On offer with ๐ŸŸช_DUPE_CHECK_FAILED [^](#optionsjson-structure)

Property: .failedToCheckDuped

โ€ข Automatic decline settings โŒ

Sub-Property: .autoDecline

Option Type Default Description
.enable boolean false If set to true, the bot will decline offer that was failed to check for duped.
.declineReply string "" See default declined reply.

===

- โฌœ_ESCROW_CHECK_FAILED [^](#optionsjson-structure)

Property: .escrowCheckFailed

Option Type Default Description
.ignoreFailed boolean false By default, your bot will skip the trade and put to review if escrow check failed (probably because Steam is down, or some problem with your bot - restart will help). Set this to true if you want your bot to ignore trade with failed escrow check (not recommended).

===

- โฌœ_BANNED_CHECK_FAILED [^](#optionsjson-structure)

Property: .bannedCheckFailed

Option Type Default Description
.ignoreFailed boolean false By default, your bot will skip the trade and put to review if banned check failed (probably because Steamrep.com or backpack.tf is down). Set this to true if you want your bot to ignore trade with banned check failed (not recommended).

- โฌœ_HALTED [^](#optionsjson-structure)

Property: .halted

Option Type Default Description
.ignoreHalted boolean false When the halt mode is enabled, by default, your bot will skip the trade and put to review if someone sent an offer (might happen when the classified listings are being removed).

๐Ÿ” Manual Review Configuration [^](#optionsjson-structure)

Parent-Property: manualReview

- General ๐ŸŽš๏ธ [^](#optionsjson-structure)

Option Type Default Description
.enable boolean true Offers with reasons such as ๐ŸŸฅ_INVALID_VALUE and so on will require manual review by you.
.showOfferSummary boolean true If set to true, your bot will show the trade offer summary to the trade partner. Otherwise, it will only notify the trade partner that their offer is being held for review.
.showReviewOfferNote boolean true By default, your bot will show notes on for each manual review reason
.showOwnerCurrentTime boolean true By default, your bot will show the ownerโ€™s time when sending your trade partner any manual offer review notifications.
.showItemPrices boolean true set to true if you want to include item prices (buying/selling prices) - only for owner.

- Custom manual review reply ๐Ÿ’ฌ [^](#optionsjson-structure)

โ€ข ๐ŸŸฅ_INVALID_VALUE

Sub-Property: .invalidValue

Option Type Default Default reply
.note string "" You're taking too much in value. then followed by [You're missing: ${value}] (unchangeable)

===

โ€ข ๐ŸŸจ_INVALID_ITEMS

Sub-Property: .invalidItems

Option Type Default Default reply
.note string "" %itemsName% %isOrAre% not in my pricelist.

===

โ€ข ๐ŸŸง_DISABLED_ITEMS

Sub-Property: .disabledItems

Option Type Default Default reply
.note string "" %itemsName% %isOrAre% currently disabled.

===

โ€ข ๐ŸŸฆ_OVERSTOCKED

Sub-Property: .overstocked

Option Type Default Default reply
.note string "" I can only buy %itemsName% right now.

===

โ€ข ๐ŸŸฉ_UNDERSTOCKED

Sub-Property: .understocked

Option Type Default Default reply
.note string "" I can only sell %itemsName% right now.

===

โ€ข ๐ŸŸซ_DUPED_ITEMS

Sub-Property: .duped

Option Type Default Default reply
.note string "" %itemsName% %isOrAre% appeared to be duped.

===

โ€ข ๐ŸŸช_DUPE_CHECK_FAILED

Sub-Property: .dupedCheckFailed

Option Type Default Default reply
.note string "" I failed to check for duped on %itemsName%.

===

โ€ข โฌœ_ESCROW_CHECK_FAILED

Sub-Property: .escrowCheckFailed

Option Type Default Default reply
.note string "" Steam is down and I failed to check your Escrow (Trade holds) status, please wait for my owner to manually accept/decline your offer.

===

โ€ข โฌœ_BANNED_CHECK_FAILED

Sub-Property: .bannedCheckFailed

Option Type Default Default reply
.note string "" I have failed to obtain data about your reputation status, please wait for my owner to manually accept/decline your offer.

โ€ข โฌœ_HALTED

Sub-Property: .halted

Option Type Default Default reply
.note string "" โŒ The bot is not operational right now, but your offer has been put to review, please wait for my owner to manually accept/decline your offer.

===

- Custom addtional reply ๐Ÿ’ฌ [^](#optionsjson-structure)

Option Type Default Description
.note string "" Custom additional notes for offer that need to be reviewed.

๐Ÿ•ธ๏ธ Discord Webhook [^](#optionsjson-structure)

Parent property: discordWebhook

- General Configuration โš™๏ธ [^](#optionsjson-structure)

Option Type Default Description
.ownerID string[] (number) [] Your Discord ID(s). To obtain this, right-click on yourself on Discord and click Copy ID. Be sure to enable Developer Mode on Discord by navigating to Settings > Appearance > Advanced. It must be a number in string like "527868979600031765" not "IdiNium#8965".
.displayName string "" The name youโ€™d like to give your bot when it sends a message on Discord.
.avatarURL string "" A URL to the image youโ€™d like your bot to have when it sends a discord message. This must be in URL form. An example of how to obtain your botโ€™s avatar from Steam: Click here.
.embedColor string (number) "" The color youโ€™d like associated with your botโ€™s discord messages. You can view the different colors at spycolor.com. Copy the Decimal value. An example of this would be 16769280 for the color #ffe100

Note on how to obtain your Discord Webhook URL

Please view this image for instructions on how to obtain your Discord Webhook URL. These settings would be set in your own personal Discord channel.


- Trade Summary Configuration [^](#optionsjson-structure)

Property: .tradeSummary

Option Type Default Description
.enable boolean true Display each successful trade summary on your trade summary/live-trades channel via Discord Webhook. If set to false, it will send to your Steam Chat.
.url string[] [] An array of Discord Webhook URLs for trade summary. You will need to format it like so: ["yourDiscordWebhookLink"], or if you want to add more than one, you format them like so: ["link1", "link2"] (separate each link with a comma, make sure link1 is your own Discord Webhook URL - Mention owner and show stock changes will only be shown in link1).

Note: Want to feature your bots trades on the tf2autobot Discord server? Contact IdiNium for a Webhook URL!

โ€ข Misc

Sub-Property: .misc

Option Type Default Description
.showQuickLinks boolean true Show the trade partnerโ€™s quick links to their Steam profile, backpack.tf, and SteamREP pages.
.showKeyRate boolean true Show your botโ€™s key rate
.showPureStock boolean true Show your botโ€™s pure stock
.showInventory boolean true Show the total amount of items in your botโ€™s inventory.
.note string "" Any additional notes youโ€™d like included with trade summaries. Linked note format: [YourText](Link)
trade-summary-full

โ€ข Mention on specific items (using sku)

Sub-Property: .mentionOwner

Option Type Default Description
.enable boolean true If set to false, your bot will never mention you on each successful trade (except for accepted ๐ŸŸจ_INVALID_ITEMS or ๐Ÿ”ถ_HIGH_VALUE_ITEMS)
.itemSkus string[] [] Your bot will mention you whenever a trade contains an SKU in this list. Supports multiple item SKUs. For example, let say you just want to be mentioned on every unusual and australium trade. You would input [";5;u", ";11;australium"]. If you want to be mentioned on specific items, just fill in the full item SKU, like so: ["725;6;uncraftable"]. To add more, just separate new items with a comma between each SKU string.
.tradeValueInRef number 0 Zero means disable. If this is set to other than 0, then any trade thatโ€™s greater or equal to set value will be mentioned.
trade-summary-full2

- Declined Trade Configuration [^](#optionsjson-structure)

Property: .declinedTrade

Option Type Default Description
.enable boolean true If set to false, messages regarding declined trade offers will be sent to your Steam Chat. Otherwise, these messages will be sent on Discord (only if .url is not empty).
.url string[] [] Discord Webhook URL for DECLINED_TRADE.

โ€ข Misc

Object: .misc

Option Type Default Description
.showQuickLinks boolean true Show the trade partnerโ€™s quick links to their Steam profile, backpack.tf, and SteamREP pages.
.showKeyRate boolean true Show your botโ€™s key rate.
.showPureStock boolean true Show your botโ€™s pure stock.
.showInventory boolean true Show the total amount of items in your botโ€™s inventory.
.note string "" Any additional notes youโ€™d like included with declined trade webhook.

- Trade Offer Review Configuration [^](#optionsjson-structure)

Property: .offerReview

Option Type Default Description
.enable boolean true If set to false, messages regarding trade offers that require manual review will be sent to your Steam Chat. Otherwise, these messages will be sent on Discord.
.url string "" Discord Webhook URL for REVIEW_OFFER.
.mentionInvalidValue boolean true If set to false, your bot NOT mention you for ONLY ๐ŸŸฅ_INVALID_VALUE offers.
.isMention boolean true If set to false, you will never be mentioned on any offer to be reviewed.
only non-invalid-value2

โ€ข Misc

Object: .misc

Option Type Default Description
.showQuickLinks boolean true Show the trade partnerโ€™s quick links to their Steam profile, backpack.tf, and SteamREP pages.
.showKeyRate boolean true Show your botโ€™s key rate.
.showPureStock boolean true Show your botโ€™s pure stock.
.showInventory boolean true Show the total amount of items in your botโ€™s inventory.
only non-invalid-value2

- Trade Partner Message Configuration [^](#optionsjson-structure)

Property: .messages

Option Type Default Description
.enable boolean true Used to alert you on any messages sent from the trade partner via Discord Webhook. If set to false, it will send to your Steam Chat.
.isMention boolean true If set to false, you will never be mentioned on any new messages from trade partner.
.url string "" Discord Webhook URL.
.showQuickLinks boolean true Show the trade partnerโ€™s quick links to their Steam profile, backpack.tf, and SteamREP pages.

only non-invalid-value2

- Pricelist Update Configuration [^](#optionsjson-structure)

Property: .priceUpdate

Option Type Default Description
.enable boolean true Set to false to disable this feature.
.showOnlyInStock boolean false Set to true if you want your bot to show price changes that is only in stock.
.showFailedToUpdate boolean true Set to false if you donโ€™t want your bot to show any error while updating prices.
.url string "" The Discord Webhook URL youโ€™d like price update webhook to be sent to.
.note string "" Any additional notes youโ€™d like included with price update webhook.

only non-invalid-value2

- Send Alert Configuration โ‡ [^](#optionsjson-structure)

Property: .sendAlert

Option Type Default Description
.enable boolean true If set to false, the bot will notify you through Steam chat if there is something wrong. Otherwise, the bot will notify you through Discord (sendAlert must be true).
.isMention boolean true If set to false, you will never be mentioned on any alert.

โ€ข URL

Object: .url

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .main | string | "" | The main Discord Webhook URL youโ€™d for the alert to be sent to. | | .partialPriceUpdate | string | "" | Optional - Separate partial price update alerts from the main alerts. | โ€”

url-main
url-ppu

- Send Statistic Configuration โ‡ [^](#optionsjson-structure)

Property: .sendStats

Option Type Default Description
.enable boolean true If set to false, the bot will send stats through Steam chat. Otherwise, the bot will send stats to Discord (statistics.autoSendStats.enable must be true and statistics.autoSendStats.time is empty or filled).
.url string "" The Discord Webhook URL youโ€™d for the stats to be sent to.

only non-invalid-value2

๐Ÿ’ฌ Custom message/reply [^](#optionsjson-structure)

Parent property: customMessage

- Sending offer message [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .sendOffer| string | "" | โ€œThank you for the trade!โ€ |

===

- Counter offer message [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .counterOffer| string | "" | โ€œYour offer contains wrong value. Youโ€™ve probably made a few mistakes, hereโ€™s the correct offer.โ€ |

===

- Welcome message [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .welcome| string | "" | Your custom greeting note.|

===

- Invalid command reply [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .iDontKnowWhatYouMean| string | "" | Your custom note when people send the wrong command. |

===

- Message on trade completed [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .success| string | "" | Bot message when a trade has been successfully made. |

===

- Message on accepted escrow trade [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .success| string | "" | Bot message when a trade has been successfully made. |

โœ… Success! The offer has gone through successfully, but you will receive your items after several days. To prevent this from happening in the future, please enable Steam Guard Mobile Authenticator.

Read:
โ€ข Steam Guard Mobile Authenticator - https://support.steampowered.com/kb_article.php?ref=8625-WRAH-9030
โ€ข How to set up the Steam Guard Mobile Authenticator - https://support.steampowered.com/kb_article.php?ref=4440-RTUI-9218"

===

- Message on declined trades [^](#optionsjson-structure)

Sub-property: .decline

Option Type Default Description
.decline[DECLINE_REASON] string "" Refer: Default declined reply.

===

- Message on accepted trades [^](#optionsjson-structure)

Sub-property: .accepted

Option Type Default Description
.accepted[AutoOrManual][type] string "" Refer: Default accepted message.

===

- Traded away message [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .tradedAway| string | "" | Your custom note when the bot fails to trade because the item is traded away. |

===

- Fail to perform mobile confirmation message [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .failedMobileConfirmation| string | "" | Your custom note when the bot fails to perform mobile confirmation. |

===

- Message on trade canceled [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .cancelledActiveForAwhile| string | "" | Your custom note when the trade got canceled. |

===

- Message on clearing friend [^](#optionsjson-structure)

| Option | Type | Default | Description | | :โ€”-: | :โ€“: | :โ€”โ€“: | :โ€”โ€”โ€”- | | .clearFriends| string | "" | Your custom message to trade partner when the bot removing them to replace with others. |


โ— Command settings [^](#optionsjson-structure)

Parent property: commands

Option Type Default Description
.enable boolean true Set to false if you want to disable commands (immune to ADMINS).
.customDisableReply string "" Default reply: โŒ Command function is disabled by the owner.

- !how2trade [^](#optionsjson-structure)

Property: .how2trade.customReply

Option Type Default
.reply string ""
/quote You can either send me an offer yourself or use one of my commands to request a trade. Say you want to buy a Team Captain, just type "!buy Team Captain", if want to buy more, just add the [amount] - "!buy 2 Team Captain". Type "!help" for all the commands.
You can also buy or sell multiple items by using the "!buycart [amount] <item name>" or "!sellcart [amount] <item name>" commands.

===

- !price [^](#optionsjson-structure)

Property: .price

Option Type Default Description
.enable boolean true Set to false if want to disable !price command.
.customReply.disabled string "" Default reply: โŒ This command is disabled by the owner.

===

- !buy / !sell / !buycart / !sellcart [^](#optionsjson-structure)

Property: .buy | .sell | .buycart | .sellcart

Option Type Default Description
.enable boolean true Set to false if want to disable any of the stated commands.
.disableForSKU string[] "" Set specific sku(s) to disable any of the stated commands.

โ€ข Custom reply

Sub-property: .customReply

Option Type Default Description
.disabled string "" Default reply: โŒ This command is disabled by the owner.
.disabledForSKU string "" Default reply: โŒ [command] command is disabled for %itemName%.

===

- !cart [^](#optionsjson-structure)

Property: .cart

Option Type Default Description
.enable boolean true Set to false if want to disable !cart command.

โ€ข Custom reply

Sub-property: .customReply

Option Type Default Description
.title string "" Default reply: ๐Ÿ›’== YOUR CART ==๐Ÿ›’
.disabled string "" Default reply: โŒ This command is disabled by the owner.

===

- !clearcart [^](#optionsjson-structure)

Property: .clearcart

Option Type Default Description
.customReply.reply string "" Default reply: ๐Ÿ›’ Your cart has been cleared.

===

- !checkout [^](#optionsjson-structure)

Property: .checkout

Option Type Default Description
.customReply.empty string "" Default reply: ๐Ÿ›’ Your cart is empty.

===

- (not a command) When adding to the queue [^](#optionsjson-structure)

Property: .addToQueue

โ€ข Already have an active offer

Option Type Default
.alreadyHaveActiveOffer string ""

///

โ€ข Already in the queue, processing offer

Option Type Default Default reply
.alreadyInQueueProcessingOffer string "" โš ๏ธ You are already in the queue! Please wait while I process your offer.

///

โ€ข Already in the queue, waiting a turn

Option Type Default
.alreadyInQueueWaitingTurn string ""

///

โ€ข Added to queue, waiting a turn

Option Type Default
.addedToQueueWaitingTurn string ""

///

โ€ข Altered offer

Option Type Default
.alteredOffer string ""

///

โ€ข Processing offer message

Sub-Property: .processingOffer

Option Type Default Default reply
.donation string "" โŒ› Please wait while I process your donation! %summarize%
.isBuyingPremium string "" โŒ› Please wait while I process your premium purchase! %summarize%
.offer string "" โŒ› Please wait while I process your offer! %summarize%

///

โ€ข Accepting Mobile confirmation message

Sub-Property: .hasBeenMadeAcceptingMobileConfirmation

Option Type Default Default reply
.donation string "" โŒ› Your donation has been made! Please wait while I accept the mobile confirmation.
.isBuyingPremium string "" โŒ› Your premium purchase has been made! Please wait while I accept the mobile confirmation.
.offer string "" โŒ› Your offer has been made! Please wait while I accept the mobile confirmation.

===

- !cancel [^](#optionsjson-structure)

Property: .cancel.customReply

Option Type Default Default reply
.isBeingSent string "" โš ๏ธ Your offer is already being sent! Please try again when the offer is active.
.isCancelling string "" โš ๏ธ Your offer is already being canceled. Please wait a few seconds for it to be canceled.
.isRemovedFromQueue string "" โœ… You have been removed from the queue.
.noActiveOffer string "" โŒ You donโ€™t have an active offer.
.successCancel string "" /pre โŒ Ohh nooooes! The offer is no longer available. Reason: Offer was canceled by user.

===

- !queue [^](#optionsjson-structure)

Property: .queue.customReply

Option Type Default Default reply
.notInQueue string "" โŒ You are not in the queue.
.offerBeingMade string "" โŒ› Your offer is being made.
.hasPosition string "" There are %position% users ahead of you.

===

- !owner [^](#optionsjson-structure)

Property: .owner

Option Type Default Description
.enable boolean true Set to false if want to disable !owner command (ADMINS are immune).

โ€ข Custom reply

Sub-Property: .customReply

Option Type Default Default reply
.disabled string "" โŒ This command is disabled by the owner.
.reply string "" โ€ข Steam: %steamurl%\nโ€ข Backpack.tf: %bptfurl%

===

- !discord [^](#optionsjson-structure)

Property: .discord

Option Type Default Description
.enable boolean true Set to false if want to disable !discord command (ADMINS are immune).
.inviteURL string "" Default: https://discord.gg/4k5tmMkXjB.

โ€ข Custom reply

Sub-Property: .customReply

Option Type Default Default reply
.disabled string "" โŒ This command is disabled by the owner.
.reply string "" Refer below

===

- !more / !autokeys [^](#optionsjson-structure)

Property: .more | .autokeys

Option Type Default Description
.enable boolean true Set to false if want to disable !more command (ADMINS are immune).
.customReply .disabled string "" Default reply: โŒ This command is disabled by the owner..

===

- !message [^](#optionsjson-structure)

Property: .message

Option Type Default Description
.enable boolean true Set to false if want to disable !message command (ADMINS are immune).
.showOwnerName boolean true Set to false if you donโ€™t want the bot to show your name (will be replaced with โ€œthe ownerโ€).

โ€ข Custom reply

Sub-Property: .customReply

Option Type Default Default reply
.disabled string "" โŒ This command is disabled by the owner.
.wrongSyntax string "" โŒ Please include a message. Here's an example: โ€œ!message Hiโ€
.fromOwner string "" /quote ๐Ÿ’ฌ Message from the owner: %reply%\n\nโ” Hint: You can use the !message command to respond to the owner of this bot.\nExample: !message Hi Thanks!
.success string "" โœ… Your message has been sent.

===

- !time / !uptime / !pure / !rate [^](#optionsjson-structure)

Property: .time | .uptime | .pure | .rate

Option Type Default Description
.enable boolean true Set to false if want to disable any of these commands (ADMINS are immune).

โ€ข Custom reply

Sub-Property: .customReply

Option Type Default Default reply
.disabled string "" โŒ This command is disabled by the owner.
.reply string "" Refer below
I value ๐Ÿ”‘ Mann Co. Supply Crate Keys at %keyprice%. This means that one key is the same as %keyprice% and %keyprice% is the same as one key.

Key rate source: %source%"

===

- !stock [^](#optionsjson-structure)

Property: .stock

Option Type Default Description
.enable boolean true Set to false if want to disable !stock command (ADMINS are immune).
.maximumItems integer 20 Maximum number of items to be shown. Default is 20.

โ€ข Custom reply

Sub-Property: .customReply

Option Type Default Default reply
.disabled string "" โŒ This command is disabled by the owner.
.reply string "" /pre ๐Ÿ“œ Hereโ€™s a list of all the items that I have in my inventory:\n%stocklist%

===

- !craftweapon / !uncraftweapon [^](#optionsjson-structure)

Property: .craftweapon | .uncraftweapon

Option Type Default Description
.enable boolean true Set to false if want to disable !craftweapon or !uncraftweapon command (ADMINS are immune).
.showOnlyExist boolean true Set to false if want show all weapons, including no stock.

โ€ข Custom reply

Sub-Property: .customReply

Option Type Default Default reply
.disabled string "" โŒ This command is disabled by the owner.
.dontHave string "" โŒ I donโ€™t have any craftable (or uncraftable) weapons in my inventory.
.have string "" ๐Ÿ“ƒ Hereโ€™s a list of all craft (or uncraft) weapons stock in my inventory:\n\n%list%

Extra [^](#optionsjson-structure)

Parent property: detailsExtra

- Custom spell text on listing note

Property: .spells[spellName]

///

- Custom sheen text on listing note

Property: .sheens[sheenName]

///

- Custom killstreakers text on listing note

Property: .killstreakers[killstreakerName]

///

- Paints

โ€ข Custom painted text on listing note

Property: .painted[paintName].stringNote

===

โ€ข Custom additional price for automatic add painted items

Property: .painted[paintName].price

///

- Custom Strange Part text on listing note

Property: .strangeParts[strangePartName]