Dabuz
Fraud at Smash
Vote: # HBC | Laundry
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!
THANK GOD I'M NOT THE ONLY ONEthe title of this thread always looks bolded from the subforum menu so i always think there's a new post
Hell, in mobile the title is not even visible, its just a bolded hyphen.the title of this thread always looks bolded from the subforum menu so i always think there's a new post
MODBOT is a bot for helping game moderators run a mafia game.
Motivation for creating such a bot:
How it works (for everyone)
- Less work for mods
- Players don't have to wait / rely on mods to post up to date & correct vote counts
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
MODBOT has a few player commands that players can ask of it. To do a command post @bot: <command_name>Code:[b]vote: player unvote[/b]
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"] ], }
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.
- 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
MODBOT also has some moderator commands that only game mods can perform. The list is as follows:
How it works (for code geeks)
- "reset votecount" -- Resets the vote count to zero, can be used for doing day changes.
MODBOT is hosted on an external server. It's comprised of the following parts:
A cronjob that runs every 3 minutes checks for new posts to smashbaords and updates the votecount accordingly
- 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
What you can do to help
Things I plan to work on next
- 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
Disclaimers
- Adding double-vote (technically variable-number-vote), and mod-vote functionality
- Majority detection in vote counts
- ???
- 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
- 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.
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 reachedFor 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.
unvote has worked since the beginningFor 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.