DECORATE

DECORATE is a scripting and content definition language in ZDoom that is used to create new actors. The origin of the name stems from its initial use merely as a way to create new decorations without having to steal frames from other actors, as required by DeHackEd.

The original syntax, now deprecated, was very simple but did not allow for expansion. To allow gameplay modders to define new monsters, the language was redesigned with a more robust syntax. More features were added and the language gradually expanded to cover all actor types, including monsters, weapons, powerups, player classes, and more.

ZDoom version 2.3.0 migrated all of the built-in game actors from C/C++ to DECORATE code. This code can be read on the ZDoom wiki, offering many examples to someone learning the language.

ZDoom was discontinued in 2017, but DECORATE continues to be used since it is supported by several forks, notably GZDoom and Zandronum, plus other source ports to some extent, including K8Vavoom, DelphiDoom, and ACE Engine. However, in GZDoom, it is officially deprecated in favor of the newer, more powerful ZScript language. Since other ports that support DECORATE do not support ZScript, DECORATE still remains useful to achieve a wider compatibility profile.

The state syntax of DECORATE was borrowed by Eternity Engine for its EDF language.