{"id":21281740,"url":"https://github.com/prophetlamb/poe-high-spammer","last_synced_at":"2026-02-10T23:31:50.892Z","repository":{"id":100672622,"uuid":"579200274","full_name":"ProphetLamb/poe-high-spammer","owner":"ProphetLamb","description":"Craft spamming tool for use with the game Path of Exile","archived":false,"fork":false,"pushed_at":"2024-08-02T22:52:32.000Z","size":3920,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-24T12:50:41.056Z","etag":null,"topics":["input-mapper","path-of-exile","pathofexile","poe"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProphetLamb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-16T23:10:12.000Z","updated_at":"2024-08-30T02:38:52.000Z","dependencies_parsed_at":"2025-01-22T04:25:30.334Z","dependency_job_id":"3332980e-f80c-4a59-9228-1b2d5c3822bb","html_url":"https://github.com/ProphetLamb/poe-high-spammer","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ProphetLamb/poe-high-spammer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProphetLamb%2Fpoe-high-spammer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProphetLamb%2Fpoe-high-spammer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProphetLamb%2Fpoe-high-spammer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProphetLamb%2Fpoe-high-spammer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProphetLamb","download_url":"https://codeload.github.com/ProphetLamb/poe-high-spammer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProphetLamb%2Fpoe-high-spammer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29321338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["input-mapper","path-of-exile","pathofexile","poe"],"created_at":"2024-11-21T10:50:27.058Z","updated_at":"2026-02-10T23:31:50.876Z","avatar_url":"https://github.com/ProphetLamb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Banner](img/banner.png)\n# PoE High Spammer\n\nPoE High Spammer is a crafting tool for the game Path of Exile.\nAt its core it remaps the scroll wheel input to left clicks, a maximum of one action in game is taken per scroll action.\n\nAfter each reroll (\"spamming\") the tool checks, if the current filter highlights the item. If so the macro is turned off, thus preventing over-rolling the highlighted state even if the user continuously scrolls.\n\n![Showcase](img/showcase.png)\n\n## Legality\n\nPoE restricts the allowed usage of tools in conjunction with the game heavily. The rules a tool need to fulfill to be 'ethical' and not outright ban-able are defined in the [terms of use](https://www.pathofexile.com/legal/terms-of-use-and-privacy-policy) and [3rd party policy](https://www.pathofexile.com/developer/docs#policy). To the best of my knowledge and research, these are the only two documents defining the restrictions placed upon tools.\n\nIn the following sections the conformity to the each document respectively is explored.\n\n### Terms of Use\n\nIn the following the software PoE High Spammer is referred to as 'macro', and 'spammer'.\n\nThe [terms of use](https://www.pathofexile.com/legal/terms-of-use-and-privacy-policy) section 7 restrict tool usage for the game. Many crafting tools such as auto-clickers are prohibited by section c:\n\u003e 7. Restrictions: Under no circumstances, without the prior written approval of Grinding Gear Games, may you:\n\u003e [...]\n\u003e c. Utilise any automated software or 'bots' in relation to your access or use of the Website, Materials or Services.\n\nTo circumvent this limitation it is common to remap left-click to the scroll-wheel to quickly move inventories. This method is [officially approved](https://www.reddit.com/r/pathofexile/comments/8y5cay/in_light_of_the_recent_build_of_the_week_video/) by the path of exile Support. Please note that this standpoint can change at any time.\n\n\u003e It seems that, to be fully \"ethical\" (i.e. no breaching of Terms of Service), you need to make sure you're using a mouse-wheel that doesn't spin on its own, i.e. 1 finger movement = 1 key-press.\n\n\u003e As for how to actually do it, it seems most commonly if you have a gaming mouse it should come with a control panel software that lets you rebind what mouse buttons do, but I don't think I have that personally, so you'd probably want to look into using AutoHotkey. As GGG tells us that anything that goes beyond 1 click or button-press = 1 server-side action is a ban-able offense, you shouldn't need to learn anything too sophisticated to set up a simple key rebind with AutoHotkey.\n\nThis tool uses the same method, and listen to mouse scrolls. If the tool is ready and a scroll occurs a left-click is performed, so that we have a maximum of one server-action per user-action.\n\n### Thrid-Party Policy\n\nPoE tools need to respect the [3rd party policy](https://www.pathofexile.com/developer/docs#policy) in addition to the terms of use. The relevant section under \"Executable apps that run independently from the game\" states the following:\n\n\u003e   * Automation of key-strokes (or other inputs) that affect the game in any way must follow our macro rules:\n\u003e\n\u003e     * Macros must be invoked manually by the user (automated invocations such as but not limited to: timers, reacting to file changes, or from reading the screen are not allowed).\n\u003e     * Each macro invocation must have one set function (it cannot cycle between actions).\n\u003e     * The resulting function must only perform one action that interacts with the game (sending a single chat message or command counts as one action).\n\u003e\n\u003e   * Introducing features against these guidelines or our Terms of Use can result in account termination for you as well as your users.\n\nLets go through this point by point.\n* This macro reads from the screen, but it is not invoked by it, the screen is checked in response to a user scroll action exclusively to turn off the macro. Invocation must occur manually using a hotkey.\n* The macro rebinds a scroll action to a left-click action. This behavior does not change while the macro is active. The scroll wheel always performs a left click while the macro is active.\n* On scroll the macro only perform a single action in game while active.\n\n## Detection method\n\nTo detect a highlighted item the tool applies filters to a specified screenshot region. The goal is to detect the bright border around a highlighted item using optical image recognition.\n\n1. Take gray-scale screenshot. \u003cbr/\u003e ![Region in grayscale](img/demo-gray.png)\n\n2. Apply thresholding to only \"see\" bright features. \u003cbr/\u003e ![Region with thresholding](img/demo-thres.png)\n\n3. Apply closing with a cross kernel to the image, in order to compensate for minor \"breaks\" in shapes. \u003cbr/\u003e ![Region with closing](img/demo-close.png)\n\n4. Label major features in the image. \u003cbr/\u003e ![Region with boxes](img/demo-boxed.png) \u003cbr/\u003e This image has the known feature coordinates rendered in green.\n\nNow we simply calculate the area for the largest feature, which we assume is the box. In this case the sqrt area is 160px, and compare it to the \"area threshold\" 152px. If the area is equal to or exceeds the threshold, then the box is highlighted.\n\nComparing the highlighted to the non highlighted item below, we can clearly see that the border is missing. Calculating the largest area we obtain 10px which is far below the \"area threshold\".\n\n![Not hightlighted region](img/demo-no-highlight.png)\n\n## How to use\n\n### Step 0: Start app\n\nInstall python, then install `tk`, `pillow`, `scipy`, `numpy`, `pynput`, `pyautogui`, and optionally `pyinstaller` using pip. Start the app (`python.exe ./main.py`).\n\nAlternatively download a binary distribution of the application and install or launch that.\n\n### Step 1: Select target\n\n1. In a stash-tab, place your target item.\n2. In the \"highlight items\" search box, enter a filter which highlights the item (e.g. \"glove\").\n3. Switch to the PoE High Spammer \u0026 press \"region\" then select a tight fit around the item in PoE.\n\n![Select target area](img/select-target.png)\n\nIf the best fit fills less then 75% of the selection, then the tool warns the user. Such a state may cause issues when stopping rolling.\n\n### Step 2: Configure threshold\n\n| Note                                                           |\n| -------------------------------------------------------------- |\n| This is guessed automatically at 95%, and doesn't need to be configured. \u003cbr/\u003e The value refers to the sqrt of the area. |\n\n1. Read the `area` value in `\"found {area}px in {selected}px ({ratio}%)\"`.\n2. Adjust area threshold to a slightly lower value.\n\n![Configure area threshold](img/configure-threshold.png)\n\n### Step 3: Set hotkey\n\nPress the \"edit\" button, followed by any single key that should toggle the tool. Finally press \"stop\".\n\n### Step 4: Prepare for action\n\nFirst adjust the filter in the \"highlight items\" search box to your target, be strict surround the query with quotes, and use the modifier name if possible.\n\nOnce the hotkey is toggled the spammer will simulate a mouse left click, until the item is highlighted.\nFor this it is important that the box which your item is within is not obscured by the info panel.\nTo ensure this doesn't happen hold the `[ALT]` key.\nTo repeatedly use currency hold the `[SHIFT]` key.\n\nIn this example we want to alt spam any life roll on our gloves, so we hold `[SHIFT]+[ALT]` and hover over the item, so that the cursor does not overlay the edge of the item-boundary-box (which is used for detecting the match).\nNow press the hotkey `[COLON]`.\n\nThe spammer will remain active, until the item is highlighted. This also works with influenced/animated items.\nAction will only be taken at maximum once per scroll, so that the tool exhibits a maximum of 1 server action per 1 input.\n\n### Dont's\n\n#### Broken border\n\nEnsure your cursor (, or the item on the cursor) do not obscure the bounding box while spamming. Consider setting the cursor size to small in the options.\n\n![Cursor obscure box boundary](img/cursor-obscure-box.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprophetlamb%2Fpoe-high-spammer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprophetlamb%2Fpoe-high-spammer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprophetlamb%2Fpoe-high-spammer/lists"}