#General Chat
1 messages · Page 10 of 1
perfect
I've added a small tip to Crystal Cries mentioning the antisynergy between it and Sole Solution, since it stops you from collecting souls while active and you rapidly hit the cap for how many can be spawned at once.
[[light source]] should be updated to contain the special polus replica one, info for new stages and maybe the special ones browny, newt and zi'appunta can find
agreed, just need someone to upload them
@regal flame
also do we know how much damage iron ball and wrecking ball gain from armor
5 base damage per armor
perfect
one question, if a weapon has ❌ to all the interactions with passive, it means that no passive has effect on them or that nobody look into them yet?
just hasnt been filled in yet
ok, thanks
[[Category:Animated_light_source_sprites]]
you dropped this: 👑
@hexed oasis is it possible to italicize the page names of tracks from [[Template:Infobox Music]] using lua only?
yes, but i don't think they should be, grammatically italics are used for longer works like album names or tv shows, but not individual songs or episodes
alr
cuz I saw the undertale wiki do it, oddly enough.
e.g. https://undertale.wiki/w/Memory_(10_Years_Later)
so I asked myself if we should do that on vs wiki or not
(mc wiki doesn't though. e.g. https://minecraft.wiki/w/Aria_Math)
could put them in quotes if you really wanted to, that's the proper gramitical way of "stylizing" song names, but tbh i think quotes just adds a bit of visual clutter that isn't really necessary - you already know the page you're looking at is for a song
yeah, I agree quotations look like clutter
it's what wp does ¯_(ツ)_/¯ https://en.wikipedia.org/wiki/Stayin'_Alive
so I guess we'll just leave track titles as they are
imagine if we put quotations in the navbox for each track though lol, that would be so ugly
yea, that definitely adds to the visual clutter
Should we have a page that lists differences between consoles even if few?
Could probably explain them in the [[vs]] page
oh yeah, I'm currently making that article btw
it's done, yeah it took a while: {{Sopravvissuti ai vampiri}}
Sopravvissuti ai vampiri is a series of videos released by poncle on their YouTube channel. It debuted with "Laborratorio ora disponibile" on 1 May 2024.
coincidentally, i was just thinking of potentially making pages for all the videos, even got some of the data into a sheet already, though missing release date and description https://files.catbox.moe/v3407t.png
Awesome, great minds think alike
Though my page would probably exist either way, considering that it is a distinct video series
yea
Does it include shorts?
this is just a grab of everything in the videos tab, no shorts
Does jagex have yt shorts? If so, are they documented on the rs wiki?
yea they do
i was also considering potentially reuploading them to archive.org - rsw does that for livestreams since twitch autodeletes them if they aren't highlighted and you can only have 100hrs total of highlighted past broadcasts
Good idea
but idk, they're regular videos and poncle only has 1 stream video and it's highlighted https://www.twitch.tv/videos/2290101921
also, i don't think we'd have any use for it, at least i can't really think of any good uses, but if there is any, i could port over rsw's dynamic charts https://runescape.wiki/w/Module:Chart_data#Examples
though you do need to build the chart in lua, so even if i did port it, idk if anyone else other than me would even really use it over here ¯_(ツ)_/¯
Those look sick
it's essentially a lua wrapper for chartjs https://www.chartjs.org/
That's interesting
yay, track pages are starting to get picked up by google!
@wise crown [[Chaos (disambiguation)]] not sure i agree with all the extra links and being overly descriptive on disambig pages like that - imo generally disambigs should only have links to the pages it's disambig'ing between, and just enough of a description to differentiate each of them to the reader
(ik we're not entirely following rsw's style guide and we're free to have our own, but they do tend to have a lot of prior discussion behind them - https://runescape.wiki/w/RuneScape:Style_guide/Disambiguation#Individual_entries)
we've also got the sprite images to help disambig between them, so i'd think we need even less of a description, but if you think someone specifically going to Chaos (disambiguation) would be looking for a link to Bone, for exmaple, i'd love to hear why
perhaps we could go with "Chaos X, Y's relic used for [[Evolution#Morph|morphing]]"?
or just removing the desc entirely in this case?
idk, it just feels really cluttered for a disambig right now that's ideally supposed to be just a quick reference to move people onto the right "chaos" page they were looking for
looks like wp style guide also disallows links in disambig descriptions https://en.wikipedia.org/wiki/MOS:DABBLUE
how would we deal with a case like this then? 🤔 {{Belpaese}}
Belpaese, which is the family name of multiple characters, may refer to:
• Antonio, a character who starts with the Whip and the default character that players start with.
• Imelda, a character who starts with the Magic Wand and has her own adventure.
• Pasqualina, a character who starts with the Runetracer.
• Gennaro, a character who starts with the Knife.
• Zi'Assunta, a character who starts with the Vento Sacro and is unlocked by opening her coffin in Cappella Magna.
• Zi'Appunta, a character who starts with the Ammo Appalate and is unlocked by evolving the Ammo Appalate.
some things like that probably shouldn't be a disambig, it should be more of a full page, describing the family relations/family tree and whatnot, tho i don't think we really have any of that info, so i'd just remove the descriptions entirely, and reword the initial line a bit https://files.catbox.moe/bwg7n5.png
Got it
maybe once the book is released we can revisit that, if it has any family info ¯_(ツ)_/¯
yeah
I think the first four are all siblings and zi'assunta is their mother from what I know? obviously, nothing is set in stone, but this is from what I could catch
(also btw careful with that category renaming - beta content category was referenced in a bunch of modules, thankfully a quick jwb fix tho)
yeah, it sounds like the book will have a lot of interesting clues
kinda wish there was a way to find which modules reference that category
[[Category:Beta content]] doesn't list them
can always insource:/Beta content/ and restrict to module ns
or select all namespaces in case if that category could possibly be lurking somewhere even harder to find
but seems like we got them all
yea
Wanted to ask this question a bit earlier, but for the case of the Chaos disambiguation, do you think using headings would make sense here?
E.g.
== Relics used for morphs ==
Or
== Relics ==
Chaos X
Chaos Y
Chaos Z
And then:
== Other ==
...
I've seen Wikipedia and Minecraft Wiki do this with their disambiguations
that's a bit where wp and rsw style guides differ - they can be used if there's enough items in each section to justify it being a section (i'd say 3 or more items in each), and you'd only use top-level sections, no subsections, but where the style guides differ is in how to create the sections - rsw generally prefers ;section when it's a smaller disambig page overall and ===section=== when it's a larger disabig page, disallowing ==section== (except for See also), but wp prefers ==section== in both cases
though you can also use a list item like this https://files.catbox.moe/fjfvam.png
Ok that looks good to me 👍
UPDATE: Soon, with the upcoming MediaWiki upgrade, anonymous editors will no longer have their IP address exposed. They will be replaced with temporary accounts, instead.
Thank god
Yeah
This was a quirk within MediaWiki, which powers our wiki, not the wiki itself
Also, quick note: while Weird Gloop is upgrading our wiki, the wiki might be temporarily unavailable to edit, but it's only for a really short period of time. If you're making an edit on the wiki, make sure to copy-paste your text and have it saved somewhere
(although I don't believe anybody is editing or adding something significant to the wiki now, but it's something I personally experienced with other wiki farms when they upgrade their MW version, just wanna let y'all know)
poncle don't reveal vampire fighters now so the wiki edits will work when it's revealed hopefully

got [[videos]] started with a couple examples
and at some point i'll let this bot i've been working on grind through making pages for all the videos https://github.com/Californ1a/vsw-bot - i want to clean up a bit more in it and make sure i've got time to check over all the edits it'll make before running it, but it should take care of making all the pages and uploading the thumbnail images
there are a couple instances it'll skip over a video though, like if it's named the same thing as an existing wiki page (eg https://www.youtube.com/watch?v=ajQONQJPp-g) or if two videos have the same title it'll skip both (eg https://www.youtube.com/watch?v=0XRi8ddiK34 & https://www.youtube.com/watch?v=liC0AjnF3PE) - trying to think of a good way to deal with automatic creation of those, but it just notes them down for me right now
also idk what's up with the youtube api, but i've only been able to get about 367 videos max from poncle's channel via the api, yet in youtube's own web ui it says there's 391 videos ¯_(ツ)_/¯
probably some private or unlisted videos
also, either way, once your bot makes the video pages, our wiki would become twice as large as the fandom wiki in terms of number of pages
and even reach 2k pages by then
not to mention vampire crawlers coming out later, there will easily be like another 100-200 pages added to the wiki later on lol
@hexed oasis will the bot auto-generate pages for newly uploaded videos or will you have to make them manually or semi-automatically? (For the last one, I mean like the update posts)
And will we need a navbox for videos, or would that be unnecessary? From what I have seen so far, RS Wiki doesn't have a navbox for the videos, just an automated list on their "Video" page
Right now the intention is just for the bot to deal with the initial mass of videos and we can manually make pages for new ones after that
But it has been written in a way that it saves the publish date of the last video it made a page for and is able to resume making new video pages starting at that publish date if I re-run it
It's also not something that's going to be perpetually running, occasionally checking for new videos, it would have to be manually re-run, but it's also written in a way that changing it to be something that occasionally checks for new videos and re-runs on its own wouldn't be too difficult... I just don't really have a server to keep stuff like that running on
And yea a navbox would be overkill
btw if any {{#ev:youtube|...}} are smaller than 321px, they use a tiny 120px thumbnail image that gets scaled up, so it's best to make sure they're at least 321 - thumbnail sizes for youtube https://files.catbox.moe/hrwpl6.png
made a page for the latest video: {{Let’s Explore Vampire Crawlers - Episode 3}}
Let’s Explore Vampire Crawlers - Episode 3 is a video that was released on 5 February 2026.
5 February 2026
Gameplay explanation
01:38
ah yes, I wanna read about a specific editor on the VS Wiki lol
and another specific wiki editor from an entirely different wiki lol
and I think this is someone who works for Weird Gloop
there are a few more familiar names that you can find in [[Special:SearchDigest]]
familiar names can also be found at [[familiar forge]]
yeah, seems like I did
is that a person
probably not
idk what they're expecting to find with this 😅
considering 6 people searched that, there has to be a meaning
could probably just one person searching it multiple times
true
i looked on google and the only thing that appeared is a user page on a random fandom wiki that might not even exist anymore
our wiki has like hundreds of thousands, if not millions of monthly visits
of course, at least one person is search for something odd
well, it does exist, but yeah
https://nichibros.fandom.com/wiki/User:Dfhthhr6hdhdtth
probably they play vs and were searching themselves up?
nothing of concern ofc though
indie wiki buddy might just not be working very well right now because it can't load the page
you mean breezewiki? it's just a separate frontend for fandom that indie wiki buddy happens to optionally support from its extension
yeah that
yeah breezewiki sometimes have issues with loading/updating pages unfortunately]
either way, I personally prefer using firebox + ublock + installing a script/stylesheet on fandom that removes all the bloat and makes the wiki skin a little reminiscent to vector-style wikis (aka the vast majority of non-fandom wikis, including wiki.gg wikis, miraheze wikis, weird gloop wikis, wikipedia, etc.)
here's what your logged out user sees
and here's what I see on my fandom account on the old wiki. see how debloated the old wiki looks?
oh wow that's quite cool
yeah
too bad, fandom doesn't allow you to publicly debloat your wiki like that
you can do whatever you want in your personal css, but not site-wide
i was going to run the bot through all the videos today, but it's having trouble uploading the thumbnail images... just keeps getting a badupload error saying the file was only partially uploaded for some reason, might be some kind of weird conflict between bun's file i/o and mwn's upload
unfortunately the upload_by_url user group perm isn't on bot, only admin+, so i can't just directly do that unless i ask wg to add my bot to admin (which i probably should do at some point anyway), or ask them to add that perm to the bot group (probably both tbh)
i'll have to mess with it some more later to see if i can find some workaround that'll actually upload files
yup it was a bun issue, backported to node and it's working :/
looks like there's a whole bunch of issues with multipart formdata in bun right now
https://github.com/oven-sh/bun/issues?q=sort%3Aupdated-desc is%3Aissue is%3Aopen formdata
oh well, maybe if those get resolved i'll be able to go back to it, it is much nicer than node
{{Doot.mp7}}

{{Special:Statistics}}
i'm doing them fairly slow, in batches of 10, just so i can take a quick look over them ever batch https://files.catbox.moe/djxwwm.png
and then all the category and subject params will need to be filled in... actually need to watch the videos to figure out what each of them are 
unfortunately there's no way to tell if a video is in Shorts from the youtube api, that's just not something they expose, otherwise i'd love to have just automatically put category=shorts on all those... the only other way to do it would be based on the video's duration, but that method really sucks since videos can just be short regular videos that aren't in the shorts tab
That's dumb that the api doesn't differentiate between shorts and regular videos
You can tell a lot of the "long" videos are just soundtrack reuploads, so it might be easy to do in plenty of cases
it's probably because yt doesn't want people making alternate sites that just filter out shorts tbh
well that's annoying https://files.catbox.moe/ptjmcy.png
guess i'll temporarily put tinyurl in the spam whitelist...
also now that i've got the basic setup for this done, i could probably do other stuff with it as well, like pulling in dezz's json files and running through characters, stages, weapons, etc. and autofilling the infoboxes with whatever can be parsed from them, possibly
[[Dó̸͚̩̖̝_̸̜̼̝͔n̴̾̾̄̄ot̴̲̹̤̮_̵̋͠o̶͐͋̓́pè̵̐̐͘n]]
Interesting
considering whether to stick edit buttons in the table to leave them blank https://files.catbox.moe/98wz2z.png
decided against it, makes it look like it's filled in at a glance when it isn't
and that should be all of them done now, except these duplicates it skipped over https://files.catbox.moe/7bgiga.png those will probably have to be made manually
Last 2 have shorts, right?
Could do something like X and X (short) I guess
alright i think i dealt with those in a decent enough way
i think i found a half decent way to determine if something's a short, they generally don't have a description
i'm just running through all the ones with no description now and letting the bot add shots category to those
weird little fun fact, quite a few of their video descriptions unnecessarily had a bunch of these invisible left-to-right marker control characters in them https://files.catbox.moe/3sxho4.png
that's weird
sometimes even right in the middle of a word, like "composed" here https://files.catbox.moe/jotpbw.png
@hexed oasis any idea if the rs wiki has a more comprehensive video page?
(I mean like a page that describes a video beyond the infobox, intro, and official description)
nah, the most manual thing they'll do for videos is transcripts like this one https://runescape.wiki/w/Transcript:RuneScape_Lore_Marathon_-_from_RuneFest_2017
tho they will usually start off by just copying the automated ones like this https://runescape.wiki/w/Transcript:RuneFest_2013:_Celebrating_Story
and archiving livestreams ofc
now that's a whole set of new page ideas! /j
since we don't have a namespace, probably just add a /Transcript subpage to video pages, if we did ever want to do that
it's not really needed since we don't really have any in-game dialog that needs transcripts of, so it'd really only be for the videos
yeah I agree
or the transcript can be within the video page
and that's if it is needed
also i definitely don't want to be the one writing transcripts or i'd be doing it on rsw
oh yeah, I asked this cuz of this page I made: {{Sopravvissuti ai vampiri}}
I was wondering if I should copy over my notes/synopses on the individual pages or not 🤔
sure if you want to, go for it... also looks like the bot missed making the page for that first one for some reason... i'll have to check through the list the bot got from the api vs the list i can see directly on their channel page, try to figure out if there's any others it missed
yeah
I'm making that page manually
here's this is you want it for anything, the current list from the api
i'll probably throw together a "make one page from this specific video id" script once i figure out if there's any more it missed
unless that's like the only one, then i might not
doubt it tbh
@hexed oasis one final question: would it worth adding "Videos" to the mp/sidebar? I'd say not, but then, we don't have Updates included either (which is also an automated list)
nah
generally i'd say stick to just stuff that's actually in-game content for main display/nav stuff like that
same reason i'd say not to add videos to disambig and otheruses type stuff either
makes sense
hm, there's 24 videos it skipped over, and i'm guessing they're probably all around a similar date since it fetches from the youtube api in chunks of 25 videos each, it probably just missed one chunk
nah nvm, just checked around that date and it has the others nearby it, no idea what the pattern for the missing ones is
alright it's found the missing ones now
gonna take a min to go back through the whole list and make pages for the missed ones
alright should be done now
@hexed oasis since I am currently about to expand the individual pages for the sopravvissuti ai vampiri videos, do you think I should remove the notes and synopses from the main opravvissuti ai vampiri page and move them over to their individual pages, or should I keep them? 🤔
probably fine to keep them
ok, got it
main thing i'd say for expanding the individual pages is probably keep description as the first section - add stuff before description is fine but if you're making new sections they should probably go under the description
yeah, that's what I am aiming for
intro, official description, synopsis, trivia, and gallery
gallery before trivia
ok
might put transcript between synopsis and gallery, but part of me wants it on a subpage too
should I go with the subpage? I think that makes the most sense
yea transcript should probably be a /Transcript subpage
will help keep them consistent if other longer videos also get transcripts eventually... like this one we'd definitely not want to dump the transcript on the page itself
https://vampire.survivors.wiki/w/Poncle_%26_Innersloth_Developers_play_'Vampire_Survivors:_Emergency_Meeting'_Among_Us_themed_DLC!
47min livestream vod
oh hell no 🤣
did anybody on the rs wiki ever make a transcript for a stream vod?
yea it happens, i won't say often, but there are some people over there who are big into transcripts
nice
like this one's about 2hrs https://runescape.wiki/w/Transcript:RuneScape_Lore_Marathon_-_from_RuneFest_2017
love the dedication
crazy thing is a lot of quest transcripts are way larger than videos... here's the top 20 biggest articles in transcript namespace - left side is videos, right is quests
https://files.catbox.moe/7keesg.png
so that 2hr stream transcript is 136kb, but the longest quest transcript is nearly double that
I mean, haven't really played runescape, but considering the game's massive scope, I probably wouldn't be surprised tbh
wanted to ask a silly suggestion, would it be possible to have some sort of custom mouse cursor when browsing the wiki
no
K
Fair
but of course, you can always edit your personal css to include custom cursors though!
it's definitely something you can set up personally though if you wanted it just on your own account
(& if you don't know css, feel free to ask and we can probably make it for you)
technically i guess it's also something we could have as a gadget or toggle in the appearance settings so you wouldn't have to do personal custom css only for your account, others could just toggle it on, but that would mean it's kind of locked down to just whatever specific one we put in there whereas your personal css can be whatever you want
yea
btw @wise crown for the transcript link, you can {{Main|/Transcript}} or {{See also|/Transcript}}, rather than needing the whole page name and such
this is the trick that I do :p
yea but the links are super long with the whole page name, less clean
alr, I'll change them
Expanded all of the Sopravvissuti ai vampiri video pages. Will work on the transcript subpages sometime soon.
@hexed oasis btw, in these transcript subpages, I'm considering doing something like:
- Poe Ratcho: X
- Guest character: Y
- Poe Ratcho: Z
- Guest character: W
In the first line of each character, there will be an icon link, but for the rest of the lines, it will just be character icon, then character name
Do you think showing the character icon in each line of dialogue would be more readable or less readable in this context? 🤔
i'd keep the transcripts to just text
Alright
On a related note, do we know who does the voicework for those videos?
anon temp account names can have a custom wordlist they pick from https://meta.minecraft.wiki/w/MediaWiki:TempUserWordList
we could throw a bunch of character names in ours if we wanted
sooo
is it like any of these words will be chosen at random
and then a string of numbers?
https://meta.weirdgloop.org/w/Temporary_accounts
just says something like ~2026-<randomized indicator>
idk if there's any recommended amount of words to have, like if there's a good minimum count you should have
I'd argue it depends on our editor base
like as in how many anons will edit our wiki
rsw's list is way bigger than mcw's https://meta.runescape.wiki/w/MediaWiki:TempUserWordList
yea, you probably just need enough for the system to pick an unused one until the 90 days has passed and an old one gets freed up... we'd probably be good with only just like 5 words 
i might just dump all the character names on there, or at least most of them, the ones that can be a single word
I'm thinking of having the 16 main base game characters' aliases
well i don't want to have too few and it cause some kind of weird issue, so we probably want to have like 100 just in case
alr
also never know if we get a spike in editors at some point ¯_(ツ)_/¯
maybe crawlers pops off with the demo, who knows
yeah
I'd say let's go with most base game characters, most of the secret base game ones, and some enemies from the 5 standard stages
I'll do the list
check it out: [[MediaWiki:TempUserWordList]]
The list mostly consists of base game characters and some of the enemies you find in the standard stages
I've talked with Kerri (poncle's community manager), although she is not involved with the videos, she believes that there aren't really any voice actors involved, but rather, it is just text-to-speech translated into Italian
@hexed oasis today I learned that Special:ChangeContentModel is a thing at all
rarely needed but yup
true
finished the transcripts for the Sopravvissuti ai vampiri videos
[[Category:Sopravvissuti ai vampiri transcripts]]
this thread is a fun read lol, seeing people praise all the other cool wikis on the web
https://www.reddit.com/r/whenthe/comments/1qwd6kp/finally_i_can_read_trivia_about_my_favorite/
Fixing the link so that you don't get reddit's thumbnail bullshit:
https://www.vxreddit.com/r/whenthe/comments/1qwd6kp/finally_i_can_read_trivia_about_my_favorite/
gonna slowly chip away at making a proper main page for crawlers https://files.catbox.moe/hz66a5.png
@wise crown feel free to edit [[User:Californ1a/Crawlermain]] if you want - i'd like to at least have a basic main page ready for the demo
(the bg img in the first panel is in inline css that mw doesn't actually load, you'll have to copy it from source into devtools)
king, will check it out once I go to a grocery store and back
like 30 min or so idk
definitely no rush, demo release is still about 2 weeks away
True
POV: you enter to the VC main page:
what's the image that you used for the first panel?
POV: you use the wiki at all:
🗿 🍷
[[File:Vampire crawlers 16 9.png]] - but there's also some other stuff in the style, just grab it from the style attribute of that div in the source (mw doesn't load it since it uses url(), but it's in there)
I see
I might consider doing a sort of cropped version of that img
make it match witht the vs main page
[[file:Main_page_tile_background.png]]
yea for the final version it should be cropped, just using the full thing for now so i can easily adjust the alignment/position to see what part of the image works best
also
any idea on where we should put the mp eventually?
I'm thinking something like using external template on mp and make it link the vc mp, which will be on Crawlers:Wiki?
something like https://minecraft.wiki/w/Dungeons:Wiki (but except they use tabbers)
either that or "Vampire Crawlers Wiki" in mainspace
and make it styled like Crawlers namespace and the Vampire Crawlers page :p
this is what I went with
dang, my intrnet is so slow, took me like 3 min to upload this 😅
on second thought, I guess I can make it a jpg to compress it
doesn't look too bad (though I did this change with devtools)
ngl, love how 4 yt embeds with a width of 321px basically perfect fit with my resolution
If anybody is interested in seeing temporary accounts in use, take a look at them in [[Special:RecentChanges]] or this screenshot.
is arca's id wrong?
CIRO is nowhere to be found on the wiki and ARCA is not on my save file
lemme check dezzel's github
ciro is correct
@wanton plinth CIRO = Arca
yeah i dont see paesano (which is poe) either so these must be old ids
perhaps we could list the old ones under trivia
go ahead!
best place to put it would be update history, if we can figure out what patch it changed on
true
1.5.104 is as far back as dezz's files go, they already had those ids at that point
https://github.com/Dezzelshipc/VampireSurvivorsFiles/blob/d4ca1af4b6ebd10ce0eae9e12f5d50a12b3134e8/Data/Vampire Survivors/v1.5.104_CHARACTER_DATA.json
does that save even still load? like, does it unlock the right characters with the old ids? if so there's probably some code somewhere that converts from the old format we could probably find
apparently CIRO is the new one actually
i can check if i still have any old save around
oh right it was the wiki with the old ids, the save has the new ones 
well then... maybe someone just put the wrong id in the wiki originally
tbh it may have been a copy/paste mistake when i updated all the character infoboxes
oh, nope, looks like it was cheetah https://vampire.survivors.wiki/w/Arca_Ladonna?diff=next&oldid=8164
in 2022
gonna take a quick look through his edits on that date to see if there's any other wrong id changes
nah, just those two
making a more visual save reader to update my stage completion table on the wiki (and the golden eggs)
im planning on making it fill the template automatically so i can just paste it on my profile, if anyone is still interested in this
what are you writing it in? if it's js you could actually add a save upload button directly on your page, and have it completely automatically parse your save and make the edit for you
ah no, i have no js knowledge, so im making this in gdscript
but that does sound like a great idea
it's probably not too different, most languages are pretty similar, just comes down to the particular syntax
yea im pretty sure this wouldn't be too difficult to translate tbh
probably the biggest difference would be using html and css for putting stuff on the screen rather than a game engine rendering pipeline
Ngl, before I took cs, I had barely any idea about programming language fundamentals
But once I got to learn about them, much of the programming languages in general became more readable and easier to understand for me
And yeah, it's mainly the syntax that differs between different programming languages
if you want to try messing with it, you are free to edit your personal js as much as you want [[Special:MyPage/common.js]]
i'd probably say look into ooui https://www.mediawiki.org/wiki/OOUI/Using_OOUI_in_MediaWiki#Gadgets (and some demos) or codex https://www.mediawiki.org/wiki/Codex#Using_Codex_in_userscripts
ooui is the older way of doing wiki ui stuff, and it's what i'm more familiar with, codex is brand new what they just recently switched to, and i haven't used yet
if you need some examples, [[Special:Gadgets]] lists all the js we're using on the wiki
i was looking about that for the ugly fandom, because i was editing a wiki stuck there, and everywhere i looked it was admin only
What wiki?
personal js you should be able to edit on any wiki, including fandom, but js outside your user page is restircted to admin on most wikis, ours included
its from a friend's ttrpg, but i got admin by now
but yeah i was looking to edit style classes
yea that's typically an admin task
how do i go about using it? the <script> tag doesn't seem to work for this
you can only put personal js on [[Special:MyPage/common.js]]
it loads on all pages on the wiki, so if you only want it to affect particular pages or specific elements on certain pages, then you have to find those selectors on the page
ooooh i see
you can use mw.config.get() to access a bunch of info about the page you're currently on, like the page name
typically what you'd do is on the page you want to affect, you put a div with an id
<div id="#testing-js">...</div>
and then in your js you look for that id and replace the html inside it
$(function() {
if (mw.config.get('wgPageName') !== 'User:My/Page') return;
$('#testing-js').html('<span>Some HTML</span>');
}());
(funny sidenote, wg is meant to stand for wikipedia global but it also works as weirdgloop :P)
people also confuse wgg (wiki.gg) with wg (weird gloop)
i guess another one of the big differences with js compared to something like a game engine is that you'll have to be searching for various docs for all the different libraries, whereas most the game engine docs are one monolithic thing
builtin js, mw stuff, ooui, jquery, etc. etc.
yeah i feel so lost
once you work out how to connect the pieces you want then it's not too bad, but initially figuring it out is pretty confusing for sure
ooui especially can be a bit annoying to work with
these might help - https://www.mediawiki.org/wiki/OOUI/Widgets/Buttons_and_Switches
use the navigation on the right side, and they usually give you a short snippet you can copy, like this one from that page^
// Set the 'label' option to plain text, a jQuery selection of elements,
// or a function.
var buttonWithLabel = new OO.ui.ButtonWidget( {
label: 'Button Label'
} );
$( document.body ).append( buttonWithLabel.$element );
tho replace document.body with '#the-div-id' so your button goes inside that div rather than replacing the entire page content (which would remove all the wiki ui lol)
and you generally want to use const and let rather than var - const for constants and let for variables you want to change later... var is old and isn't actually block scoped so it can lead to some weird bugs
need the # in front of testin, and your mw.loader.using probably need both core and widgets - mw.loader.using(['oojs-ui-core', 'oojs-ui-widgets'])
oh so the # is mandatory
since it's an id on the div, yeah - if it was a class, then it'd be a period
same case for selectors/classes/ids in css ^
typically an id is meant to be unique to that element, supposed to be the only element on the page with that id, though that's not always the case... whereas a class is generally applied to multiple elements
the way I see it is that an element with an id instead of class saves 3 bytes 🤣
oh @wanton plinth you have the # inside the id="" on the page itself - the # is only needed in the js, not in the page
we have a button at last
@wise crown nice characters page, it is hypnotizing
Thx lol
It's so fun to look at
Especially with some sprites being slightly different in height
Kinda makes it look like there's some depth to it
there is a premade file selector btw, it just doesn't have a dedicated page, but it's in the raw ooui docs
https://doc.wikimedia.org/oojs-ui/master/js/OO.ui.SelectFileInputWidget.html
(click the arrow under Constructor to expand the config options)
and we got a JSON parser?
JSON.parse() is globally available, pass in a string from the file data
just note that vs saves some floats with a trailing .0 decimal, which js will remove when parsing them (it treats 1.0 and 1 as the same thing)
not super important for what you're doing, but it does mean you can't mess with the data, regen the checksum, and re-save it from js unfortunately... unless the game accepts those values without the .0 in the save and will load it just fine, idk
could be resolved after turning it back into a string i think
but isnt in my plans
at least not yet
at that point you'd essentially be building your own json parser
having to keep track of which keys were floats and re-append the trailing 0 on them during/after stringify
btw here, i did already have a savedata form function i made a while ago
https://gist.github.com/Californ1a/3b221656919ea397d5fbf1b867d42704
grab that and then you can
const form = createFileInput();
$('#open_file').append(form.$element);
it does currently restrict to only a couple filenames, but you could remove that if you wanted to
@wanton plinth backticks rather than quotes to put variables into a string
what, but i thought it had no difference
single and double quote is just a string, backticks do a "template literal" where you can directly insert a var into a string, otherwise you have to concatenate with + instead
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
omg what is this language
these two are identical https://files.catbox.moe/fqjuvt.png
js definitely has some intricies lol
i think i get now why the save has 7 extra digits in the timestamp
trying to read it anywhere else was resulting in invalid timestamp
wait no, now it is invalid too
it's in nanosecond format, you should just have to divide by 1000
oh you know what... it might be in windows filetime rather than a unix timestamp
windows epoch starts in 1601 rather than 1970

had to be microsoft
...which means it might be a different format depending on the platform it last saved on
thats the catch
i last played on linux
on the native build
nooo they caught my slink
yea, if you want to use wikitext you have to get it parsed from the api first... since js gets inserted into the page after the wikitext is already parsed, you have to manually do it
new mw.Api().get({
action: 'parse',
text: '{{slink|Gold Coin|txt=Total Coins}}',
title: mw.config.values.wgPageName,
}).done(function (data) {
const wikitext = data.parse.text['*'];
if (wikitext) {
console.log(wikitext);
}
});
uh oh
it's usually easier to just build the html yourself directly in js rather than relying on wikitext templates when you're in js
especially since you don't want to be making ton of api calls like that
<img src="/images/Sprite-Gold_Coin.png" />
ah true
btw @wanton plinth might be a bit of a stretch right now since it's quite a lot to look into but you can query wiki data using bucket if you know a bit of sql
new mw.Api().get({
action: 'bucket',
query: "bucket('infobox_character').select('page_name','id').where('is_default',true).limit(20).run()",
}).done(function (data) {
if (data.bucket) {
console.log(data.bucket);
}
});
each bucket is like an sql table, and you can select/where on the table fields
list of available buckets for vsw is here https://vampire.survivors.wiki/?title=Special:PrefixIndex&namespace=9592
and bucket's usage docs https://meta.weirdgloop.org/w/Extension:Bucket/Usage (it's technically lua, but you don't really need any lua knowledge)
i might try that at some point but for now im fine with just writing everything, i assume this could be a little expensive considering i'd need a list of basically everything from the game
not really expensive, just a bit annoying on the upkeep manually listing them
oh, i thought it would take a few hundreds of api calls which could potentially cause some issue dunno
nah it's just 1 to pull all the characters infobox data, for every character
i saw that limit(20) and immediately thought it would be one per character
that's just limited to the first 20 characters, no specific order (i think the default order is page creation date?) the max limit is 5k for a single call, and we're nowhere near 5k characters
final fantasy noises in the distance
we're technically at 349 since it's storing each individual character skin as a separate row (hence the is_default true, to only get info for the default skin of each character)
theoretically we could have separate id defined for the skins, but right now we're just using the character id rather than the skin id
if you want to mess with it, you can use [[Special:APISandbox]] - set the first dropdown (action) to bucket and then hit action=bucket on the left side, copy the query in and hit the make request button at the top right
they seem to be roughly ordered by release date
except arca comes before mortaccio
probably because the pages got made in the order they appeared in the character select menu at the time
you'd have to explicitly add a .orderBy('release_timestamp','asc') (and make sure 'release_timestamp' is included in the .select())
it worked but the sprites are not being found apparently
i added the "_" over the spaces but for whatever reason it doesnt want to
worked but didnt
yea for sprite names you'll probably have to do a bit of cleanup, since the sprite images aren't saved to the bucket just the character select images, so you could just use the character select images, or if you want sprites then you'll need to do a bit extra
don't forget they have Sprite- prepended, and if you're using the page_name to create the sprite name, then you may also need to remove (character) from the end of the page name in some cases
im doing that tho
it worked for the typed array but not the one from bucket
and i cant find the reason
both were exactly the same
oh it's probably a race condition - you're trying to display before the api call is actually finished
is there any sort of yield in js?
if you put async in front of a function, then you can await when you call it - extract the api call into its own function and then return data.bucket inside the done(), and then you can const data = await callbucket()
async function callbucket() {
const response = await (new mw.Api()).get({
action: 'bucket',
query: "bucket('infobox_character').select('page_name','id').where('is_default',true).limit(20).run()",
});
if (response.bucket) {
return response.bucket;
}
}
whatever function you call it inside of also has to be labaled as async in order to await it as well
doing this causes me an error tho
just realized i forgot the "r"
and it still just ignores the sprites
your read_save function needs to be async, and you need to await populate_tables() in it
oh
(and populate_tables should return something, to tell read_save when it's done)
ah good
i guess awaiting the api call within it was good enough - if it was still using the .done() syntax then you'd probably have to return
.where({'is_default',true},{'secret_character',false})
or
.where({'is_default',true},bucket.Not('secret_character',true))
or you can chain them
.where('is_default',true).where('secret_character',false)
got tricked by the field name
yea will have to check those https://vampire.survivors.wiki/w/Bucket:infobox_character
does the dlc field expect a full url?
nah just a page name of the expansion (or 'Vampire Survivors' for base game)
if you're going to use the select images, you can also just pull the 'image' field directly from bucket
well now i gotta turn them into buttons
<a href="/w/${page_name}"><img src="..." /></a>
more like, you click on them to see their stats
is the button tag working for this?
ah yea that'll be a bit more complicated, and you'll probably want to include the stats_json field from bucket (and then json.parse() it, since it'll be a string)
probably, but button has custom styling where an a doesn't
if you want to you could just hook into the character tooltip we already have on hover rather than click
i believe all you'd have to do is
<span class="character-tooltip" data-name="${page_name}"><img src="" /></span>
but i'm not sure of the load order - whether the tooltip script will load after yours and pick up the elements, or if it loads before yours and won't
yeah it didnt
but what im trying to do is call a function to display the save info, such as egg data and total kills
but it insists that the function is not defined
you were pretty close with the button widget, but you have to create the full html image element inside the button's label, and if you want to include the i param when you call your function, you have to wrap it in a function:
let button = new OO.ui.ButtonWidget({
label: $(`<img src="${spritename}" />`)
});
button.on('click', () => display_char_info(i));
if you want to get a little fancy you could try a popup button 😛 https://files.catbox.moe/vxqbcv.png
https://doc.wikimedia.org/oojs-ui/master/demos/?page=widgets&theme=wikimediaui&direction=ltr&platform=desktop#demo-section-popupButton
protip: do not use emojis in the code editor
lol, it can be used but yea the cursor position gets a bit messed up
thankfully it is only in the specific line
i prefer using these instead - [[File:Yes check.svg]] [[File:X mark.svg]]
ah there they are
yea those are a bit cleaner
apparently it's been listed as an issue since the start of 2020 https://github.com/ajaxorg/ace/issues/4142
looks like ace just doesn't support unicode in general very well
the svgs are not at it
/images/
shoot i forgot about this again
you could make a small util function that just gives you back the img, something like
function makeImg(page, w = 25, h = 25) {
return `<img src="/images/${page}" width="${w}" height="${h}" />`;
}
(you can set default values in the function params, if w and h aren't passed in)
I made my first wiki edit, but I'm not sure if I did it right or how to get it appear on the page
typically for wikis you want to avoid addressing the reader directly (eg no 'you'), and for secret characters, any info about unlocking should go inside the unlock box rather than under it
I did edit the box directly, I just saw its outside, darn
I'll try to fix it, I'm sorry
np, happy editing 
yup
Fixed it again. Not too bad, thanks for the help!
always good to see more people editing
I think this is only fine for Tips and maybe Unlocking, since there is more of an incentive of giving advice to the player, but 3rd person is indeed preferred
are the OtC part 2 secrets not on bucket?
huh they are, but they are not showing up for whatever reason
They definitely should be, I'll take a look at your js in a bit when I'm not on mobile, but without looking if I had to guess you probably just need to increase the limit of the bucket query - there's no harm in just setting it to 5000 to make sure you get all the matching rows...
you can also go to one of those character's pages and on the left sidebar, hit "view buckets" link in the tools section - it'll show you just the bucket info for that specific page, so you can check if your .where() is maybe excluding it based on one of the fields it has
the characters article says there are 207 playable character, but even requesting 229 they didnt show up
Remember bucket stores individual skins as rows not just characters, so the counts won't be matching
yeah but it is excluding non defaults
it simply stops at secretino
the current query
Have a look at [[Characters/Search]] and [[Module:CharacterSearch]] - that should be pulling all of them, with the bucket query in the module
guess i'll throw a limit of 1000 then
Oh, you know what might be happening - if the release date field isn't set in the infobox on their pages yet, then it might be excluding them from the results when you order by release date
You might have to do the query and then sort them after
they have the date but perhaps not a timestamp?
Nah if the date's set then timestamp is automatically included
Unfortunately bucket just doesn't have a date type, so the date is just a string and timestamp is int
It inserts both when the field is set in the infobox
even requesting 1000 didnt solve it, but they do have everything set
oh wait
i think they dont have descriptions
nvm they do
If you just want to test bucket queries you can use [[Special:APISandbox]] so you don't have to manually save and check
Selecting empty fields should be fine, it's usually just orderby that'll exclude null stuff
That should be fine, maybe your i is getting messed up somehow? Could try
for (const character of data.bucket) {...}
(character will be equal to data.bucket[i])
no luck
they are in there, 207 is the right count when you're only showing the default skin for each character
it might be your display code rather than the bucket query, because they are in the data
right here you're only creating the buttons if the character is in the save's list of unlocked characters - does the save you're using have the otc2 chars unlocked?
oh @wanton plinth it's a casing issue - some of the ids are fully uppercase and others aren't, TP_WaterMagician is the id set in bucket, but it's TP_WATERMAGICIAN in the unlockedcharacters part of the savedata
there we go
looks like we used the sprite image names as the ids when we initially made the pages for the new characters, which have them as pascal case rather than fully uppercase, but they definitely should be changed to fully uppercase in the infoboxes
alright, got those taken care of
btw since you're messing with stats you'll probably want to have a look at [[Module:DefaultStats]] - if a stat isn't included in bucket, then the value is in there, some are 0, some are 1, and whether they're displayed with the +/- sign and/or percent sign is in there
just finished showing stats with egg data
i'll need a better code to show that indeed
[[User:Lovenus/SaveWikifier]]
need to fix characters without stage data
just note that no one else will be able to actually see anything on that page - the js is only loaded for you personally when you're logged in to your account... if someone else wanted to use it, they'd have to load your js into theirs
on their personal [[Special:MyPage/common.js]], they would have to: mw.loader.load('/w/User:Lovenus/common.js?action=raw&ctype=text/javascript');
but we could add a copy to the [[Special:Gadgets]] and make a [[Calculators]] page for it later when you're done with it - you just won't be able to edit the global version that loads for everyone, only admin can
this is such an awesome tool though
just tested it out
or run mw.loader.load('https://vampire.survivors.wiki/w/User:Lovenus/common.js?action=raw&ctype=text/javascript'); on their devtools console
yea for a single run - personally i've been copying the whole raw js into a userscript i can edit separately, which is also quite a bit safer since technically lovenus could edit it to add some admin api calls, mass delete protected pages or whatnot, so loading it directly from their page has that slight risk, even tho i highly doubt she'd do that 
apparently, I have more hours on mobile than you do on pc (I tested both our save files)
nearly 128 hours
i could WHAT?
interesting, i'm guessing that only counts time actually within a run? because on steam i have 356hrs
yeah
with js you've got full access to the mediawiki api on the site, so you can do edits, account preference stuff, upload files, pretty much anything... so if an admin loaded your personal js into theirs, then you'd also indirectly have access to admin stuff whenever that admin opened the site and loaded your js
so generally you don't want to load other people's js into yours
Good thing I only loaded her js during console
lol
pretty unique, the only char that morphs with a weapon evolution
forgot about him
I assume this is where to talk about wiki edits?
I have been having fun creating templates for cards and for starting decks.
https://vampire.survivors.wiki/w/Crawlers:Antonio
@stable bronze good to see you in here - we already have data storage and extraction set up, you don't need to manually create a template listing the data that'll already be on card pages, they'll be stored in bucket on the backend, a direct sql database we can query from
Oh, that’s even better, I was making a card reference data template since I didn’t know.
[[Bucket:Infobox vc card]] for example
im losing my mind, how do i center a god damn image?
when a page is made for them, using the {{Infobox VC Card}} template
@hexed oasis thanks for fixing one of my copy/paste issues that overwrote Antonio.
vertical or horizontal?
(or both?)
If I could play the demo, I wouldn’t be messing around with the Wiki, but can’t seem to get the game off my mind, and it’s a nice little challenge figuring out how to do all these edits. Used to just building Angular pages, but this isn’t too bad.
horizontal, im fighting my css for like a couple hours already
the text and the sprite that should be centered are more to the right than they should
i'd recommend moving away from all the inline styles and looking into using TemplateStyles instead - it'll make it easier for us to move stuff into sitewide css later if need be: https://www.mediawiki.org/wiki/Extension:TemplateStyles
also consider mobile layout and both wiki skins (hit the "mobie view" link at the bottom of any page) - you may want to display:flex on your outer container as well so it doesn't go behind the infobox
then sometimes the sprite stays more to the left but the text its to the right and justified to the left even with the centered alignment
there's a couple ways... margin:auto is usually the easiest, or on the parent element you can display:flex; align-items: center;
yes, they all have that
when i align-item to the center they all move to the right
when i use baseline it looks like the above
Forgot the most important card in his deck!
Okay, I’ll research template styles. Completely new to doing bigger wiki edits. And I’ll make adjustments for mobile. Flight as about to end so I may not be able to get to this for a few days.
looks center within the parent to me, unless you mean the parent itself (both the gif and description being center in the page)
but the parent is full width no?
nbd, wiki's are always a work in progress 
you have a massive right margin on the stats pushing the gif over
get rid of the margin:auto on .to-the-west
oh thank god it was that
you are a life saver
i was about to throw the computer out the window
np
@hexed oasis I updated to the CSS for the starter deck. I’ll work on the others later if you think I’m doing it right.
yea that seems fine - probably remove the clear:both though, avoid clear in general since it tends not to work well with various sizes, like when the screen is wide enough to fit both the template and the infobox beside each other you get this big empty space (also there is [[Template:Clear]] that can be used within wiki pages if a clear is really needed for the page structure)
On phone now, will fix when I get to the hotel.
sorry for bothering again, but how would i go about loading that default stats module @hexed oasis ?
i tried a bunch of things and none worked
oh you can't since it's a lua module not json data, just use it as a reference
i see
now stats turn orange if they are being affected by golden eggs or powerups
nice
at some point you should probably also hit the "mobile view" link at the bottom of the page and check the mobile skin (plus resize your browser to smaller width on both skins and make sure stuff wraps nicely on either), but that can definitely be done later
yup, css can be annoying like that
css filter definitely has some nice effects, if you want to get fancy look into animation and transition:
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/animation
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/transition
i really wanna add the enemies bobbing
specially since some animation are pretty simple, it could look cool if we had that instead of the static sprites
just like the bestiary
const conditions = Object.keys(saveDave.KillCount).map((id) => `{'id',${id}}`).join(',');
const data = bucket_query(`bucket('enemy_variant').select('page_name','id','image','sprites').where(bucket.Or(${conditions})).limit(5000).run()`);
that'll get you all the enemy sprites (simplified bucket query function, need the whole "new mw.api().get()" etc)
in the 'enemy_variant' bucket, the 'image' field is a single image or null, and the 'sprites' field is an array of images or null
weapon bucket has (almost) no data and is not updating automatically either
seems to be the only one
I'll see if I can start adding to VC content, since someone else is working on it
though, one week until the demo
yeah because the weapons haven't been converted to the new infobox style yet - it's a work in progress [[User:Californ1a/Sandbox/Weapon]]
ah i completely forgot about that
is this a wiki thing? @hexed oasis
the first item from grids are getting a -6px margin for some reason, and the first row also seems to have a shorter gap than the rest
yea any of the .oo-ui-X classes are from ooui itself
that margin is because typically buttons and other controls are inserted into a fieldset alongside other form inputs, so the button needs to be offset from the form labels - notice the "Owned DLC" form label, with the "Submit" button being offset from the from labels https://files.catbox.moe/o942e1.png
you can see some of that field layout stuff in the layouts tab of the ooui demos https://doc.wikimedia.org/oojs-ui/master/demos/?page=layouts&theme=wikimediaui&direction=ltr&platform=desktop
(the little arrows on the right will show the code)
general basic styles for crawlers card infoboxes https://files.catbox.moe/ywxkqp.png
2193 levels worth of lifetime xp 
note the xp calc might be a bit wrong... still trying to figure out which formula is right for it, either calcXp() or calcXpFactor() [[Module:Experience]] - tho calcXpFactor() alone is definitely wrong since it needs to account for changes to growth % and doesn't
oh true
if anyone wants to try to check some numbers in-game, it might be a bit tough since they only start deviating after lvl 20 https://files.catbox.moe/ebl4w5.png
can i turn the Survarot page into a pickup?
what do you mean?
{{Survarot}}, it is technically a pickup but is not listed under {{Pickups}}
Survarots are a mechanic in Vampire Survivors that function similarly to Arcana, granting the player various bonuses. However, Survarots mainly affect the player's stats, along with giving simple effects.
Currently, the only way to access and utilize Survarots are by playing as Secretino Dagsson, or any character from the Ante Chamber expansion. Survarots can also be found on the Ante Chamber Stage.
• In the future, Survarots will be able to be accessed in any run with a new relic.
• Using one of the aforementioned characters as a CPU in Party Mode will also allow Survarots to appear.
Pickups are collectibles in Vampire Survivors dropped by destroying light sources or by defeating enemies.
The Magnet stat affects the radius pickups can be gathered from.
Most pickups' drop rate increases with Luck.
oops
technically it's a relic not a pickup https://files.catbox.moe/5mbc4j.png
but it's also technically not in the game yet as a relic
yeah Survarocchi is the relic
but Survarot is a pickup that drops for ante chamber characters
and secretino
it has 3 pickup entries
if it has an id as a pickup then sure you can stick the infobox on there
@hexed oasis is the custom font free to use? 🤔
no idea what poncle has it licenced under, it's in the game files tho
I guess we can ask them
also, apparently, Spinach has a new sprite as seen in [[Let's Explore Vampire Crawlers - Episode 1]] 🤔
yea ultimately we should be uploading completely different sprites for crawlers
who is that survivor? || the same vibe of "who is that pokemon?" on pokemon franchise that used to appear before tv commercials||
Tony Cheese
actually a cool idea, i might expand that into a vampiredle of sorts some day
so you could get a silhouette as a hint
a silhouette would be too easy. maybe some information like main colour, which part of the game and maybe like best stat
I kinda had an idea for a vs-related quiz within the wiki, but more like "what is this item called?" or "what does this evolve to?", stuff like that
But I never got into doing it
moved the crawlermain css instead of inline styles that don't load [[User:Californ1a/common.css/crawlermain.css]] (you will still need to manually add .ns-10002 class to the body in devtools)
also got a decent img for cards https://files.catbox.moe/2iaaya.png
btw if you want to, feel free to add fields in the current weapon bucket - edit the schema on [[Bucket:Infobox_weapon]] and insert data into it at the bottom of [[Module:Infobox Weapon]] (will need to learn a bit of lua)
just know that most of that isn't cleaned data like the newer infoboxes have, it's just directly from the template args so stuff like the dlc field is using the shorthands rather than the full dlc names and is null for both "no value" (nothing inserted into the template) and for base game... so the format of a lot of stuff will definitely change whenever i get around to actually updating the weapon infobox
so editing the bucket table is equivalent to updating the bucket?
the json on the pages in the Bucket: namespace define the sql table, and then editing a bucket('table_name').put({...}) in a lua module will insert data into the bucket
you can make your own whole buckets if you wanted as well, though it's probably not needed, and you can only insert data in lua modules, so you do have to learn some lua to use them
but i suppose i cant since you mentioned im unable to use lua modules
you won't be able to insert data to a bucket from js, only lua, but if you edit the weapon infobox lua module to put different data into the weapon bucket, then you can load that data in js same as you are from the other buckets
ah i see
any special reason for audios being blocked from loading from a js?
they aren't - it looks like you jut have the url wrong, they're also under /images/filename
ah
btw, for both images and audio, though audio especially, you should add a static cachebuster to the url, usually just a couple random numbers you keep static, like in this:
https://vampire.survivors.wiki/images/Audio-Before_Concession.ogg?48781
it's the ?48781 part - instead of reloading the file from the server every time the page requests it, having a cachebuster attached will let it cache the current version of that file and load it much faster on re-requests rather than having to re-download the newest current version of the file from the server on every request
yeah i've noticed that some music pages take a little while to load the playback
will do
So that's what this number is about. Very useful!
idk if all wikis have something similar but at least for wg, i believe the cachebuster is also used for server-side caching in cloudflare, which is a longer term cache so even if a new version of a file is uploaded, the url with the cachebuster number will still be showing the old version of the file for a while (tho i think wg also has some mw hooks tied to things like uploading a new version of a file that'll refresh that file's server-side cache? idk)
It's a thing on wiki.gg wikis too
https://ballxpit.wiki.gg/images/Iron.png?f65031&format=original
yeah all other wikis will have a cachebuster number appended to files, but idk if they all use it for server-side caching like wg does in cloudflare
i was looking at mcw's cdn cache purge gadget recently, , and i think that server-side cache is what it's refreshing https://meta.minecraft.wiki/w/MediaWiki:Gadget-cdn-purger.js
except the jigsaw thing, no idea what that is, seems to be their own thing
something along those lines happened again, now the ante chamber characters vanished
but they are not missing any info
and the id is correct
unless this is my browser giving up
considering there's 4 antechamber characters, this is suspicious https://files.catbox.moe/28zasg.png
also for the cachebuster, you can just set a number and use that one number for everything, like this is the js that loads inline audio players on [[music]] - [[MediaWiki:Gadget-audioplayer-core.js]] it just sets them all to 11112
oh i thought they were like hashes
might've thought that the 4 unreleased ones were included? just an idea
nah it was probably because i had already iterated 4 and thought it would overshoot the array
that's also looking like a lot of manual lists of stuff at the top, not great for long-term maintenance
but i accept that they were the skeleton band
yeah this is all the data i couldnt find a way to pull from anywhere
achievements are also yet to be placed there
currently i cant get data from weapons, arcanas and im not sure about collection order, coffin characters are also not marked, and achievements ofc
[[Bucket:infobox_arcana]] for those... collection order would be a tricky one since it can be changed with the filter button, but there is [[Module:CollectionOrder]] with the default order, that a couple of the infoboxes save their index/order number into their bucket from
coffin should probably be a param added to the character infobox
you can get coffin_character field in the infobox_character bucket now
no clue why but elizabeth bartley and cornell are being considered secrets now, but not on their pages
their ids are being pushed into the secrets array if 'secret_character' is true, but they arent and got there
oddly specific
ah their ids are identical
to their secret forms
probably because of their megalo forms
fixed
just found out that the max hp display in-game is "bugged"
in the character select it adds the egg hp after the powerup multiplier and in-game it adds before the multiplier
now it is as precise as it can be
about this, I think I just realized something: the savedata files I tested are a couple months old (both of them)
so it's possible that another factor is that you played more after I saved your savedata on my pc
(and same case for me, I might be close to 150h given that I play at least one round of VS on mobile in most days)
doing duos now, and it really does add some depth
Nice 😎
do you happen to know why this is getting messed up there? (using the same numbers leads to slightly worse results)
this bit works to normalize the sprite sizes but only after you click the specific character button twice, then it stays as it should (for a little while) and breaks after reloading the page
something else is probably setting the width somewhere then, like your wid variable is probably getting overwritten somewhere
it could only be getting overwritten by itself due to a slow fetch
which is weird because it still sets the width without the "width:" prefix in style
or maybe the if is just always returning false because the image didnt load
but its cache is getting erased which causes the other cache to go with it
idk why you're changing the number at all, it should just be a single static number that you use for all files, and usually it's just 4 or 5 digits - you might be having issues because the browser isn't actually loading the image when you use new Image() and set the src like that, especially with a different cache number the browser doesn't have, it only loads the image once it gets added to the page
yeah you are right, i was being an idiot
now i just need a way to revert the width so i can set the height alone
wait nvm, setting it after loading the image doesnt have an effect
I just discovered a... secret? poe message
just gonna leave a note here that the main page link on mcw is changed here https://minecraft.wiki/w/MediaWiki:common.js#L-333 so we can reuse that, or we can do a namespace switch on [[MediaWiki:Mainpage]]
got it
idk why they're using common rather than a gadget, took me forever to find that since it wasn't in special:gadgets
maybe commonjs loads a bit sooner before the gadgets? idk
@hexed oasis should the title for {{Vampire Crawlers}} be
Vampire Crawlers: The Turbo Wildcard from Vampire Survivors or simply Vampire Crawlers?
Vampire Crawlers is an upcoming card battler game currently being developed by poncle and Nosebleed Interactive (the latter being known for developing Arcade Paradise). It is a spin-off of Vampire Survivors that was revealed on 20 November 2025 as the seventh new thing to be revealed behind a card with a question mark on it.
The game is expected to be released in 2026, though in the game's first trailer, the developers also stated that the game may be released whenever they're ready to do so.
On 16 December 2025, a gameplay trailer for Vampire Crawlers was uploaded.
The demo for Vampire Crawlers will be released on Steam and Xbox on 23 February 2026.
poncle, Nosebleed Interactive
poncle
TBA or 2026
Unity
Action, Card Battler
Steam, Xbox One Series S, Xbox One Series X, PlayStation 5, Nintendo Switch, Android, iOS
kinda on the fence as to whether the article's title should be the full thing or not
But there's also the question as to whether the official game name will be shortened or remain the same 🤔
i guess it should probably be the full thing? since it is the full thing on all the current storefronts
https://store.steampowered.com/app/3265700/Vampire_Crawlers_The_Turbo_Wildcard_from_Vampire_Survivors/
https://www.xbox.com/en-US/games/store/vampire-crawlers-the-turbo-wildcard-from-vampire-survivors/9NMPVJ7TCFD0/0010
https://store.playstation.com/en-gb/concept/10015481
but maybe make {{vc}} stay as just Vampire Crawlers ([[Vampire Crawlers: The Turbo Wildcard from Vampire Survivors|Vampire Crawlers]])
Alr
careful tho, a bunch of common.css will need fixing if you move it
(5 double redirects actually)
ok, I think it's all good now
even changed the link in places like the sidebar and your draft of the crawlers mp
turns out that this is a better solution, might be helpful for someone in the future
it keeps sprites perfectly square
aspect-ratio: 1 / 1;
wait this is a thing?
either w or h need to be unset/auto, then it'll use aspect-ratio to determine the other
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/aspect-ratio
waw its true
@wanton plinth would you still need your SKIN_EQUATES if we has both characterid and skinid in as separate fields in the infobox_character bucket?
(ofc, all the individual skin ids would need to be filled in if it's added to the infobox)
probably not, the ids are the one thing doing that
currently the only other oddly specific quirk would be that arcana ids are not stored in save files, so i have to parse by number
but a simple addition and type checking solves that
the numbers being separated by type doesnt help with sorting them into a single array but its not a big deal
@wanton plinth there is now a skin_id field in the character bucket, but ofc all the character pages will need the |skin id = field set in their infoboxes, numbered for each skin's infobox version, eg:
|skin id1 = DEFAULT
|skin id2 = TP_HORSE_RED
|skin id3 = ETC
& the has_id bucket now lists both the character id and skin id in an array https://cdn.imgchest.com/files/d64dcc924a7e.png which is a bit messy and might not be the best solution, but that bucket is primarily for [[Calculators/ID Finder]] to search through a list of all ids so ¯_(ツ)_/¯
time to break the whole script apart now
i did a couple just to make sure it's working, but you'll have to go through and add all those skin ids to all the infoboxes, or at least the ones you need for now and we can get to the rest of them later
are the skins always guaranteed to be right after the base character?
in has_id?
they're separate fields entirely in the character bucket, should just be strings - data.bucket[i].id for the character id and data.bucket[i].skin_id for the skin id (you'll have to remove the .where({'is_default', true}) so you get all the skins not just the default ones)
(& up your limit)
its because this situation
because i have to parse the currently selected character unlocked skins to create the appropriate buttons for them
but i cant exactly reach their entries with just the id
is source being used to get the character select images? because those are also in the bucket - once you remove the {is_default, true} you'll get all the character select images for all the skins as well and don't need to make those yourself
the only ones that aren't are sprites and animated sprites, though typically the naming scheme for the files is the same as the select images, so you can likely just reuse the character select image filename, replacing Select- with Sprite-
yeah, im replacing that logic there
but i cant access the bucket entries to begin with
i guess i have no choice but to make an inverse array to look them up
wdym you can't access the bucket entries?
because at that point all i have is the skin id and the selected character index
but i need the skins index as well to access them in the array
and the other option would be going through every element of the array until i stumbled with the id
but even that would create a conflict with so many 'DEFAULT' in a way
what i'd do instead of passing an index around between functions and keeping multiple arrays of the same length like that to access with the index, i'd pass the whole character object from the bucket data... so instead of like display_char_info(index) it'd be display_char_info(character) and then i'd just directly have access to all the bucket fields on character without having to maintain my own separate array from the bucket data
i kinda did that already
its 1 array with all the bucket data for each entry
so like, passing the character instead of the index would be the same thing
what you probably need to do is build a lookup table rather than an array - where you'd be able to do something like lookup[CHAR_ID] and you'd get ['DEFAULT', 'LEGACY', 'IMELDA_UNBLINDED'] (if CHAR_ID is 'IMELDA')
that's what [[Module:ID Finder]] does
(except it's mapping ids to page names, rather than skins)
you've got to remove File: from the start and add /images/ instead
let source = CHARACTERS[skindex].image;
if (source) {
source = source.replace(/^File:/, '/images/')
}
also i've been considering ways of dealing with the collection order thing, and i've gone through a few potential solutions... but i think what might work best is converting [[Module:CollectionOrder]] into a json rather than a lua module, since lua modules can load json data and js can as well, so now you can do this:
const json = await $.getJSON(mw.util.getUrl('Module:CollectionOrder/data', {action:'raw', 'ctype':'application/json'}));
arcanas probably won't, but a lot of other stuff will
at some point we still need to rename all the arcana pages so they match their in-game name with the roman numeral in front... but that'll also require a ton of retooling in a bunch of lua modules so it's just something i haven't really felt like tackling yet
there are some extra .p there
something in your code is doing that, it's not in any bucket or collection order stuff
i see, its because of the arcana numbers
it works!
just needs some reordering next
and the ids
actually its not out of order except for the arcanas
like the default/by version selector? still trying to work out the best way to do that in the data... i don't really want to maintain full lists for each order but idk
no, just arcanas and both pickups and relics are not there yet
other than that its completely fine
arcana should probably be edited on [[Module:CollectionOrder/data]] json so be the same as the page names - right now they're just the name itself without the roman numerals
oh wait i can edit that
yup
i changed the content type of the page to json so it could be edited by anyone rather than making it in the "proper" place for json in the mediawiki namespace where only admin would be able to edit it
base collection in
wait did you reorder them? it's meant to be the order with the filter set to default, not by version
like i said, still trying to figure out the best way to get the other orders in the data
especially if the next big update to the game is going to be ui focused, we might have a bunch of other filters added to the collection in-game, so i don't want to put too much effort into that right now
default is the simpliest since it's just one long list, but by version needs the data split into multiple sections, and then would have to determine how code elsewhere can reference it by section and number
[[Emergency Meeting (weapon)]] doesnt display the icon in the infobox because of the suffix
and nitesco's icon is named after anima of dracula (which is technically not wrong)
tomorrow's a big day for the wiki
as this classic wiki editor trope goes, if something big gets released from a given topic, the wiki editors will rush to update the wiki with new content 😛
this should be decent enough main page, so i'll crop and upload the images used in the content panel sometime today and move it to Crawlers:Wiki
yeah I think it's good
throwing together a basic page for Dungeons first, some dpl for listing them
.
weird
I sent a msg here and it did not get submitted
anyways...
@hexed oasis what I was trying to ask is do you think we should update the sitenotice to advertise the new vc subwiki?
ah yea good idea, you want to do that?
ye
maybe go ahead and make it but don't update the id until it's out, so it doesn't appear yet?
i always find it funny automod is so easily circumvented by screenshotting the blocked msg
and actually, scratch this, i think i need to do a lua module table rather than dpl, since the dungeons are using infobox versions, only clean way to pull those is bucket
@hexed oasis how does this sound?
little tall but yea looks good
well hey, apparently, we found a good use for the manual incrementation of sitenotice id 😛
it allows us to plan ahead by pre-emptively updating a sitenotice, rather than instantly
ordering is a bit weird, just sorting alphabetically by the page name, but that'll do for now [[Crawlers:Dungeons]]
I believe [[Crawlers:Cards]] might warrant splitting, at least sometime in the future 🤔
for the individual tables yeah, but it's good to have an overall page too
yep, red bonus to attack, blue bonus to def, and so on with yellow and purple
Oh yeah, I agree on that
alright... i think that's pretty much everything sorted - css, sidebar, main page links, all done, mainly just need to replace the {{external}} image for vc once we have a proper icon image from the demo
keeping an eye on the icon image in the assets section for that - https://steamdb.info/app/3265700/info/
are file redirects possible?
yes but generally not recommended
crawler wiki is becoming very beautiful 
@wanton plinth if you want it, this should take care of generating the collection ids array:
https://gist.github.com/Californ1a/cffb00a7841e83327996bfd1af80a329
it won't get speculo/gemini stuff or arcanas, and [[Power of Lire]] currently has two ids so that entry in the collection ids array is generated as an inner array with both, but it does deal with most of it so you'd only need a few special cases rather than the whole manual list
(also cleaned up your arcana api calls, do both in one call and filter after rather than 2 separate calls)
you'll have to pick out the bits you need and integrate with what you're doing, i just took out the stuff specifically for generating the ids
unless i can use double ordering or something like that
ah wait
its right there in the gist
filled in the remaining ones
worked like a charm
almost 2k bytes nuked
just thought of something - arcanas can probably work too if you also select the arcana_name field in the arcana bucket, and then edit the combined.find() to also check if entry.arcana_name === item
really the only ones you'll have an issue with are the gemini weapons, since we just list those on gemini's page rather than having dedicated pages with their own infoboxes for them
and this one for some reason
oh and if you need the arcana ones to be the number rather than the id string, like you had it before, then you could probably do something like...
const found = combined.find(...);
if (found.arcana_name) return found.order;
... // rest of id returns
(tho you'll have to account for the darkana being + the offset)
looks like that one just doesn't have its id set in its infobox
so maybe something more like...
if (found.arcana_name) {
if (found.arcana_type === 'Arcana') return found.order;
return found.order + 22 //or whatever the offset is for darkana
}
for some reason it is not finding them
const found = combined.find((entry) => (entry.name && entry.name.replace(''','\'') === item.replaceAll(" ","_")) || entry.page_name === item.replaceAll(" ","_") || entry.arcana_name === item);
if (found && found.arcana_name) {
if (found.type == 'Arcana') return found.order;
if (found.type == 'Darkana') return found.order+22;
}
put it outside, after the find() - you're putting it inside find()
but is outside
wait why are you replacing spaces with underscores? entry.name and item should both have spaces, that shouldn't be needed
because i replaced earlier due to sprite names
but i'll get rid of this probably
since images are a thing
it's found.arcana_type not just type
now it should all just auto-update when new wiki pages are made after game updates, no manual lists needed, other than the collectionorder data json
there are just 4 problematic entries other than mirrors
Emergency Meeting cant be found because of the (weapon) suffix
Nitesco's icon being named after Anima of Dracula
Summon Spirit Tornado doesnt have Summon in its icon name
and Soul River which i have to work around because of the ":"
the colon you're just going to have to replace with a hyphen manually, the filenameace can't have colons in the names and always get autoreplaced with a hyphen when you upload a file with a colon in the name
weird that emergency meeting wouldn't be found, since entry.name should be 'Emergency Meeting', same as item, even though entry.page_name has the weapon suffix, name doesn't
ah i think i know why
the extra underline due to the suffix
wait no
nvm
ok i just want pulling the names
and even if it tries to replace underlines that doesnt exist it also fails
its fixed by now
ah nice
but Icon-Emergency_Meeting.png doesnt exist (?)
oh yeah it also has the suffix for some reason
can i move those?
probably best not to right now, idk where all is accessing them in what way that would need to be fixed after moving
alr
any idea if licensing is public domain (due to it being a text-only logo) or not?
[[File:Vampire Crawlers logo full.png]]
no idea, licensing isn't really my area ¯_(ツ)_/¯
ok
summon spirit tornado is fixed now - nitesco idk, it might be worth just uploading a duplicate to the other name (generally preferred over file namespace redirects, since you get file history if the two diverge to different images in the future), or maybe you just make a special case for that one in your code
you need the cachebuster on it
since it's just been moved, it isn't cached server-side yet, so adding the cachebuster bypasses the (empty) server cache and gets the new one
gl with that... most of them don't have ids, but have fun with the enemy_variant bucket 😛
getting the specific sprites will be the worst part i fear
already managed to merge the entries
The sprites are in bucket for enemies, those will be easy
some are in images and others in sprites tho
and i'll need a base one for multiple ids
They are split across two fields though, 'image' if it's just 1 sprite for that particular variant, or 'sprites' if it's multiple sprites for a single variant
is there an easy way to make sortable tables from js?
There's probably some way to hook jquery tablesorter, if just adding the "sortable" class to the table doesn't do it... I can't really look into it right now on mobile, but this is the source code for sortable tables https://phabricator.wikimedia.org/source/mediawiki/browse/master/resources/src/jquery.tablesorter/jquery.tablesorter.js
doesnt look like it, i can only find examples where you have to manually re-order stuff around and i keep getting errors that sortable is not a function
and the sortable class also didnt work
well i managed to sort them by kill count so thats fine by me
I'll be home in like 1-2 hours
So I will be able to add more content to our wiki more by then
@hexed oasis since the demo is out, I incremented sitenotice id
so yeah, this notice will show up
Loading page description…