ZScript is a scripting language exclusively implemented in the GZDoom source port. Created by Marisa Heit and Graf Zahl, it is the fulfillment of the planned "DoomScript" feature that Heit first brainstormed in 1999.
The language supersedes DECORATE and supports all of its features, albeit with various minor specification and syntax differences. It also supports direct level and actor data access, proper user-defined structures/classes, virtual methods, and more. Several DECORATE programming techniques which previously required ACS shims for complex math or logic are now possible to implement entirely in ZScript. (The one exception is ACS still being encouraged for map scripting events.)
ZScript was initially implemented in ZDoom, but it was mostly developed by Graf Zahl and was never added to an official release of ZDoom, which was discontinued in 2017. As of GZDoom version 2.3.0, all built-in actors were converted to ZScript.
Further development migrated large portions of the game logic from C/C++ to ZScript. This has enabled an unprecedented level of gameplay modding, with just about every aspect of gameplay exposed to scripts. During runtime, ZScript performs well, since it is just-in-time compiled.