From ZDoom Wiki
Jump to: navigation, search
Note: DECORATE offers a much more powerful feature set for creating custom items and enemies. It is recommended that you use it instead of DeHacked for future projects.
For more information on this article, visit the DeHackEd page on the Doom Wiki.

This is referred to from Special lumps, however, it is its own topic as well. ZDoom allows you to import a DeHacked patch into a WAD so that a whole mod can be packaged neatly into one file. Simple DeHacked (text, not code patches -- DeHacked version 3.0 or later) or .BEX patches may be used. For changing Strings you should use the LANGUAGE lump. The only thing that can't be done any other way is changing the default amounts of Doom's Ammo items.

DeHacked is an editor originally created for vanilla Doom that allows you to change the executable file. Hit points, sounds, frame sequences, text Strings and a few other miscellaneous values can be changed. The most common patches have been making super-fast monsters, super-fast weapons, player-seeking-self-detonating barrels, and so on, however more balanced and artistic modifications can and have been made. Even though many great effects can be achieved with DeHacked, the flexibility is not complete. Things like monster AI and armor class are still fixed or don't budge much.

Older DeHacked patches contained only illegible code that was to be applied to an executable file by the DeHacked patching utility. Later versions of DeHacked saved their patches in a human-readable plain text format that could be used the same way, but you could edit them with any text editor, mostly only feasible for small edits. When BOOM came around, it was able to load these plain-text patches and affect changes to the game upon startup without any crude hacking such as what DeHacked did to executables -- no patching of the executable. Other source-ports followed suit, and now we have command-line loadable DeHacked support with most modern source-ports. BOOM also provided certain extensions for DeHacked support, so if you see a file ending in .BEX, for Boom Extended, that is a file that uses said extensions. BEX allows greater flexibility in string editing (such as being able to do it AT ALL outside of vanilla Doom, because the prior format relied on replacing text based on offsets, which were useless unless used in conjunction with the original executable file the patch was created for.) BEX also allows application of codepointers to any frame.

ZDoom did the same, and now has its own ZDoom codepointer extensions in addition to BOOM's, which allow using effects such as the ones in Hexen and more in Doom. These are ZDoom-specific and not backward-compatible with vanilla Doom or with any other source-ports. ZDoom also has its own set of bits (ZDoom-specific bits in BEX) that can be applied to Things. These bits are also not backward-compatible.

A great place to learn to use DeHacked from the ground up is at Enjay's reference:

If you want to create dehacked patches without actually using DeHacked, you will need to know the DeHacked thing numbers. These are a set of numbers that correspond to the order the actors were defined in doom2.exe. They have no meaning outside of DeHacked and ZDoom's DeHacked loader.