Want to get started with zdoom scripting languages.

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
User avatar
Posts: 10
Joined: Fri May 20, 2022 7:16 am
Graphics Processor: Intel (Legacy GZDoom)

Want to get started with zdoom scripting languages.

Post by Frost-Core »

Hi there! i always wanted to make a cool little mod that utilizes ZScript or ACS, however i don't know any of them and how to script with them, can anybody tell me an easy to follow tutorial or something?, please let me know :D
User avatar
Posts: 1290
Joined: Tue Oct 20, 2015 12:50 pm
Graphics Processor: nVidia with Vulkan support
Location: Kozolupy, Bohemia

Re: Want to get started with zdoom scripting languages.

Post by ramon.dexter »

Hi, I can only recommend you starting with zscript. While ACS could be used for level scripting, there are many areas that ACS cannot access or with limitations, mostly customized actors a customized zscript classes or event handlers. ACS was generally designed for level action scripting beyond standard linedef actions.
Zscript on the other hand could be used for direct game modification. Most of formerly built-in actions are now transfered to zscript, which means that you can modify mostly anything. You want new inventory item with some action that is not built in? Go on and write your own action special. Or, you can completely alter the behaviour of armor to fit your needs. Basicaly anything is possible.
You can learn more about zscript here, in this wonderful guide written by JekyllGrim:

But I have to note one thing. Zscript is generally harder to understand. Not like decorate, where you operate mostly in States part. But once you grip the basics, the learning cur e is pretty steep.
User avatar
Posts: 118
Joined: Sat Mar 19, 2022 9:52 am
Location: Argentina

Re: Want to get started with zdoom scripting languages.

Post by RKD »

Just as a sidenote of this:
ramon.dexter wrote:Zscript is generally harder to understand. Not like decorate
From what I've been researching lately, the reason why ZScript is harder to grasp is due to the current lack of easy-to-understand documentation in comparison with that of DECORATE. To be more specific, every single actor has its DECORATE definition documented, same with most of the examples about custom actors, whereas I've only seen ZScript classes definition for Doom alone so far. I tend to learn better when examples of "how to use this cool flag, function, property, whathaveyou" are provided and so far all of the ones I've seen are written in DECORATE, making it easier for me to get that instead.
Also, if OP happens to know some C++ beforehand, ZScript shares some similarities to that and may not be as hard to understand, which its worth to be pointed out. Also the fact that there is advanced stuff that DECORATE can't do but ZScript can.
User avatar
Kappes Buur
Posts: 4023
Joined: Thu Jul 17, 2003 12:19 am
Location: British Columbia, Canada

Re: Want to get started with zdoom scripting languages.

Post by Kappes Buur »

The first attempt at helping maps along with scripting was with ACS in Hexen, which was expanded on during the development phase of ZDoom. ACS is easy to understand, even if you do not have any language experience. It's a very limited subset of C.

Because of some mappers requests, DECORATE became a thing. During the course of scripting new monsters, weapons, etc. the idea of extending that notion further sprang up and the concept of Doomscript was introduced. Graf Zahl was very active on developping that idea further which emerged as ZSCRIPT.

Think of ZSCRIPT of the culmination of ACS, DECORATE and a more comprehensive scripting language support, beyond C. The get a handle on ZSCRIPT see the two very top topics in the tutorial section.

Scour the forum for every recent topic you can find on scripting, where many questions are asked and answersed. If you are more interested in new actors then download a few files from REALM667 where some older decorate scripts (oldscript) have been updated to zscript scripting.

Following that, the rest, as the saying goes, it is up to you :)

Return to “General”