Code Monkey home page Code Monkey logo

rl6mans's Introduction

RL6Mans Discord Bot

About

RL6Mans is a Discord Bot that allows you to create multiple 6-Mans queues in the same server, with elegant reaction-based design.

General Commands (Discord)

Command Action
rl!help Displays all commands
rl!queue Creates a new game
rl!leave Leave any queue you are in
rl!leaderboards Leaves any game you may be in
rl!getstats (player) Shows the stats of the player

Host-Only Commands (Discord)

Command Action
rl!kick Kicks a player from your game

Admin-Only Commands (Discord)

Command Action
rl!setwins (player) (wins) Sets the number of wins for a player
rl!setlosses (player) (losses) Sets the number of losses for a player
rl!prefix (newPrefix) View or change the current prefix
rl!reset Reset the leaderboards for your guild

Gameplay

Starting a Queue

To start queueing for a 6-mans, type rl!queue. You will become the host of that queue, and people of your rank or higher will be able to join your queue.

Registration

When the queue starts, a message will be sent out for other users to register in your game.

    Embed / Message:

  • Instructions
  • The host of the queue
  • The role(s) that queue allows
  • The current registered players, along with their respective statuses and rank/roles
  • Reaction -> Action mapping

    Reactions:

  • ✅ -> Join/Leave
  • 🟢 -> Ready/Not Ready

    Next State:

  • Mode Select : When 6 people have joined the queue and have all readied-up

Mode Select

    Embed / Message:

  • Instructions
  • Reaction -> Action mapping

    Reactions:

  • 👑 -> Captains Mode
  • 🔄 -> Random Mode

    Next State:

  • Captains Mode : When at least 4 people have chosen captains mode
  • Random Mode : When at least 4 people have chosen random mode

Captains Mode

In this mode, two people from the queue will be chosen at random to be the team captains. One of the captains will be chosen at random to go first. That captain will choose 1 player to add to their team. The second captain will then choose 2 players to add to their team. The last player will be assigned to the first captain's team.

    Embed / Message:

  • Instructions
  • Show current teams
  • Show number emoji + player name for each unassigned player
  • Reaction -> Action mapping
  • When player is selected, edit embed with ❌ emoji to show they can no longer be selected.

    Reactions:

  • 1️⃣, 2️⃣, 3️⃣, 4️⃣ -> One for each player

    Next State:

  • Play Game : When all players are assigned teams

Random Mode

In this mode, teams are assigned completely at random.

    Embed / Message:

  • Instructions
  • Show current teams

    Reactions:

  • 🔄 -> Re-randomize teams
  • ▶ -> Play game

    Next State:

  • Random Mode : When at least 4 players have chosen to re-randomize the teams.
  • Play Game : When at least 4 players have chosen to play the game / accept the current teams.

Play Game

Now, you play your Rocket League match. Report back when the game ends.

    Embed / Message:

  • Instructions
  • Current Teams
  • Reaction -> Action mapping

    Reactions:

  • ▶ -> Report winner / loser

    Next State:

  • Report : When at least 4 people have indicated that the match has ended.

Report

Report the results of the last match. Will assign points based on match winner and update database.

    Embed / Message:

  • Instructions
  • Reaction -> Action mapping

    Reactions:

  • 🟠 -> Orange team won
  • 🔵 -> Blue team won

    Next State:

Continue?

Players can determine if they would like to play another match/series, or if they would like to stop.

    Embed / Message:

  • Instructions
  • Reaction -> Action mapping

    Reactions:

  • 🔄 -> New match/series
  • ⏹ -> End match/series

    Next State:

  • Play Game : When at least 4 people have chosen to do a new match/series
  • End Game : When at least 4 people have chosen to end the current match/series.

End Game

Ends the match/series and show the results of the series. Allows users to now start a new queue

    Embed/Message:

  • Player list with respective MMR changes

    Reactions: none

    Next State: none

Pricing

Features \ Package Basic Standard Premium Oil Prince
Open Source
Commands
Game Logic
Embeds + Reactions
Concurrent Queues
Basic Maintenance
Communication
Database Integration
Feature Revision
Hosting
New Features
Future Website
Exclusive Rights
Price $50 $75 $100 $15/hour

Feature Breakdown

Feature Description
Open Source Source code publically available on github for anyone to use/modify.
Commands General, Host, and Admin commands as outlined above.
Game Logic Outlined game flow/logic for running 6-mans queues.
Embeds & Reactions Outlined form of bot messaging and reaction-based queueing.
Concurrent Queues Allows for multiple queues at a given time.
Basic Maintenance Bux fixing, unintended side-effects, and broken game feature maintenance.
Communication Live updates and feedback while in development
Database Integration Stores leaderboard and other persistent information in a Firebase database.
Feature Revision Revise/rework a functional game feature in a major way.
Hosting Bot is hosted in the cloud through Firebase and maintained.
New Features Allows for future addition of new game features in Discord.
Future Website Full website to manage/interact with games, view leaderboards, etc.
Exclusive Rights Exclusive rights to monetize, advertise, and distribute.

rl6mans's People

Contributors

grantclark1999 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.