I've been working on a tool that game moderators can use to remove any and all tedious aspects of hosting a game. This can include sending out day-start messages, creating role-cards, counting votes and much more.
Current we are in an early beta stage, but the tool is out there to be used regardless at mafiaengine.com. The uptime for the website at this current moment is unpredictable, once the website is in a more stable release I will make sure the servers are up almost 100% of the time.
Browser Extension
In addition to the website, I have been creating a browser extension to make the processes of using some of the tools within the website even easier, without even needing to leave mafiascum. In each thread you can see "Vote Count" and "Replace User" buttons which do exactly what they say, generate votecounts and creates a replacement post that sends you directly to the appropriate replacements thread.
Website Functionality
Currently the only two semi-reliable tools are the vote counter and the replacement form, all of which are super easy to use and can access them immediately from mafiaengine.com, assuming the servers are up. Currently I am working on the moderation panel, and all in one area for majority of the tools I am creating for moderators such as the beforementioned day-start messager.
Old Functionality
I will be recreating the old role-card formatting section of the tool later into the new UI, so don't be upset that it is not accessible at this very moment.
OP History
Spoiler: OP v1
Howdy Scummers,
I've been working on a tool for the past few days to aid in the process of hosting games, more specifically at this time making and distributing role-cards. The full-list of functionality can be found in the following spoiler and more additions are planned.
Role Card Formatting via a Lexer+Parser
Semi-Automatic Role PM Handler
CSV Role Card Formatting
Fully Customized Components for Singular Roles.
I'll give a quick overview of each of those.
Role Card Formatting
Using a custom lexer/parser, the tool inputs custom variables into the role-card template, this can be for both individual and mass production of roles for using the singular or the CSV sections.
Semi-Automatic Role PM Handler
You're able to send the produced role-cards through to PMs from a click of a button by utilizing the ucp.php file which PhpBB uses for private messaging (and other stuff). You can designate the content (usually the generated RCs), subject, and recipients of the message for yourself or leave them blank for a default response. I am planning on adding functionality to send each individual role-card separately if using the CSV format.
CSV Role Card Formatting
You're able to utilize the sheer simplicity of using CSV files to generate your roles. If the header of each column is the variables handle, you can make as many roles as your device allows you to. This will go through each role in the file and produce role-cards for each. Functionality for sending each RC separately in a PM is planned but not yet made.
Prototype Showcase V1
Conclusion
I'm doing this for the FM community in general, ease in my future setup designs, and also to put on my portfolio. In my opinion, the worse thing about setup design is making the role-cards by far and I'm trying to make that much faster and easier to do. This isn't for public use at the moment but as soon as the first prototype has been completed I will search for a few testers to make mock (or even real setups) using this tool so if you're interested in helping to test (or trying to break the tool) feel free to let me know here or via PM (or discord if you have mine). If you have any ideas or feedback on my ideas feel free to let me know. Brutal constructive criticism needed.
Last edited by JacksonVirgo on Wed Jun 30, 2021 10:29 am, edited 2 times in total.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
'skitter is fucking terrifying' ~ town-bork about scum-me
'Skitter [was] terrifying to play against ngl' ~ scum-bork about town-me
'Going into lylo against scum!skit unprepared is like having someone force feed you dull razor blades. It's painful, and once it starts, you're pretty much dead' ~ NMSA
'Skitter you're a spirit animal's spirit animal' ~ slaxx
In post 0, JacksonVirgo wrote:I am planning on adding functionality to send each individual role-card separately if using the CSV format.
I've finished adding this functionality, a post describing how it works now etc will be incoming. Testing phase 1 will being relatively soon I believe unless setbacks happen.
EDIT: A new addition I was just thinking of is adding is giving the ability to mass-create role-cards using the singular role section (by storing the file into a table so it's editable and convertible to a CSV format) so that you can send individual role-cards without needing to specifically use CSV files. Perhaps allowing to save/load files from CSV into the singular role card section and vice versa. If you like that idea lemme know.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
In post 8, Gamma Emerald wrote:Can it do more than role PMs? It mostly seems useful for theme games, since newbies/opens/normals have standardized role PMs.
This was
originally
built to handle creating role cards easily but I moved to make it a universal FM helper so I have a few planned additions including an inbuilt game-rander to replace needing to use random.org and you can send the appropriate Role PM to the right player with a click of a button by utilising the Send PM feature I've already created.
If you want to use pre-made role-cards and use this functionality I will have to add that to the tool as I hadn't thought of that just yet but is a great idea.
Although what would you think it should also do?
Perhaps an addition could be an inbuilt screen-scraper for votes, unvotes, heals and hurt tags (utilising a closest-match function for spelling errors and shorthand names such as VOTE: Jackson) and generating a VC using the same lexer/parser functions although that's already a tool that exists I believe.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Yeah the screen-scraper vote counter seems like a good idea, what it should probably do is give a list of all things that look like votes, and the mod can just prune out things that aren’t, typically the most arduous part of vote counting is skimming the thread for votes. I personally haven’t modded a large without utilizing an auto-votecounter (kinda, I had one where I counted manually but my co-mod used the auto-VC iirc)
I like that it’ll catch heals+hurts, most auto-votecounters don’t do that I believe
Having a game-rander is also good, since random.org limits your uses unless you pay them money
<Embrace The Void>
“A flipped coin doesn't always land heads or tails. Sometimes it may never land at all...”
I'm not exactly sure how I would implement that but I'll add it to my list for now.
In post 12, Gamma Emerald wrote:Yeah the screen-scraper vote counter seems like a good idea, what it should probably do is give a list of all things that look like votes, and the mod can just prune out things that aren’t, typically the most arduous part of vote counting is skimming the thread for votes. I personally haven’t modded a large without utilizing an auto-votecounter (kinda, I had one where I counted manually but my co-mod used the auto-VC iirc)
I like that it’ll catch heals+hurts, most auto-votecounters don’t do that I believe
Having a game-rander is also good, since random.org limits your uses unless you pay them money
I want all the tools to be modular and adaptable to all forms of Forum Mafia, so I would probably make a list to catch different types of "commands". For mafiascum it will likely catch VOTE: , HURT: ,HEAL: but I'd like the host to be able add custom commands or posts that it catches such as
POTATO:
or
/vote
etc.
Does random.org do that? I've never used it that much to know
EDIT #1: Maybe it will search for the words, not the tags themselves so
VOTE:
and VOTE: will both trigger the screen-scraper.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Interesting. There's not a metric ton of things getting automated her but there's, like, a bit?
"Let us say that you are right and there are two worlds. How much, then, is this 'other world' worth to you? What do you have there that you do not have here? Money? Power? Something worth causing the prince so much pain for?'"
"Well, I..."
"What? Nothing? You would make the prince suffer over... nothing?"
The tool is hosted on a temporary heroku server which you can find here. Feel free to mess with it and try and break it etc and tell me what you've done with it. Feel free to spam my PMs with random roles.
I'm hosting it right now to work on an API for a hidden thing myself and ducky are working on so if the server is down for a bit it's probably because I am testing out functionality.
Last edited by JacksonVirgo on Sun Dec 27, 2020 11:12 am, edited 1 time in total.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
I've created an API to help with reworking the Replacement Form which a special someone, unsure if they want it public, was considering doing. I am planning on adapting the logic for this API for use in vote-counters in time. Right now the screen-scraper finds the following:
Author of the Thread
Title of the Thread
Current Page Index
Last Page in the Thread
Role Formatting
I've reworked the logic to be server-side to make the logic more modular as if anybody knows front-end javascript you know how absolutely tedious making large logic is as well as me being able to make a desktop version of this tool if it gets popular enough to do so. I've added "global" variables which you can reference within the spreadsheet to avoid copy+pasting a lot of data (and then changing every. single. one if you need to change a word or two). These global variables can also be referenced within the template itself if EVERY role uses is such as a game thread link and/or asking for confirmation etc. Example can be seen in Figure 1.
Spoiler: Figure 1
"Am I a ghost like you, caught between the seams of two intertwining melodies?"