Skip to content

A tool to ease the completion of chaos recipes in Path of Exile

License

Notifications You must be signed in to change notification settings

TimothyByrd/ChaosHelper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChaosHelper

This tool eases the completion of chaos recipes in Path of Exile.

It was inspired by a similar tool promoted by Path Of Matth,

It has two main functions:

  • It can automatically write an updated loot filter file as you accumulate chaos recipe items. You still need to refresh your filter in PoE, but it tells you when to.
  • It can highlight sets of items in your stash to make selling for chaos more efficient.

Other stuff it can do:

  • Check a tab for quality items for the 40% recipes, and highlight if found.
  • Check a set of dump tabs for interesting rare items. Where interesting can be defined by a set of item rules. It also checks for items with matching names for the chance recipe. Since multiple tabs are checked, results are not highlighted.

Compared to poe_qol, this tool has no UI. So if that matters, use poe_qol. (Not being maintained.)

If you need support for multiple dump tabs or the exalted shard recipe, please look at EnhancePoEApp.

Table of contents

TLDR to use it
How to use it
Automatic stuff
Commands and hotkeys
About the generated filter
Security
Configuration details
Item rules
Troubleshooting
Building the tool
Questions
Links
Donation

TLDR to use it

  • Configure your account name, poesessid and source filter in settings.jsonc.
  • Run both PoE and the tool
  • The very first time, type an 'f' in the tool window - you should hear a response.
  • Play, reload the loot filter when it tells you.
  • Use the highlight items hotkey to highlight sets of items to sell for chaos.
  • Put the folder of binaries somewhere.
  • Do configuration in settings.jsonc:
    • You must set your account name, poesessid and the name of the source filter.
    • The source filter can be anything you want. By default is should work well using a NeverSink filter.
    • Other configuration is to taste, see "Configuration details" below.
  • Start Path of Exile.
  • Start the ChaosHelper tool
    • If you use the steam client but also have the standalone client installed, run the tool with a steam argument.
  • In Path of Exile:
    • Change zones once for the tool to know where you are.
    • If this is your first time or if you have switched leagues, force an initial generation of the loot filter by typing an 'f' in the tool window.
    • Go to Options->UI and select "Chaos Helper" as your loot filter.
  • As you play, reload your filter via Options->Game when it tells you to.
  • When you are ready to sell a batch of recipes:
    • Use the highlight items hotkey to highlight the next batch of things to sell.
    • Use the highlight colors to guide you in Ctrl-clicking items from your stash to your inventory, so the bigger items move first.
    • Use the highlight items hotkey again to highlight the next set.
    • When nothing highlights, you are done for now.
  • If you tend to dump everything you find into your quad tab, use the show junk items hotkey to highlight non-recipe items.

The Chaos Helper tool can do the following automatically:

  • Given your account and poesessid, it can:
    • Determine your current character and league.
    • Figure out which stash tab to use look at.
  • Notice you have changed zones by tailing PoE's client.txt file.
  • On changing zones:
    • Grab the stash tab contents
    • See if the filter should be updated.
    • If so, update the filter and play a sound to let you know to reload it.
    • Also, it a highlight is being displayed, changing zones will cancel it.
  • Notice you if have switched characters, and recheck the league and stash tab.
  • Detect a restart of the PoE process.
  • When highlighting items for the recipe, it can:
    • Deal with 2hd weapons as well as 1x3 1hd weapons. The loot filter code will include 2x3 bows when weapons are highlighted, and it will make recipes with one 2x4 weapon since that will fit in the character inventory.
    • Do IDed sets as well as un-IDed sets. An IDed set must have both rings IDed, and it prefers IDed items for the other slots.
    • Optimise recipes to give chaos orbs instead of regal orbs. It does this by making sure that the items for at least one slot are ilvl 60-74 and then preferring ilvl 75+ for the other slots. You can take advantage of this by saving lots of ilvl 60-74 belts and amulets.

These are the commands you can type in the ChaosHelper console window and/or invoke via a configured hotkey:

  • Exit ('Esc' - ChaosHelper window only): Shuts down and exits ChaosHelper.
  • Pause ('P' - "togglePause"): Pauses getting data from the PoE site automatically on area change.
  • Highlight items ('H' - "highlightItems"): (town only) To highlight sets of items to sell (it tries for two sets).
  • Force update ('F' - "forceUpdate"): To force a re-read of the stash tab and a write of the filter file.
  • Automatic ('A' - "toggleAutomaticFilterLoad"): Toggle automatic filter reload on update - see filterAutoReload.
  • Show quality items ('Q' - "showQualityItems"): (town only) To highlight sets of quality gems/flasks/maps to sell. It tries for one set of each. Only available if qualityTab is set in settings.jsonc.
  • Show junk items ('J' - "showJunkItems"): (town only) To toggle showing items in your stash tab that are not for the recipe, so you can clear them out.
  • Character check ('C' - "characterCheck"): Recheck your character and league. (This should happen automatically when you switch chararacters.)
  • Reload settings ('R' - "reloadSettings"): Re-reads the settings.jsonc file.
  • Test pattern ('T' - "testPattern"): (town only) Toggle displaying a test pattern to verify the stash window size is correct. Once good, you can disable the hotkey for it, until you change monitors.
  • Check dump tabs ('D' - "checkDumpTabs"): Check dump tabs for interesting items (see "Item rules" below) and for items with matching names for chance recipe. Must have dumpTabs configured in settings.jsonc.
  • Currency list ('Z' - ChaosHelper window only): Get currency prices from Poe Ninja, then print a listing of the contents of the currency tab in the ChaosHelper console window, with a total value. The listing should be copy-pastable into a spreadsheet.
  • Check item from clipboard ('S' - ChaosHelper window only): After doing Ctrl-C on an item in PoE, this command will check it against configured item rules (see "Item rules" below). Mostly useful for testing rules.
  • Close TCP ports (hotkey only - "closePorts"): Close the TCP ports currently being used by the PoE process. This will cause an instant logout. Requires running ChaosHelper as an Admin.
  • Load next filter (hotkey only - "loadNextFilter"): Load the next item filter from a specified list
  • Toggle mute (hotkey only - "toggleMute"): Toggle whether the PoE process is muted in Settings > System > Sound > Volume Mixer.
  • Send text to PoE (hotkey only): A hotkey that specifies a text element, but no command element, will cause the text to be sent to the PoE client. Some uses are:
    • "{Enter}/hideout{Enter}" to define a hotkey to go to your hideout
    • "{Enter}/remaining{Enter}" to get the remaining number of monsters, when not displayed on the map
    • "{^F}"search-regex"{Enter}" to have a hotkey for a search regex for Gwennen or such

Commends can be invoked two ways:

  1. By typing the appropriate letter (P,H,F, etc.) in the ChaosHelper console window.
    • Best for commands you will hardly ever use, like character check and test pattern.
    • Some commands do not have a keystroke in the ChaosHelper console window and can only be invoked via a hotkey.
  2. By using global hotkeys created by ChaosHelper
    • The default settings.jsonc binds the followinf hotkeys:
      • Highlight items: Alt-H
      • Show quality items: Alt-K
      • Show junk items: Alt-J
      • Force update: Alt-F
      • Close Ports: Alt-Q but disabled by default (and requires running as Admin)
      • Character check: Alt-C but disabled by default
      • Test pattern: Alt-T but disabled by default
      • Hideout: F6 disabled by default, but would send "{Enter}/hideout{Enter}" to the PoE client
    • These hotkeys can be rebound or disabled in settings.jsonc by commenting them out.
    • When defining a hotkey, for modifiers, use '^' for Ctrl, '+' for Shift and '!' for Alt.
    • For a list of key names/numbers, see https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.keys
    • Remember, these set global hotkeys, so be careful not to bork your other programs.
    • Some commands ('Esc', 'Z', "S') cannont be bound to hot keys. They must be invoked from the ChaosHelper console window or by sending a key to the ChaosHelper console.

About the generated filter

When it wants to update the loot filter, the tool writes the new filter file, with an 'Import' of the source filter at the end. The source filter and the generated filter must have different names.

The source filter needs to be specified in the sourceFilter entry. I suggest using an existing filter - a Neversink filter should work. Since the tool will write to a different file, your existing filter will stay safe.

The filter it generates is specified by the filter entry and defaults to ChaosHelper.filter.

I suggest building the tool yourself (see "Building the tool" below). Or for security, limit what the tool can do via your firewall. The only HTTP calls the tool should make are all to www.pathofexile.com. They are all HTTP GETs, so they aren't changing anything on the server. Except perversely there is an HTTP POST to www.pathofexile.com/character-window/get-items, because the GGG web developers are not consistent and used one POST with form data instead of a GET with query parameters.

Configuration details

There are three things you must configure in settings.jsonc to use the tool:

  1. account: your Path of Exile account name.
  2. poesessid: the session Id for your currrent login to www.pathofexile.com.
  3. sourceFilter: the source filter that the ChoseHelper filter will be based on
  • See "About the generated filter" for more info.

I suggest leaving league, character, tabName, tabIndex and isQuadTab at the defaults. This will cause to the tool to auto-determine the values, which is good when there are multiple leagues available. In particular, tabIndex is difficult, because the same tab can change from league to league and can depend on if there are Remove-only tabs visible.

processName defines the process name for the running game. The tool tries to auto-determine this, looking for clients in this order:

  • "PathOfExile"
  • "PathOfExileSteam"
  • "PathOfExileEGS"
  • "PathOfExile_KG"

The tool simply finds the first matching process. To run two copies of Path of Exile while using the tool on one copy, run them using two different clients, and configure processName for the process you want the tool to go track.

stashPageXYWH ([ 0, 0, 0, 0 ]) specifies the rectangle in the PoE client window where the stash tab grid is. It usually auto-determines correctly, but may need to be specified for certain monitors.

stashPageVerticalOffset sets a number of pixels to vertically offset the stash rectangle. To set this, type a 'T' in the ChaosHelper console window to toggle the test pattern and check how well the test pattern aligns with the stash tab squares. If the pattern is a little too high, try increasing stashPageVerticalOffset (e.g. from 0 to 10) and typing 'R' to reload the configuation - or restart ChaosHelper.

If you need to set a custom value, take a screenshot of your stash tab,then open the screen shot in a program like IrfanView. Make a select rectangle over the grid part of the tab, and determine the X,Y,Height,Width of the selection. You can test the values by typing 't' in the ChaosHelper console to execute the test pattern command.

recipeTabVerticalOffset sets a number of pixels to vertically offset the rectangle for the chaos recipe tab. This is to allow for the recipe tab being in a folder. It is in addition to the value of stashPageVerticalOffset. Generally, set this to zero if your chaos recipe tab is not in a folder or 44 if it is - though this may vary depending on your screen resolution.

filter ("ChaosHelper") is the name of the .filter file to create/update - just don't make it the same as sourceFilter. See "About the generated filter" for more info.

filterAutoReload (false) if true will send "{Enter}/itemfilter {Enter}" when the filter updates to auto reload it.

initialImport ("") if set will insert an Import "<file name>" Optional at the beginning of the generated filter file.

exitWhenPoeExits (false) sets whether the tool will exit when the PoE process exits.

startPaused (false) sets whether ChaosHelper starts in a paused state. After initialization, this will not hit the PoE site for item data on area change.

filterDisplay ({ "fontSize": 0, "text": "106 77 255", "back": "70 70 70", "border": "106 77 255" }) sets the the appearance for highlighted items in the updated filter. Colors can be specified as a hex number like "0x4600e6" or a filter file color like "70 0 230".

soundFileVolume (50) sets the volume of the sound alert for when the filter is updated. It can be an integer from 0 to 100.

selfWhisperCharacter ("") if set will whisper status messages to the specified character rather than the lopgged in character. Currently, ChaosHelper only whispers status for the loadNextFilter command, to say what filter is being loaded. I set this to an existing character in an alt-account to make the whisper less annoying in my chat window.

maxSets (12) is the number of chaos recipe sets the tool will aim to collect in your stash tab. It uses this number to determine when to stop showing item classes in the loot filter. A quad tab can hold about 16 complete sets (and a regular tab about 4). Since you want to be able to ctrl-click to quickly dump items into the tab (and the tab can get messy over time - this is "fragmentation") setting this to 10 or 12 seems reasonable.

minIlvl (60) is the minimum ilvl of items to highlight in the loot filter. Setting this to 1 turns the tool into a Chance recipe helper...

maxIlvl (-1) is the maximum ilvl of items to highlight in the loot filter. It can be set to 74 to not show regal recipe items. The default of -1 means to give the recipe highlight to all applicable items of ilvl 60 and above. Note that setting maxIlvl will not prevent the filter from showing any rares that it would have shown before. Only the highlighting may change from the chaos recipe highlight to what was already in the filter.

allowIDedSets (true) sets whether the tool will support making sets including IDed items.

  • I do this because I ID two-stone rings while levelling.
  • Also has the filter show IDed rare rings and amulets, like breech rings.
  • In an IDed set, both rings must be IDed, and other slots will prefer IDed items.
  • The tool will not mix an IDed set and an un-IDed set in one sale.
  • Can set to false to not show IDed rare rings and amulets in the filter and to consider IDed items in the stash tab as junk.

chaosParanoiaLevel (0) sets the level of effort to maximize chaos vs. regal orbs. It is a set of flag values, added together.

  • The default of 0 will do the normal level of optimization.
  • Adding 1 to the value will allow the tool to highlight a single set at a time. For example, if the stash contains one ilvl 74 glove and one ilvl 74 helmet and everything else is ilvl 75+, it will highlight them in two individual sales.
  • Adding 2 to the value will cause unidentified ilvl 75+ items to be favored over identified ilvl 60-74 items in IDed recipes. This will tend to cause hoarding of identified ilvl 60-74 items in the stash tab.
  • Adding 4 to the value will cause IDed recipes to not care about ilvl. This will tend to save ilvl 60-74 items for unIDed recipis.
  • Adding 8 to the value will force the tool to highlight a single set at a time. This may catch other corner cases to conserve ilvl 60-74 items.
  • I am currently using 5 (1 + 4).

ignoreMaxSets causes the specified item classes to ignore the maxSets setting. For example, setting ignoreMaxSets to "Rings,Amulets" when maxSets is 12, will cause the filter to keep highlighting rings and amulets even when there are 12 or more of them in the stash tab. Possible item classes are BodyArmours, Helmets, Gloves, Boots, OneHandWeapons, Belts, Amulets, and Rings

ignoreMaxSetsUnder75 causes the specified item classes to ignore the maxSets setting for items with ilvl under 75. For example, setting ignoreMaxSetsUnder75 to "Belts" when maxSets is 12, will cause the filter to keep highlighting belts with ilvl < 75 even when there are 12 or more of them in the stash tab, but not highlight belts of ilvl 75 or above in that case. Possible item classes are BodyArmours, Helmets, Gloves, Boots, OneHandWeapons, Belts, Amulets, and Rings

ignoreMaxIlvl causes the specified item classes to ignore the maxIlvl setting, if it is set. For example, setting ignoreMaxIlvl to "Rings,Amulets" when maxIlvl is 74 will cause the filter to keep highlighting rings and amulets at higher ilvls. Possible item classes are BodyArmours, Helmets, Gloves, Boots, OneHandWeapons, Belts, Amulets, and Rings

highlightColors ([ "0xffffff", "0xffff00", "0x00ff00", "0x0000ff" ]) is an array of color values (as strings) to specify stash highlight colors for armour/weapons, helmets/gloves/boots, belts, and rings/amulets, respectively. There must be four strings in the array and they can be hex numbers ("0xRRGGBB") or loot filter colors ("RRR GGG BBB"). These colors are used by the highlightItems command to guide the user to move the item sets from their stash to their inventory (largest items first).

hotKeys defines global hotkeys to execute ChaosHelper commands. See "Commands and hotkeys" for more info.

hookMouseEvents (true) sets if mouse events should be hooked. Setting this to true will let the tool detect when clicking through a highlighted item and remove the highlight. Set to false if this causes any issues on your system.

qualityTab specifies a tab used to dump quality items for the 40% recipes. For normal items, Only item with qualities between 1 and 19 will be considered, since a 20% quality normal item matches the recipe by itself.

qualityTabVerticalOffset sets a number of pixels to vertically offset the rectangle for the quality recipe tab. This is to allow for the quality recipe tab being in a folder. It is in addition to the value of stashPageVerticalOffset. Generally, set this to zero if your quality recipe tab is not in a folder or 44 if it is - though this may vary depending on your screen resolution.

qualityGemMapRecipeSlop (0), qualityFlaskRecipeSlop (1) and qualityScrapRecipeSlop (3) specify how much slop to allow when making those recipes. For example, a value of 2 would allow making recipes using ingredients with a total value of 40 to 42. The tool will always try for exactly 40% total quality first.

stashReadMode (Normal) Can be set to Normal, Record, Playback or Manual. stashCanDoManualRead (false)

The default of Normal gets stash tab data from the PoE site. Record does the same, and also saves the data to files in the ChaosHelper folder. Playback tries to read data from the files saved by Record before going to the PoE site. Since the saved data may not be current, this mode is only useful for testing item rules without hitting the site a lot.

The Manual mode is in case GGG blocks non-site access to the inventory information due to server overload. When manual mode is enabled, the console window will show a URL to open in your browser (the URL should already be copied to your clipboard). The page should open as a JSON document. Select the entire document and copy to your clipboard. At that point, the tool should continue.

areaEnteredPattern ("] : You have entered ") is the text marker used when tailing client.txt to determine when a character changes areas. Translate this if you use the PoE client in a language other than English.

hideoutRegex (" Hideout$") is the text marker used when tailing client.txt to determine when a new area entered is a hideout, and thus a town. Translate this if you use the PoE client in a language other than English.

townZones defines the areas that are considered to be "towns". The commands noted as "town only" - highlight items, show junk items and test pattern - will only work when the tool thinks you are in a town zone. If no town zones are defined, then the tool will treat every area as a town zone. If you want protection from accidentally pressing one of the highlight hotkeys while in combat, then uncomment the list of zones, and add you hideout to the list.

zonesToMuteSound defines the areas that when entered, the PoE application should be muted in Settings > System > Sound > Volume Mixer. This is a defense against the annoying goblin band MTX. (I just wish I could figure out a way to dynamically mute the visual MTX fireworks in Rogue Harbour.)

currency This array allows specifying minimum desired amounts for currencies and to put code in the loot filter to display them then the currency tab contains less than those amounts, if showMinimumCurrency (false) is set to true. This lets you run a stricter loot filter, but show certain currencies when the supply in your currency tab runs low. For example if there was an entry for wisdom scrolls that read:

{ "c": "Scroll of Wisdom", "value: 0, "desired": 100, "fontSize": 36, "text": "170 158 130 220", "border": "100 50 30 255", "back": "0 0 0 255" },

then when the loot filter was next written, if the number of wisdom scrolls in the currency tab was less than 100, it would include a Show block for wisdom scrolls with the specified font size and colors.

  • For the highlight feature to work the "desired", "fontSize", "text", "border" and "back" fields must all be specified.
  • Since this feature is meant for lower value currencies that the loot filter might hide by default, it doesn't include a way to specify drop sounds, mini-map icons, etc.
  • The default desired value of 0 disables making code blocks for that currency type.
  • The loot filter will not be automatically re-written just to add/remove the currency blocks - use a force update in that case.
  • This feature will never hide currency that the loot filter would display anyway, but may change the highlighting of it.

dumpTabs Specifies a set dump tabs to seach with the item rules See "Item rules" for more info.

dumpTabVerticalOffset sets a number of pixels to vertically offset the rectangle for the dump tab. This is to allow for the dump tab being in a folder. It is in addition to the value of stashPageVerticalOffset. Generally, set this to zero if your dump tab is not in a folder or 44 if it is - though this may vary depending on your screen resolution. It only applies when a single dump tab is specified, because dump tab items are only highlighted when a single dump tab is specified.

defenseVariance See "Item rules" for more info.

Item rules

Item rules allow checking a set of dump tabs for interesting items.

An item is checked by converting the item's mods to a set of tags with values and then seeing if the tag values match any of a set of rules.

Caveat: The ChaosHelper tool only has access to the final mods of an item, not the actual affixes. This means it can't tell if a mod is a combination of two affix, if there are open affix slots, etc. So it can't do a perfect job, but it can be used as a way to note items for further inspection. The moral is, if you want to allow for crafting, make your rules a little looser.

The itemMods.csv file defines the mods and what tags they affect. A mod can have multiple tags and a tag can have a multiplier. For example, if itemMods,csv contained these two mods:

+1 to Strength, AddStr, MaxLife*0.5
+1 to Maximum Life, MaxLife

then a ring with "+22 to Strength" and "+8 to Maximum Life" would generate tags of AddStr=22 and MaxLife=19.

Mods with two values - like "Adds 3 to 16 Cold Damage to Spells" will generate tags with an average of the two values (9.5 in this case). The mods in itemMods.csv have all numerical values set to '1' to make sorting and checking for duplicates easier. A mod line of "+13 to Strength" would work equivalently to "+1 to Strength".

The itemRules.csv file defines the rules to check. A rule is for a particular item class and specifies a set of terms to meet. For example, given the rules:

Super High Str, Rings, AddStr >= 20
Super High Life, Rings, MaxLife >= 20
Super High Life, Amulets, MaxLife >= 10

the ring above would only match the "Super High Str" rule, because the life isn't high enough for the first "Super High Life" rule and the base type is wrong for the second "Super High Life" rule.

Rules can have multiple terms, for example, a rule for decent boots might be:

Decent Boots, Boots, MoveSpeed >= 25, TotRes >= 75, MaxLife >= 60

Terms in rules can be sums of tag values (with optional multipliers), for example this rule might match a decent wand for a Shak Vortex build:

Vortex Weapon, OneHandWeapons, GemLvlCold*85 + DotCold*3.7 + SpellPctCold >= 100
  1. You must configure your account name, poesessid and source filter in settings.jsonc.
  2. If you are just starting out, type an 'f' in the ChaosHelper window to force an initial generation of the loot filter, and then change zones in-game.
  3. Don't do a text selection in the ChaosHelper console window. If you do, the tool will be stopped until the selection is removed.
  4. Check for error messages in the tool window. If the tool window has closed, there should be log files in the logs folder.
  5. If you are playing in an non-English PoE, will need to build the tool yourself and translate some strings - particularly the "You have entered" it looks for in client.txt. (But tell me what it took, and I may make this easier in the future.)

Building the tool is pretty easy once you clone the git repo:

  • It builds in Visual Studio 2019 Community Edition
  • The code is all C#.
  • You should be able to open ChaosHelper.sln and then build/run the tool
    • Still need to configure setting.jsonc, though.

What does the filter do when you have enough of an item slot? Are they hidden entirely?

ChaosHelper will never hide items your filter would show anyway. It only inserts a set of SHOW blocks for the categories of items you don't have enough of in your dump tab. But since PoE filtering stops on the first matching SHOW/HIDE block, you want the inserted block to come after your blocks for highlighting awesome items. Wouldn't want a 6-link chest piece to just display as ho-hum-another-recipe-ingredient.

Is it a separate filter, or something like a block you can put into any filter?

The way you use it is that you point it at your filter, and configure a thing to say where in the filter the chaos recipe highlight code should go. It does not alter your existing loot filter. It copies your filter into "Chaos Helper.filter", inserting the chaos recipe code in the marked place. By default it's set up to work with a Neversink filter - I found a place that had unique text that worked. If you are using your own filter, I'd suggest putting a comment line like "#%%" or something unique in the filter in the place you want to chaos recipe code to be, and then configure the "filterMarker" setting to be "%%"

I put a bunch of two handed axes in the tab and it tells me I can only make one recipe!

Yep. It's an odd corner case. Only one recipe set using a 2x4 weapon will fit in your inventory at a time. So the tool only considers 2x4 weapons based on the number of shorter weapons available. When there are no shorter weapons, it will say one recipe, repeatedly.

I'm running the Steam client and the tool is not detecting when I change zones.

The tool favours using the stand alone client by default. So if both PoE clients are installed, try starting the tool with a steam argument to force use of the steam client for process detection. The processName setting may also have to be configured.

I have some custom filter text I'd like to insert into the generated filter.

For example, I am using a Neversink filter, but I'd like to insert lines to highlight items to craft for a Shak Vortex build. Put the custom text into a file named filter_insert.txt and put that file into the same folder as ChaosHelper.exe. The contents of filter_insert.txt will be inserted into the generated filter just before the chaos recipe entries. Note that Hide entries in filter_insert.txt will take precedence over entries later in the filter file.

What's this about closing ports?

Some players who play in the hardcore leagues use a "logout macro" as a panic button when they think their character is about to die and want to disconnect as quickly as possible. The belief is that force closing the TCP ports used by PoE is the fastest way to do this.

The ClosePortsForPid utility in this repo can close all the TCP entries for a process. Beyond that, it can directly close a specified TCP entry - doing so in a single Windows API call.

When port closing is enabled, ChaosHelper checks what TCP entry PoE is using whenever a new area is entered. (PoE uses a different entry for each area instance.) On executing the closePorts hotkey, it will try to directly close that TCP entry, with a fallback to closing all ports for the PoE process.

Using the SetTcpEntry API requires running ChaosHelper as Administrator. If you are going to do this, I strongly recommend building the binaries yourself.

  • Originally inspired by poe_qolV2, which is in Python. (but no longer maintained)
  • The overlay code comes from Overlay.NET. I copied in this code because there are posts in the project that the published Nuget package is not up to date with source code.
  • The hotkey code is originally from StackOverflow.
  • Using base_items.json from the RePoE project to map item base types to categories. (At some point, I should grab the data from the ggpk file, like they do.)
  • Using GregsStack/InputSimulatorStandard for send chat commands to PoE.
  • And it all started with POE-TradeMacro

Donation

If this project helped you, you can help me :)

paypal