Monster Hunter World Color Randomizer Mod

Monster Hunter World Color Randomizer Mod

Nuzcraft
Nuzcraft

If you’re a fan of Monster Hunter: World, please check out this mod! I created a color randomizer in python that replaces the colors in the monster textures with randomized hues. You can download batches of pre-randomized monsters from itch.io and Nexus Mods or you can download the source code and make your own randomizations!

A collage of differently colorized rathalos, paolumu, and nergigante

Discussion and Retrospective

This project was almost just an extension of my Freedom Unite Color Randomizer work. After I finished working on the first round of the FUCR, I feel like I went directly into trying to get MHW color randomizations working. If I remember correctly, Shepard was doing MHW randomizer speedruns at the time, using a texture randomizer from Bonecuss that was really cool. I had a lot of help getting started with MHW modding from that community. 💖

Learning to Mod MH: World 💪

December 2021

Development started. The hardest part at the beginning was just getting ahold of the dang texture files and getting them into a format that I could process.

  1. ‘Unchunk’ the game files and locate the textures (needed a special tool)
  2. Convert the .tex texture files into a more usable .dds format (needed a different special tool)
  3. Convert the .dds files into .png image files
    • this was difficult because some textures used different compression methods that could only be uncompressed with specific tools

Once I had .png files, I could start my processing and automation.

  1. Keep track of files and parameters in a large csv file
  2. use bash scripts to loop through and process each file
  3. use python to alter the colors
  4. go back through the compression process
    • .png to .dds
    • .dds to .tex
    • copy file to output directory

This first pass had some… interesting colorizations. It was really fun to look at, but the colors didn’t really match the underlying monster and there were a lot of pinks and blues in all the monsters.

The method for color randomization I used was interesting, but flawed. I found a library that could analyze an image and return a reduced palette of colors based on that image. Ideally, for each monster texture, we get a palette of distinct colors that we can use as baselines to re-color.

glavenus

Glavenus above is mostly blue and red; ideally the palette would include a blue hue and a red hue so that colors close to those could be shifted to different hues. Unfortunately, without control over the palette selector, the glavenus palette trended toward putting a bunch of colors in the blue space and in our end result a single color dominates the entire monster.

Other monsters tended to get blotchy due to this same issue. If the palette picked out 2 shades of orange on tigrex and we shifted them to different hues, then the old orange tigrex is now a purple tigrex with green splotches where we’d think there should just be more purple.

Make it POP and SHINE ✨

March 2022

I decided to double down on the bright and crazy nature of my colorizations and implemented some changes to increase the brightness and saturation of all colors.

You can see here above a bit of what I was saying about glavenus. Instead of being a cool 2-color monster, it’s just all gold, even the inside of its mouth.

Bring it back to reality 🌎

October 2023

After spending some time updating my MHFU Color Randomizer, I implemented similar changes to the MHW color randomizer. Most notably, a full overhaul of the color randomization system. Instead of relying on a palette of colors from each individual image… I used a rainbow! 🌈

I defined bands of color based on their hue and updated the script to shift everything within those bands similarly to a different defined hue. This solved a number of issues.

  1. Similar colors always randomize the same.
    • Oranges change to blue or purples change to red.
  2. Bigger bands don’t drown out smaller ones.
    • Blue is a much bigger band of colors than orange, so a true random hue is more likely to be blue than orange. My method gives them an equal chance of being chosen.

I also reduced the saturation/brightness increases from before so the monsters look less fantastical and more like a recolor of their original that could still exist in the world.

nergigante with blue, yellow, red belly

This nergigante is distinctly blue, yellow, and red on its belly, but it’s still similar to a regular nergigante texture.

In addition to color randomization, I put together special files for greyscale versions of all the monsters and a second special version where the eyes are the only things colored on each monster. These are available on itch.io for anyone paying $2 or more for the mod.

greyscale Shara with colored eyes

Conclusion

I had a lot of fun making this mod! I learned a lot and I’m very happy with the final product. I hope people are able to find the mod and enjoy playing it.