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. Their code can be browsed on the ZDoom wiki for reference, offering a large quantity of examples to someone wishing to learn the language.

Other source ports that support DECORATE to varying extents are Vavoom, DelphiDoom, and ACE Engine. The state syntax has also been borrowed by Eternity Engine for EDF.

Since GZDoom version 3.0, further development has shifted to the ZScript language; however, DECORATE is still supported. Since other ports that support DECORATE, such as Zandronum or k8vavoom, do not support ZScript, DECORATE remains useful to achieve a wider compatibility profile.