{"id":46364596,"url":"https://github.com/jesperlive/grip","last_synced_at":"2026-03-07T04:07:49.684Z","repository":{"id":340678977,"uuid":"1167099240","full_name":"JesperLive/GRIP","owner":"JesperLive","description":"GRIP – Guild Recruitment Automation (Whisper, Invite, Trade/General Posts)","archived":false,"fork":false,"pushed_at":"2026-02-26T03:23:17.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-26T05:19:10.737Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JesperLive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-26T00:02:57.000Z","updated_at":"2026-02-26T01:53:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/JesperLive/GRIP","commit_stats":null,"previous_names":["jesperlive/grip"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/JesperLive/GRIP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JesperLive%2FGRIP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JesperLive%2FGRIP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JesperLive%2FGRIP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JesperLive%2FGRIP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JesperLive","download_url":"https://codeload.github.com/JesperLive/GRIP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JesperLive%2FGRIP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30106188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T01:39:18.192Z","status":"online","status_checked_at":"2026-03-05T02:00:06.710Z","response_time":93,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-03-05T02:04:37.022Z","updated_at":"2026-03-05T02:04:37.646Z","avatar_url":"https://github.com/JesperLive.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GRIP – Guild Recruitment Automation\n\n**Target:** Retail / Midnight (12.0.1+)\n**Interface:** 120001\n**Version:** 0.7.0\n\n[![Discord](https://img.shields.io/badge/Discord-Tempting%20Us-7289da?logo=discord\u0026logoColor=white)](https://discord.gg/temptingus)\n\n---\n\n## Screenshots\n\n| Home | Ghost Mode Active |\n|:---:|:---:|\n| ![Home](screenshots/home.png) | ![Ghost Mode](screenshots/ghost_active.png) |\n\n| Settings | Settings (cont.) | Ads |\n|:---:|:---:|:---:|\n| ![Settings](screenshots/settings.png) | ![Settings 2](screenshots/settings_2.png) | ![Ads](screenshots/ads.png) |\n\n---\n\n## Features\n\n- `/who` scanning for unguilded characters with auto-expanding saturated brackets\n- Whisper queue with rate limiting, multiple templates, and sequential/random rotation\n- Guild invites (hardware-event gated, one per click/keybind)\n- Trade/General post scheduling (hardware-event gated)\n- Temp + permanent blacklisting with configurable duration\n- Account-wide blacklist shared across all characters\n- Daily whisper cap (default 500/day) with 80% warning\n- Opt-out response detection (auto-blacklists \"no thanks\" etc.)\n- Sound feedback for key events (queue done, invite accepted, cap warning)\n- Expansion-grouped zone filter with dynamic discovery and seasonal detection\n- Campaign cooldown — session fatigue protection with soft warning + hard auto-pause\n- Minimap button + addon compartment support with right-click dropdown\n- Ghost Mode (experimental) — full pipeline automation via invisible overlay frame with combat pause, session limits, and persistent cooldown\n\n---\n\n## Blizzard Restrictions (Important)\n\nSome actions require a **hardware event** (mouse click or key press).\nGRIP **cannot fully automate** the following:\n\n- `/who` queries — `C_FriendList.SendWho()` (hardware event)\n- Guild invites — `C_GuildInfo.Invite()` (hardware event)\n- Channel posts — `C_ChatInfo.SendChatMessage(..., \"CHANNEL\")` (hardware event)\n\nGRIP queues and organizes these actions and provides buttons/keybinds so you can trigger them safely and compliantly.\n\n---\n\n## Install\n\n**CurseForge / Wago / WoWInterface** — search for \"GRIP\" or install via your addon manager.\n\n**Manual install:**\n\n1. Download the latest release from [GitHub Releases](https://github.com/JesperLive/GRIP/releases).\n2. Extract the `GRIP` folder into:\n\n   `World of Warcraft/_retail_/Interface/AddOns/GRIP/`\n\n3. Restart WoW or run `/reload`.\n\n---\n\n## Quick Start\n\n1. Type `/grip` to open the UI\n   (or click the **minimap button**).\n\n### Home\n- **Scan** — Sends the next `/who` query (locks for configured minimum interval)\n- **Whisper+Invite** — Starts whisper queue and sends **one invite**\n- **Post Next** — Sends the next queued recruitment ad\n- Daily cap status is shown on the Home page\n\n### Settings\n- Adjust level range for `/who` scans\n- Configure zone/race/class filters (zones grouped by expansion)\n- Edit whisper templates (multiple templates with rotation)\n- Toggle sound feedback for individual events\n- Ghost Mode enable + session/cooldown sliders\n\n### Ads\n- Configure General and Trade messages\n- Set post interval (scheduler queues messages only)\n- Use **Post Next** to actually send\n\n---\n\n## Minimap Button\n\n- **Left-click** — Toggle GRIP window (Home)\n- **Middle-click** — Open Settings\n- **Right-click** — Open Ads\n- **Drag** — Move around minimap\n- Hide/show: `/grip minimap on|off|toggle`\n\n---\n\n## Keybindings\n\nAvailable under **Key Bindings \u003e AddOns \u003e GRIP**:\n\n- Toggle GRIP window\n- Send next `/who` scan\n- Send next guild invite\n- Send next Trade/General post\n\nKeybindings satisfy hardware-event requirements for restricted actions.\n\n---\n\n## Slash Commands\n\n```\n/grip                — toggle UI\n/grip help           — show help\n/grip build          — rebuild /who queue\n/grip scan           — send next /who (hardware event)\n/grip whisper        — start/stop whisper queue\n/grip invite         — whisper+invite next candidate (hardware event)\n/grip post           — send next queued post (hardware event)\n/grip clear          — clear Potential list\n/grip status         — print counts\n/grip link           — show guild name + Guild Finder link resolution\n/grip reset          — reset UI window position and size\n\n/grip minimap on|off|toggle\n\n/grip permbl list|add|remove|clear\n\n/grip set levels \u003cmin\u003e \u003cmax\u003e [step]\n/grip set whisper \u003cmessage\u003e\n/grip set general \u003cmessage\u003e\n/grip set trade \u003cmessage\u003e\n/grip set blacklistdays \u003cn\u003e\n/grip set interval \u003cminutes\u003e\n/grip set dailycap \u003cn\u003e\n/grip set sound on|off\n/grip set zoneonly on|off\n/grip set hidewhispers on|off\n/grip set ghostmode on|off\n/grip set cooldown \u003cmin\u003e|on|off\n\n/grip templates list\n/grip templates add \u003cmessage\u003e\n/grip templates remove \u003cn\u003e\n/grip templates rotation seq|random\n\n/grip ghost start|stop|status\n\n/grip debug on|off\n/grip debug dump [n]\n/grip debug clear\n/grip debug copy [n]\n/grip debug capture on|off [max]\n/grip debug status\n\n/grip zones diag|reseed|deep|export\n/grip tracegate on|off|toggle\n```\n\n---\n\n## Support\n\nJoin our Discord for help, feedback, or feature requests:\n\n**[discord.gg/temptingus](https://discord.gg/temptingus)**\n\n---\n\n## Important Notes\n\n- **Silence penalties:** If players report your whispers as spam, Blizzard may\n  apply a Silence penalty to your account. Use conservative intervals and\n  personalized messages to minimize risk.\n- **Guild Finder listing:** The `{guildlink}` template token only works if your\n  guild has an active listing in the Guild Finder. Without one, GRIP falls back\n  to your guild name.\n- **Not affiliated with Blizzard:** GRIP is a third-party addon. Use at your\n  own discretion.\n\n---\n\n## Technical Notes\n\n- `/who` results are server-throttled; GRIP enforces a minimum delay between scans.\n- Whispers are not hardware-restricted but are server rate-limited.\n- Instance/battleground/scenario characters are excluded by default.\n- Blacklist entries expire automatically based on configuration.\n- Blacklists and no-response counters are account-wide (shared across all characters). Config, potential list, and filters are per-character.\n- Ghost Mode is experimental and disabled by default. Enable in Settings, then `/grip ghost start`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesperlive%2Fgrip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjesperlive%2Fgrip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesperlive%2Fgrip/lists"}