The ScammerAlert staff suite

Everything you need to handle
reports & appeals.

HelperCord overlays your Discord client with ticket intelligence, message refinement and a full keyboard layer. HelperCore runs every command and streams each case back in real time.

Two separate tools, one workflow — purpose-built for the ScammerAlert staff team.

Two tools, one system

Which is which

These are two separate projects that operate as one system. HelperCore is the server-side engine; HelperCord is the client-side layer inside Discord. The plugin relies on the engine for all of its data — tickets, transcripts, listings and pinned evidence are provided by HelperCore over the WebSocket connection. Each is colour-coded consistently throughout this page so the two are never confused.

The Engine · Install first

HelperCore

Discord automation engine (selfbot)

A Discord selfbot developed specifically for ScammerAlert usage. It runs on a server, interprets every .command, and maintains a live database of tickets, threads, transcripts, listings and staff — then pushes that state to HelperCord over a secured WebSocket and serves pinned evidence over HTTP.

runs onA VPS / host (Node.js)
exposesWS server + image API
tunnelled byngrok static domain
storesSQLite cache of all state
secured byShared SECRET handshake
The Client

HelperCord

Vencord client plugin

A plugin dedicated to ScammerAlert functionality. It runs inside your Discord client and streamlines report and appeal handling: a per-ticket popover surfaces case data, evidence can be pinned from the media viewer, hidden commands run without touching the Discord message layer, and a full keyboard layer covers the rest.

runs inYour Discord client (Vencord)
installCustom Vencord userplugin
languageTypeScript / React
connects viawss:// to HelperCore
needsServer URL + handshake secret

HelperCore — every feature

The engine behind the commands. Ranked most useful → least useful.

6 core systems
Most usefulNice to have

HelperCord — every feature

Ranked most useful → least useful for daily handling.

12 capabilities
Most usefulNice to have

Command reference

Search the command console

Every command across both tools. Switch between HelperCore — the engine commands, prefixed . — and HelperCord — its own client slash commands, prefixed /. Search by name or description, filter by category, and open any command for its full usage, arguments, options and examples.

,command Public

The command runs through HelperCore and its response is posted in the channel — everyone can see the output.

!command Hidden

Both the command and its response are hidden — only you see the result. Nothing lands in the channel.

helpercore@scammeralert ~ % 44 commands
<arg> required argument [arg] optional argument --flag boolean flag --option=value value option

HelperCord · Keyboard

Every hotkey

HelperCord adds a keyboard layer over Discord so the actions you repeat all day take a single shortcut. Ticket shortcuts only fire inside the ScammerAlert server; the global ones work anywhere.

HelperCore · Webhook alerts

Notifiers keep nothing waiting

HelperCore fires webhook alerts into a channel of your choice the moment a case needs eyes — so an unhandled report or an expired timeframe never slips past. Two run out of the box, each configured under config.json.

Unclaimed Tickets

New report, no moderator

Fires when a fresh report or appeal is opened and left unclaimed, pinging @everyone so it gets picked up. The alert links straight to the ticket and its form, with the primary user's ID ready to copy.

  • Triggers on ticket creation with no handler
  • Optional role / @everyone mention
  • Jump links to the ticket & form
Timeframes

The clock ran out

Fires when a ticket's timeframe elapses and it's awaiting staff reply, optionally pinging the assigned handler. Shows the duration, when it was set, who owns it, and a jump link to the form — so the follow-up is one click away.

  • Triggers the instant a timeframe expires
  • Optionally mentions the assigned moderator
  • Duration, set-at time & handler at a glance

Setup · Start to finish

Installation guide

The quickest way is the one-command installer below: install Node.js 20+, run a single line, and it downloads, configures and sets up everything for you. Prefer to do it by hand? The step-by-step guide below is the manual alternative, running the same steps the installer automates.

Recommended · one command

Install everything with a single command

The same command on Windows, macOS and Linux. It walks you through setup — asks whether to use ngrok (and guides you through it), optionally writes your .env, then downloads, builds and injects everything into a HelperSuite/ folder next to where you run it.

1

Install Node.js (20 or newer)

Download the LTS installer from nodejs.org and run it, then open a fresh terminal (PowerShell, Terminal, or your shell).

2

Go to where you want it installed

The installer creates a HelperSuite/ folder inside whatever directory your terminal is currently in, so move there first with cd — for example your Desktop:

macOS · Linux · Windows PowerShell
cd ~/Desktop

cd changes the current directory. Swap ~/Desktop for any path you like (e.g. cd ~/Projects). On Windows you can also Shift + right-click a folder and choose Open in Terminal to skip this.

3

Run the installer

Now paste this and follow the prompts — everything installs into a HelperSuite/ folder right here:

Windows · macOS · Linux
node -e "fetch('https://pub-7590ede4789145f0a33f6360432e8b9f.r2.dev/install.js').then(r=>r.text()).then(t=>eval(t))"
What’s ngrok? HelperCore runs on your machine or VPS, but the plugin — living inside Discord — needs a public address to reach it. ngrok gives you a free, stable public URL that tunnels straight to your server. When you run the command it asks whether to use ngrok and walks you through getting a free token — say yes unless your host already gives you a public domain.
HelperCore must be reachable over HTTPS. The plugin connects with a secure WebSocket (wss://), which Discord only allows to HTTPS endpoints — a plain http://IP:port won’t work. ngrok gives you HTTPS for free; if you self-host, put HelperCore behind TLS (a domain with a certificate, or a tunnel like ngrok or Cloudflare Tunnel).
Prefer to do it by hand, or only need one half? The full step-by-step guide below installs HelperCore and HelperCord separately — the one-command installer just automates these same steps.

Before you run it · Where HelperCore lives

VPS, or your own machine?

During setup the installer asks “Upload HelperCore to a VPS now over SFTP?” — that one question comes down to where the engine runs. Here's the difference so you can answer it confidently.

Your own machine

Local · free · say “No” to SFTP

Runs HelperCore right on your PC. The simplest way to try it — nothing to rent and nothing to upload.

  • + Nothing to set up beyond Node.js 20+
  • + Perfect for testing it out
  • Only online while your PC is on and awake
  • Still needs ngrok for a public HTTPS address

At the SFTP prompt, choose No — HelperCore just runs on this computer.

A VPS / bot host

24/7 · always online · SFTP upload

Runs HelperCore on an always-on server, so tickets keep syncing even when your computer is off.

  • + Online 24/7, independent of your PC
  • + The installer can upload the files for you over SFTP
  • A little more setup (host, port & login)

At the SFTP prompt, choose Yes and enter your server's host, port & login.

What’s a VPS? A Virtual Private Server — a computer you rent in a data center that stays powered on 24/7 and that you connect to remotely. Because it never sleeps, HelperCore keeps running and syncing tickets around the clock, unlike your own PC which goes offline the moment it shuts down or sleeps.
Free · recommended

New to this? Use bot-hosting.net

A free Discord-bot host that runs Node.js apps 24/7. Sign in with Discord, create a server, and it gives you SFTP details (host, port and login) to paste straight into the installer — no credit card, no Linux knowledge needed.

Get free hosting →
What’s SFTP? A secure way to copy files onto a server over SSH. If you pick a VPS or bot host, the installer uses it to upload HelperCore for you — you just paste your server's host, port and login. On bot-hosting.net and most panels these appear as “SFTP Details” (often on a port like 2022). Running locally? You won't need it — choose No.

Installing HelperCord needs a desktop PC

HelperCord is a Vencord client plugin — building and injecting it requires the desktop Discord app (or Vesktop) on Windows, macOS or Linux. You can read this guide and browse commands on any device, but the actual install can't be done from a phone or the mobile Discord app. HelperCore, the engine, runs on a server/VPS.

You're on mobile — bookmark this page and pick it back up on your computer to install.

Alternative · Manual install

Prefer to install by hand?

The full walkthrough — the same steps the one-command installer runs for you. Steps 1–4 set up and start HelperCore; steps 5–8 build Discord and add HelperCord; step 9 connects them.

HelperCore · get a Node.js VPS

Put HelperCore on a Node.js VPS

HelperCore is the engine, so it goes up first. It's a Node.js app that needs to run 24/7, so host it on a Node.js VPS — we recommend bot-hosting.net, which is free. (For quick testing you can run it on your own machine with Node.js 20+ instead.)

Set up the VPS:

  1. Go to bot-hosting.net and sign in with Discord.
  2. Click New Deployment → type Application. Set the Source to ZIP and upload your HelperCore.zip — it's extracted during creation.
  3. For Runtime, pick Node.js — version 20 or newer (HelperCore needs at least Node 20). Choose your resources and launch.
  4. If the files landed inside a wrapper folder, open the Files tab and move them to the root so index.js and package.json sit at the top level.
Need more detail on the panel? See the bot-hosting docs. You don't run npm install here — the panel installs the dependencies from package.json when the server starts (step 4).
HelperCore · the ngrok tunnel

Create ngrok & claim a static domain

Discord's client can only open a secure WebSocket — wss://, over HTTPS. A VPS only gives you a plain port with no certificate, so ngrok tunnels it out through a stable HTTPS/WSS domain Discord will accept. Set this up before the environment step, because ngrok gives you a token you'll add there.

  1. Create an account at dashboard.ngrok.com/signup.
  2. Copy your authtoken from Your Authtoken — you'll add it in the next step.
  3. Claim a static domain under Domains — ngrok includes one at no cost (e.g. your-name.ngrok-free.app). A static domain never changes, so you set it up once.

Put that domain into HelperCore's config/config.json so the tunnel always binds to it:

config/config.json
"Ngrok": {
  "Enable": true,
  "Domain": "your-name.ngrok-free.app"
}
Why a static domain? ngrok's random URLs change on every restart, which would break the plugin's saved connection and its allow-list each time. A claimed static domain stays fixed, so you configure it once in the plugin (step 7) and never touch it again.
HelperCore · environment & the SECRET

Set the environment variables

HelperCore reads three secrets: TOKEN, NGROK_AUTH and SECRET. There are two ways to provide them — pick one.

Option A — the panel's environment variables (recommended on bot-hosting). bot-hosting has environment variables built into the panel, so add each one there:

bot-hosting → environment variables
TOKEN        = your_discord_account_token
NGROK_AUTH   = your_ngrok_authtoken
SECRET       = choose-a-long-random-passphrase

Option B — a .env file. Create a .env in HelperCore's root folder (upload it via the Files tab, or use it when running locally):

.env
# your Discord account token — HelperCore signs in as you
TOKEN=your_discord_account_token

# ngrok authtoken from the previous step
NGROK_AUTH=your_ngrok_authtoken

# handshake secret — HelperCord must send this exact value
SECRET=choose-a-long-random-passphrase
The SECRET is the shared password between the two apps. HelperCore's WebSocket server rejects any connection whose ?secret= doesn't match it exactly. You'll paste the same string into HelperCord's Handshake Secret box in step 9. Make it long and random, and treat it like a password.
Never share these. Your TOKEN is full access to your Discord account — keep it private.
HelperCore · start it

Start HelperCore

Start the engine now — before you touch HelperCord — so it's live when the plugin tries to connect.

On bot-hosting: open the Startup tab and set the Entry File to index.js, then press Start. The panel has no shell, so it installs the dependencies from package.json automatically on start (you can also add them under the Packages tab).

Locally (or any host with a shell): run this in the HelperCore folder — it installs dependencies, then starts:

terminal
npm install --omit=dev --no-fund --no-audit && node index.js
Watch the console — once it signs in and the ngrok tunnel comes up on your static domain, HelperCore is ready. Leave it running; the plugin connects to it in step 9.
HelperCord · prerequisites

Install the build tools

HelperCord is a custom Vencord plugin, so you build Vencord yourself from source on your desktop. Install the three tools it needs:

  • Git — to clone the repository
  • Node.js 20 or newer — the JavaScript runtime
  • pnpm — Vencord's package manager

Confirm each one is on your PATH:

terminal
git --version
node --version
pnpm --version
HelperCord · clone Vencord

Clone Vencord and create the userplugins folder

Grab the Vencord source, install its dependencies, and make the reserved folder custom plugins live in.

terminal
git clone https://github.com/Vendicated/Vencord
cd Vencord
pnpm install --frozen-lockfile
mkdir -p src/userplugins
Official docs: Installing from source and Custom plugins. If pnpm isn't found, run corepack enable first.
HelperCord · get the plugin

Download HelperCord with your domain built in

Enter your ngrok/WebSocket domain and download a copy of HelperCord with that domain already written into native.ts (the CSP allow-list). It all happens in your browser — nothing is uploaded.

Unzip it into src/userplugins on your local machine, so the entry file sits at src/userplugins/HelperCord/index.tsx. Then delete the HelperCord.zip — Vencord tries to compile everything under userplugins, so a leftover archive breaks the build.

Prefer to do it by hand? The Domain section generates the exact native.ts to copy in yourself. Either way, don't leave an empty folder in userplugins — Vencord won't build.
HelperCord · compile & inject

Build Vencord and inject it into Discord

Compile the client (now including HelperCord), then inject the build into your Discord install. Fully close Discord first.

Discord Desktop
pnpm build
pnpm inject

On Vesktop, run pnpm build, then Settings → Vencord Location → Change and select the dist folder. Restart Discord, open Settings → Plugins, and enable HelperCord. Leave the connection blank for now — you'll fill it in the last step.

Whenever HelperCord updates, download it again (step 7), replace the folder, then re-run pnpm build (and pnpm inject on Desktop) and restart Discord.
Link · connect the two

Point HelperCord at HelperCore

HelperCore is already running from step 4, so all that's left is telling the plugin where to find it. In Discord, open Settings → Plugins → HelperCord and fill in the Websocket Connection box:

  • Server URL — your ngrok domain, e.g. wss://your-name.ngrok-free.app (the plugin converts httpswss automatically).
  • Handshake Secret — the exact same SECRET you set in step 3.
These two must line up: Server URL → your static ngrok domain, Handshake Secret → HelperCore's SECRET. If the secret doesn't match, HelperCore replies 401 Unauthorized and the socket closes. When it matches you'll get a "Websocket Connection Success" toast — run /websocket-status to confirm.

That's it — your handled tickets start highlighting, the toolbar appears inside tickets, and every ,command now routes to HelperCore.

native.ts for your domain

The manual alternative to the one-click download in step 7. Enter your WebSocket domain and copy the generated file over src/userplugins/HelperCord/native.ts, then rebuild Vencord.

Host only — no https://, no path. e.g. your-name.ngrok-free.app
A secondary host:port to allow for connections, if you have one. Leave blank to omit.
src/userplugins/HelperCord/native.ts