Created by a human, with a brain badgeA badge with a character next to the text "Web 14," indicating that the site may contain slightly offensive materialDo What The Fuck You Want To Public License badgeD D Race Network badgemi toki e Toki Ponamade with MY OWN TWO PAWS badgeNo cookies badgeNo tracking or analytics badgeMade with server-side scripting badgeHosted on home internet badge


Rain World Background Generator

Web app: https://RWBG.isaacelenbaas.com/RWBG.html
git: https://isaacelenbaas.com/git/RWBG.git
tar: https://isaacelenbaas.com/git/RWBG.tar.gz


(Dynamic) example output - try refreshing!

The above monitor setup is two stacked horizontal monitors with a vertical one to their right, which was my setup in college. The vertical monitor is "pretending" to be three stacked screens.

Entering your monitor configuration in the web app will redirect you to a link which can be refreshed to generate a new background (like the above example output). This background will need to be set to stretch over all displays. I have scripts to randomize the background of each of my machines using a local build if present, else this website, every three hours.

About

RWBG will, given monitor information, generate a background where each monitor is a game screen and each screen is (mostly, I did my best and Rain World's geometry doesn't make sense) in the correct game-space relative to those around it. Letterboxing is avoided where not necessary.

Currently the supported games are Rain World and Environmental Station Alpha. Build each using make RW or make ESA.

I did my best to make this cross-platform compatible, but it is not completely and I do not intend to finish it at this time. Contributions are welcome.
The build system is a bit horrible to embed the images in the binary, but it works and is relatively quick. (EDIT: nevermind, Downpour is huge - definitely compile with -jN)
Rain World's gen_map.py requires a folder named "Merged Screenshots" with a specific layout containing merged screenshots of each room in the game. These are available here or at the same URLs for this repo with s/RWBG/RWMS. You will also need to set a path in gen_map.py to your Rain World installation folder.
Modded regions are supported if one can provide merged screenshots for them. This can be done with the script alongside the merged screenshots which I used to generate them. Henpemaz has a mod to export the images used as input for that script.

Usage

`main AxB C,D E,F@G,H:IxJ E,F@G,H:IxJ ...
Where:
AxB are grid dimensions of your monitor setup
C,D are the grid coordinate of your primary monitor (or at least which to start searching from) - has no effect anymore
E,F are the grid coordinate of a monitor
G,H are the pixel coordinate of a monitor
IxJ are the pixel dimensions of a monitor
Coordinates have their origin in the upper left.

For example, my college setup had two monitors above my laptop:
1 1
1 0

with the following command:
`main 2x2 0,1 0,1@622,1080:1920x1080 0,0@0,0:1920x1080 1,0@1920,0:1920x1080

This setup also gives you a lot of flexibility - I later rotated the upper right monitor to be vertical. I told RWBG that the vertical monitor was three smaller (horizontal) ones to encourage putting large vertical rooms on it:
0 1
1 1
1 1

`main 2x3 0,1 0,1@0,200:1920x1080 0,2@0,1280:1920x1080 1,0@1920,50:1080x607 1,1@1920,657:1080x607 1,2@1920,1264:1080x607

Example output

Note the as-needed letterboxing in the bottom left and on the leftmost horizontal monitor due to screens coming from the same rooms:
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.
A picture of a computer setup. There are multiple monitors each only displaying a wallpaper, which is stretched across all of the monitors.