main
Ping Me
Minimal Discord reaction-role bot with a guided embed setup wizard.
Features
/pingme createstep-by-step setup wizard- One editable wizard message with Back/Next/Cancel controls
- Button role menus with optional emoji
- Reaction role menus with emoji
- Single-select mode: selecting a new option removes the previous configured role
- Multi-select mode: users can hold multiple configured roles
- Persistent Postgres storage
Setup
-
Install dependencies:
npm install -
Copy environment file:
cp .env.example .env -
Create a Postgres database and fill in:
DISCORD_TOKENDISCORD_CLIENT_IDDATABASE_URL(for example,postgres://postgres:postgres@localhost:5432/pingme)- optional
DISCORD_GUILD_IDfor instant dev command registration
The bot creates the required Postgres table and indexes on startup.
-
If you have existing
data/pingme.jsonstate, migrate it once:npm run migrate:json-to-postgres # or choose a file explicitly: npm run migrate:json-to-postgres -- ./data/pingme.json -
Register slash commands:
npm run register -
Start the bot:
npm run dev
Required Bot Permissions
Give the bot these permissions in servers where it is used:
- Manage Roles
- Send Messages
- Embed Links
- Add Reactions
- Read Message History
- Use External Emojis, if using external/custom emoji
The bot can only assign roles below its highest role.
Commands
/pingme create
/pingme list
/pingme delete message_id:<message id>
/pingme help
Production
Build and run compiled JavaScript:
npm run build
npm start
Languages
TypeScript
100%