Is there any plans to add up guides on setting up pickit rules or is the UI update fairly close? I kinda struggle with getting it to work the way I wanted too and have had to spend and good few days getting it right, there also wasn't much info on the forums or it was outdated which didn't help. For example had I known that vendor list trumped everything it would have been a lot easier. Also is there any other way of uploading existing pickit files for others to the forums (flags as an invalid file type if you try to attach it) or do we have to copy the entire contents instead? Edit: For those that it may help here's my pickit: Code: [ { "Description": "Default pickup filter.", "Type": 1, "Filters": [ { "Description": "Pickup all maps", "Enabled": true, "Types": [ "/Maps/" ] }, { "Description": "Pickup Rares and Uniques", "Enabled": true, "Rarities": [ 3, 2 ] }, { "Description": "Pickup all currency except...", "Enabled": true, "Names": [ "Name Goes Here" ], "NameRegex": false, "NameMatchAnyRatherThanAll": false, "Rarities": [ 5 ] }, { "Description": "Pickup Gems", "Enabled": true, "Types": [ "/Gems/" ], "Rarities": [ 4 ] }, { "Description": "Chromatic Orbs", "Enabled": true, "Rarities": [ 0, 1 ], "SocketColors": [ "R-G-B" ] }, { "Description": "Pickup all 5/6-link items", "Enabled": true, "MinLinks": 5 }, { "Description": "Pickup all 6-socket items", "Enabled": true, "MinSockets": 6 }, { "Description": "Pickup all quality flasks. (Disabled)", "Enabled": false, "Types": [ "/Flasks/" ], "MinQuality": 1 }, { "Description": "Pickup all utility flasks. (Disabled)", "Enabled": false, "Types": [ "FlaskUtility" ] }, { "Description": "Armourer's Scrap (Disabled)", "Enabled": false, "Types": [ "/Armours/" ], "Rarities": [ 0 ], "MinQuality": 20 }, { "Description": "Whetstone (Disabled)", "Enabled": false, "Types": [ "/Weapons/" ], "Rarities": [ 0 ], "MinQuality": 20 }, { "Description": "Baubles", "Enabled": true, "Types": [ "/Flasks/" ], "Rarities": [ 0 ], "MinQuality": 20 } ] }, { "Description": "Default stash filter.", "Type": 3, "Filters": [ { "Description": "Currency and Uniques", "Enabled": true, "Rarities": [ 5, 3 ] }, { "Description": "5+ linked items", "Enabled": true, "Rarities": [ 2, 1, 0, 3 ], "MinLinks": 5 }, { "Description": "Maps and Utility Flasks", "Enabled": true, "Types": [ "/Maps/", "FlaskUtility" ], "TypeMatchAnyRatherThanAll": true, "Rarities": [ 2, 1, 0, 3, 5 ] }, { "Description": "Rings, Amulets and Belts", "Enabled": true, "Types": [ "/Rings/", "/Amulets/", "/Belts/" ], "TypeMatchAnyRatherThanAll": true, "Rarities": [ 3, 2 ] }, { "Description": "Gems", "Enabled": true, "Types": [ "/Gems/" ], "Rarities": [ 4 ] } ] }, { "Description": "Default vendor filter.", "Type": 2, "Filters": [ { "Description": "Chromatic 3L's", "Enabled": true, "Rarities": [ 0, 1 ], "MaxLinks": 4, "SocketColors": [ "R-G-B" ] }, { "Description": "6 Sockets", "Enabled": true, "Rarities": [ 0, 1, 2 ], "MinSockets": 6, "MaxLinks": 4 }, { "Description": "Low level weapons", "Enabled": true, "Names": [ "Nailed Fist", "Sharktooth Claw", "Awl", "Cat's Paw", "Blinder", "Timeworn Claw", "Sparkling Claw", "Fright Claw", "Thresher Claw", "Gouger", "Tiger's Paw", "Gut Ripper", "Prehistoric Claw", "Noble Claw", "Eagle Claw", "Great White Claw", "Glass Shank", "Skinning Knife", "Carving Knife", "Stiletto", "Boot Knife", "Copper Kris", "Skean", "Imp Dagger", "Flaying Knife", "Butcher Knife", "Poignard", "Boot Blade", "Golden Kris", "Royal Skean", "Fiend Dagger", "Gutting Knife", "Slaughter Knife", "Crude Bow", "Short Bow", "Long Bow", "Composite Bow", "Recurve Bow", "Bone Bow", "Royal Bow", "Death Bow", "Grove Bow", "Decurve Bow", "Compound Bow", "Sniper Bow", "Ivory Bow", "Highborn Bow", "Decimation Bow", "Thicket Bow", "Citadel Bow", "Rusted Hatchet", "Jade Hatchet", "Boarding Axe", "Cleaver", "Broad Axe", "Arming Axe", "Decorative Axe", "Spectral Axe", "Jasper Axe", "Tomahawk", "Wrist Chopper", "War Axe", "Chest Splitter", "Ceremonial Axe", "Wraith Axe", "Karui Axe", "Siege Axe", "Driftwood Club", "Tribal Club", "Spiked Club", "Stone Hammer", "War Hammer", "Bladed Mace", "Ceremonial Mace", "Dream Mace", "Petrified Club", "Barbed Club", "Rock Breaker", "Battle Hammer", "Flanged Mace", "Ornate Mace", "Phantom Mace", "Ancestral Club", "Tenderizer", "Rusted Sword", "Copper Sword", "Sabre", "Broad Sword", "War Sword", "Ancient Sword", "Elegant Sword", "Dusk Blade", "Variscite Blade", "Cutlass", "Baselard", "Battle Sword", "Elder Sword", "Graceful Sword", "Twilight Blade", "Gemstone Sword", "Corsair Sword", "Driftwood Sceptre", "Darkwood Sceptre", "Bronze Sceptre", "Quartz Sceptre", "Iron Sceptre", "Ochre Sceptre", "Ritual Sceptre", "Shadow Sceptre", "Grinning Fetish", "Sekhem", "Crystal Sceptre", "Lead Sceptre", "Blood Sceptre", "Royal Sceptre", "Abyssal Sceptre", "Karui Sceptre", "Tyrant's Sekhem", "Rusted Spike", "Whalebone Rapier", "Battered Foil", "Basket Rapier", "Jagged Foil", "Antique Rapier", "Elegant Foil", "Thorn Rapier", "Wyrmbone Rapier", "Burnished Foil", "Estoc", "Serrated Foil", "Primeval Rapier", "Fancy Foil", "Apex Rapier", "Dragonbone Rapier", "Driftwood Maul", "Tribal Maul", "Mallet", "Sledgehammer", "Spiked Maul", "Brass Maul", "Fright Maul", "Totemic Maul", "Great Mallet", "Steelhead", "Spiny Maul", "Plated Maul", "Dread Maul", "Karui Maul", "Colossus Mallet", "Corroded Blade", "Longsword", "Bastard Sword", "Two-Handed Sword", "Etched Greatsword", "Ornate Sword", "Spectral Sword", "Butcher Sword", "Footman Sword", "Highland Blade", "Engraved Greatsword", "Tiger Sword", "Wraith Sword", "Headman's Sword", "Reaver Sword", "Gnarled Branch", "Primitive Staff", "Long Staff", "Iron Staff", "Coiled Staff", "Royal Staff", "Vile Staff", "Woodful Staff", "Quarterstaff", "Military Staff", "Serpentine Staff", "Highborn Staff", "Foul Staff", "Primordial Staff" ], "NameMatchAnyRatherThanAll": true, "Rarities": [ 0, 1, 2 ], "MaxLinks": 4 }, { "Description": "Low level armour", "Enabled": true, "Names": [ "Plate Vest", "Chestplate", "Copper Plate", "War Plate", "Full Plate", "Arena Plate", "Lordly Plate", "Bronze Plate", "Battle Plate", "Sun Plate", "Colosseum Plate", "Majestic Plate", "Golden Plate", "Shabby Jerkin", "Strapped Leather", "Buckskin Tunic", "Wild Leather", "Full Leather", "Sun Leather", "Thief's Garb", "Eelskin Tunic", "Frontier Leather", "Glorious Leather", "Coronal Leather", "Cutthroat's Garb", "Assassin's Garb", "Simple Robe", "Silken Vest", "Scholar's Robe", "Silken Garb", "Mage's Vestment", "Silk Robe", "Cabalist Regalia", "Sage's Robe", "Silken Wrap", "Conjurer's Vestment", "Spidersilk Robe", "Destroyer Regalia", "Savant's Robe", "Scale Vest", "Light Brigandine", "Scale Doublet", "Infantry Brigandine", "Full Scale Armour", "Soldier's Brigandine", "Field Lamellar", "Wyrmscale Doublet", "Hussar Brigandine", "Full Wyrmscale", "Commander's Brigandine", "Battle Lamellar", "Dragonscale Doublet", "Chainmail Vest", "Chainmail Tunic", "Ringmail Coat", "Chainmail Doublet", "Full Ringmail", "Full Chainmail", "Holy Chainmail", "Latticed Ringmail", "Crusader Chainmail", "Ornate Ringmail", "Chain Hauberk", "Devout Chainmail", "Loricated Ringmail", "Padded Vest", "Oiled Vest", "Padded Jacket", "Oiled Coat", "Scarlet Raiment", "Waxed Garb", "Bone Armour", "Quilted Jacket", "Sleek Coat", "Crimson Raiment", "Lacquered Garb", "Crypt Armour", "Sentinel Jacket", "Varnished Coat" ], "NameMatchAnyRatherThanAll": true, "Rarities": [ 0, 1, 2 ], "MaxLinks": 4 }, { "Description": "Helms (Disabled)", "Enabled": false, "Types": [ "/Helmets/" ], "Rarities": [ 0, 1, 2 ] }, { "Description": "Boots (Disabled)", "Enabled": false, "Types": [ "/Boots/" ], "Rarities": [ 0, 1, 2 ] }, { "Description": "Gloves (Disabled)", "Enabled": false, "Types": [ "/Gloves/" ], "Rarities": [ 2, 1, 0 ] }, { "Description": "Shields (Disabled)", "Enabled": false, "Types": [ "/Shields/" ], "Rarities": [ 0, 1, 2 ] }, { "Description": "Armourer Scraps, Whetstones and Baubles", "Enabled": true, "Rarities": [ 0 ], "MinQuality": 20, "MaxLinks": 4 } ] } ] Basics are - Loots all rares, uniques. - You can select scraps, whetstones and baubles individually depending on what you want - just enable/disable in the pickup rule section of what you would like it to collect. - Picks up all skill/support gems, I would set individual rules based on skill names but decided not to as I'm not to bothered with it picking them all up for me to sort. - It will grab all currency as standard. - It will grab all 5/link + as standard. - Vendors all 6/sockets with 4 or less links as standard. - I've add a named filter for weapons and body armours so it will only stash level 58+ rares. - Individual tabs for each other armour type so you can choose what you want it to sell. I've decided not to limit what level gear it keeps for these items. - It keeps all rare belts, rings and amulets. - Will vendor items for chromatics as standard. If you'd like to try it, simply pop into your settings folder of the main bot directory, head into item filters and copy/paste this over the contents of your default filter. Then check the item filter via the UI to make sure its working. The key thing to remember is that you need to set what you want it to sell not stash. Vendoring always comes first from what I've seen so set what you'd like to keep based on the vendor list in the UI (ie if you don't want weapons enable it in the vendor list) Everything else will be stashed automatically.
thx Lucian. Could u tell me what does " Regex" and "Match Any" in "Item Filter Editor" mean? And how many "types" ?where can I find all the types
Im not entirely sure what the "Regex" option does, hopefully someone with a bit more experience can shed some light on this. The "Match Any" option basically tells the pickit that an item can match any one of the types/names you specify - really only required if you plan to use multiple types/names in one filter. You can find a list of the item types/names on the main release thread at the bottom under useful resources: http://www.thebuddyforum.com/exilebuddy-forum/151775-exilebuddy-sotv-release-beta-revision-guide.html Its under "BaseItemTypes"
I've actually been playing with ID as of yesterday, was fairly easy to implement. You basically add a new category (right click any where on the left panel of the item filter UI and select 'add category'. Once its created you can set it to be for ID'ing under the category drop down box. Then you would simply add a filter with the type of items you'd like to ID - so item quality 'rare' for example would set it to ID all rare items. However this has created a bit of an issue for me in that I'm running out of wisdom scrolls... Managed to burn through 80 in 2 hours of testing.
Regex (Regular Expressions) just allow you to do more "complex" matches, instead of naming a whole ton of things one line at a time. (Regular Expression Language - Quick Reference for reference material) For example; To match "base types" of Bow1, Bow2, Bow3, and Bow4 (these are just made up for this example, but there are cases like this), you could do the following without regex support. Code: Bow1 Bow2 Bow3 Bow4 With regex support: Code: Bow[1-4] There are even more complex uses (eg; matching any amulet of a specific type, *except* one). That's why I originally added support for Regex. But it seems people tend to not use it.
Don't exactly mean to highjack this thread here, but with regex is there a way we can get it to search implicits? [14-16] all attributes or [25-30].+resistance Etc. .+Amulet would match any type of ammy I do believe lol
Oh, this is a good question! I am too in very need of atleast some basic implicit/explicit filtering. "/Amulets/ || /Rings/" without atleast 40 Life && 1 kind of Resistance, SELL. Apoc, So, if i want to exclude just lets say Quicksilvers, Code: Metadata/Items/Flasks/FlaskUtility1,Diamond Flask Metadata/Items/Flasks/FlaskUtility2,Ruby Flask Metadata/Items/Flasks/FlaskUtility3,Sapphire Flask Metadata/Items/Flasks/FlaskUtility4,Topaz Flask Metadata/Items/Flasks/FlaskUtility5,Granite Flask Metadata/Items/Flasks/FlaskUtility6,Quicksilver Flask Metadata/Items/Flasks/FlaskUtility7,Amethyst Flask Metadata/Items/Flasks/FlaskUtility8,Quartz Flask Metadata/Items/Flasks/FlaskUtility9,Jade Flask FlaskUtility[^6]
Bumping this so more people will see it Good works bro also if you could make a more how do I say it um stricter? picket IE only stash the 5 or so weapons that roll good. The top roll armors only ect.
Yes actually, that will work. However, I'd suggest specifying the full item type path (or at least the Flasks/FlaskUtility[^6] part) just in case there may be clashes later on with random items. Also if you wanted to ignore Quicksilver and, say, Ruby flasks, you could simply do: FlaskUtility[^26] The problem with having "correct" item affix filtering, is that we can't do any real accurate stat values on items that have overlapping affixes. (Eg; LIfe + Life/Armor affixes) The final values are totaled up before we can get the info, and we can't tell what the actual "roll" on the affixes are. (You can see all this info in the Inventory Explorer) With that said, we can probably easily add support for at least matching affix names, and nothing else. As said, the actual rolled values is going to be skewed on items with overlapping affixes.
There are a couple of scripts laying around that can parse item data via the clip board and is fairly accurate. They have quiet a few "database" txt files but they seem to work well. You guys might try looking into those if you are looking to implement it. https://www.pathofexile.com/forum/view-thread/790438 -- just an example of the script
And that guy points out that there a LOT of combinations he had to go thru to identify what is or what is not a combo roll and so on.
correct and has done a lot of work to figure it out but it's not 100% overall though I am not sure how hard, to be honest, it would be to look for the stats that an item gives and just allow filtering by base values maybe not affixes but flat values and players then could sort them out on their own?
In the Inventory Explorer window, there's actually a button that shows up (called "Dump") when you select certain items. It prints a much more detailed version of what PoE gives with copy/paste mechanics. We already know how to generate exactly what PoE spits out. But as I said; it uses "total" values, not actual affix-specific values. When you view the stats in the inventory explorer, some stats will have a "(Merged)" tag on the stat value. That means we couldn't tell what the actual affix stat was, because there are more than 1 affix supplying the stat, and it has gone "over the max value" for the affix. Eg; a 5-10 life affix, but the item has 25 life. That means there are 2 +life affixes. We can't know which affix gave how much to the total. That information isn't available. Edit: The dump button has actually been disabled. But here's the basic code for what it did; Code: private string BuildDumpedItemInfo(Item item, string fullName) { StringBuilder sb = new StringBuilder(); // Currency items... nothing to really "dump" here if (item is Currency) return ""; sb.AppendLine(fullName); sb.AppendLine("Rarity: " + item.Rarity); sb.AppendLine("Item Level: " + item.ItemLevel); sb.AppendLine("Quality: " + item.Quality); sb.AppendLine("--------"); sb.AppendLine("Affixes:"); // Dump the implicit and explicit affixes. var affixes = item.ImplicitAffixes; var stats = item.ImplicitStats; foreach (var affix in affixes) { sb.AppendLine(affix.DisplayName); foreach (var s in affix.Stats) { if (s.Stat == default(StatType)) continue; var pct = PercentOfBest(s.Min, s.Max, stats[s.Stat]); string display; DeviationPercentToColor(pct, out display); pct *= 100f; if (pct > 100) pct = 100; sb.AppendLine(string.Format("\t{0} [{1}-{2}], Rolled: {3} ({4}% {5})", CamelToSpaced(s.Stat.ToString()), s.Min, s.Max, stats[s.Stat], pct.ToString("N0"), display)); } } affixes = item.ExplicitAffixes; stats = item.ExplicitStats; foreach (var affix in affixes) { sb.AppendLine(affix.DisplayName); foreach (var s in affix.Stats) { if (s.Stat == default(StatType)) continue; var pct = PercentOfBest(s.Min, s.Max, stats[s.Stat]); string display; DeviationPercentToColor(pct, out display); pct *= 100f; if (pct > 100) pct = 100; sb.AppendLine(string.Format("\t{0} [{1}-{2}], Rolled: {3} ({4}% {5})", CamelToSpaced(s.Stat.ToString()), s.Min, s.Max, stats[s.Stat], pct.ToString("N0"), display)); } } sb.AppendLine("--------"); sb.AppendLine("Final Stats:"); foreach (var stat in item.Stats) { sb.AppendLine(CamelToSpaced(stat.Key.ToString()) + ": " + stat.Value); } // Skill-gem specific information. var gem = item as SkillGem; if (gem != null) { sb.AppendLine("--------"); sb.AppendLine("Level: " + gem.Level); sb.AppendLine("Experience: " + gem.Experience + "/" + gem.ExperienceMaxLevel); } // Socketable item specific info. (Just the socket string [G-G-R-B]) var si = item as SocketableItem; if (si != null) { sb.AppendLine("--------"); sb.AppendLine("Sockets: " + si.BuildSocketsDisplayString()); } return sb.ToString(); } private string CamelToSpaced(string str) { string ret = ""; bool first = true; foreach (var c in str) { if (char.IsUpper(c)) { if (!first) ret += ' '; } ret += c; first = false; } return ret.Replace("Local ", ""); }
How would I edit this so that it would ONLY pickup RARE Amulets, Rings, Belts? I would prefer if it did not pickup any other types of rares, and then keep everything else how you currently have it.
I've kinda stopped playing due to burn out from this game but to point you in the right direction... You would need to add another rule in the pick up section telling it to pick up only rings and amulets of rare quality, deactivate any other rule that applies to rares and your all set. So basically go to pickup section, add a new filter and in this /Rings/ /Amulets/ in the type section, remember to have the match any box ticked. Next set the quality to rare, save it and that should do it. Would post a copy of the config but not subbed to the bot anymore while I decide if I can be bothered with POE.
I dropped this in copy/paste into my itemfilters.json and it sold everything I have to vendor after a run, including some unique that I saw it pick up. Before that it kept selling all of my wisdom scrolls to the npc, which each wisdom turned into 1 wisdom scroll fragment, and so it wiped out all my wisdom scrolls in inventory which was no big deal so I just put my whole inventory in storage(I figured maybe it had an issue with scroll fragments that caused this). I let my bot run for a while and saw it pick up a unique along with some other junk, eventually it chickened while I wasn't paying attention and next thing I saw it back in town, doing the scroll fragment loop and the unique was gone. Not in storage not in inventory. ** this thread is old, I know, though I'm only posting for other people who are new to the bot and got linked here via https://www.thebuddyforum.com/exilebuddy-forum/153717-getting-started-exile-buddy-guide.html that you should probably not use this item filters or find out the cause of these issues.