A Discord bot for TFT Ultimate Bravery rolls rollbot.bpev.me
0

Configure Feed

Select the types of activity you want to include in your feed.

TypeScript 99.8%
Other 0.2%
60 1 0

Clone this repository

https://tangled.org/bpev.me/rollbot https://tangled.org/did:plc:u32u3kysm6qugltvopvtlvlv
git@knot.bpev.me:bpev.me/rollbot git@knot.bpev.me:did:plc:u32u3kysm6qugltvopvtlvlv

For self-hosted knots, clone URLs may differ based on your setup.



README.md

Rollbot#

A TFT Ultimate Bravery Rollbot for Discord and Terminal.

Screenshot

ko-fi

Development#

Uses Deno with Deno Deploy for deployment.

Commands#

Use Command
Run tests deno task test
Run CLI deno run src/main.ts <command>
Run server deno serve src/main.ts
Update set data deno run src/main.ts update
List available sets deno run src/main.ts list
Switch to a set deno run src/main.ts switch --set=<set>
Register commands deno run src/main.ts setup

Project Structure#

src/
├── main.ts                # CLI and server entrypoint
├── commands/              # CLI commands (Cliffy)
│   ├── routes/            # HTTP routes
│   │   ├── index.ts       # Homepage
│   │   └── interactions.ts # Discord interactions
│   ├── list.ts            # List sets command
│   ├── roll.ts            # Roll command
│   ├── setup.ts           # Register commands
│   ├── switch.ts          # Switch set command
│   └── update.ts          # Update set data
├── __tests__/             # Test files
└── utilities/
    ├── roll.ts            # Roll logic
    ├── storage.ts         # Deno KV storage
    ├── format.ts          # Output formatting
    ├── sift.ts            # HTTP utilities
    └── constants.ts       # Environment constants

Usage#

CLI#

# Roll for a single player
deno run src/main.ts roll

# Roll for multiple players
deno run src/main.ts roll --names "Alice Bob"

# Roll with a specific set
deno run src/main.ts roll --set=tft10

# List available sets
deno run src/main.ts list

# Switch to a different set
deno run src/main.ts switch --set=tft10

# Update set data from Community Dragon
deno run src/main.ts update

Discord Bot#

/roll
TFT RollBot (Season 6):

  King: Graves
  Team: Academy + Twinshot
/roll @player1 @player2 @player3
TFT RollBot (Season 6):

@player1
  King: Quinn
  Team: Sniper + Mercenary

@player2
  King: DingerDonger
  Team: Innovator + Socialite

@player3
  King: Jinx
  Team: Twinshot + Imperial

Data#

Our data comes from communitydragon.org

Set Names#

Name What is It?
_TURBO Hyperroll

Deployment#

The bot runs on Deno Deploy with Deno KV for storage.

Server mode (no args): deno serve src/main.ts CLI mode (with args): deno run src/main.ts <command>

Set data is updated automatically via cron (daily at midnight UTC) when deployed.

Environment Variables#

Variable Required Description
PUBLIC_KEY Yes Discord public key for verification
CLIENT_ID No Discord app ID for invite link
CRON_SECRET No Secret for /cron endpoint auth