Archipelago -> Discord webhook tracker bot
  • TypeScript 97.3%
  • Dockerfile 2.7%
Find a file
2026-06-08 13:20:39 +03:00
src Initial commit 2026-06-08 12:45:03 +03:00
.dockerignore Add basic Docker support 2026-06-08 13:06:19 +03:00
.editorconfig Initial commit 2026-06-08 12:45:03 +03:00
.gitignore Initial commit 2026-06-08 12:45:03 +03:00
Dockerfile Add basic Docker support 2026-06-08 13:06:19 +03:00
package-lock.json Initial commit 2026-06-08 12:45:03 +03:00
package.json Initial commit 2026-06-08 12:45:03 +03:00
README.md Add a README 2026-06-08 13:20:39 +03:00
tsconfig.json Initial commit 2026-06-08 12:45:03 +03:00

APBot

Simple Archipelago Multiworld tracker bot that sends events to a Discord webhook. User mentions can be configured per-slot to notify for all/progression/useful/no items.

Configuration

An example configuration file is provided below. Note that all slots must be included, otherwise APBot will crash. slotName defines the slot that the tracker will log in as. Password protection is not currently supported.

{
    "webhookUrl": "https://discord.com/api/webhooks/1234567890123456789/TOKEN_HERE",
    "archipelagoUrl": "ws://example.com:38281",
    "slotName": "Player1",
    "players": {
        "Player1": { "id": "123456789012345678", "mode": "All" },
        "Player2": { "id": "123456789012345679", "mode": "None" },
        "Player3": { "id": "123456789012345680", "mode": "Useful" },
        "Player4": { "id": "123456789012345681", "mode": "Progression" }
    }
}

Docker Compose example

Prepare a directory that will be used to store the configuration file and the death tracking database, then save the configuration as config.json inside the directory. A named volume can be used too, but may be more annoying to set up in practice.

services:
    # ...
    apbot:
        build:
            context: /path/to/apbot-repository
        restart: unless-stopped
        volumes:
            - ./data:/app/data