Syncs your Outlast Trials stats to Discord — automatic role assignment based on prestige, level, invasion ranking, platform & more. Features live leaderboards, nickname sync, and instant role upda

A Discord bot that automatically assigns roles, syncs nicknames, and displays leaderboards based on player stats from The Outlast Trials.
/setup)| Command | Description |
|---|---|
| /setup start | Automatically create roles for selected categories (Prestige, Level, Reagent Rig, Invasion Ranking, Total Invasion Matches, Platform, Account Type) |
| /setup delete | Delete all bot-managed roles and remove mappings |
| /setup language | Change the bot's response language (English, Deutsch) |
| /setup role-mapping <category> | Link a role to a category (prestige, level, skill, invasion-ranking, total-invasion-matches, platform, account-type) |
| /setup remove-role-mapping <category> | Remove a role mapping for any category |
| /setup nickname | Toggle automatic nickname sync — verified users get their in-game display name as their server nickname |
| /setup messages-upload | Upload a custom .properties file to override bot messages |
| /setup messages-download | Download all current messages as a .properties file |
| /setup messages-reset | Reset custom messages to defaults |
| Command | Description |
|---|---|
| /sync-profile | Sync your Discord roles with your Outlast Trials stats |
| /sync-all | Scan all server members and assign roles based on their stats |
Roles are also automatically assigned when a verified member joins the server.
| Command | Description |
|---|---|
| /leaderboard <category> | View a paginated leaderboard for a stat category (ephemeral, with Previous/Next buttons) |
| /setup leaderboard <channel> <category> <pages> | Set up an auto-updating leaderboard in a channel (refreshes hourly) |
To remove a leaderboard, simply delete its message in Discord — the bot will automatically clean up the binding.
The easiest way to run the bot is with Docker.
docker-compose.ymlservices:
bot:
container_name: totstats-discord-bot
image: ghcr.io/outlasttrialsstats/discord-bot:latest
restart: always
mem_limit: 1g
environment:
DISCORD_BOT_TOKEN: "your-bot-token"
SPRING_DATASOURCE_URL: "jdbc:postgresql://postgres:5432/totstats"
SPRING_DATASOURCE_USERNAME: "totstats"
SPRING_DATASOURCE_PASSWORD: "change-me"
depends_on:
- postgres
postgres:
container_name: totstats-discord-postgres
image: postgres:17
restart: always
mem_limit: 512m
environment:
POSTGRES_USER: totstats
POSTGRES_PASSWORD: change-me
POSTGRES_DB: totstats
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
docker compose up -d
Invite the bot to your server using the OAuth2 URL from the Developer Portal with the bot and applications.commands scopes.
docker compose up -d
Create a .env file in the project root:
DISCORD_BOT_TOKEN=your-bot-token-here
./mvnw spring-boot:run
No reviews yet
Share your experience with this bot to help others decide.
heist
VerifiedBrawl Bot
VerifiedFake
VerifiedState of Survival SignUp
VerifiedWitchdice
VerifiedAmanda 🎵
VerifiedFarmy
VerifiedBay
VerifiedCloud Gaming
VerifiedIt's Nova
VerifiedFlare 🚀
Verifiedღ WSLY ツ
VerifiedWorld
Mira Waitress
VerifiedSpice Runner
VerifiedNameless
VerifiedOphelia Games
VerifiedCrazyCounting
Free Games Notifier
VerifiedElden Ring Help