Skip to content
This repository was archived by the owner on Oct 31, 2025. It is now read-only.

jazzathedev/wplace-scripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WPlace Scripts

Hello and welcome to Jazza's mind. She is a rather messed up person, but trying her best to make some useful scripts for myself and others.

I currently take requests for time-lapses of your artwork, simply DM or comment on a post of mine and I will make you one. My reddit username, at least for now, is OkInfluence36. I don't particularly care about reddit, so the most reliable way to contact me is via email; Send me a message at wplace.headpiece722@passmail.net (yes, proton alias) and I'll get back to you.

AI Disclaimer

Some generative AI has been used in the creation of these scripts. My general philosophy is that, if I care about the code, I will not use AI to create it. Hence, scripts such as all of the golang ones are created by me, all tile pulling scripts are created by me, but things like the "probe-wplace-rate.ts" or "regions.ts" files are generated by AI. I believe in a programmer's superiority over an AI, and do not condone "vibe coding", especially when using it without disclosure, or for large, public facing projects.

Usage

The scripts always evolve, and I will try to keep this README up to date.

Tools

These should be fairly self-explanatory. They are used as a generally one-off thing to do a simple task such as find the ratelimits the "pixel" endpoint has.

Tile Pulling

Tile pulling is a bit more involved, but I've tried to make it as simple as possible. To pull tiles, you simply edit the "config.ts" file (likely you won't need to even do this), and then simply run "wplace-archiver.ts" with TSX. I do this on my home server with a cron job, so I can consistently pull the tiles every 6 hours. To achieve the 26 minute run time, I use two forms of concurrency, one in-script where I run 1800 concurrent requests (IN THEORY, in practice it is closer to a measly 336), and then the second form which is simply multiple instances of the same script, with different tile ranges for each. To avoid being ratelimited I pay for 500 webshare (not sponsored) high priority proxies which I cycle through. I have seen others use ipv6 subnets, which is, quite literally, infinitely cheaper than my system (It's free! I spend well over 30 USD a month on this!)

Processing

This means two things.

  1. I do full-map processing to get information such as the average or most common color of a tile, how many pixels are filled in said tile, and more
  2. I extract specific tiles from the archives, combine them into one larger image, crop them to certain dimensions, and then convert them into GIFs and videos.

Both have simple in-the-main-function or near-the-top configuration options. Besides the proxy costs, I also occasionally rent out a high-end hetzner server to run the processing scripts faster than my measly i9-13900HX can.

License

GPLv3, see the internet for details. I believe in FOSS above almost all else.

Misc

I am a student, just a lil girl learning to program. If you want to learn more, go to jazza.dev. This is kinda expensive for a student, so if you have a dollar in your bank account you want gone so it can be a nice even number, check out ko-fi.

If you want my archives, they are, for now, hosted here on a Hetzner Storage Box. I am REALLY struggling to find a nice place to host them, so if you have a good alternative, let me know. But right now, hetzner storage boxes are not only cheaper than backblaze (somehow?!), but also... I like hetzner. I use backblaze for smaller stuff <3

Hetzner SBox details:

  • URL: u498101-sub1.your-storagebox.de
  • Username: u498101-sub1
  • Password: aUXqKbP7DJFyBpD9c3b*MU&wvGFXJG34KuvtBZdmg6^H*JF!ZMqHpB#z2N9A@^p9