About

MogiBot is written with the intent to help organize mogi. However, the bot is not just limited to mogi since it is highly configurable.

Invite

You can invite MogiBot to your server using the Invite MogiBot button. If you want to add RandomBot or FriendBot, then scroll to the very bottom of the page.

Invite MogiBot

Feature Request

Please contact me on Discord 255MP if you have ideas on new features that would benefit all users of MogiBot.

Roles and Commands

If you wish to grant administrator access, create and assign a role called administrator. If you wish to grant moderator access, create and assign a role called moderator. Any of the commands below can be accessed by tagging @MogiBot followed by the command, e.g. @MogiBot showconfig. The prefer way to interact with this bot is to use the slash commands.

Administrator (includes Moderator and public commands)
showconfig - list of properties that can be configured for the entire guild
setconfig <property> <value> - configure a property with a specified value for the entire guild
unconfigured guild properties are defaulted to the bot's default configuration properties
resetconfig <property> <value> - reset a property with a specified value for the entire guild
clearconfig - clear all properties for the entire guild
showchannelconfig - list of properties that can be configured for the current channel
setchannelconfig <property> <value> - configure a property with a specified value for the current channel
unconfigured channel properties are inherited from the guild properties
resetchannelconfig <property> <value> - reset a property with a specified value for the current channel
clearchannelconfig - clear all properties for the current channel
listroles - displays a list of roles and their respective role id
disablemogibot - disable all commands (except administrator commands)
enablemogibot - enable all commands
disablequeuecommands - disable queue related commands (start, end, can, drop, remove, etc), but non-queue related commands will still work (list)
enablequeuecommands - enable queue related commands
esnall - ends all mogi, clears the queue, and starts a new mogi for all channels (e.g. can be used for new season reset)

Moderator (includes public commands)
movelu <channel id> or appendlu <channel id> DISABLED - move and append the mogi line up from one channel to another channel
swaplu <channel id> DISABLED - swap the mogi line up from one channel to another channel
notify <message> - send a notification message to the players in the mogi
remove <#> - remove player # from the mogi list
end - end a mogi before the required time
next - tag @here for people to can into the mogi (@here can be replaced with a custom role by updating the tag.here.roles configuration)
esn - end the previous mogi, start a new mogi, and tag @here for people to can into the mogi (@here can be replaced with a custom role by updating the tag.here.roles configuration)
p - tag @here +<# of players until fill> for # of people needed for the mogi (@here can be replaced with a custom role by updating the tag.here.roles configuration)

Public
start - start a mogi
end - end a mogi
esn - end the previous mogi, start a new mogi, and lets people can into the mogi
can or c - join the mogi
drop or d - drop from the mogi
dropall or da - drop from all the mogis
list or l - list who is in the mogi
s - list who is in the mogi (temporary)
mogilist or ml - list of all the ongoing mogi in the same server if enable.mllu.command is set to true
mogilistlineup or mllu - list of all the ongoing mogi in the same server if enable.mllu.command is set to true
votes - view the current voting tally if enable.voting is set to true
teams - view the current randomized teams enable.voting is set to true and randomizing of teams is set to true
host - displays the list of hosts if enable.queue.host is set to true
mmrlu - displays the MMR of the current lineup
lrlu - displays the LR of the current lineup (if LR is not support, it will display the MMR)
fc - displays the friend code of the current user if enable.fc.storage is set to true (displays next to the host's name if enable.queue.host is set to true )
setfc - saves the friend code of the current user if enable.fc.storage is set to true (displays next to the host's name if enable.queue.host is set to true )
removefc - removes the friend code of the current user if enable.fc.storage is set to true
help - basic help information

Configure

If you want to configure the bot for your server, you will need to have the administrator role. You can type showconfig to get list of properties that can be configured on the bot at the guild level. You can type showchannelconfig to get a list of properties that can be configured at the channel level. Propeties denoted with an can only be configured using setconfig.

Properties
enable.mogibot <true|false> - allow mogibot to run (values: true or false, default: true)
enable.queue.command <true|false> - allow players to use can, drop, etc. (values: true or false, default: true)
room.size <#> - room size for a full room (min: 2, max: 1024, default: 12)
max.subs <#> - number of subs allowed after the room is full (min: 0, max: 1024, default: 3)
inactive.message.after <#> - number of minutes before someone is considered inactive after joining the mogi (min: 5, max: 3737600, default: 25)
remove.inactive.from.mogi.after <#> - number of minutes after someone is sent an inactive notice before removing them from the mogi (min: 1, max: 3737600, default: 5)
auto.end.mogi.after <#> - number of minutes after the mogi is full before mogi can autoend (min: 5, max: 3737600, default: 120)
minimum.time.before.mogi.end.after.full.in.lineup <#> - number of minutes after the mogi is full before someone can end the mogi if they are in the lineup (min: 0, max: 3737600, default: 40)
minimum.time.before.mogi.end.after.full.not.in.lineup <#> - number of minutes after the mogi is full before someone can end the mogi if they are not in the lineup (min: 0, max: 3737600, default: 40)
only.moderator.start <true|false> - only the moderator can start a mogi (values: true or false, default: false)
only.moderator.end <true|false> - only the moderator can end a mogi (values: true or false, default: false)
enable.voting <true|false> - allow to vote for format after mogi is full (values: true or false, default: false)
enable.voting.ffa <true|false> - allow to vote for format of FFA after mogi is full - requires enable.voting to be true (values: true or false, default: true)
enable.voting.2v2 <true|false> - allow to vote for format of 2v2 after mogi is full - requires enable.voting to be true (values: true or false, default: true)
enable.voting.3v3 <true|false> - allow to vote for format of 3v3 after mogi is full - requires enable.voting to be true (values: true or false, default: true)
enable.voting.4v4 <true|false> - allow to vote for format of 4v4 after mogi is full - requires enable.voting to be true (values: true or false, default: true)
enable.voting.5v5 <true|false> - allow to vote for format of 5v5 after mogi is full - requires enable.voting to be true (values: true or false, default: false)
enable.voting.6v6 <true|false> - allow to vote for format of 6v6 after mogi is full - requires enable.voting to be true (values: true or false, default: true)
enable.voting.2v2.randomized.teams <true|false> - allow automatic randomizing of teams if 2v2 is selected after voting completes - requires enable.voting to be true (values: true or false, default: true)
enable.voting.3v3.randomized.teams <true|false> - allow automatic randomizing of teams if 3v3 is selected after voting completes - requires enable.voting to be true (values: true or false, default: true)
enable.voting.4v4.randomized.teams <true|false> - allow automatic randomizing of teams if 4v4 is selected after voting completes - requires enable.voting to be true (values: true or false, default: true)
enable.voting.5v5.randomized.teams <true|false> - allow automatic randomizing of teams if 5v5 is selected after voting completes - requires enable.voting to be true (values: true or false, default: true)
enable.voting.6v6.randomized.teams <true|false> - allow automatic randomizing of teams if 6v6 is selected after voting completes - requires enable.voting to be true (values: true or false, default: false)
label.ffa <text> - change the label for FFA (default: FFA)
label.2v2 <text> - change the label for 2v2 (default: 2v2)
label.3v3 <text> - change the label for 3v3 (default: 3v3)
label.4v4 <text> - change the label for 4v4 (default: 4v4)
label.5v5 <text> - change the label for 5v5 (default: 5v5)
label.6v6 <text> - change the label for 6v6 (default: 6v6)
enable.queue.bag <true|false> - allow to use canbag / cb and have their names labeled with (bagging) (values: true or false, default: false)
enable.queue.host <true|false> - allow to use canhost / ch and have their names labeled with (host) (values: true or false, default: false)
enable.randomized.host <true|false> - allow automatic randomizing of host if there are any (values: true or false, default: false)
queue.regular.max.size <#> - the max size of regular c into a mogi -- 0 is unlimited (min: 0, max: 1024, default: 0)
queue.bag.max.size <#> - the max size of baggers cb into a mogi -- 0 is unlimited (min: 0, max: 1024, default: 0)
queue.host.max.size <#> - the max size of host ch into a mogi -- 0 is unlimited (min: 0, max: 1024, default: 0)
enable.mllu.command <true|false> - allow users to use the mllu command (values: true or false, default: true)
enable.ml.command <true|false> - allow users to use the ml command (values: true or false, default: true)
enable.delete.queue.messages <true|false> - enable the bot to delete any messages related to the queue (values: true or false, default: true)
sticky.mllu.channel.id <channel id|null> REQUIRES MESSAGE_MANAGE PERMISSIONS - always display results of mllu to a specific channel (values: channel id or null, default: null)
sticky.ml.channel.id <channel id|null> REQUIRES MESSAGE_MANAGE PERMISSIONS - always display results of ml to a specific channel (values: channel id or null, default: null)
enable.fc.storage <true|false> - enable bot to allow people to save/retrieve their friend code (values: true or false, default: false)
enable.drop.after.fill <true|false> - allow users to drop after mogi has been filled (values: true or false, default: false)
queue.command.roles.blacklist <#, #, #> - prevent any users with the specified role id from joining the queue (values: comma separated list of role id or null, default: null)
queue.command.roles.whitelist <#, #, #> - only allow users with the specified role id to join the queue (values: comma separated list of role id or null, default: null)
queue.host.command.roles.blacklist <#, #, #> - prevent any users with the specified role id from joining the queue as a host (values: comma separated list of role id or null, default: null)
queue.host.command.roles.whitelist <#, #, #> - only allow users with the specified role id to join the queue as a host (values: comma separated list of role id or null, default: null)
queue.bag.command.roles.blacklist <#, #, #> - prevent any users with the specified role id from joining the queue as a bagger (values: comma separated list of role id or null, default: null)
queue.bag.command.roles.whitelist <#, #, #> - only allow users with the specified role id to join the queue as a bagger (values: comma separated list of role id or null, default: null)
tag.here.roles <#, #, #> - tags the specified roles instead of tagging @here (values: comma separated list of role id or null, default: null)
show.voters.name <true|false> - show or hide the voters name in the voting results (values: true or false, default: true)

NOTE: For configuration that require the role id, you can tag the roles and it will automatically translate to the role id.

MMR

If you wish to display MMR from the leaderboard for your server, please contact me on Discord 255MP to get it added. Below are the supported data format: Be prepared to supply the following information:

Examples

Example 1: Start event when room size is 10
@MogiBot setconfig room.size 10

Example 2: No subs allowed
@MogiBot setconfig max.subs 0

Example 3: Send an notification at 10 minutes and remove them after 15 minutes if players are inactive in the chat
@MogiBot setconfig inactive.message.after 10
@MogiBot setconfig remove.inactive.from.mogi.after 5

Example 4: Anyone can end if the mogi is full NOT RECOMMENDED
@MogiBot setconfig minimum.time.before.mogi.end.after.full.in.lineup 0
@MogiBot setconfig minimum.time.before.mogi.end.after.full.not.in.lineup 0

Example 5: Tournament registration
@MogiBot setconfig room.size 1024
@MogiBot setconfig max.subs 0
@MogiBot setconfig inactive.message.after 3737600
@MogiBot setconfig remove.inactive.from.mogi.after 5
@MogiBot setconfig minimum.time.before.mogi.end.after.full.in.lineup 3737600
@MogiBot setconfig minimum.time.before.mogi.end.after.full.not.in.lineup 3737600
@MogiBot setconfig only.moderator.start true
@MogiBot setconfig only.moderator.end true

Example 6: Always display mllu to a specific channel REQUIRES MESSAGE_MANAGE PERMISSIONS
@MogiBot setconfig enable.mllu.command false
@MogiBot setconfig sticky.mllu.channel.id 877668999490596864

Example 7: Display host friend code when mogi is full
@MogiBot setconfig enable.queue.host true
@MogiBot setconfig enable.fc.storage true
@MogiBot setconfig enable.randomized.host true

Example 8: Enable voting and let people vote on if they want to play No items, Fox only, Final Destination or Anything Goes
@MogiBot setconfig enable.voting true
@MogiBot setconfig enable.voting.ffa true
@MogiBot setconfig enable.voting.2v2 true
@MogiBot setconfig label.ffa No items, Fox only, Final Destination
@MogiBot setconfig label.2v2 Anything Goes

Example 8: Prevent any users with the role HostBanned (role id: 12345) from hosting in any channel and only allow users with the role Diamond (role id: 567) and Ruby (role id: 890) to join the queue for the current channel
@MogiBot setconfig queue.host.command.roles.blacklist 12345
@MogiBot setchannelconfig queue.command.roles.whitelist 567,890

Other Bots

If you love MogiBot, you may want to try the following bots below:

Invite RandomBot Invite FriendBot