#General Chat

1 messages · Page 10 of 1

hexed oasis
#

i hate little annoyances that shift the page position/layout like that during load - i fixed a similar thing for the tabber tabs a while ago, to hide all the second, third, etc. tab content until after the tabber js actually loads

thorn prism
#

perfect

lost dome
#

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.

thorn prism
#

[[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

waxen flintBOT
tropic zephyr
#

agreed, just need someone to upload them

wise crown
thorn prism
#

also do we know how much damage iron ball and wrecking ball gain from armor

tropic zephyr
#

5 base damage per armor

thorn prism
#

perfect

ripe rose
#

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?

tropic zephyr
#

just hasnt been filled in yet

ripe rose
#

ok, thanks

regal flame
wise crown
wise crown
#

@hexed oasis is it possible to italicize the page names of tracks from [[Template:Infobox Music]] using lua only?

waxen flintBOT
hexed oasis
#

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

wise crown
#

alr

#

so I asked myself if we should do that on vs wiki or not

hexed oasis
#

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

wise crown
hexed oasis
wise crown
#

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

hexed oasis
#

yea, that definitely adds to the visual clutter

wintry delta
#

Should we have a page that lists differences between consoles even if few?

wise crown
#

Could probably explain them in the [[vs]] page

waxen flintBOT
wise crown
#

oh yeah, I'm currently making that article btw

wise crown
waxen flintBOT
hexed oasis
#

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

wise crown
#

Though my page would probably exist either way, considering that it is a distinct video series

hexed oasis
#

yea

hexed oasis
#

this is just a grab of everything in the videos tab, no shorts

wise crown
#

Does jagex have yt shorts? If so, are they documented on the rs wiki?

hexed oasis
#

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

wise crown
#

Good idea

hexed oasis
#

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 ¯_(ツ)_/¯

hexed oasis
wise crown
#

That's interesting

wise crown
#

yay, track pages are starting to get picked up by google!

hexed oasis
#

@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

waxen flintBOT
wise crown
#

or just removing the desc entirely in this case?

hexed oasis
#

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

wise crown
waxen flintBOT
#
Vampire Survivors Wiki

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.

hexed oasis
#

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

wise crown
#

Got it

hexed oasis
#

maybe once the book is released we can revisit that, if it has any family info ¯_(ツ)_/¯

wise crown
#

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

hexed oasis
#

(also btw careful with that category renaming - beta content category was referenced in a bunch of modules, thankfully a quick jwb fix tho)

wise crown
wise crown
waxen flintBOT
hexed oasis
#

can always ⁨insource:/Beta content/⁩ and restrict to module ns

wise crown
#

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

hexed oasis
#

yea

wise crown
#

I've seen Wikipedia and Minecraft Wiki do this with their disambiguations

hexed oasis
#

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

wise crown
#

Not exactly related to the wiki, but I thought that this would be nice to share

wise crown
#

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.

tropic zephyr
#

Thank god

wise crown
#

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)

thorn prism
#

poncle don't reveal vampire fighters now so the wiki edits will work when it's revealed hopefully

hexed oasis
#

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

waxen flintBOT
hexed oasis
#

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 ¯_(ツ)_/¯

wise crown
#

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

wise crown
#

@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

hexed oasis
#

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

hexed oasis
#

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

wise crown
waxen flintBOT
wise crown
#

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]]

waxen flintBOT
thorn prism
#

familiar names can also be found at [[familiar forge]]

waxen flintBOT
wise crown
#

true

#

I think I already made redirects for those a while ago, no?

#

e.g. [[Pumpkin]]

waxen flintBOT
wise crown
#

yeah, seems like I did

thorn prism
#

is that a person

wise crown
#

idk what they're expecting to find with this 😅

thorn prism
#

considering 6 people searched that, there has to be a meaning

wise crown
#

could probably just one person searching it multiple times

thorn prism
#

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

wise crown
#

our wiki has like hundreds of thousands, if not millions of monthly visits
of course, at least one person is search for something odd

wise crown
#

probably they play vs and were searching themselves up?

#

nothing of concern ofc though

thorn prism
#

indie wiki buddy might just not be working very well right now because it can't load the page

wise crown
#

you mean breezewiki? it's just a separate frontend for fandom that indie wiki buddy happens to optionally support from its extension

thorn prism
#

yeah that

wise crown
#

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?

thorn prism
#

oh wow that's quite cool

wise crown
#

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

hexed oasis
#

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

hexed oasis
#

yup it was a bun issue, backported to node and it's working :/

hexed oasis
#

{{Doot.mp7}}

waxen flintBOT
hexed oasis
wise crown
#

{{Special:Statistics}}

waxen flintBOT
wise crown
#

Nearly 100 pages added to the wiki lol

#

(Articles)

hexed oasis
#

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 ThisIsFinee

#

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

wise crown
wise crown
hexed oasis
#

it's probably because yt doesn't want people making alternate sites that just filter out shorts tbh

#

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

#

ThisIsFinee [[Dó̸͚̩̖̝_̸̜̼̝͔n̴̾̾̄̄ot̴̲̹̤̮_̵̋͠o̶͐͋̓́pè̵̐̐͘n]]

wise crown
#

Interesting

hexed oasis
#

decided against it, makes it look like it's filled in at a glance when it isn't

hexed oasis
wise crown
#

Could do something like X and X (short) I guess

hexed oasis
#

yea that's the plan

#

the first one tho, idk, they're both regular videos

hexed oasis
#

alright i think i dealt with those in a decent enough way

hexed oasis
#

i think i found a half decent way to determine if something's a short, they generally don't have a description

wise crown
#

¯_(ツ)_/¯

#

anyways...

#

We managed to reach 2,000+ articles

hexed oasis
#

i'm just running through all the ones with no description now and letting the bot add shots category to those

hexed oasis
#

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

hexed oasis
wise crown
#

@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)

hexed oasis
#

and archiving livestreams ofc

wise crown
#

now that's a whole set of new page ideas! /j

hexed oasis
#

since we don't have a namespace, probably just add a /Transcript subpage to video pages, if we did ever want to do that

wise crown
#

or requesting the namespace to WG

#

like we did with crawlers

hexed oasis
#

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

wise crown
#

yeah I agree

#

or the transcript can be within the video page
and that's if it is needed

hexed oasis
#

also i definitely don't want to be the one writing transcripts or i'd be doing it on rsw

wise crown
waxen flintBOT
hexed oasis
#

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

wise crown
#

I'm making that page manually

hexed oasis
#

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

wise crown
#

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)

hexed oasis
#

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

wise crown
#

makes sense

hexed oasis
#

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

hexed oasis
#

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

wise crown
#

@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? 🤔

hexed oasis
#

probably fine to keep them

wise crown
#

ok, got it

hexed oasis
#

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

wise crown
#

yeah, that's what I am aiming for

#

intro, official description, synopsis, trivia, and gallery

hexed oasis
#

gallery before trivia

wise crown
#

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

hexed oasis
#

yea transcript should probably be a /Transcript subpage

wise crown
#

did anybody on the rs wiki ever make a transcript for a stream vod?

hexed oasis
#

yea it happens, i won't say often, but there are some people over there who are big into transcripts

wise crown
#

nice

hexed oasis
wise crown
#

love the dedication

hexed oasis
#

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

wise crown
wintry delta
#

wanted to ask a silly suggestion, would it be possible to have some sort of custom mouse cursor when browsing the wiki

wintry delta
#

K

wise crown
#

not by default at least

#

because it will ruin accessbility

wintry delta
#

Fair

wise crown
#

but of course, you can always edit your personal css to include custom cursors though!

hexed oasis
#

it's definitely something you can set up personally though if you wanted it just on your own account

wise crown
#

yeah

#

through [[Special:MyPage/common.css]]

hexed oasis
#

(& 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

wise crown
#

true

#

it's not like vs has a custom cursor anyway

hexed oasis
#

yea

hexed oasis
#

btw @wise crown for the transcript link, you can {{Main|/Transcript}} or {{See also|/Transcript}}, rather than needing the whole page name and such

hexed oasis
#

yea but the links are super long with the whole page name, less clean

wise crown
#

alr, I'll change them

wise crown
#

Expanded all of the Sopravvissuti ai vampiri video pages. Will work on the transcript subpages sometime soon.

wise crown
#

Do you think showing the character icon in each line of dialogue would be more readable or less readable in this context? 🤔

hexed oasis
#

i'd keep the transcripts to just text

wise crown
#

Alright

rain wagon
#

On a related note, do we know who does the voicework for those videos?

wise crown
#

No

#

I don't think so at least

#

But we can always ask Kerri

hexed oasis
wise crown
#

sooo

#

is it like any of these words will be chosen at random

#

and then a string of numbers?

hexed oasis
#

idk if there's any recommended amount of words to have, like if there's a good minimum count you should have

wise crown
#

like as in how many anons will edit our wiki

hexed oasis
wise crown
#

oh wow

#

that's probably cuz rsw has more content and is very active 😅

hexed oasis
#

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 LUL

wise crown
#

Antonio
Bat
Skeleton
Imelda
Poe

#

there you go 🤣

hexed oasis
#

i might just dump all the character names on there, or at least most of them, the ones that can be a single word

wise crown
hexed oasis
#

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

wise crown
#

alr

hexed oasis
#

also never know if we get a spike in editors at some point ¯_(ツ)_/¯

#

maybe crawlers pops off with the demo, who knows

wise crown
#

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]]

waxen flintBOT
wise crown
#

The list mostly consists of base game characters and some of the enemies you find in the standard stages

wise crown
#

@hexed oasis today I learned that Special:ChangeContentModel is a thing at all

hexed oasis
#

rarely needed but yup

wise crown
#

true

wise crown
#

finished the transcripts for the Sopravvissuti ai vampiri videos
[[Category:Sopravvissuti ai vampiri transcripts]]

wise crown
hexed oasis
#

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)

wise crown
#

like 30 min or so idk

hexed oasis
#

definitely no rush, demo release is still about 2 weeks away

wise crown
#

True

ripe rose
wise crown
wise crown
hexed oasis
#

[[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)

wise crown
#

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]]

hexed oasis
#

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

wise crown
#

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?

hexed oasis
#

either that or "Vampire Crawlers Wiki" in mainspace

wise crown
#

and make it styled like Crawlers namespace and the Vampire Crawlers page :p

wise crown
#

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)

wise crown
#

ngl, love how 4 yt embeds with a width of 321px basically perfect fit with my resolution

wise crown
waxen flintBOT
wanton plinth
#

is arca's id wrong?

CIRO is nowhere to be found on the wiki and ARCA is not on my save file

wise crown
#

lemme check dezzel's github

tropic zephyr
#

ciro is correct

wise crown
#

@wanton plinth CIRO = Arca

wanton plinth
#

yeah i dont see paesano (which is poe) either so these must be old ids

wise crown
#

apparently CAMILLO = Poe

#

and GERMANA = Clerici (which is what is shown on the wiki)

wanton plinth
#

perhaps we could list the old ones under trivia

wise crown
#

go ahead!

hexed oasis
#

best place to put it would be update history, if we can figure out what patch it changed on

wanton plinth
#

true

wise crown
#

Yeah

#

but if we don't know, I guess put it in trivia for now

hexed oasis
hexed oasis
wanton plinth
#

apparently CIRO is the new one actually

#

i can check if i still have any old save around

hexed oasis
#

oh right it was the wiki with the old ids, the save has the new ones PandaBonk

wanton plinth
#

well thats weird, 0.3.1c also has arca as CIRO

hexed oasis
#

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

#

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

wanton plinth
#

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

hexed oasis
#

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

wanton plinth
#

ah no, i have no js knowledge, so im making this in gdscript

#

but that does sound like a great idea

hexed oasis
#

it's probably not too different, most languages are pretty similar, just comes down to the particular syntax

wanton plinth
#

yea im pretty sure this wouldn't be too difficult to translate tbh

hexed oasis
#

probably the biggest difference would be using html and css for putting stuff on the screen rather than a game engine rendering pipeline

wise crown
#

And yeah, it's mainly the syntax that differs between different programming languages

hexed oasis
waxen flintBOT
wanton plinth
#

oh there is personal js

#

peak

wise crown
#

Always has been

#

And personal css too

hexed oasis
#

if you need some examples, [[Special:Gadgets]] lists all the js we're using on the wiki

waxen flintBOT
wanton plinth
#

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

wise crown
#

What wiki?

hexed oasis
#

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

wanton plinth
#

its from a friend's ttrpg, but i got admin by now

#

but yeah i was looking to edit style classes

hexed oasis
#

yea that's typically an admin task

wanton plinth
hexed oasis
#

you can only put personal js on [[Special:MyPage/common.js]]

waxen flintBOT
wanton plinth
#

so i cant make a page that runs it?

#

because that one only shows the code

hexed oasis
#

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

wanton plinth
#

ooooh i see

hexed oasis
#

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)

wise crown
hexed oasis
#

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.

wanton plinth
#

yeah i feel so lost

hexed oasis
#

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

wanton plinth
#

adding a button is turning out to be a challenge xD

#

it just wont show up

hexed oasis
#

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'])

wanton plinth
#

oh so the # is mandatory

hexed oasis
#

since it's an id on the div, yeah - if it was a class, then it'd be a period

wise crown
#

same case for selectors/classes/ids in css ^

hexed oasis
#

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

wise crown
hexed oasis
#

oh @wanton plinth you have the # inside the id="" on the page itself - the # is only needed in the js, not in the page

wanton plinth
#

we have a button at last

#

@wise crown nice characters page, it is hypnotizing

wise crown
#

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

hexed oasis
#

(click the arrow under Constructor to expand the config options)

wanton plinth
#

and we got a JSON parser?

hexed oasis
#

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

wanton plinth
#

could be resolved after turning it back into a string i think

#

but isnt in my plans

#

at least not yet

hexed oasis
#

at that point you'd essentially be building your own json parser LUL having to keep track of which keys were floats and re-append the trailing 0 on them during/after stringify

#

it does currently restrict to only a couple filenames, but you could remove that if you wanted to

hexed oasis
#

@wanton plinth backticks rather than quotes to put variables into a string

wanton plinth
#

what, but i thought it had no difference

hexed oasis
wanton plinth
#

omg what is this language

hexed oasis
#

js definitely has some intricies lol

wanton plinth
#

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

hexed oasis
#

it's in nanosecond format, you should just have to divide by 1000

wanton plinth
#

that overshoots it

#

its specifically 10000

#

but i had to do 10000000 on godot

hexed oasis
#

oh you know what... it might be in windows filetime rather than a unix timestamp

#

windows epoch starts in 1601 rather than 1970

wanton plinth
#

had to be microsoft

hexed oasis
#

...which means it might be a different format depending on the platform it last saved on

wanton plinth
#

thats the catch

#

i last played on linux

#

on the native build

#

nooo they caught my slink

hexed oasis
#

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);
  }
});
wanton plinth
#

uh oh

hexed oasis
#

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

wanton plinth
#

so how would i get an image from the wiki?

#

i need a separate widget for that?

hexed oasis
#

<img src="/images/Sprite-Gold_Coin.png" />

wanton plinth
#

ah true

hexed oasis
#

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)

wanton plinth
#

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

hexed oasis
#

not really expensive, just a bit annoying on the upkeep manually listing them

wanton plinth
#

oh, i thought it would take a few hundreds of api calls which could potentially cause some issue dunno

hexed oasis
#

nah it's just 1 to pull all the characters infobox data, for every character

wanton plinth
#

i saw that limit(20) and immediately thought it would be one per character

hexed oasis
#

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

wanton plinth
#

final fantasy noises in the distance

hexed oasis
#

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

waxen flintBOT
wanton plinth
#

they seem to be roughly ordered by release date

#

except arca comes before mortaccio

hexed oasis
#

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())

wanton plinth
#

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

hexed oasis
#

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

wanton plinth
#

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

hexed oasis
#

oh it's probably a race condition - you're trying to display before the api call is actually finished

wanton plinth
#

is there any sort of yield in js?

hexed oasis
#

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

wanton plinth
#

doing this causes me an error tho

#

just realized i forgot the "r"

#

and it still just ignores the sprites

hexed oasis
#

your read_save function needs to be async, and you need to await populate_tables() in it

wanton plinth
#

oh

hexed oasis
#

(and populate_tables should return something, to tell read_save when it's done)

wanton plinth
#

it works!

#

without the return even

hexed oasis
#

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)

wanton plinth
#

got tricked by the field name

hexed oasis
wanton plinth
#

does the dlc field expect a full url?

hexed oasis
#

nah just a page name of the expansion (or 'Vampire Survivors' for base game)

wanton plinth
#

beautiful

#

and it fits 2 rows per row

hexed oasis
#

if you're going to use the select images, you can also just pull the 'image' field directly from bucket

wanton plinth
#

well now i gotta turn them into buttons

hexed oasis
#

<a href="/w/${page_name}"><img src="..." /></a>

wanton plinth
#

more like, you click on them to see their stats

#

is the button tag working for this?

hexed oasis
#

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

wanton plinth
#

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

hexed oasis
#

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));
wanton plinth
#

i see

#

its worging

wanton plinth
#

protip: do not use emojis in the code editor

hexed oasis
#

lol, it can be used but yea the cursor position gets a bit messed up

wanton plinth
#

thankfully it is only in the specific line

hexed oasis
#

i prefer using these instead - [[File:Yes check.svg]] [[File:X mark.svg]]

wanton plinth
#

ah there they are

hexed oasis
#

yea those are a bit cleaner

#

looks like ace just doesn't support unicode in general very well

wanton plinth
#

the svgs are not at it

hexed oasis
#

/images/

wanton plinth
#

shoot i forgot about this again

hexed oasis
#

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)

slate cobalt
#

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

hexed oasis
#

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

slate cobalt
#

I did edit the box directly, I just saw its outside, darn

#

I'll try to fix it, I'm sorry

hexed oasis
#

np, happy editing thumbs_up

slate cobalt
#

Fixed

#

And I changed the terms

#

Does that look better :)?

hexed oasis
#

yup

slate cobalt
#

Fixed it again. Not too bad, thanks for the help!

hexed oasis
#

always good to see more people editing

wise crown
wanton plinth
#

what a journey

#

egg data and stats are next

wanton plinth
#

are the OtC part 2 secrets not on bucket?

#

huh they are, but they are not showing up for whatever reason

hexed oasis
# wanton plinth are the OtC part 2 secrets not on bucket?

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

wanton plinth
#

the characters article says there are 207 playable character, but even requesting 229 they didnt show up

hexed oasis
#

Remember bucket stores individual skins as rows not just characters, so the counts won't be matching

wanton plinth
#

yeah but it is excluding non defaults

#

it simply stops at secretino

#

the current query

hexed oasis
#

Have a look at [[Characters/Search]] and [[Module:CharacterSearch]] - that should be pulling all of them, with the bucket query in the module

wanton plinth
#

guess i'll throw a limit of 1000 then

hexed oasis
#

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

wanton plinth
#

they have the date but perhaps not a timestamp?

hexed oasis
#

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

wanton plinth
#

even requesting 1000 didnt solve it, but they do have everything set

#

oh wait

#

i think they dont have descriptions

#

nvm they do

hexed oasis
#

If you just want to test bucket queries you can use [[Special:APISandbox]] so you don't have to manually save and check

waxen flintBOT
hexed oasis
#

Selecting empty fields should be fine, it's usually just orderby that'll exclude null stuff

wanton plinth
#

what the hell

#

is this wrong then?

hexed oasis
#

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])

wanton plinth
#

no luck

hexed oasis
#

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?

hexed oasis
#

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

wanton plinth
#

there we go

hexed oasis
#

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

waxen flintBOT
wanton plinth
#

just finished showing stats with egg data

#

i'll need a better code to show that indeed

#

[[User:Lovenus/SaveWikifier]]

waxen flintBOT
wanton plinth
#

need to fix characters without stage data

hexed oasis
#

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

wanton plinth
#

oh

#

yeah that makes sense

wise crown
#

just tested it out

wise crown
hexed oasis
#

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 LUL

wise crown
#

nearly 128 hours

hexed oasis
#

interesting, i'm guessing that only counts time actually within a run? because on steam i have 356hrs

wanton plinth
#

yeah

hexed oasis
# wanton plinth i could WHAT?

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

wise crown
#

Good thing I only loaded her js during console

wanton plinth
runic valve
#

pretty unique, the only char that morphs with a weapon evolution

tropic zephyr
#

no, actually

#

cornell does as well

runic valve
#

forgot about him

stable bronze
hexed oasis
#

@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

stable bronze
#

Oh, that’s even better, I was making a card reference data template since I didn’t know.

hexed oasis
#

[[Bucket:Infobox vc card]] for example

waxen flintBOT
stable bronze
#

When do the cards get added to the infobox?

wanton plinth
#

im losing my mind, how do i center a god damn image?

hexed oasis
stable bronze
#

@hexed oasis thanks for fixing one of my copy/paste issues that overwrote Antonio.

hexed oasis
#

(or both?)

stable bronze
#

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.

wanton plinth
#

the text and the sprite that should be centered are more to the right than they should

hexed oasis
# stable bronze If I could play the demo, I wouldn’t be messing around with the Wiki, but can’t ...

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

wanton plinth
#

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

hexed oasis
wanton plinth
#

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

stable bronze
#

Forgot the most important card in his deck!

stable bronze
hexed oasis
wanton plinth
#

but the parent is full width no?

hexed oasis
wanton plinth
#

is just a normal div

#

with the all centered class

hexed oasis
#

you have a massive right margin on the stats pushing the gif over

#

get rid of the margin:auto on .to-the-west

wanton plinth
#

it still looks like that, is it flex?

#

i removed the wrong one

hexed oasis
wanton plinth
#

oh thank god it was that

#

you are a life saver

#

i was about to throw the computer out the window

hexed oasis
#

np

stable bronze
#

@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.

hexed oasis
waxen flintBOT
stable bronze
#

On phone now, will fix when I get to the hotel.

wanton plinth
#

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

hexed oasis
#

oh you can't since it's a lua module not json data, just use it as a reference

wanton plinth
#

i see

wanton plinth
#

now stats turn orange if they are being affected by golden eggs or powerups

hexed oasis
#

nice

hexed oasis
wanton plinth
#

jeez it looks totally borked

#

no clue why the stages are that big

hexed oasis
#

yup, css can be annoying like that

wanton plinth
#

got an idea for not yet bought characters

#

brightness filter works flawlessly

hexed oasis
wanton plinth
#

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

hexed oasis
#
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

wanton plinth
#

weapon bucket has (almost) no data and is not updating automatically either

seems to be the only one

wise crown
#

I'll see if I can start adding to VC content, since someone else is working on it

#

though, one week until the demo

hexed oasis
wanton plinth
#

ah i completely forgot about that

wanton plinth
#

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

hexed oasis
#

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

#

(the little arrows on the right will show the code)

wanton plinth
#

2193 levels worth of lifetime xp PoeMyGodVS

hexed oasis
#

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

waxen flintBOT
wanton plinth
#

oh true

hexed oasis
wanton plinth
#

can i turn the Survarot page into a pickup?

hexed oasis
#

what do you mean?

wanton plinth
#

{{Survarot}}, it is technically a pickup but is not listed under {{Pickups}}

waxen flintBOT
#
Vampire Survivors Wiki

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.

wanton plinth
#

oops

hexed oasis
#

but it's also technically not in the game yet as a relic

wanton plinth
#

yeah Survarocchi is the relic

#

but Survarot is a pickup that drops for ante chamber characters

#

and secretino

#

it has 3 pickup entries

hexed oasis
#

if it has an id as a pickup then sure you can stick the infobox on there

wise crown
#

@hexed oasis is the custom font free to use? 🤔

hexed oasis
#

no idea what poncle has it licenced under, it's in the game files tho

wise crown
#

I guess we can ask them

#

also, apparently, Spinach has a new sprite as seen in [[Let's Explore Vampire Crawlers - Episode 1]] 🤔

wise crown
hexed oasis
#

yea ultimately we should be uploading completely different sprites for crawlers

wise crown
#

garlic too

#

ye

runic valve
wise crown
#

Tony Cheese

wanton plinth
#

so you could get a silhouette as a hint

thorn prism
#

a silhouette would be too easy. maybe some information like main colour, which part of the game and maybe like best stat

wise crown
#

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

hexed oasis
#

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

hexed oasis
# wanton plinth weapon bucket has (almost) no data and is not updating automatically either see...

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

wanton plinth
#

so editing the bucket table is equivalent to updating the bucket?

hexed oasis
#

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

wanton plinth
#

but i suppose i cant since you mentioned im unable to use lua modules

hexed oasis
#

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

wanton plinth
#

ah i see

wanton plinth
#

any special reason for audios being blocked from loading from a js?

hexed oasis
#

they aren't - it looks like you jut have the url wrong, they're also under /images/filename

wanton plinth
#

ah

hexed oasis
#

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

wanton plinth
#

yeah i've noticed that some music pages take a little while to load the playback

#

will do

wise crown
hexed oasis
#

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)

wise crown
hexed oasis
#

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

#

except the jigsaw thing, no idea what that is, seems to be their own thing

wanton plinth
#

but they are not missing any info

#

and the id is correct

#

unless this is my browser giving up

hexed oasis
wanton plinth
#

my brain didnt brain there

#

not sure why i thought i had to decrement it

hexed oasis
#

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

wanton plinth
#

oh i thought they were like hashes

tropic zephyr
wanton plinth
#

nah it was probably because i had already iterated 4 and thought it would overshoot the array

hexed oasis
#

that's also looking like a lot of manual lists of stuff at the top, not great for long-term maintenance

wanton plinth
#

but i accept that they were the skeleton band

wanton plinth
#

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

hexed oasis
#

[[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

hexed oasis
#

coffin should probably be a param added to the character infobox

hexed oasis
wanton plinth
#

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

limpid totem
#

probably because of their megalo forms

hexed oasis
wanton plinth
#

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

wanton plinth
#

now it is as precise as it can be

wise crown
#

(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)

wanton plinth
wise crown
wanton plinth
hexed oasis
#

something else is probably setting the width somewhere then, like your wid variable is probably getting overwritten somewhere

wanton plinth
#

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

hexed oasis
#

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

wanton plinth
#

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

ripe rose
#

I just discovered a... secret? poe message

wise crown
#

He may say this if you are on either of the Sammy pages

#

(The character and enemy)

hexed oasis
waxen flintBOT
hexed oasis
#

idk why they're using common rather than a gadget, took me forever to find that since it wasn't in special:gadgets LUL maybe commonjs loads a bit sooner before the gadgets? idk

wise crown
#

probably

#

or they probably didn't think about making it a gadget

wise crown
#

@hexed oasis should the title for {{Vampire Crawlers}} be
Vampire Crawlers: The Turbo Wildcard from Vampire Survivors or simply Vampire Crawlers?

waxen flintBOT
#
Vampire Survivors Wiki

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.

Developer

poncle, Nosebleed Interactive

Publisher

poncle

Release dates

TBA or 2026

Engine

Unity

Genre

Action, Card Battler

Platforms

Steam, Xbox One Series S, Xbox One Series X, PlayStation 5, Nintendo Switch, Android, iOS

wise crown
#

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 🤔

hexed oasis
#

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]])

wise crown
#

Alr

hexed oasis
#

careful tho, a bunch of common.css will need fixing if you move it

wise crown
#

And at least one double redirect to fix too

#

no big deal, it's manageable

wise crown
wise crown
#

even changed the link in places like the sidebar and your draft of the crawlers mp

wanton plinth
#

it keeps sprites perfectly square

hexed oasis
#

aspect-ratio: 1 / 1;

wanton plinth
#

wait this is a thing?

hexed oasis
wanton plinth
#

waw its true

hexed oasis
#

@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)

wanton plinth
#

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

hexed oasis
#

@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 ¯_(ツ)_/¯

waxen flintBOT
wanton plinth
#

time to break the whole script apart now

hexed oasis
#

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

wanton plinth
#

are the skins always guaranteed to be right after the base character?

hexed oasis
#

in has_id?

wanton plinth
#

in the character bucket

#

im not sure how i would back reference them

hexed oasis
#

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)

wanton plinth
#

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

hexed oasis
#

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-

wanton plinth
#

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

hexed oasis
#

wdym you can't access the bucket entries?

wanton plinth
#

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

hexed oasis
#

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

wanton plinth
#

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

hexed oasis
#

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

waxen flintBOT
hexed oasis
#

(except it's mapping ids to page names, rather than skins)

wanton plinth
#

we got it (kinda)

#

but just passing the image didnt cut it

hexed oasis
#

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/')
}
wanton plinth
#

oh god i forgot to add the image to the query select

#

im so dumb

#

we are back

hexed oasis
#

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'}));
waxen flintBOT
hexed oasis
#

sidenote i might be breaking a bunch of stuff lol

#

okay it's fixed

wanton plinth
#

it almost worked right away

#

oh wait

#

i know why

#

almost

hexed oasis
#

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

wanton plinth
#

there are some extra .p there

hexed oasis
#

something in your code is doing that, it's not in any bucket or collection order stuff

wanton plinth
#

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

hexed oasis
#

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

wanton plinth
#

no, just arcanas and both pickups and relics are not there yet

#

other than that its completely fine

hexed oasis
#

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

waxen flintBOT
wanton plinth
#

oh wait i can edit that

hexed oasis
#

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

wanton plinth
#

base collection in

hexed oasis
#

wait did you reorder them? it's meant to be the order with the filter set to default, not by version

wanton plinth
#

ah

#

undid it

#

i didnt understand at first what you meant

hexed oasis
#

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

wanton plinth
#

[[Emergency Meeting (weapon)]] doesnt display the icon in the infobox because of the suffix

waxen flintBOT
wanton plinth
#

and nitesco's icon is named after anima of dracula (which is technically not wrong)

wise crown
#

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 😛

hexed oasis
#

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

wise crown
#

yeah I think it's good

hexed oasis
#

throwing together a basic page for Dungeons first, some dpl for listing them

wise crown
#

.

#

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?

hexed oasis
#

ah yea good idea, you want to do that?

wise crown
#

ye

hexed oasis
#

maybe go ahead and make it but don't update the id until it's out, so it doesn't appear yet?

wise crown
#

yeah

#

wiki.gg links are blocked here? 🤔 that's weird

#

yeah nvm

tropic zephyr
#

drg is blocked

#

because of the survivorlike

wise crown
#

oh

#

I see

hexed oasis
#

i always find it funny automod is so easily circumvented by screenshotting the blocked msg

wise crown
#

might as well block the fandom link to drg

hexed oasis
wise crown
#

@hexed oasis how does this sound?

hexed oasis
#

little tall but yea looks good

wise crown
#

it allows us to plan ahead by pre-emptively updating a sitenotice, rather than instantly

hexed oasis
#

ordering is a bit weird, just sorting alphabetically by the page name, but that'll do for now [[Crawlers:Dungeons]]

waxen flintBOT
wise crown
#

I believe [[Crawlers:Cards]] might warrant splitting, at least sometime in the future 🤔

waxen flintBOT
hexed oasis
#

for the individual tables yeah, but it's good to have an overall page too

runic valve
#

yep, red bonus to attack, blue bonus to def, and so on with yellow and purple

wise crown
hexed oasis
#

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

wanton plinth
#

are file redirects possible?

hexed oasis
#

yes but generally not recommended

runic valve
#

crawler wiki is becoming very beautiful FlamingGarlicVS

hexed oasis
#

@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

waxen flintBOT
hexed oasis
#

(also cleaned up your arcana api calls, do both in one call and filter after rather than 2 separate calls)

wanton plinth
#

oh my

#

i did them separate because of ordering

hexed oasis
#

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

wanton plinth
#

ah wait

#

its right there in the gist

wanton plinth
#

all skin ids are done except for the ones i dont own yet

#

falls to the floor

hexed oasis
wanton plinth
#

almost 2k bytes nuked

hexed oasis
# wanton plinth worked like a charm

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

wanton plinth
#

oh thats a thing, great

#

was about to do crazy things

hexed oasis
#

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

wanton plinth
#

and this one for some reason

hexed oasis
#

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)

hexed oasis
hexed oasis
wanton plinth
#

for some reason it is not finding them

#
const found = combined.find((entry) => (entry.name && entry.name.replace('&#39;','\'') === 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;
                    }
hexed oasis
#

put it outside, after the find() - you're putting it inside find()

wanton plinth
#

but is outside

hexed oasis
#

wait why are you replacing spaces with underscores? entry.name and item should both have spaces, that shouldn't be needed

wanton plinth
#

because i replaced earlier due to sprite names

#

but i'll get rid of this probably

#

since images are a thing

hexed oasis
#

it's found.arcana_type not just type

wanton plinth
#

woops

hexed oasis
#

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

wanton plinth
#

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 ":"

hexed oasis
#

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

wanton plinth
#

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

hexed oasis
#

ah nice

wanton plinth
#

but Icon-Emergency_Meeting.png doesnt exist (?)

#

oh yeah it also has the suffix for some reason

#

can i move those?

hexed oasis
#

probably best not to right now, idk where all is accessing them in what way that would need to be fixed after moving

wanton plinth
#

alr

wise crown
#

any idea if licensing is public domain (due to it being a text-only logo) or not?
[[File:Vampire Crawlers logo full.png]]

hexed oasis
#

no idea, licensing isn't really my area ¯_(ツ)_/¯

wise crown
#

ok

hexed oasis
wanton plinth
#

yeah i added that

#

im getting this tho

#

no clue why

hexed oasis
#

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

wanton plinth
#

collection is now pretty much done

#

doing enemies next

hexed oasis
#

gl with that... most of them don't have ids, but have fun with the enemy_variant bucket 😛

wanton plinth
#

getting the specific sprites will be the worst part i fear

#

already managed to merge the entries

hexed oasis
wanton plinth
#

some are in images and others in sprites tho

#

and i'll need a base one for multiple ids

hexed oasis
#

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

wanton plinth
#

is there an easy way to make sortable tables from js?

hexed oasis
wanton plinth
#

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

wanton plinth
#

well i managed to sort them by kill count so thats fine by me

wise crown
#

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

wise crown
#

so yeah, this notice will show up