Snallabot
Snallabot logo

Snallabot

Snallabot is a FREE open source Madden Discord bot to help manage your league. Snallabot handles the menial parts of running your league, so you can focus on what matters most, leading your franchise to greatness! Easy setup, direct EA connection, game channels, team management, and more make your life easy.

Features

Snallabot offers these key features for everyone to use as they wish!

Game channels

Create and track your game channels with ease! Snallabot offers regular reminders for members to schedule their games, sim requests, and a scoreboard showing your week's progress.

Team management

Manage your league members, assigning and freeing teams with simple commands.

Player Rosters

Easily track your team's players and the league's rosters. Check out their ratings, weekly stats, and career progression.

Schedules, Standings, and Stats

Keep up with everything around your league, track stat leaders, team standings, and the playoff picture!

Broadcasts

Tune into your leagues live streams, Snallabot posts Youtube and Twitch streams soon as they happen so you can scout your rival live, see heavy weight matchups duke it out, or watch the big game to see who takes home the Lombardi.

Hassle Free Updates

With a novel EA connection, Snallabot keeps itself up to date. No more Companion App, as Snallabot pulls your league data so nothing can get in the way of your league.

Getting started

Follow these steps to connect Snallabot to your Discord and Madden.

  1. Add the bot to your server. Invite Snallabot to your server. You need Manage Server permissions to do so.
  2. Link to your Madden League. Use the dashboard slash command, typing /dashboard in your server will pop it up. Run it, click on the link to head to your dashboard, and follow the prompts to connect your league. Need support? Join our Discord Server if there are any issues
  3. Export From the dashboard, choose All Weeks in the drop down and hit export. It takes about a minute while Snallabot gets all your current league information!
  4. Set up features! The bot is ready to use. For the best setup, keep reading to setup Teams and Game Channels.
Remember to export your league EVERY SEASON! You can run /export all_weeks in your server or from the dashboard.

Setup teams - Recommended

Assign everyone in your league to their team. This lets Snallabot know who to @ in your discord.

  1. Configure teams. Run /teams configure with the channel you want your teams displayed in. (Optional) If your server has a Discord role for every team, turn on use_role_updates.
  2. (Optional) Create team roles. Tired of doing the commands? You can create roles for every team, and assign the role to your user. Snallabot will then automatically know if they are assigned to the team.
  3. Assign teams. Run /teams assign for each team, picking the user. (Optional) If you have a team role, set the team role as well.
  4. Free a team when it opens up. Run /teams free with the team's name, city, or abbreviation.

Setup Game Channels - Recommended

Snallabot has an extensive system for game channels. When you create game channels, you get one channel per game, one message in every channel that notifies each user, and a scoreboard. Each game channel message has controls that tell Snallabot the following:
- ⏰ The game is scheduled. Snallabot will not remind those users to schedule their game.
- 🏆 The game is finished. Snallabot will check if the game is actually complete. If it is, the channel will be deleted.
- 🛫, 🏠, ⏩ The game is a sim. Users can click these to notify commissioners that they want to sim the game. Commissioners approve and the channel will be deleted. The result will be on the scoreboard.

The scoreboard updates as games are finished. They also show which games have been marked for sim making it easy to set them in Madden.

  1. Configure game channels. Run /game_channels configure with a category to create channels in, an admin role, a reminder schedule in hours, and a scoreboard channel.
  2. Create the week's channels. Run /game_channels create with the week. For playoff weeks, you can use the week numbers 19, 20, 21, 23, or the individual commands like /game_channels wildcard
  3. (Optional) Save completed game channels Like to know what happened in your game channels? Save them with Snallabot logger! Run /logger configure with a channel to output logs to. When a game channel is completed, it will be deleted like normal. However, all the messages in the channel will be put in a thread with a timestamp of every message so you will always have a receipt of what occurred. Perfect for settling those sim disputes!

Setup Broadcasts

Posts YouTube and Twitch livestreams straight to your server!

  1. Configure broadcasts. Run /broadcasts configure with a keyword that must appear in stream titles, the channel to post live streams in, and an optional role to mention. The keyword is important, Snallabot recommends setting it specific and short to your league so you only show streams from your league.
  2. Add channels to watch. Run /broadcasts youtube add or /broadcasts twitch add for each person you would like the bot to post streams for.

Setting up stream counts

Some leagues have incentives for users streaming their games. If you would like help in keeping track of stream counts, Snallabot is here to help!

  1. Configure the stream channel. Run /streams configure with the channel where counts should be posted.
  2. Start counting. Run /streams count for a user each time they stream. Use override if you need to set a count directly.

Commands

Full reference for every slash command.

/broadcasts

sets up your league to start receiving twitch and youtube broadcasts

/broadcasts configureconfigures your server to post live streams
  • keyword — only show broadcasts with this keyword in the title
  • channel — channel to send broadcasts to
  • notifier_role (optional) — optional role to notify on every broadcast
/broadcasts youtube addadd youtube channel
  • youtube_channel — the full youtube channel URL you want to show broadcasts for
/broadcasts youtube removeremove youtube channel
  • youtube_channel — the youtube channel you want to remove
/broadcasts youtube listlist all youtube channels this server can post
/broadcasts twitch addadd twitch channel
  • twitch_channel — the twitch channel you want to show broadcasts for
/broadcasts twitch removeremove twitch channel
  • twitch_channel — the twitch channel you want to remove
/broadcasts twitch listlist all twitch channels this server can post

/dashboard

/dashboardconnect your madden league through the Snallabot dashboard

/export

update the bot with your league data

/export currentupdates the current week
/export weekupdates the specified week
  • week — the week number to export
/export all_weeksupdates all weeks

/game_channels

handles Snallabot game channels

/game_channels createcreate game channels
  • week — the week number to create for
  • category_override (optional) — overrides the category to create channels in
/game_channels wildcardcreates wildcard week game channels
  • category_override (optional) — overrides the category to create channels in
/game_channels divisionalcreates divisional week game channels
  • category_override (optional) — overrides the category to create channels in
/game_channels conferencecreates conference championship week game channels
  • category_override (optional) — overrides the category to create channels in
/game_channels superbowlcreates superbowl week game channels
  • category_override (optional) — overrides the category to create channels in
/game_channels clearclear all game channels
  • week (optional) — optional week to clear
/game_channels configuresets up game channels
  • category — category to create channels under
  • scoreboard_channel — channel to post scoreboard
  • notification_period — number of hours to wait before notifying unscheduled games
  • admin_role — admin role to confirm force wins
  • private_channels (optional) — make game channels private to users and admins
/game_channels notifynotifies all remaining game channels

/logger

/logger configuresets the logger channel
  • channel — channel to log in
  • on (optional) — turn on or off the logger

/player

retrieves the players in your league

/player getgets the player and shows their card
  • player — name to search for. Ex: Tom Brady
/player listlist the players matching search
  • players — groups to search for. Ex: Patriots, HB, Rookies

/player_configuration

configures the players command in your league

/player_configuration retireFinds and retires all players who are no longer in the league
/player_configuration configureconfigures settings for players
  • hidden_devs — Turn on/off rookie hidden devs

/playoffs

/playoffsSee the current playoff status

/schedule

Shows the schedule for the week and season

/schedule weeklyShows the current weeks schedule
  • week (optional) — optional week to get the schedule for
  • season (optional) — optional season to get the schedule for
/schedule teamShows team's season schedule
  • team — Ex: Buccaneers, TB, Tampa Bay, Bucs

/sims

/simsView sim statistics by season

/standings

/standingsdisplay the current team standings
  • scope (optional) — conference or division

/stats

shows player stats for your league

/stats weeklyshows weekly stat leaders
  • stat_type (optional) — passing, rushing, receiving, defense...
  • week (optional) — optional week to show stats for
  • season (optional) — optional season to show stats for
/stats seasonshows season stat leaders
  • stat_type (optional) — passing, rushing, receiving, defense...
  • season (optional) — optional season to show stats for

/streams

streams: configure, count, remove, reset

/streams configuresets channel
  • channel — channel to send message in
/streams countups the stream count by 1, optionally override the count
  • user — user to count the stream for
  • increment (optional) — changes the increment from 1 to your choice. can be negative
/streams removeremoves the user stream counts
  • user — user to remove
/streams resetDANGER resets all users to 0

/teams

Displays the current teams in your league with the members the teams are assigned to

/teams assignassign a discord user to the specified team
  • team — the team city, name, or abbreviation. Ex: Buccaneers, TB, Tampa Bay
  • user — the discord member you want to assign to this team
  • role (optional) — the role that will be tracked with this team
/teams freeremove the user assigned to this team, making the team open
  • team — the team city, name, or abbreviation. Ex: Buccaneers, TB, Tampa Bay
/teams configuresets channel that will display all the teams and the members assigned to them
  • channel — channel to display your teams in
  • use_role_updates (optional) — turn on role updates to auto assign teams based on team roles
/teams customize_logocustomize the logo for a specific team
  • team — the team city, name, or abbreviation. Ex: Buccaneers, TB, Tampa Bay
  • image_file (optional) — image file to use as the team logo
  • emoji (optional) — an existing server emoji to use as the logo, e.g. :otters:
/teams reset_logoreset the team logo to original NFL logo
  • team — the team city, name, or abbreviation. Ex: Buccaneers, TB, Tampa Bay
/teams resetresets all teams assignments making them all open

/test

/testtest the bot is responding

/trade

Configure and submit trades for Trade Committee approval

/trade configureConfigure the trade channel, Trade Committee role, and approval count
  • channel — Channel where trades are posted
  • trade_committee_role — Role allowed to vote
  • required_approvals — Approvals required to pass a trade
  • accepted_trades_channel (optional) — Where trades will be sent when they are accepted
  • declined_trades_channel (optional) — Where trades will be sent when they are accepted
/trade submitSubmit a trade for Trade Committee approval
  • team_a — Team sending the first group of assets
  • team_b — Team sending the second group of assets
  • team_a_player_1 (optional) — Team A player 1 (optional)
  • team_a_player_2 (optional) — Team A player 2 (optional)
  • team_a_player_3 (optional) — Team A player 3 (optional)
  • team_a_pick_1 (optional) — Team A draft pick 1 (optional)
  • team_a_pick_2 (optional) — Team A draft pick 2 (optional)
  • team_a_pick_3 (optional) — Team A draft pick 3 (optional)
  • team_b_player_1 (optional) — Team B player 1 (optional)
  • team_b_player_2 (optional) — Team B player 2 (optional)
  • team_b_player_3 (optional) — Team B player 3 (optional)
  • team_b_pick_1 (optional) — Team B draft pick 1 (optional)
  • team_b_pick_2 (optional) — Team B draft pick 2 (optional)
  • team_b_pick_3 (optional) — Team B draft pick 3 (optional)

/waitlist

handles the league waitlist: list, add, remove, pop

/waitlist listlists the current users in the waitlist
/waitlist addadds a user to the waitlist
  • user — user to add to the waitlist
  • position (optional) — adds this user at that waitlist position, pushing the rest back
/waitlist removeremoves a user from the waitlist
  • user — user to remove
/waitlist popremoves a user by their position, default to first in line
  • position (optional) — position to remove, defaults to the user on the top

Support and Community

Snallabot is free for anyone to use and makes no profit. It is maintained with people's free time and love. It is also an open source tool for anyone to kickstart their own development journey with Madden.

Need help, or looking to contribute?

Join the Discord for setup help, feature requests, or to find out how to support the project.