Kotlin DiscordKt License

UniteBraveryBot ?

A Discord bot heavily inpired by Ultimate Bravery to spice up your Pokemon Unite experience.

Required Permissions ?

  • View Channels
  • Send Messages
  • Embed Links
  • Read Message History

Features ?

While UniteBraveryBot 1.0.0 focuses on essential functionality, there might be more features to come in the future. Currently the following features are available:

  • Ultimate Bravery for Pokemon Unite
    • Get a random Pokemon you have to pick in your next match
    • Get a random lane you have to play on in your next match (if enabled for the guild)
    • Get randomized Held Items you have to pick for the given Pokemon (if enabled for the guild)
    • Get a random Battle Item you have to use in your next match (if enabled for the guild)
  • Always have the whole Pokemon roster available
    • The Pokemon Roster is synchronized daily¹ with the official Pokemon roster
    • Go shiny! For each roll there’s the chance to get the shiny Pokemon sprite² (chance 1:4096)
  • A permission system protects UniteBraveryBot to be abused by your members
  • Command invocations are logged (given a configured logging channel)
  • Multi Guild support
    • Easy initial guild configuration via a conversation
    • Each guild can configure its own bot prefix
    • Each guild can configure UniteBraveryBot’s permission system to work with its respective Admin role
    • Each guild can configure its respective logging channel
    • Each guild can configure its own randomization options
  • Dockerize the bot easily via the provided Dockerfile and docker-compose.yml file

¹ The synchronization interval can only be changed in code since it’s global for all guilds

² Sprites are provided by https://pokemondb.net

Commands ?

Refer to commands.md for a general list and explanation of all available commands. To learn about commands during runtime, use the help command!

Getting Started ⚙️

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.


  • Java
  • Docker
  • Docker-Compose (compatible with docker-compose version 3.8)

Get the Docker version you need here!


Since this bot has a docker-compose.yml file, all you need to start your own version of UniteBraveryBot locally is to clone this repository and set up the .env file.

The .env file is used to configure the bot token and the bot default prefix, in the following format:


For Linux and Mac run

$ cp .env.example .env

For Windows run

> Copy-Item .env.example .env

Edit the .env file with your favourite editor, filling out the following properties:

  • BOT_TOKEN (you can find the bot token under https://discord.com/developers/applications/{application-id}/bot for an overview of all your bots visit https://discord.com/developers/applications)
  • DEFAULT_PREFIX (the default prefix is brave!)

Run the bot via docker-compose

$ docker-compose up --build --detach

Versioning ?️

This project uses Semantic Versioning for versioning. For the versions available, see the tags on this repository.

Author ?

Alexander Deledda

See also the list of contributors who participated in this project.

Contributing ?

Contributions, issues and feature requests are welcome! Feel free to check the issues page.

Setup development environment ?️

For development, you don’t necessarily need Docker and Docker-Compose but Java

  • clone this repository
  • Open the project in your favourite Java / Kotlin IDE (JetBrains IntelliJ IDEA is the recommended IDE for Kotlin projects)
  • For running the bot within your IDE you need to add your bot token as program argument or environment variable (You might have to figure out how to do that in your IDE. IntelliJ let’s you do that under Run -> Edit Configurations...)

Show your support ⭐️

Give a ⭐️ if this project helped you!

License ?

Copyright © 2022 Alexander Deledda This project is MIT licensed.


View Github