Post feature Report RSS Why Beautiful Doom is highly compatible with other mods and how to take advantage of that

I wanted to make Beautiful Doom as compatible as possible with various map packs and even other mods, and it wasn't an easy task. This article explains why, and also contains instructions on how exactly achieve that compatibility.

Posted by on

Here's a sad fact: gamplay mods for the ZDoom family of ports are rarely compatible. Most of the time they aren't, and if you try to run several mods together, either something will break, or you simply won't see certain features.

Mods also don't always work with all maps. Sometimes they break balance on some maps, other times they can make something too easy or too difficult, and if a map is highly advanced and has its own scripting, certain things may not work.

But why? The simple answer is: it's very hard to make things compatible under ZDoom. This problem is actually not unique to the ZDoom family of ports; it appears in many other games, but perhaps in this engine it's a bit more apparent.

First of all, if a mod is a gameplay mod (i.e. it has no maps and is intended to be played on existing maps), that means that when it adds a weapon, or a monster, or a prop, it has to replace an existing object. So, if you have two mods that replace the Shotgun with some other weapon, you can't combine them: you'll either see one weapon, or the other. Or, say, a mod adds a small feature to the Cacodemon: its blood is now blue. Then there's another mod that changes a whole lot of things for the Cacodemon, such as adding new attacks and changing its stats, but guess what? Those mods can't be combined, because the one that simply redefines Cacodemon's blood has to replace the whole Cacodemon to do it. So, these mods won't work together.

In addition to that, there dozens, hundreds, thousands of little things that a mod author can simply forget to take into account. For a example, you're playing an advanced map with a weapon mod; an event happens in that map that takes away all your weapons and then gives you back the Fist... except you get the vanilla Doom Fist, not the one from your weapon mod. Why? Because that's how that map's script was written, and because both the vanilla Fist and the modded Fist are present in the code, and it's something that's pretty hard to take into account.

Thankfully, nowadays GZDoom has ZScript, which is an expanded version of DECORATE, its former actor scripting language, and ZScript offers many more tools to increase compatibility.

Okay, so how do I play Beautiful Doom with other mods? Do I need to change something in the settings?

Yes, you may need to!

Let's look into this in an orderly fashion.

Load order

If you want to play Beautiful Doom with another gameplay mod (such as a monster pack, or a weapon mod), it's usually important to make sure that Beautiful Doom is first in the load order, and the other mod is last. Because whatever is loaded last takes precedence, so, for example, if you want to see the HUD from another mod, that other mod has to be loaded after Beautiful Doom.

If you're using ZDL, just make sure the second mod is at the bottom of the list:

And if you're using a .bat file or command line, the second mod should be last:

gzdoom.exe -iwad doom2.wad -file BeautifulDoom700.pk3 OtherModName.pk3

Beautiful Doom Compatibility Settings

Now let's take a look at this settings menu:

Beautiful Settings

There are many options under Beautiful Doom Settings, but these five are the most important ones for compatibility. Let's take a look at what they do and when to use them:

Beautiful Doom Weapons: Disabling this will remove Beautiful Doom Weapons from the game. If you load another weapon mod with Beautiful Doom and make sure this option is disabled, then the other mod will spawn its own weapons. This allows you to play Beautiful Doom with other weapon mods, while still enjoying Beautiful Doom monsters and decorations, enhanced textures, footsteps, etc. This option also affects ammo replacements.

You can see an example of this in this video, where Beautiful Doom is being played with a lovely weapon mod known as Naku-Naru:

Beautiful Doom Monsters: Similary, this option governs whether you'll see Beautiful Doom monsters or vanilla monsters. Disable this if you want to play the mod with a monster pack (e.g. Colorful Hell). This will also disable enhanced monster projectiles, since only Beautiful Doom monsters use those. This also disables enhanced pre-placed monster corpses. (In case you didn't know, many monster corpses can be used as decorations and are placed by map authors; with this option enabled monster corpses will look more varied, to match the actual monster death animations.)

Beautiful Doom Items: This controls things such as keys and power-ups. Beautiful Doom items are not different in any way from vanilla items, but if you're playing another gameplay mod, or if you just don't like them, you can disable this.

Beautiful Doom decorations: This option affects props: torches, lamps, columns, decorative corpses/bodies (such as a victim on a stake, hanging torsos, etc.).

Safe actor replacement

This is a complicated topic, so I'm making this into a separate secton. It has 3 options: Disabled, DEHACKED only and DEHACKED and sprites.

First, if you don't know what DEHACKED means: it's an old tool that was capable of modifying Doom actors back in the DOS era, and it's compatible with every source port out there. It's sometimes still used nowadays with map packs that strive to keep vanilla compatibility. A good example of an excellent recent map pack that uses DEHACKED is Eviternity.

Eviternity contains a custom green Chaingunner, a Cyber Baron and a mechanized Pinky that are defined in DEHACKED. Now, you could just disable Beautiful Doom Monsters, but that's not very fun to do just for 3 monsters, right?

If you use DEHACKED or DEHACKED and sprites option, those DEHACKED actors will be automatically detected by Beautiful Doom and they won't be replaced, even if you're using Beautiful Doom monsters. Neat!

What about the sprites part?

Well, imagine you're playing some really old wad, or a very retro-styled one. Sometimes wads directly replace sprites to make one thing look like another. For example, a forest-themed map that replaces a floor lamp sprite with a green bush sprite. It doesn't contain any code, it doesn't replace the actor itself, it just replaces the sprite by using a different graphic with the same name. And in this case you likely want to see the bush, not a lamp, because that'd break the map's aesthetic, right? This is quite common in Deus Vult II, for example.

Well, if you use DEHACKED and sprites option, Beautiful Doom will detect if more than one sprite with the same name is loaded, and it won't replace the actor. Note, for animated objects it'll only check for the first sprite; for example, for Red Torch it'll check if TTRBA0 sprite is loaded more than once.

If the option is set to Disabled, Beautiful Doom Actors will always spawn, regardless of sprite or DEHACKED replacements. Most of the time DEHACKED and sprites is the preferred choice, but things may vary.

Per-monster replacement settings

This submenu is mostly for edge cases, when things either go really wrong with custom monsters, or when you just dislike a specific replacement and want to get rid of it.

The menu is exactly what it says: if Beautiful Monsters are enabled, in this menu you can define whether each specific monster will be replaced by a Beautiful version of not.

Don't forget to restart the map!

Note, changing any of the compatibility options require loading the whole map in memory again. That means restarting the map, and you won't be able to load a save that was made on the same map before you made the changs. That's because everything related to actor replacements happens at the start of a map and can't be changed dynamically.

It's totally fine to set the settings as you like in the main menu before hitting New Game as well!

What about the HUD?

Many people have asked me if it's possible to add an option to disable Beautiful Doom HUD. Sadly, it's not that easy, because GZDoom doesn't allow to just load multiple HUDs and switch between them.

But you have some options:

  • Navigate to Options > HUD Options > Alternative HUD and set Enable Alternative HUD to On. Alternative HUD is a special HUD defined in GZDoom that will override all other HUDs. Enable this, and it'll override Beautiful Doom HUD.
  • Load another mod that defines its own HUD. As long as you load it after Beautiful Doom, the mod's HUD should take precedence.
  • Open Beautiful Doom's PK3 file and delete SBARINFO. This will remove the HUD entirely.
Post comment Comments
Zales360
Zales360 - - 47 comments

This is pretty much the only way to play Doom (and custom WADs) for me since I've tried it. There are more complex mods, sure, but they alter the gameplay too much. Beautiful Doom is just PERFECT. I love how it provides three presets to choose from, depending on how close to vanilla Doom you want it to be

Reply Good karma Bad karma+3 votes
paulmb
paulmb - - 15 comments

I agree with the above poster........ Beautiful DOOM is ALL the perfect!

Reply Good karma Bad karma+1 vote
eyegod
eyegod - - 4 comments

I'm having trouble using this mod; game loads, but crashes upon loading into levels; music starts playing, and that's it.

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: