Simple Node.js bot that polls the GameForge Twitch Team roster, detects go-live transitions, and posts live events to a Discord webhook.
- Polls team membership on each cycle (auto add/remove behavior based on current API response)
- Polls stream status for current team members
- Posts one Discord embed per go-live event
- Uses SQLite to avoid duplicate announcements across restarts
- Uses
.envfor all auth and runtime configuration
- Install Node.js 20+
- Copy
.env.exampleto.env - Fill in Twitch and Discord values in
.env - Install dependencies:
npm install- Start bot:
npm startSend a one-off test embed to your Discord webhook:
npm run test-messageIf DRY_RUN=true, this command logs and skips sending.
- Team is always treated as "GameForge Twitch Team" in messages and logs.
IGNORED_USERSis case-insensitive.DRY_RUN=truelogs what would be posted without sending Discord messages.- If Twitch returns 404 for team membership, set
TEAM_MEMBER_LOGINSin.envwith comma-separated Twitch logins.
The bot uses GET /helix/teams?name=<team_login> to resolve the GameForge Twitch Team members. If Twitch returns 404 or an empty team list, it automatically falls back to TEAM_MEMBER_LOGINS and resolves users through GET /users.