Requires GZDoom 4.4.0 or higher!
MOShuffle (or Map Order Shuffle) shuffles the order of the levels you play. Simple right? You may start on MAP28, and end up fighting your way to MAP06! If you're playing a normal 32 map wad, it will automatically work the moment you start a new game. Non-standard mapsets won't work, unless specified in the compatibility list below. If you would like to add support for a mapset you think would be worth shuffling, let me know in the replies
By default, any regular map order (MAP01 to MAP32 or beyond) will work in the default Shuffle All Maps mode. The mod will autodetect and work with the following mapsets and iwads:
A Wadsmooshed IWAD - All Doom iwads merged into one. Warning: You MUST disable any of your missing iwads from the options menu.
Compendium - Many classic megawads.
Lexicon - Many modern and old megawads.
Consolation Prize - PSX Doom and Final doom combined into one pack (D64 support coming later)
There are a few options, but are only really relevant when using one of the compatible packs above.
Randomizer Mode - Choose the way the map order is randomized
- Shuffle All Maps: Use all the maps available and create a random map order.
- 32 levels (Respect map numbers) - Using all the available level sets, create a 32 level mapset. This respects the level order. For example: AV01, NJZ02, BIO03, MAP04 etc. If there is only a single level set (i.e vanilla Doom2), the mod will do nothing to the map order.
Version 0.3f (toxicfrog's updated version)
- As far as I can tell, the only way to shuffle the map order is to dynamically alter the nextmap and secretmap level locals in zscript. This means hubmaps (Hexen/Strife) and any maps that specify a map to warp the player to will never wok with this.
- Due to the above, you are forced to endure a single intermission screen. I would like to do away with that but not sure if it's possible.
- Currently uses a fairly jank system to detect iwads and mods. Could probably be improved.
- Uses a TON of cvars for customization purposes. Can be optimized later.