Post
Post #0 (isolation #0) » Sat Sep 02, 2023 5:50 am
Postby JacksonVirgo »
Hey there,
I've recently been working on a new vote-counter / mod-tool / player-tool project. I found that most tools either needed you to have some technical skills OR relied on a persistent server. Both of which are either unreliable or created a pretty hefty barrier to entry. I created a browser extension tool that bakes the functionality into the MafiaScum site itself to make using the tool as easy as accessing the site normally.
DISCLAIMER:
The tool is in early development and while it should all be functional, it is by no means confirmed to be super reliable.
Spoiler: Demo Video
Spoiler: Game Definition File
The .yaml file in the demo video is formatted as below. Make sure to replace all the required information and remove whatever you don't need. The only required section is the player list
players:
- Username
- Username2
dead:
Username: 123 # Post number of which they died.
startFrom: 123 # Post number of which to start from (usually a day start, if not added defaults to post 0)
endAt: 909 # If added, ends the counting at a particular post.
aliases:
Username:
- Alias1
- Alias2
Username2:
- OtherAlias
This is for desktops only, don't try and install on a mobile (I got no idea if there's even mobile browser extensions)
I will eventually have this project on an unlisted extension store (for all major browsers except Safari) but for now you'll need to load the extension yourself. Download the latest versions zip file here (don't download the source code) into a folder you will not be deleting (the extension will be run from here). Extract the folder so you can access the "manifest.json" file.
If you're downloading a version that has multiple sub-versions (v2/v3). If you're using a chrome-based browser, use v3 otherwise use v2.
All Chrome-based browsers should work like the following:
1. Enter your Extensions menu (the jigsaw piece lookin' icon). You can also write "chrome://extensions", "brave://extensions/" etc into the URL bar depending on the browser.
2. Enable Developer mode. Top-right area in both Brave and Chrome.
3. Hit the "Load Unpacked" button on the top-left area.
4. A file browser will appear, find the "manifest.json" file and load that file.
5. The extension should now be active and running.
To update to newer versions. Delete/remove the extension from the Extension page (I'm not sure what will happen if you just delete the folder, but maybe that works too). Then repeat this process for newer versions.
Soon, when the extension is on stores you should be able to update it without any issues just like any other extension
The .yaml settings file can contain a few sections, I will list them below with a description of how to write them. Like always, the player list is the only that is required.
Spoiler: Game Definition File Explained
The hash (#) means anything afterwards is a comment (does nothing), and thus can be ignored/deleted.
Unless you know what you are doing, keep the formatting as strict to what I've written as you can
Player List
List all the current players, remove any players that are replaced out and add in their new account. This will be done automatically on a later update, but for now it needs to be done.
dead:
player_name: 123 # Post number of which they died.
Replacements
For each individual replacement, show who was replaced by who.
Make sure to create a brand new list item for each new replacement, even if it was from a slot that had a replacement before.
Below is an example player_one was replaced by player_two who then went and replaced out again.
Sometimes the bot cannot know the difference between what people are referred to as (CSF) as compared to what they are listed as under this tool (Cat Scratch Fever). List out all you know they're being referred under in this section
## List all the current players here.
## You will need to list replacements here and in a replacements section
## The duplication will be removed in a later version
players:
- Username
- Username2
## List all the players that have died, and the post they died in.
dead:
Username: 123 # Post number of which they died.
## For each individual replacement, show who was replaced by who. Create a brand new list item for each new replacement, even if it was from a slot that had a replacement before.
replacements:
OldPlayerUsername:
- NewPlayerUsername
player2:
- player2's replacement
startFrom: 123 # Post number of which to start from (usually a day start, if not added defaults to post 0)
endAt: 909 # If added, ends the counting at a particular post.
aliases:
Username:
- Alias1
- Alias2
Username2:
- OtherAlias
Last edited by JacksonVirgo on Sun Dec 17, 2023 2:18 am, edited 3 times in total.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #5 (isolation #3) » Thu Sep 14, 2023 10:43 pm
Postby JacksonVirgo »
First update.
The vote-counter is working. Tested on Chrome and Brave. Firefox is temporarily not available but this is planned to be changed ASAP (within a week). The browser requires a .yaml or .yml file with data about the vote counter. If I find time, I will make sure to add different options such as
No-Data Vote Counts (shows you a generic list of all votes)
VC Settings in Post 0.
UI to input data to be stored and managed by the extension itself rather than as a file
But for now, the .yaml file is as follows. Make sure to replace all needed data and remove the values that are not needed.
The only required parts are the player list.
players:
- Username
- Username2
dead:
Username: 123 # Post number of which they died.
startFrom: 123 # Post number of which to start from (usually a day start, if not added defaults to post 0)
endAt: 909 # If added, ends the counting at a particular post.
aliases:
Username:
- Alias1
- Alias2
Username2:
- OtherAlias
Warnings for when a name spell-checking isn't entirely confident.
That's all I can think of but I wanted a third point
Installation Process
This is for desktops only, don't try and install on a mobile (I got no idea if there's even mobile browser extensions)
I will eventually have this project on an unlisted extension store (for all major browsers except Safari) but for now you'll need to load the extension yourself. Download the zip file here into a folder you will not be deleting (the extension will be run from here). Extract the folder so you can access the "manifest.json" file.
All Chrome-based browsers should work like the following:
1. Enter your Extensions menu (the jigsaw piece lookin' icon). You can also write "chrome://extensions", "brave://extensions/" etc into the URL bar depending on the browser.
2. Enable Developer mode. Top-right area in both Brave and Chrome.
3. Hit the "Load Unpacked" button on the top-left area.
4. A file browser will appear, find the "manifest.json" file and load that file.
5. The extension should now be active and running.
To update to newer versions. Delete/remove the extension from the Extension page (I'm not sure what will happen if you just delete the folder, but maybe that works too). Then repeat this process for newer versions.
Soon, when the extension is on stores you should be able to update it without any issues just like any other extension
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #7 (isolation #4) » Fri Sep 15, 2023 7:12 am
Postby JacksonVirgo »
In post 6, Thestatusquo wrote:
Was doing some testing and it doesn't seem like its accurately getting votes, seems to be having some trouble with users with spaces in their usernames.
I think the most desirable feature for non-technical users will be the ability to generate a yaml file and not have to make one themselves.
Oh yeah? What game are you referring to, I can fiddle around to see what the problem is. Not sure if it’s spaces as the example game has CSF in it, who has spaces in her name.
The plan is to have different options for game definition stuff, I just started with yaml as that’s what osukas tool used.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #11 (isolation #5) » Fri Sep 15, 2023 7:34 am
Postby JacksonVirgo »
In post 8, Thestatusquo wrote:
Its possible this is just user error on my part, I'll keep fiddling around. It was having trouble picking up random nurse for me.
I'm trying to think of the best way to input data for non technical people. I think the first post approach is probably best for the non technical user.
But maybe an option to generate the game file with text input fields would be useful.
Yeah so the form currently has two inputs for start/end. I was going to make a proper form for it, that you can use a yaml file to autofill that. Maybe storing the data to disk as well to make it super quick to reuse it in a particular thread
I have to cut the reply short so sending this but will eventually respond to the other two :)
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #12 (isolation #6) » Fri Sep 15, 2023 7:55 am
Postby JacksonVirgo »
In post 10, borkjerfkin wrote:
yeah, posting here just to acknowledge that i'm following this effort and those like it. I'm committed to getting an environment available to people who want to do first party development on the site as my next major endeavor such that a tool like this could eventually be baked in if we decided that was useful, although the approach here tbh might just be good enough as it is. Nice work!
Oo that’d be so exciting.
—
On a more technical(?) side though if you’re considering baking in this into the site itself, instead of doing stuff in the first post etc, might be easier and more intuitive to use the activity overview page as that has a list of all users (that has posted) anyway so it shouldn’t be too difficult to extend that I would think. Unsure, just spitballing at work lol
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #15 (isolation #7) » Fri Sep 15, 2023 11:09 pm
Postby JacksonVirgo »
In post 13, Thestatusquo wrote:
The idea we were tossing around is, similar to how PTs currently work where there is a list of players who have permissions to post.
We've sort of discussed doing something like this in the past because it would also do some other cool things like prevent alt slips.
Oh that'd actually be a really good idea, would also stop dead ppl from posting etc.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
The wagon formatting will now have the larger wagons at the top.
No-Elimination now is implemented with unique majority mech. 50% of living players is needed rather than a flat majority.
I've implemented new game definition settings, allowing to disable specific functionality. Currently only can disable no-elim but can easily be extended or copied into a way to add special/unique functionality that isn't usually used.
Now has manifest v2 support (so now you can run it in Firefox, although the styling in firefox is kinda wacky cuz I haven't focused on designing for it yet)
Spoiler: Technical Changelog
Putting this in a spoiler as chances are, not everybody cares about this side of it.
Added README to the repository so anyone and their mother can know how to compile this for themselves (unless I worded it like I usually do, which is probably the case :D)
Changed the folder structure to make it clear what files are background scripts vs main scripts.
Added ESLint so I can avoid shooting myself in the foot later
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #22 (isolation #11) » Mon Sep 18, 2023 12:18 am
Postby JacksonVirgo »
In post 20, Psyche wrote:
How much dev or validation do you think the vote tabulator itself might need? Can you remind of the basic strategy it implements?
I have absolutely no idea what you mean
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
In post 20, Psyche wrote:
How much dev or validation do you think the vote tabulator itself might need? Can you remind of the basic strategy it implements?
I have absolutely no idea what you mean
i think psyche is asking how the votecounter matches vote strings to players
For now I'm using a library that uses a form of Dice's Coefficient. I was planning on swapping it out with custom logic later.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #25 (isolation #13) » Mon Sep 18, 2023 1:55 am
Postby JacksonVirgo »
I wanted to work on something that didn't need you to add aliases for abbreviations or other things like this, and I want it reliable so I wanted to make sure to really put effort into fine-tuning, of which I don't really have time for rn
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #27 (isolation #14) » Mon Sep 18, 2023 6:20 am
Postby JacksonVirgo »
In post 26, Psyche wrote:
ok great!
i think i want to contribute along those lines if you're open, as i've done a lot of the legwork already in my various abandoned projects.
i'm willing to make sure it's in the right language and style too.
i think all i'd need to set things up is the initial implementation for the part of the code that parses votes
Of course :D
It's better to not reinvent the wheel after all
Post
Post #31 (isolation #16) » Tue Sep 19, 2023 9:45 am
Postby JacksonVirgo »
I'm not sure how reliably this thread is getting checked, if nobody that can answer this answers it I'll ask the right people directly but is it permitted/okay to add a form of analytics to the tool, it would be to focus on being able to identify and fix bugs, and also to know what feature gets used the most etc (to see what should be focused on).
The stuff logged would be
The thread the VC was requested for
The VC settings that was requested
The user who used the tool
Time when the tool was used and the time it took to process everything
Stuff like this.
The VC settings/thread is to be able to replicate the issue when errors pop up.
The time and user is just nice information to have but not super important
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #33 (isolation #18) » Tue Sep 19, 2023 9:54 am
Postby JacksonVirgo »
I'll give you the general rundown of the current workflow I'm using.
The "/src" directory is the root folder as per usual.
The "/src/app" is for content scripts, the scripts that will be run on the site itself.
The "/src/background" is for background scripts. So the code that does a lot of the heavy work like data fetching.
The "/src/types" contains global types and validators. I use Zod, which is not too difficult to understand but I might reword the variables to make it extra clear for you.
The "/src/utils" contains globally used utilities as per the name.
The main.css is what gets injected into the site itself. Might be worth renaming to "injected.css" or something.
I use JQuery (really hurts me) to edit the sites DOM and I use Cheerio (which is like a backend JQuery) to fetch the data so the logic is all the same pretty much.
Using JQuery to create large UI elements is actually cursed but I don't really know how to fix this outside of possibly using iframes but I think they're deprecated? Not sure
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #44 (isolation #25) » Thu Sep 21, 2023 2:01 am
Postby JacksonVirgo »
This is generally the form design I'm going with. I've still only got the upload input and the two post inputs but I'll flesh it out so that everything needed is there.
Uploading the yaml file is planned to auto-fill the form with all the appropriate data.
It's also an idea to store the data for each thread onto disk so that if you do fill out the form once, on new pages it should be filled by default. Maybe an option to export the form to yaml is an idea.
I want to add member verification to the tool too. So I can verify if a user actually exists with a given name or if you made a typo or something etc. Are usernames case-insensitive when it comes to making it unique? Can a JacksonVirgo and a jacksonvirgo both exist as two accounts?
Either way, the verification method I found is using the member list such as the following link and I can do a quick scrape to verify it but maybe that's a little intense to have for the server? Cuz that's like X fetches for X users and then the game fetching itself. Unsure memberlist.php?username=JacksonVirgo
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #45 (isolation #26) » Sun Sep 24, 2023 3:23 pm
Postby JacksonVirgo »
In post 26, Psyche wrote:
i think i want to contribute along those lines if you're open, as i've done a lot of the legwork already in my various abandoned projects.
I am curious what you've got, I recall you saying that you do some funky stuff regarding this (from osuka's thread I believe). If you have time I'd love to see how you did it
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
It says the add-on is corrupt when I try to "install add-on from file" and install "manifest.json"
I've found that Firefox is a little weird when it comes to loading unpacked extensions and you need to load it in a different area than traditional extensions for some reason, probably security. You can do so via the following
These will need to be re-installed every time you restart your browser, which is not ideal so I don't recommend outside of testing.
I am going to be working on getting the extension validated by Firefox itself so you can install it properly and without it being temporary, but I haven't looked too far into it so I have no idea if I can or not but:
Post
Post #51 (isolation #28) » Mon Sep 25, 2023 9:54 am
Postby JacksonVirgo »
In post 46, Psyche wrote:
The broad idea behind the validation framework is to bootstrap evaluation of votecounters using info recorded in the site's various game archives.
The game archives tracks for a lot of games who was eliminated each day, and eliminations (usually) depend on votes.
Therefore a good votecounter, given each thread mentioned in the archive and a post number initiating each day, should be able to reliably predict who was eliminated those days.
Not necessarily all of them -- mods can make weird calls or flat-out mistakes, PRs and other shenanigans can mess with hammer conditions, and aliases (like alt or irl names) might have nothing to do with a slot's username.
But still, most of them.
So what I did was take archive data, scrape applicable games, and set my votecounter to predict D1 outcomes across all of them.
Wherever there were errors, I checked them out. I ignored errors that could not be addressed with a fix to my votecounter, and tabulated -- and eventually fixed -- errors that potentially could.
Once errors were addressed enough for D1 outcomes, I similarly generated predictions for successive days.
Frequently, I needed to manually annotate D2+ post number start positions when long twilights messed with votecounting, but this also helped identify cases where the votecounter accurately predicted a lim, but thought hammer happened earlier or later than it really did.
So this method wasn't a perfect way of testing and identifying gaps in the votecounter, but it saved a lot of time compared to the hypothetical alternative of manually coding the target of every vote across games on the site and using those as test cases. And remains usable for new votecounter implementations that might be introduced in the future.
The votecounter was a grab-bag of different techniques. The validation technique confirms it works well, but because of the feedback-driven process behind how I made it, it doesn't have some basic principle behind it.
Ooo so you go the like "statistical" approach, that'd be interesting to see how it stands up against a more focused algorithm.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #52 (isolation #29) » Mon Sep 25, 2023 11:12 am
Postby JacksonVirgo »
To be verified for Firefox I need for them to be able to test the project so before I go get the MVP done I will make sure that the whole process is polished, I'll make sure to add a way that doesn't require a YAML file upload. And I will also allow a way to not require settings at all (just getting a list of votes, or even the last votes of players for people to verify a manual VC).
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
I'd probably use the activity overview page, add a new button where the "PM Selected" button is to be "ISO Selected". Seems the easier way to do it, makes ISOing a whole slot or a specific group of people at once easier.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #56 (isolation #33) » Fri Oct 06, 2023 7:12 am
Postby JacksonVirgo »
A few random ideas I wanted to test out and try are
Post highlighting for when quoted like how a discord ping highlights. Can be used to highlight
@Host
or similar things as well, maybe even like references to your name? But that would require to scan and parse every post, not sure how fast that would be on the fly.
Marking posts so that you can go back and see only the marked posts. I feel this might be bad though as it would likely need quite a lot of fetches unless limited.
Ofc each of these would an opt-in toggle somewhere
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
What browser did you want this to work for specifically?
For Firefox, I will need to get this reviewed and accepted by Firefox to be put on their extension stores (unlisted clearly) which will take an unknown amount of time from the moment I go and submit it, with no guarantees a tool like this would even get accepted. Unsure how it all works honestly
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #76 (isolation #39) » Fri Nov 10, 2023 10:59 pm
Postby JacksonVirgo »
In post 75, Zachrulez wrote:
My understanding from what I've read on the download page is that the extension is compatible with Chromium based browsers so it's effectively compatible with virtually every web browser. (Except for Firefox)
Yeah exactly, the process might be slightly different depending on how they wanted to pay the extensions menu out but if you scan the process should be
1. Turn dev mode on
2. Find the load unpacked button
3. Find downloaded v3 folder and open it (or the manifest.json file within)
4. If v3 fails attempt the same with the v2 folder
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #82 (isolation #43) » Sun Dec 17, 2023 2:00 am
Postby JacksonVirgo »
In post 81, Aureal wrote:
Yeah, the file formatting is possibly not explained well enough. A sample file might help? My first attempt at formatting the .yaml file led to absolutely nothing happening when I clicked the button. Removing the parts other than the playerlist and changing the indentation of the names through direct copy-paste of the formatting makes it
try
to do something, but it just pulses circles forever until leaving the page. Tested it on both Edge and Opera.
Is it supposed to actually be able to located the .json file when loading the extension? It loads when I navigate to the folder the file is in and tell it to use that folder so I thought that was good enough, but the file browser isn't actually
seeing
the file there.
Ah thanks for reminding me to format/explain an example better. How large is the game you are trying to make it work for?
It doesn't need to be in the .json file no, it can be located anywhere.
I'll write up a more in depth explanation as to how you can set up the settings.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #83 (isolation #44) » Sun Dec 17, 2023 2:17 am
Postby JacksonVirgo »
The .yaml settings file can contain a few sections, I will list them below with a description of how to write them. Like always, the player list is the only that is required.
Spoiler: Explanations
The hash (#) means anything afterwards is a comment (does nothing), and thus can be ignored/deleted.
Unless you know what you are doing, keep the formatting as strict to what I've written as you can
Player List
List all the current players, remove any players that are replaced out and add in their new account. This will be done automatically on a later update, but for now it needs to be done.
dead:
player_name: 123 # Post number of which they died.
Replacements
For each individual replacement, show who was replaced by who.
Make sure to create a brand new list item for each new replacement, even if it was from a slot that had a replacement before.
Below is an example player_one was replaced by player_two who then went and replaced out again.
Sometimes the bot cannot know the difference between what people are referred to as (CSF) as compared to what they are listed as under this tool (Cat Scratch Fever). List out all you know they're being referred under in this section
## List all the current players here.
## You will need to list replacements here and in a replacements section
## The duplication will be removed in a later version
players:
- Username
- Username2
## List all the players that have died, and the post they died in.
dead:
Username: 123 # Post number of which they died.
## For each individual replacement, show who was replaced by who. Create a brand new list item for each new replacement, even if it was from a slot that had a replacement before.
replacements:
OldPlayerUsername:
- NewPlayerUsername
player2:
- player2's replacement
startFrom: 123 # Post number of which to start from (usually a day start, if not added defaults to post 0)
endAt: 909 # If added, ends the counting at a particular post.
aliases:
Username:
- Alias1
- Alias2
Username2:
- OtherAlias
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #84 (isolation #45) » Sun Dec 17, 2023 2:19 am
Postby JacksonVirgo »
I also thought I had some kind of display to show steady progress, to see it's actually working and not frozen (not talking about the spinner), if not that's probably something I should add ASAP
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #86 (isolation #46) » Sun Dec 17, 2023 9:39 pm
Postby JacksonVirgo »
In post 85, Aureal wrote:
Yeah, I can't see that I'm doing anything that doesn't match your example. I'm not familiar specifically with .yaml format but I'm not totally ignorant of code and nothing in the further explanation helps figure out what's going on. I copy/pasted the playerlist section directly from your latest example here to make sure the spacing was what's intended and it's still just simply doing nothing again when I click the button (after trying to adjust things further I was never able to get back to even seeing the eternally-pulsing circle again. And yes, the circle is all I got when I had it, there was no text accompanying it like in your demo video).
Spoiler: just using the playerlist for a barebones effort
players:
- Black
- NekoLover
- DragonEater70
- FakeGod
- Klick
- Titus
- Dannflor
- Skygazer
- Claptastik
for the game here if you want to see if it works for you, all I can think right now is there's some incompatibility with my system. I don't really feel like putting all this on Chrome just to test whether somehow straight-up Chrome will work where other browsers fail. :?
Ah right, it seems using tabs instead of spaces don't work even though I expected them to.
I tried the following and it worked with your linked thread, give this a whirl.
Post
Post #89 (isolation #48) » Sun Jan 07, 2024 6:09 pm
Postby JacksonVirgo »
General update time, none of these changes are available right now unless you compile it yourself (the new game def isn't added, at all but I wanna see if people have thoughts one way or another on that first)
I added a popup menu you can use to select which additional functionality you want to use, all of them except the vote-counter will be disabled by default. The only one I have now is quote highlighting, making it very easy to see where you're being quoted (and sub-quoted). I've been using it for a while to see how well it works and I love it so I feel so will you.
Now that 3+ people have had issues with using yaml, and how I realised how bad the actual file is formatted I wanted to abandon cross-compatibility with osuka's tool (rip) and focus on a .toml format which allows for linking data close together so all information about a single player is next to each other.
As you can probably tell via intuition, each [[player]] creates a new player underneath it with whatever information you need about them. One stipulation I gotta make though is that even replaced players are labelled as [[player]] and must not be deleted but instead have a "replaced" value of them in the slot that replaced them. If this is too confusing I can add a [[replaced]] to be used instead but I don't feel that's necessary.
start_from = 123
end_at = 456
[[player]]
name = "JacksonVirgo"
aliases = "JV, Virgo" # create as many aliases as you want seperated by a comma
replaced = "Cat Scratch Fever" # who the player replaced, if any
died_at = 123 # post number the player died at
[[player]]
name = "Psyche"
[[player]]
name = "Cat Scratch Fever"
aliases = "CSF"
This is much easier to understand I feel than having everything split all over the place.
If I don't get any feedback (and that's okay <3) I'll likely move to this format going forward.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #91 (isolation #49) » Sun Jan 07, 2024 6:32 pm
Postby JacksonVirgo »
In post 90, Psyche wrote:
i can imagine the potential issues but feel like it’d be ideal would be something close to what mods already include in their OPs - or, say, something suitable for said inclusion. maybe can use the archive threads as a reference if it’s worh the trouble; they include most of these details in a structured but plain languagy format except alias.
Are you talking about putting the data in post 0? I did wanna eventually have many ways of giving the VC settings such as file upload, post 0, custom UI form (storing in the extensions storage, or possibly on my mafia engine bots database so that many people can use it). Etc
I've just been procrastinating pretty hard on building out the UI to do it through that which is by far the most user-friendly way to do it. Exporting to the .toml file is also a good thing to share the settings with other hosts.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #92 (isolation #50) » Sun Jan 07, 2024 9:18 pm
Postby JacksonVirgo »
I mean I hate CSS so much and I've been having issues with the layout given the choices I've made which is why I have been procrastinating making the form fully complete so I decided to dump the current popup style and instead have the form on the page itself, like here's a video of where I'd put it (which it looks so cool too so I'm trying to show off my idea )
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #94 (isolation #51) » Mon Jan 15, 2024 6:15 pm
Postby JacksonVirgo »
In post 93, Psyche wrote:
ive gotten pretty handy at javascript/typescript now, so that's one barrier to entry gone for me to actually do things
but yknow, i'm probably just blowing hot air
Oh huge W
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #95 (isolation #52) » Mon Jan 15, 2024 6:16 pm
Postby JacksonVirgo »
The repo is currently in a form of transitional period of sorts where I realised the code was absolutely all over the place so I'm trying to structure it better.
I also gotta update the README so that it's very obvious how to set it up and work on it
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
In post 92, JacksonVirgo wrote:
I mean I hate CSS so much and I've been having issues with the layout given the choices I've made which is why I have been procrastinating making the form fully complete so I decided to dump the current popup style and instead have the form on the page itself, like here's a video of where I'd put it (which it looks so cool too so I'm trying to show off my idea :sob: )
Similar to last time if you've got css questions I'm happy to rubber duck
Ooo thank you I'll do exactly that. I wanted to add a players tab, where you can add/remove/edit player data in the UI itself rather than with a game definition file.
I seemed to do it fine, the form for editing the user itself was perfectly fine. It was anything to do with scrolling. I wanted to list them all and have an internal scrollbar for if there's more players than what fits on the UI. But it didn't scroll no matter what I seemed to do, it just made the popup larger to fit the data which I don't really know how to fix.
Although now that I'm saying this now, if I put a max-height on the UI itself it should lock up at a particular height and then scroll internally. I'll give that a stab
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #101 (isolation #56) » Sat Feb 10, 2024 4:20 pm
Postby JacksonVirgo »
I've been massively overcomplicating it and the break for personal stuff has made me realise that so gonna simplify and then complete this and then have a personal pizza party
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #103 (isolation #57) » Tue Feb 13, 2024 8:15 am
Postby JacksonVirgo »
In post 102, Psyche wrote:
am sure to drift in and out but would like to fit in some time to start contributing and helping keep momentum. would also help me build my comfort w/ typescript and get ideas for my other projects.
first step is probably checking if i can set up the dev environment by following your instructions
in the meantime do you think there are any "good first issues" you could add to the repo that could get my feet wet w/o disrupting your other plans?
Yeah so I just remembered I left the repo in a state that's broken in the sense that as soon as the bg script idles, the page needs to refreshed and thats not a super long time either so just beware of that. I should get that fixed pretty soon (today or tomorrow).
In terms of good first issues, I'll get back to that I just need time to look back over the project
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #105 (isolation #58) » Tue Feb 20, 2024 11:20 pm
Postby JacksonVirgo »
In post 104, yessiree wrote:
been wanting to contribute to this project too, i'll revisit this soon!
quick question @JV, why did you decide to use a package like zod, as opposed to just regular TSDoc? zod is kind of intimidating to see in a ts project ngl
I used what I was most comfortable with as I wanted to spit something out pretty fast, I haven’t touched much tsdoc all things considered even though I probably should.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"
Post
Post #108 (isolation #60) » Wed Feb 21, 2024 3:29 pm
Postby JacksonVirgo »
I fixed my computer once again so with people wanting to contribute I should probably fix the glaring issue which is the timeout problem, I overcomplicated it to all hell and I really shouldn't have.
"Am I a ghost like you, caught between the seams of two intertwining melodies?"