Best TSM Sniper String: Complete Guide


https://www.youtube.com/watch?v=onQ7sp4YQvg

Learn and understand this string in order to have it function for your specific goals. If you don’t care what I just said, and just want to plug in a sniper string, here you go (make sure to add a minprice to your custom sources or this will not work):

minprice:

max(min(dbhistorical, dbregionmarketavg, dbregionhistorical), vendorsell)

Basic String:

max(ifgte(ItemQuality, 1, minprice * ifgte(minprice, 250000g, 80, ifgte(minprice, 100000g, (minprice – 100000g) * (80 – 70) / (250000g – 100000g) + 70,ifgte(minprice, 50000g, (minprice – 50000g) * (70 – 60) / (100000g – 50000g) + 60,ifgte(minprice, 25000g, (minprice – 50000g) * (60 – 50) / (50000g – 25000g) + 50,ifgte(minprice, 10000g, (minprice – 10000g) * (50 – 40) / (25000g – 10000g) + 40,ifgte(minprice, 5000g, (minprice – 5000g) * (40 – 30) / (10000g – 5000g) + 30,ifgte(minprice, 2000g, (minprice – 2000g) * (30 – 20) / (5000g – 2000g) + 20,ifgte(minprice, 1000g, (minprice – 1000g) * (20 – 10) / (2000g – 1000g) + 10, 0)))))))) / 100), VendorSell – 1c)

Simplified Template:

Gold Threshold >Percentage <
P3V5000gP3P30
P2V2000gP2P20
P1V1000gP1P10

max(ifgte(ItemQuality, 1, minprice * ifgte(minprice, P3V, P3P, ifgte(minprice, P2V, (minprice – P2V) * (P3P – P2P) / (P3V – P2V) + P2P, ifgte(minprice, P1V, (minprice – P1V) * (P2P – P1P) / (P2V – P1V) + P1P, 0))) / 100), VendorSell – 1c)

Ever since Blizzard removed the “last page” of the auction house (the most recently posted items), an all-encompassing sniper string has become obsolete. You need to target specific items or your sniper will take hours scanning the entire auction house and missing great deals.

TSM Sniper String for Shadowlands

To reiterate the first point, you need to setup a minprice in your custom sources (TSM Settings tab). This will be referenced by the sniper and will need to be included for your sniper to function.

minprice:

max(min(dbhistorical, dbregionmarketavg, dbregionhistorical), vendorsell)

TSM Sniper Groups

The second step you’ll need to do is setup groups. You’ll have to make a sniper string for specific groups in Shadowlands or any future expansions since there is no longer a last page of the auction house.

Creating groups means that you are adding specific items that you want to clump together. For example, I use specific groups for Leatherworking materials since I typically watch the market price of those items for my crafts.

You can find community created groups through the TSM website hereOpens in a new tab., or you can make your own by searching for the items manually in-game in the TSM settings screen shown here:

Sniper Operation

Thirdly, you’ll need to import your sniper string into “Sniper Operations” within the Operations tab of TSM.

Before we get into why our string is best, first take a look at what TSM uses in their default sniper operation “Maximum Price”.

It basically says that if the value is greater than 250k gold and the price is less than 80% of the DBRegionMarketAvg, it will populate on your sniper.

First of all, DBRegionMarketAvg is a terrible price source to use. The minprice that we use is a much better and more accurate price source.

It then goes down the list and will populate items in our sniper run if the item is greater than 100,000g and less than 70% of DBRegionMarketAvg. It keeps going all the way down the list, requiring a better and better deal for the item to populate in our list the less expensive it becomes.

Overall this is a good string to modify for you needs, but the weakness is with items that are right on the border. For example, if an item is listed at 249k gold and is 71% of the DBRegionMarketAvg, it will not show this item since the item would need to be greater than 250k gold in order to be triggered to populate at that percentage.

This is where the adjusted sniper string becomes valuable. It interpolates the price so that the curve is much more rounded and gives a more “fair” determination of whether or not to include an item in your sniper.

Best TSM Sniper String Template

So lets break down our sniper string so that you can customize it for your groups and maximize your sniper listings.

You can use the table below to think through and visualize what we’re doing here and then plug your adjusted values into the template string below.

Basically, based on the table, if an item is greater than 250,000g and is listed at less than 80% of the minprice, it will show in your sniper run. If not, then it goes to the next line. I.e. if it’s greater than 100,000g and is listed at less than 70% of the minprice, it will show in your run. It keeps going down the table until it either passes or fails.

Gold Threshold >Percentage <
P8V250000gP8P80
P7V100000gP7P70
P6V50000gP6P60
P5V25000gP5P50
P4V10000gP4P40
P3V5000gP3P30
P2V2000gP2P20
P1V1000gP1P10

Template String:

max(ifgte(ItemQuality, 1, minprice * ifgte(minprice, P8V, P8P, ifgte(minprice, P7V, (minprice – P7V) * (P8P – P7P) / (P8V – P7V) + P7P,ifgte(minprice, P6V, (minprice – P6V) * (P7P – P6P) / (P7V – P6V) + P6P,ifgte(minprice, P5V, (minprice – P5V) * (P6P – P5P) / (P6V – P5V) + P5P, ifgte(minprice, P4V, (minprice – P4V) * (P5P – P4P) / (P5V – P4V) + P4P, ifgte(minprice, P3V, (minprice – P3V) * (P4P – P3P) / (P4V – P3V) + P3P, ifgte(minprice, P2V, (minprice – P2V) * (P3P – P2P) / (P3V – P2V) + P2P, ifgte(minprice, P1V, (minprice – P1V) * (P2P – P1P) / (P2V – P1V) + P1P, 0)))))))) / 100), VendorSell – 1c))

TSM Sniper Classic/TBC

There is a “last page” utilized on Classic and TBC meaning that you can make a broader string that will target that last page of the auction house specifically.

On Classic, I use this specific string for my Alchemy materials group since the market is extremely competitive and prices for these items rarely drop below 90% of the server’s market value:

Extremely aggressive Classic Sniper String:

max(ifgte(ItemQuality, 1, minprice * ifgte(minprice, 250g, 98, ifgte(minprice, 100g, (minprice – 100g) * (98 – 97) / (250g – 100g) + 97, ifgte(minprice, 50g, (minprice – 50g) * (97 – 96) / (100g – 50g) + 96, ifgte(minprice, 10g, (minprice – 10g) * (96 – 95) / (50g – 10g) + 95, ifgte(minprice, 5g, (minprice – 5g) * (95 – 94) / (10g – 5g) + 94, ifgte(minprice, 1g, (minprice – 1g) * (94 – 93) / (5g – 1g) + 93, 0)))))) / 100), VendorSell – 1c)

If you’re using a broader group, you’ll need to adjust your percentages and gold values accordingly and can use the same template as retail (but adjust it according to your needs:

Gold Threshold >Percentage <
P8V250000gP8P80
P7V100000gP7P70
P6V50000gP6P60
P5V25000gP5P50
P4V10000gP4P40
P3V5000gP3P30
P2V2000gP2P20
P1V1000gP1P10

Template String:

max(ifgte(ItemQuality, 1, minprice * ifgte(minprice, P8V, P8P, ifgte(minprice, P7V, (minprice – P7V) * (P8P – P7P) / (P8V – P7V) + P7P,ifgte(minprice, P6V, (minprice – P6V) * (P7P – P6P) / (P7V – P6V) + P6P,ifgte(minprice, P5V, (minprice – P5V) * (P6P – P5P) / (P6V – P5V) + P5P, ifgte(minprice, P4V, (minprice – P4V) * (P5P – P4P) / (P5V – P4V) + P4P, ifgte(minprice, P3V, (minprice – P3V) * (P4P – P3P) / (P4V – P3V) + P3P, ifgte(minprice, P2V, (minprice – P2V) * (P3P – P2P) / (P3V – P2V) + P2P, ifgte(minprice, P1V, (minprice – P1V) * (P2P – P1P) / (P2V – P1V) + P1P, 0)))))))) / 100), VendorSell – 1c))

TSM Sniper Not Finding Anything

If your sniper string is not finding anything, adjust the values you’re using in the template. If you want to get more aggressive, raise the percentages and lower the gold threshold. If you’re getting too many hits, lower the percentages and raise the gold threshold.

Customizable strings:

https://docs.google.com/spreadsheets/d/1x7FM-KhQcPSlCSB4lC-t6vLQAg-SxPTyJcTQIPy3GlI/edit#gid=0

Squatman

Gamer and blogger with many years of experience.

One thought on “Best TSM Sniper String: Complete Guide

  1. Pingback: Simple TSM Setup Guide: Best Auction House Addon – SquatmanGaming

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Content