• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

◘_◘ | MODBOT thread (NOW IN BETA!)

Uncle Ruckus

Gorf|marshy
Joined
Apr 29, 2014
Messages
89
the title of this thread always looks bolded from the subforum menu so i always think there's a new post
 

~ Gheb ~

Life is just a party
Joined
Jun 27, 2008
Messages
16,916
Location
Europe
I had to vote somebody who already had been voted in order to appear on the list.

:059:
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
(3) modbot: #hbc | joker, #hbc | bardeezy, #hbc | mac
(1) no lynch: #hbc | dark horse
(1) #hbc | zen: #hbc | amidamaru
(1) #hbc | dark horse: #hbc | zen
(1) #hbc | frozenflame: #hbc | gorf
(1) #hbc | gorf: uncle ruckus
(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) #hbc | acrostic:
(0) gheb_01:
(0) #hbc | zozo:
(0) #hbc | ranmaru:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | rake.:
(0) #hbc | nabe:

Not voting: #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Ranmaru, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
(3) modbot: #hbc | joker, #hbc | bardeezy, #hbc | mac
(1) no lynch: #hbc | dark horse
(1) #hbc | zen: #hbc | amidamaru
(1) #hbc | dark horse: #hbc | zen
(1) #hbc | frozenflame: #hbc | gorf
(1) #hbc | gorf: uncle ruckus
(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) #hbc | acrostic:
(0) gheb_01:
(0) #hbc | zozo:
(0) #hbc | ranmaru:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | rake.:
(0) #hbc | nabe:

Not voting: #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Ranmaru, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
(2) modbot: #hbc | joker, #hbc | bardeezy
(1) no lynch: #hbc | dark horse
(1) gheb_01: #hbc | mac
(1) #hbc | zen: #hbc | amidamaru
(1) #hbc | dark horse: #hbc | zen
(1) #hbc | frozenflame: #hbc | gorf
(1) #hbc | gorf: uncle ruckus
(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) #hbc | acrostic:
(0) #hbc | zozo:
(0) #hbc | ranmaru:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | rake.:
(0) #hbc | nabe:

Not voting: #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Ranmaru, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
(2) modbot: #hbc | joker, #hbc | bardeezy
(1) no lynch: #hbc | dark horse
(1) #hbc | zen: #hbc | amidamaru
(1) #hbc | dark horse: #hbc | zen
(1) #hbc | ranmaru: #hbc | mac
(1) #hbc | frozenflame: #hbc | gorf
(1) #hbc | gorf: uncle ruckus
(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) #hbc | acrostic:
(0) gheb_01:
(0) #hbc | zozo:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | rake.:
(0) #hbc | nabe:

Not voting: #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Ranmaru, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
(2) modbot: #hbc | joker, #hbc | bardeezy
(1) no lynch: #hbc | dark horse
(1) #hbc | zen: #hbc | amidamaru
(1) #hbc | dark horse: #hbc | zen
(1) #hbc | ranmaru: #hbc | mac
(1) #hbc | frozenflame: #hbc | gorf
(1) #hbc | gorf: uncle ruckus
(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) #hbc | acrostic:
(0) gheb_01:
(0) #hbc | zozo:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | rake.:
(0) #hbc | nabe:

Not voting: #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Ranmaru, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
(2) modbot: #hbc | joker, #hbc | bardeezy
(1) no lynch: #hbc | dark horse
(1) gheb_01: #hbc | mac
(1) #hbc | zen: #hbc | amidamaru
(1) #hbc | dark horse: #hbc | zen
(1) #hbc | frozenflame: #hbc | gorf
(1) #hbc | gorf: uncle ruckus
(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) #hbc | acrostic:
(0) #hbc | zozo:
(0) #hbc | ranmaru:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | rake.:
(0) #hbc | nabe:

Not voting: #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Ranmaru, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
(2) modbot: #hbc | joker, #hbc | bardeezy
(1) no lynch: #hbc | dark horse
(1) gheb_01: #hbc | mac
(1) #hbc | zen: #hbc | amidamaru
(1) #hbc | dark horse: #hbc | zen
(1) #hbc | frozenflame: #hbc | gorf
(1) #hbc | gorf: uncle ruckus
(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) #hbc | acrostic:
(0) #hbc | zozo:
(0) #hbc | ranmaru:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | rake.:
(0) #hbc | nabe:

Not voting: #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Ranmaru, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
(2) modbot: #hbc | joker, #hbc | bardeezy
(2) #hbc | zen: #hbc | amidamaru, #hbc | mac
(1) no lynch: #hbc | dark horse
(1) #hbc | dark horse: #hbc | zen
(1) #hbc | frozenflame: #hbc | gorf
(1) #hbc | gorf: uncle ruckus
(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) #hbc | acrostic:
(0) gheb_01:
(0) #hbc | zozo:
(0) #hbc | ranmaru:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | rake.:
(0) #hbc | nabe:

Not voting: #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Ranmaru, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
The vote count has been reset!


(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) modbot:
(0) #hbc | acrostic:
(0) gheb_01:
(0) #hbc | zen:
(0) #hbc | zozo:
(0) #hbc | dark horse:
(0) #hbc | ranmaru:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | frozenflame:
(0) #hbc | rake.:
(0) #hbc | nabe:
(0) #hbc | gorf:

Not voting: #HBC | Mac, #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Dark Horse, #HBC | Zen, #HBC | Ranmaru, #HBC | Gorf, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

MODBOT

Smash Apprentice
Joined
Aug 5, 2014
Messages
108
(1) gheb_01: #hbc | mac
(0) raziek:
(0) ashemu:
(0) #hbc | laundry:
(0) #hbc | mac:
(0) modbot:
(0) #hbc | acrostic:
(0) #hbc | zen:
(0) #hbc | zozo:
(0) #hbc | dark horse:
(0) #hbc | ranmaru:
(0) #hbc | marshy:
(0) #hbc | dtj | asl | bsl:
(0) #hbc | frozenflame:
(0) #hbc | rake.:
(0) #hbc | nabe:
(0) #hbc | gorf:

Not voting: #HBC | DtJ | ASL | BSL, MODBOT, Ashemu, #HBC | Dark Horse, #HBC | Zen, #HBC | Ranmaru, #HBC | Gorf, #HBC | Marshy, #HBC | Rake., #HBC | Laundry, #HBC | Nabe, Raziek, #HBC | Acrostic, #HBC | FrozenFlame, #HBC | ZoZo, Gheb_01
 

#HBC | Mac

Nobody loves me
BRoomer
Joined
Dec 5, 2005
Messages
5,086
Location
Mass
Aiight guys, I've updated the OP with a bunch of info. If any game mods wanna try to use MODBOT in it's current for, drop a PM.

MODBOT is a bot for helping game moderators run a mafia game.

Motivation for creating such a bot:
  • Less work for mods
  • Players don't have to wait / rely on mods to post up to date & correct vote counts
How it works (for everyone)
The bot reads an ongoing game and searches it for votes and bot commands. It automatically tallies the votes and generates a correct votecount for the game. This votecount gets posted every 4 hours (if new votes have been made)

How it works (for players)
Players vote and unvote the same way they have been in current games by using the following format:
vote: player
unvote

Code:
[b]vote: player
unvote[/b]
MODBOT has a few player commands that players can ask of it. To do a command post @bot: <command_name>
Here is a list of the current commands:
  • "request votecount" -- Make MODBOT post the current votecount

How it works (for game moderators)
In order for MODBOT to know how to help moderate your game, it needs some information. Each game must give MODBOT a configuration for the game. An example configuration looks like this:
Code:
{
    "title": "Test",
    "moderators": ["#HBC | Ryker", "Gova", "#HBC | Mac"],
    "url": "http://smashboards.com/threads/363670/",
    "players": [
        ["#HBC | Mac", "Macman", "Mac"],
        ["#HBC | DtJ | ASL | BSL", "BSL"],
        ["MODBOT"],
        ["Ashemu", "Ashy", "Ash"],
        ["#HBC | Dark Horse", "Dark Horse", "DH"],
        ["#HBC | Zen", "Zen", "Zack Fair", "Zenny"],
        ["#HBC | Ranmaru", "Ranmaru", "Ran"],
        ["#HBC | Gorf", "gorf"],
        ["#HBC | Marshy", "marshy", "marshigio"],
        ["#HBC | Rake.", "Rake.", "Rake"],
        ["#HBC | Laundry", "Laundry", "WashedLaundry"],
        ["#HBC | Nabe", "Nabe"],
        ["Raziek", "Raz"],
        ["#HBC | Acrostic", "acrostic"],
        ["#HBC | FrozenFlame", "frozenflame", "FF", "frozen"],
        ["#HBC | ZoZo", "Xonar", "Zozo"],
        ["Gheb_01", "Gheb"]
    ],
    "npcs": [
        ["No Lynch"]
    ],
}
  • Title: Name of the game
  • Moderators: List of game moderators
  • URL: URL of the smashboards thread where the game is hosted
  • Players: A list of lists representing each player slot in the game. Each sublist should be a list of usernames and pseudonyms that correspond to one player slot. The first name in the list should be the official username of that player slot.
  • NPCs: A list of list similar to players, but instead contain entities that can be voted for but aren't actual game players. In most mafia games, this should just contain a list with the entity "No Lynch" so that players can vote for No Lynch
Currently, I am the only who can set this config to MODBOT, so for now you have to PM me with the config to start it in a game. Eventually I hope to put a simple webpage where you can submit the configuration to MODBOT directly.


MODBOT also has some moderator commands that only game mods can perform. The list is as follows:
  • "reset votecount" -- Resets the vote count to zero, can be used for doing day changes.
How it works (for code geeks)
MODBOT is hosted on an external server. It's comprised of the following parts:
  • smashboards thread scraper, which retrieves all posts from any smashboard thread
  • vote and command parser, which parses html strings for votes and modbot commands
  • smashboards poster: utility for programatically posting to smashboards
A cronjob that runs every 3 minutes checks for new posts to smashbaords and updates the votecount accordingly

What you can do to help
  • MODBOT needs quite a bit of testing, so if any brave current game moderators want to try her out. send me a PM. (Check Disclaimer 1***)
  • Post any feedback, concerns, bugs you find, feature requests, anything to this thread. Ultimately this bot is to benefit DGames, so if you have any ideas about how it should function, or anything of that fashion please post them here.
  • Make a prettier vote count post. The current votecount styling / format is pretty bare and basic, if you feel so inclined, make an example votecount post that looks better and I'll use that
Things I plan to work on next
  • Adding double-vote (technically variable-number-vote), and mod-vote functionality
  • Majority detection in vote counts
  • ???
Disclaimers
  1. Currently it is in BETA so there might be some bugs, and the featureset isn't completely nor fleshed out so things are bound to change
  2. I reserve the right to get bored of this and never work on it again. So don't get pissy if I refused to fix some issue 2 months down the line or add this new thing you want. Hopefully I can get the bot to a point where it's usable without my input.
 

Shun Goku Satsu Rake

Oriwa Rake. Kaizo ko ni oriwa naru
Joined
May 8, 2012
Messages
3,897
Mac, instead of creating double vote functionality, just add the mod vote functionality and it'll serve as a double vote counter, dver's can just be assigned as one one mod vote and one player vote if nothing else.

For majority detection, you've already made the mods provide it with a list of the players, which can be counted, have the mod bot divide the number of players alive, divide by two, then add one, so in a game of 16 (16/2) + 1 = 9, and you should be good.

All you need to do after that is figure out the majority each time the day ends (basically a way for the start of the next day to be detected / fed to your bot so it ill recalculate players who are alive.)

You also should have logic in there to determine that the majority has been reached, so it needs to stop doing vote counts every 4 hours, but that can come at later stages.

For unvotes, have it specifically parse for the bolded command followed by the string "unvote" and that should do the trick.
 
Last edited:

BSL

B-B-B-BLAMM!!!
Joined
Feb 28, 2010
Messages
6,453
Location
Baton Rouge
NNID
bsl883
3DS FC
3308-4560-2744
What about secret vote targets? Like the shop keeper in HxH
 

#HBC | Mac

Nobody loves me
BRoomer
Joined
Dec 5, 2005
Messages
5,086
Location
Mass
yea but thatd force the mod to manually vote everytime the double voter did it. which adds overhead for the game mod. ofc that can't be avoided when it's a hidden double voter. but when its a known dvoter, itd be best to have bot know that a player is a double voter. same with the case where a player lost his vote, we want them to be a 0 voter:
 

#HBC | Mac

Nobody loves me
BRoomer
Joined
Dec 5, 2005
Messages
5,086
Location
Mass
For majority detection, you've already made the mods provide it with a list of the players, which can be counted, have the mod bot divide the number of players alive, divide by two, then add one, so in a game of 16 (16/2) + 1 = 9, and you should be good.

All you need to do after that is figure out the majority each time the day ends (basically a way for the start of the next day to be detected / fed to your bot so it ill recalculate players who are alive.
yea majority detection should be pretty easy. the hard part is figuring out how the bot should behave once a majority is reached. I'm of the opinion the votecount should not be frozen at that point, just in case that bot messed up somewhere, you dont wanna stop ppl from being able to vote becuz of it. probably just gonna have it print that a majority was reached on every votecount where the majority has been reached

there are also those cases where players take +/- 1 vote to get lynched


For unvotes, have it specifically parse for the bolded command followed by the string "unvote" you can hijack the threa to change vote commands for error checking to all caps (java would be string.toUpperCase("stringtotest"); for example.
unvote has worked since the beginning
 
Last edited:
Top Bottom