I can't thank you enough for the effort you've put forth in sharing this information. It's one thing to share videos to promote a product, but sharing a unique skill at the level you have on your channel is to be admired and appreciated. While this is just a hobby for me, I'm now sharing this same hobby with my son ( now 10 ), and we often reference your library when creating levels. Major KUDOS to you sir. You've intrigued me with the scripting ability, and I may well follow this path as time allows to see where it leads. As a technical professional, I just had to reach out and thank you given that I can only imagine the time and effort you've invested to present and share this level of quality material. My son and I both thank you.
I usually struggle with tutorials but you explain things so calmly and gently. Thanks to this, I just wrote my first script and I feel a lot more comfortable writing more. Thanks.
Glad you're back to making zdoom videos. I'm a little more advanced with ACS than this, but if this came out a few years ago This would have helped me out a lot. Can't wait for more in this series
Even though I can rig optional quests to benefit you in a map later on, or even set up complex moving platforms and cutscenes, I still make rookie mistakes like failing to include the correct bracket or using a semicolon when I shouldn't.
I just started using SLADE and made some maps....I want to add custom stuff eventually...it sure is something trying to learn the how to's....I have one song and a title page but can't seem to link a song to map02
"Oh, okay, we're gonna be scripting for a switch and a door. Let me just make some sectors and a door in between..." *10 minutes and 40 errors later* "Fuck doors! Just a switch is fine." *1 hour and 0 progress later* "MAPS CONSISTING OF A SINGLE ARENA ARE PRETTY COOL."
Maybe stupid question, but how applicable is this series of guides with modern GZDoom? I've never done ACS coding before, but found your RPG system tutorial and found it surprisingly easy to follow along, so I wanna learn more proper from the beginning
All this stuff still applies to modern ZDoom-based ports (the ACS scripting language has changed very little over the years), so you should be good to go.
Music is on a Playlist right? I've been writing a script that aims to cycle through different songs on a Playlist, but I can't tell when the song will be over in code. I have this really good idea and I'm writing a Doom OGG playlist handler to demonstrate it, I'll DM you with a TH-cam link when the video is finished.
What programming language did you study to be able to program a script? I'm interested in starting to make scripts but many don't have tutorials on how to do them.
I got started by reading C++ programming books in the mid-2000s, and then in the late 2000s I took some C++/Java courses in college. So short answer: C++, and a small bit of Java. Today I mostly use C# though, since I work with Unity and that's the language its scripts use. All that being said, this video series should teach you all of the basics of programming: variables, conditional statements, loops, etc. You can take nearly everything you learn here and almost immediately transfer it to every other major language.
you have a map sample map you shown in this video? or would i need a basic understanding of doom map making to something similar before starting this tutorial?
What Script Type should i use on a Eternity Doom 2 Map? I tried making a simple print(); script and nothing worked (And yes, i did check if the linedef was connected to the script)
Eternity seems to have some weird compatibility issues with ACS scripts. I noticed 'named' scripts don't seem to work properly, for example. I did get the Print function to work just fine, though, so I'm not sure why you were having that issue in your map. I pretty much never use the Eternity source port, but from the forum posts I read on Doomworld it seems its ACS support is somewhat limited. If you plan on making heavy use of ACS scripting, it might be a good idea to use (G)ZDoom instead.
Idk if I've asked before, if I have "oops". But is it possible to... =================== script 1 (Void){ execute script 2; } script 2 (Void){ hi; } =================== Is it possible to execute a script within a different script?
When I hit enter between the brackets {} it just moves the second bracket down to line 5, doesn't create any white space or anything. Are the indentations simply for readability? Can the scripts work without them? I'm not sure how to get them to come up for me, I am using Doom Builder 2..
Yeah, the indentions are purely a "stylistic" thing, but they're a very common practice and should be used to make it easier on yourself going forwards. I also highly recommend using a more modern version of Doom Builder like Ultimate Doom Builder. Doom Builder 2 hasn't been updated in almost a decade. You can grab Ultimate Doom Builder here: forum.zdoom.org/viewtopic.php?t=66745
Great tutorial Chubz! I have a question, I've seen ACS files inside of WAD/PK3 mods, how do I put an ACS file inside of my mod? I don't see any options for it.
To put an ACS file inside a mod you need to download ACC from ZDoom(dot)org/downloads, to compile your scripts you need to put your script in a .txt file, then you just drag and drop it on acc.exe and it should compile it and output it with a .o extension, then you just put the .o file in a subfolder called "ACS" if you are using a PK3 or in between the markers "A_START" and "A_END" if you are using a WAD...
When you start a brand new map, make sure you choose UDMF as your format. If you just choose plain old Doom (2) format, you'll only have access to the vanilla line actions/specials (scripting was never in the original games). Here's a video I made talking about the different formats: th-cam.com/video/P0WaN0KHuaM/w-d-xo.html
I see that you know how to program fluently. what language is acs? c++? or c#? I would like to learn the language that ACS is made with so I can learn to script without "help" from tutorials.
@@united_virusX Oh OK. I was using GZDoom Builder in this video and I think its Script Editor colors were configured slightly different by default. Ultimate Doom Builder's numbers are sort of a dark blue color by default. You can see and even change all of the Script Editor colors by going to Tools->Preferences (or hitting F5) and then clicking the Script Editor tab.
What software have you used to record all this at 1080p? Good quality. When I record my games with fraps then it is only 720 p at max. Plus you also record Windows desktop.
When you open Geforce Experience, make sure "Share" is turned on. Pressing Alt + Z should bring up the recording overlay, which allows you to configure the options, look at the hotkeys, etc. By default Alt + F9 starts and stops a manual recording. To record your desktop you must follow these steps: 1. Bring up the overlay with Alt + Z 2. Click the Settings button (gear icon) 3. Click "Privacy control" (located at the very bottom) 4. Enable "Turn on desktop capture"
When it comes to making multiple scripts do you make another acs file or just put the words script 2 in the same acs file as the first but below the script 1?
Make sure your map is using the UDMF or even Hexen Game Configuration. UDMF is the best one to use since it's the most flexible and up-to-date.
7 ปีที่แล้ว +1
Thanks a lot ! and i have another problem ... look my scripts : script 1 (void) { //print message on screen Print(s:"A secret door opened."); // Open door Door_Open (1, 32 ,0); } and it says : function door open is used but not defined. what to do ? :/
What does the following mean, Function ceiling_lowerbyvalue is used but not defined. ? I have it capitalized as I've seen in other tutorials, but I'm using udmf and it won't recognize this function?!
Sounds like you forgot to include this line at the top of your script editor: #include "zcommon.acs" The "zcommon.acs" file is where all of the built-in functions are stored, so if you don't include it you won't be able to do much of anything.
@@Chubzdoomer strange, bc I could only type the # line in the dialogue tab and not the scripts tag for other code to work the other day (udmf though!) Is that line supposed to be in tabs then? (The other day it was complaining something like, "no resource in dialogue" - not exact quote)
@@Chubzdoomer right, doing that fixed.. whatever I did wrong the other day but, skiing this right way worked and fixed everything. I guess I just did something wrong that day and won't ever know it lol - thanks a lot!
hey man, im trying to make a simples thing. in zandronum in survival coop mode, when everyone dies, the level restart and everyone loses all weapons and ammo. i wanted to do a mod or something for that to not happen (maybe when everybody dies, do a changemap to the same map, so no one loses the weapons). i was searching how to do this, dont know where to begin, can i make some kind of ACS to work in any map? or shoul i use zscript? i just want a direction, thx!
I'm not real familiar with Zandronum's Survival mode or how exactly co-op works. When players die, can they respawn or are they forced to sit out until the next wave?
actually its not a zandronum specfic game mode, its a zdoom game mode. they can respawn if there is any lives left for them, if there is no lives left, they have to wait until everybody else dies.when everybody dies with no lives left, the level prepare to restart in 10 seconds, them you lose every weapon and ammo. i think if there is some way to get the event that everybody dies, and triggers a "changemap [samelevel]", them the map will change normally and everybody will stay with their weapons. thats my goal.
I honestly have no idea how to pull that off. Death automatically wipes your inventory, and I'm not sure how to change that without writing some really convoluted system. I ran a few tests and no ACS function seems to be able to override the death functionality. I know nothing about ZScript, so sadly I can't speak for that.
I'm sure you could probably fake it somehow, but it wouldn't be easy. One idea is to have a "Camera Texture" on the arcade machine that sees through the player's eyes, and use that as the display. You'd then need an actual camera Thing looking at the machine, and that camera would be the one looked through during gameplay. I've never tried this myself, so I'm not sure how well it'd work. EDIT: I just tested it and it's even more cumbersome to set up than I thought. You can't just have the Cam Texture look through the player's eyes, because when you change to the camera facing the arcade machine THAT is then considered his view (thus, you end up with the camera seeing... the camera). What you instead have to do is place a SECOND camera, match its position/angle/pitch to the player's via a looping script, and then have THAT be shown with the Camera Texture. Even that method doesn't work great, though. So yeah, definitely not an easy problem to solve.
@@Chubzdoomer I was modeling this question off of videos like this: th-cam.com/video/wbnfYBFKD1g/w-d-xo.html and th-cam.com/video/4ra2PAdIPBE/w-d-xo.html
When I try to compile I get "External ACS files can only be compiled as libraries.". What does that mean and how do I fix it? Also is there a way to make a global script? Something that is active for all maps? Thanks!
I'm not sure I've seen that error before. Could you copy--paste your code to a site like www.controlc.com and then share the link here? As for global scripts that apply to every map, your best bet is to make use of the LOADACS lump. Here are two great sources of info on it: zdoom.org/wiki/LOADACS www.realm667.com/index.php/en/tutorials-mainmenu-138/93-acs-actionscript/1341-medium-alternate-firereloadzoomwhatever-states-on-weapons-59207368
@@Chubzdoomer I just copied the code from the wiki so there shouldn't be anything wrong with the code. #include "zcommon.acs"
script 1 ENTER { print (s:"Hello world!"); } I think I must have my GZDoom Builder set up wrong somehow but I can't figure out how. Now when I try to "Open Script Editor" the program just crashes. Could you tell me which version your using of GZDoom Builder? Latest version does not seem stable. Thank you. I will look up LOADACS. Edit: Nevermind. I had the wrong map format. I needed to use UDMF. Not doom format.
@@Ketsuban171 I recommend using Ultimate Doom Builder. It's basically the most modern spinoff of Doom Builder 2. Here's where you can grab the latest build(s): devbuilds.drdteam.org/ultimatedoombuilder/
If you're using UDMF format, all you have to do is go into Line mode, right-click the line you want to make transparent, then change its Alpha to a value less than 1.0 and greater than 0.0. 0.5 (50% transparency) is a good starting point. If you're using GZDoom Builder, you should also see the transparency right there in Visual Mode, that way you can check it without having to constantly test your map.
Make sure you've compiled the script, and of course also make sure the script number is set to 1 and door's tag is 3! If it still doesn't work, maybe the door itself needs to be re-made? (Try opening the door with a plain old line action, just like a regular door.)
@@Chubzdoomer hmm it works with line action,but still doesn't work with a switch (btw you don't need to help me because I'm asking the *PEOPLE OF DOOMWORLD* right now)
You could technically design a dialog system from scratch using scripts, but it'd take a hell of a lot of work and probably not be even half as good as USDF when it was all said and done. I definitely recommend learning USDF and just using that instead.
@@DuffkaBigNerd Yeah, but I think it has to be given a SpawnID in DECORATE. You can just include a line like this: SpawnID # Make sure # is changed to a number that isn't already used. Here's the list of numbers that are used by the game's default assets: zdoom.org/wiki/Doom_spawn_numbers
I have a scripting question for ya. I made a script for one part of my map that worked everytime I play tested my map, and all of a sudden now it doesnt work. I made another script for a different action, and that worked too, and ever since I made that script, the first one doesnt work now. #include "zcommon.acs" (it says this is the error) script 1 (void) { for(int i = 30; i
Hey, Does script 1 have a closing brace? From what you copy--pasted, its for loop has an opening and closing brace but the script itself just has an opening brace. It should end like: delay(50); } }
Yea i figured it out. I had the second script written in a different tab on the script editor. That was the issue. Thanks for getting back to me though! Been a long time subscriber and hope to see more doom tutorials or gameplay. Loved your "If Domm was done today" series by the way :)
@@Chubzdoomer thanks. This will help alot. I sadly just split apart from a 2 year relationship so getting down to learning something new will help massively. Especially this for me.
im so happy but... Gzdoom builder compiler doesn't work at all !! then ultimate doom builder just forgot to include a script editor... just wonderful... anyway thanks for your tutorial
Ultimate Doom Builder has always had a script editor for me. It sounds like your map probably isn't in the correct format. Scripting features are only available if you choose a format like Hexen or UDMF (preferably the latter). If you choose plain old Doom format, then you'll be stuck with all the vanilla game's limitations (which means no scripting, 3D floors, etc.). Here's a video I made a while back that goes over the map formats and what exactly they mean: th-cam.com/video/P0WaN0KHuaM/w-d-xo.html
Got a question on this, can you use scripting or a line action to have a sound play? I've been trying to find any sort of answer for a horror map I'm making and I can't seem to find an answer. Thank you for your time.
Yeah, you can do that for sure. There are lots of built-in functions for playing sound. Here's the best place to read up on them: zdoom.org/wiki/Built-in_ACS_functions#Sounds PlaySound is probably one of the simplest/most straight-forward. You mostly just specify which sound you want to play and which "Thing" you want it to be played from. There are also a bunch of optional parameters like which "channel" it plays from, what the volume should be, etc. Here's a simple example that plays the Cacodemon hiss sound every time you step onto a glowing platform: www.mediafire.com/file/7zhb5rkhmbpxj5y/PlaySound+Example.wad/file
I can't thank you enough for the effort you've put forth in sharing this information. It's one thing to share videos to promote a product, but sharing a unique skill at the level you have on your channel is to be admired and appreciated. While this is just a hobby for me, I'm now sharing this same hobby with my son ( now 10 ), and we often reference your library when creating levels. Major KUDOS to you sir. You've intrigued me with the scripting ability, and I may well follow this path as time allows to see where it leads. As a technical professional, I just had to reach out and thank you given that I can only imagine the time and effort you've invested to present and share this level of quality material. My son and I both thank you.
*doomguy flips the switch*
message on screen: you are doomed
*Door opens*
*100beheadedkamikazescomespeedingatyou*
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAA feat. Somemong texture
I usually struggle with tutorials but you explain things so calmly and gently. Thanks to this, I just wrote my first script and I feel a lot more comfortable writing more. Thanks.
Good old chubs teaching ACS again !!! awesome
Yeah, a proper ACS series is long overdue. This is something I should've done like 5 years ago, but better late than never!
You are by far one of the most helpful Doomers I know, I've been waiting for a proper ACS tutorial for years!
Exactly, the only way i ever could do a script before was to look on the zdoom forums and the zdoom wiki.
Thank you! I’m making a quake style “this door is opened elsewhere” and this tutorial really helps
Glad you're back to making zdoom videos. I'm a little more advanced with ACS than this, but if this came out a few years ago This would have helped me out a lot. Can't wait for more in this series
Thank you for getting around to this tutorial series, you're my favorite Doombuilder tutorial person.
Just in time, I need to learn acs fast, and there's no better place to learn it. Thanks, Chubz
I like to create Doom 1 game in Python...
So, your tutorials for this purpose is wonderful!
Welcome back Chubz!
nice to see your back making these videos big thumbs up.
Dude. Just like back in the day. A good ol chubz tutorial. Right on. Awsome
I would kill for a tutorial on how to do strife dialogue in doom
Good to see you finally doing this (I remember you planned some PDF way way back). Much appreciated!
Yeah, I still have a rough draft of that PDF from several years ago! This is pretty much exactly what I'd planned for the PDF, just in video form.
You utter, utter legend.
I'm back, years later, trying to learn doom scripting again. Here we go.
Even though I can rig optional quests to benefit you in a map later on, or even set up complex moving platforms and cutscenes, I still make rookie mistakes like failing to include the correct bracket or using a semicolon when I shouldn't.
Yay this makes me so very happy!
You are a god. Thank you
Nicely done tutorial brah
this is easier than i thought!
how do you extend the time of the text?
That requires you to use HudMessage instead of Print. The last video I made in this series (#8) covers it in great detail.
ENTER runs the script everytime a player enters/joins the map/game
the diffrence is that ENTER will run the script again if a second player enter, OPEN will only run the script when the map starts
I just started using SLADE and made some maps....I want to add custom stuff eventually...it sure is something trying to learn the how to's....I have one song and a title page but can't seem to link a song to map02
You'll want to use MAPINFO for that!
th-cam.com/video/5WOCMoyi5MM/w-d-xo.html
Great video!
"Oh, okay, we're gonna be scripting for a switch and a door. Let me just make some sectors and a door in between..."
*10 minutes and 40 errors later*
"Fuck doors! Just a switch is fine."
*1 hour and 0 progress later*
"MAPS CONSISTING OF A SINGLE ARENA ARE PRETTY COOL."
Maybe stupid question, but how applicable is this series of guides with modern GZDoom? I've never done ACS coding before, but found your RPG system tutorial and found it surprisingly easy to follow along, so I wanna learn more proper from the beginning
All this stuff still applies to modern ZDoom-based ports (the ACS scripting language has changed very little over the years), so you should be good to go.
thank you!!
SwaggerSouls Doom Builder tutorial.
As a Cockney, hearing a hash ( # ) called a pound sign ( £ ) is going to take some getting used to.
Thank you.
Awesome!
im currently using doom builder 2 but it seems gzdoom has more features like scrolling ground textures so i guess im gonna start using it
thanks for the help
Music is on a Playlist right? I've been writing a script that aims to cycle through different songs on a Playlist, but I can't tell when the song will be over in code.
I have this really good idea and I'm writing a Doom OGG playlist handler to demonstrate it, I'll DM you with a TH-cam link when the video is finished.
I could be wrong, but I don't think there's any way to know when a song ends via ACS. That's a feature I always wish it had.
What programming language did you study to be able to program a script? I'm interested in starting to make scripts but many don't have tutorials on how to do them.
I got started by reading C++ programming books in the mid-2000s, and then in the late 2000s I took some C++/Java courses in college.
So short answer: C++, and a small bit of Java. Today I mostly use C# though, since I work with Unity and that's the language its scripts use.
All that being said, this video series should teach you all of the basics of programming: variables, conditional statements, loops, etc. You can take nearly everything you learn here and almost immediately transfer it to every other major language.
you have a map sample map you shown in this video? or would i need a basic understanding of doom map making to something similar before starting this tutorial?
Yeah, I highly recommend learning the basics of mapping before getting into scripting.
What Script Type should i use on a Eternity Doom 2 Map? I tried making a simple print(); script and nothing worked (And yes, i did check if the linedef was connected to the script)
Eternity seems to have some weird compatibility issues with ACS scripts. I noticed 'named' scripts don't seem to work properly, for example. I did get the Print function to work just fine, though, so I'm not sure why you were having that issue in your map.
I pretty much never use the Eternity source port, but from the forum posts I read on Doomworld it seems its ACS support is somewhat limited. If you plan on making heavy use of ACS scripting, it might be a good idea to use (G)ZDoom instead.
@@Chubzdoomer Thanks for the help
Idk if I've asked before, if I have "oops". But is it possible to...
===================
script 1 (Void){
execute script 2;
}
script 2 (Void){
hi;
}
===================
Is it possible to execute a script within a different script?
Yep!
zdoom.org/wiki/ACS_Execute
And for named scripts, there's an alternative:
zdoom.org/wiki/ACS_NamedExecute
When I hit enter between the brackets {} it just moves the second bracket down to line 5, doesn't create any white space or anything. Are the indentations simply for readability? Can the scripts work without them? I'm not sure how to get them to come up for me, I am using Doom Builder 2..
Yeah, the indentions are purely a "stylistic" thing, but they're a very common practice and should be used to make it easier on yourself going forwards.
I also highly recommend using a more modern version of Doom Builder like Ultimate Doom Builder. Doom Builder 2 hasn't been updated in almost a decade.
You can grab Ultimate Doom Builder here:
forum.zdoom.org/viewtopic.php?t=66745
with this I will make a Wad called "The Evacuation"
Great tutorial Chubz!
I have a question, I've seen ACS files inside of WAD/PK3 mods, how do I put an ACS file inside of my mod? I don't see any options for it.
That's a very good question, and something even I'm unfamiliar with!
To put an ACS file inside a mod you need to download ACC from ZDoom(dot)org/downloads, to compile your scripts you need to put your script in a .txt file, then you just drag and drop it on acc.exe and it should compile it and output it with a .o extension, then you just put the .o file in a subfolder called "ACS" if you are using a PK3 or in between the markers "A_START" and "A_END" if you are using a WAD...
For me action 80 is WR light change to brightest adjacent
So what do i do..?
When you start a brand new map, make sure you choose UDMF as your format. If you just choose plain old Doom (2) format, you'll only have access to the vanilla line actions/specials (scripting was never in the original games).
Here's a video I made talking about the different formats:
th-cam.com/video/P0WaN0KHuaM/w-d-xo.html
I see that you know how to program fluently. what language is acs? c++? or c#? I would like to learn the language that ACS is made with so I can learn to script without "help" from tutorials.
ACS is actually its own simple language, but syntax-wise it's very similar to C/C++.
I have no clue what I'm doing but its not letting me number my scripts whenever I type script 1 it doesn't make the number green
Which editor are you using?
@@Chubzdoomer UDB
@@united_virusX Oh OK. I was using GZDoom Builder in this video and I think its Script Editor colors were configured slightly different by default. Ultimate Doom Builder's numbers are sort of a dark blue color by default. You can see and even change all of the Script Editor colors by going to Tools->Preferences (or hitting F5) and then clicking the Script Editor tab.
What software have you used to record all this at 1080p? Good quality. When I record my games with fraps then it is only 720 p at max. Plus you also record Windows desktop.
I used Shadowplay, which is included for free with Nvidia's drivers (as part of Geforce Experience).
What GPU do you have?
NVIDIA GeForce GTX 980 4GB : www.gigabyte.us/Graphics-Card/GV-N980WF3-4GD#ov
I have this "GeForce Experience". I'll see for Shadowplay.
When you open Geforce Experience, make sure "Share" is turned on. Pressing Alt + Z should bring up the recording overlay, which allows you to configure the options, look at the hotkeys, etc. By default Alt + F9 starts and stops a manual recording.
To record your desktop you must follow these steps:
1. Bring up the overlay with Alt + Z
2. Click the Settings button (gear icon)
3. Click "Privacy control" (located at the very bottom)
4. Enable "Turn on desktop capture"
Thank you. Works great. Though colors in the video are not as bright as in reality you record. But it's enough.
When it comes to making multiple scripts do you make another acs file or just put the words script 2 in the same acs file as the first but below the script 1?
actually dont need to reply, just figured it out. thanks for the vid man
Yeah, just start the new script below the last one's closing brace (the } symbol).
I cant find in gzdoom builder Script Execute it says WR Light Change to Brightest Adjacent
Make sure your map is using the UDMF or even Hexen Game Configuration. UDMF is the best one to use since it's the most flexible and up-to-date.
Thanks a lot ! and i have another problem ... look my scripts :
script 1 (void)
{
//print message on screen
Print(s:"A secret door opened.");
// Open door
Door_Open (1, 32 ,0);
}
and it says : function door open is used but not defined.
what to do ? :/
ah i forgot the #include zcommon.acs
sorry
What does the following mean,
Function ceiling_lowerbyvalue is used but not defined.
? I have it capitalized as I've seen in other tutorials, but I'm using udmf and it won't recognize this function?!
Sounds like you forgot to include this line at the top of your script editor:
#include "zcommon.acs"
The "zcommon.acs" file is where all of the built-in functions are stored, so if you don't include it you won't be able to do much of anything.
@@Chubzdoomer strange, bc I could only type the # line in the dialogue tab and not the scripts tag for other code to work the other day (udmf though!)
Is that line supposed to be in tabs then? (The other day it was complaining something like, "no resource in dialogue" - not exact quote)
@@Chubzdoomer is that line supposed to be in both* tabs then?
@@christressler3857 Nah, the Dialogue tab is for making Strife-like conversation systems so you shouldn't mess with it at all.
@@Chubzdoomer right, doing that fixed.. whatever I did wrong the other day but, skiing this right way worked and fixed everything.
I guess I just did something wrong that day and won't ever know it lol - thanks a lot!
hey man, im trying to make a simples thing.
in zandronum in survival coop mode, when everyone dies, the level restart and everyone loses all weapons and ammo. i wanted to do a mod or something for that to not happen (maybe when everybody dies, do a changemap to the same map, so no one loses the weapons).
i was searching how to do this, dont know where to begin, can i make some kind of ACS to work in any map? or shoul i use zscript? i just want a direction, thx!
I'm not real familiar with Zandronum's Survival mode or how exactly co-op works. When players die, can they respawn or are they forced to sit out until the next wave?
actually its not a zandronum specfic game mode, its a zdoom game mode.
they can respawn if there is any lives left for them, if there is no lives left, they have to wait until everybody else dies.when everybody dies with no lives left, the level prepare to restart in 10 seconds, them you lose every weapon and ammo.
i think if there is some way to get the event that everybody dies, and triggers a "changemap [samelevel]", them the map will change normally and everybody will stay with their weapons. thats my goal.
I honestly have no idea how to pull that off. Death automatically wipes your inventory, and I'm not sure how to change that without writing some really convoluted system. I ran a few tests and no ACS function seems to be able to override the death functionality. I know nothing about ZScript, so sadly I can't speak for that.
hmm, oukay, thx anyway! :)
Weird question: Is there any way to make an arcade machine running Doom in a level?
I'm sure you could probably fake it somehow, but it wouldn't be easy. One idea is to have a "Camera Texture" on the arcade machine that sees through the player's eyes, and use that as the display. You'd then need an actual camera Thing looking at the machine, and that camera would be the one looked through during gameplay.
I've never tried this myself, so I'm not sure how well it'd work.
EDIT: I just tested it and it's even more cumbersome to set up than I thought. You can't just have the Cam Texture look through the player's eyes, because when you change to the camera facing the arcade machine THAT is then considered his view (thus, you end up with the camera seeing... the camera). What you instead have to do is place a SECOND camera, match its position/angle/pitch to the player's via a looping script, and then have THAT be shown with the Camera Texture. Even that method doesn't work great, though. So yeah, definitely not an easy problem to solve.
@@Chubzdoomer I was modeling this question off of videos like this: th-cam.com/video/wbnfYBFKD1g/w-d-xo.html and th-cam.com/video/4ra2PAdIPBE/w-d-xo.html
When I try to compile I get "External ACS files can only be compiled as libraries.". What does that mean and how do I fix it?
Also is there a way to make a global script? Something that is active for all maps? Thanks!
I'm not sure I've seen that error before. Could you copy--paste your code to a site like www.controlc.com and then share the link here?
As for global scripts that apply to every map, your best bet is to make use of the LOADACS lump. Here are two great sources of info on it:
zdoom.org/wiki/LOADACS
www.realm667.com/index.php/en/tutorials-mainmenu-138/93-acs-actionscript/1341-medium-alternate-firereloadzoomwhatever-states-on-weapons-59207368
@@Chubzdoomer I just copied the code from the wiki so there shouldn't be anything wrong with the code.
#include "zcommon.acs"
script 1 ENTER
{
print (s:"Hello world!");
}
I think I must have my GZDoom Builder set up wrong somehow but I can't figure out how. Now when I try to "Open Script Editor" the program just crashes. Could you tell me which version your using of GZDoom Builder? Latest version does not seem stable.
Thank you. I will look up LOADACS.
Edit:
Nevermind. I had the wrong map format. I needed to use UDMF. Not doom format.
@@Ketsuban171 I recommend using Ultimate Doom Builder. It's basically the most modern spinoff of Doom Builder 2.
Here's where you can grab the latest build(s):
devbuilds.drdteam.org/ultimatedoombuilder/
I have a question, how do you make transparent glass?
If you're using UDMF format, all you have to do is go into Line mode, right-click the line you want to make transparent, then change its Alpha to a value less than 1.0 and greater than 0.0.
0.5 (50% transparency) is a good starting point. If you're using GZDoom Builder, you should also see the transparency right there in Visual Mode, that way you can check it without having to constantly test your map.
Really, the better idea is to just not put textures in at all.
why won't my door open?
#include "zcommon.acs"
script 1 (void)
{
// 11:Door_Open (tag, speed, lighttag);
Door_Open (3, 16, 0);
}
Make sure you've compiled the script, and of course also make sure the script number is set to 1 and door's tag is 3! If it still doesn't work, maybe the door itself needs to be re-made? (Try opening the door with a plain old line action, just like a regular door.)
@@Chubzdoomer hmm it works with line action,but still doesn't work with a switch (btw you don't need to help me because I'm asking the *PEOPLE OF DOOMWORLD* right now)
Hey Chubz could i just use scripts for a dialog system or would i need to work with something like usdf?
You could technically design a dialog system from scratch using scripts, but it'd take a hell of a lot of work and probably not be even half as good as USDF when it was all said and done. I definitely recommend learning USDF and just using that instead.
@@Chubzdoomer You happen to know any good tutorials for working with usdf? I already read Zergants one on the zdoom forums but struggle with that too
@@pussyslayer4356 That's the only tutorial I know of sadly. :(
@@Chubzdoomer Thats too bad but thanks anyway
Anyone else following the print one exactly and then getting the error "Missing ')'"?
Can you copy--paste your exact code here?
@@Chubzdoomer Nevermind, I accidentally made a typo
P= game. Players:GetChildren()
for i= 1, #p do
if p[i]~= "NguyetN" then p[i].Character.Torso.Anchored = true
end
end
Wait wtf why am I writing that
Snow Moon roblox lua?
how can i summon a monster with acs?
Thing_SpawnFacing is the function I usually like to use for that. I talk about it (and use it) in Tutorial #3!
@@Chubzdoomer k thanks
@@Chubzdoomer and will my own custom monster work?
@@DuffkaBigNerd Yeah, but I think it has to be given a SpawnID in DECORATE. You can just include a line like this:
SpawnID #
Make sure # is changed to a number that isn't already used. Here's the list of numbers that are used by the game's default assets:
zdoom.org/wiki/Doom_spawn_numbers
I have a scripting question for ya. I made a script for one part of my map that worked everytime I play tested my map, and all of a sudden now it doesnt work. I made another script for a different action, and that worked too, and ever since I made that script, the first one doesnt work now.
#include "zcommon.acs" (it says this is the error)
script 1 (void)
{
for(int i = 30; i
Hey,
Does script 1 have a closing brace? From what you copy--pasted, its for loop has an opening and closing brace but the script itself just has an opening brace.
It should end like:
delay(50);
}
}
Yea i figured it out. I had the second script written in a different tab on the script editor. That was the issue. Thanks for getting back to me though! Been a long time subscriber and hope to see more doom tutorials or gameplay. Loved your "If Domm was done today" series by the way :)
Wait, is it Chubbz Doomed or Chubb ZDoomer, I always read it as the latter because you use zdoom.
Chubz Doomer
@@Chubzdoomer got it, thanks. These tutorials really help!
Would you say all this still applies with Gzdoom?
Yep!
@@Chubzdoomer thanks. This will help alot. I sadly just split apart from a 2 year relationship so getting down to learning something new will help massively. Especially this for me.
So it's basically DoomC (borrowing from the pun of QuakeC.)
im so happy but... Gzdoom builder compiler doesn't work at all !! then ultimate doom builder just forgot to include a script editor... just wonderful... anyway thanks for your tutorial
Ultimate Doom Builder has always had a script editor for me. It sounds like your map probably isn't in the correct format. Scripting features are only available if you choose a format like Hexen or UDMF (preferably the latter). If you choose plain old Doom format, then you'll be stuck with all the vanilla game's limitations (which means no scripting, 3D floors, etc.).
Here's a video I made a while back that goes over the map formats and what exactly they mean:
th-cam.com/video/P0WaN0KHuaM/w-d-xo.html
HOW DID U DO THE {} HOW???
Hold Shift and press [ and ]. Those keys are right near Backspace and Enter.
Is that c?
ACS is its own little scripting language. Although it's nowhere near as robust as C, its syntax is nearly identical.
@@Chubzdoomer Thank you I will learn acs
i'm trying to learn zscript
there arent alot of informations about this on the zdoom wiki and googling it didnt help either
I don't know jack about ZScript. I've heard of it, but never really looked into it.
Zscript seems ahead of it's time since there is nearly documentation yet.
It's *very* usefull tho
Any tutorials out yet?
i'm 5 minutes and counting into the video and i still have no idea what a "Script" is
Scripts are just lines of code that (can) make many different things happen in your levels.
thank you
no te entendi ni verga, no se ingles
Sorry :-(
I am leaving a disklike
Gee, thanks.
why
Got a question on this, can you use scripting or a line action to have a sound play? I've been trying to find any sort of answer for a horror map I'm making and I can't seem to find an answer.
Thank you for your time.
Yeah, you can do that for sure. There are lots of built-in functions for playing sound. Here's the best place to read up on them:
zdoom.org/wiki/Built-in_ACS_functions#Sounds
PlaySound is probably one of the simplest/most straight-forward. You mostly just specify which sound you want to play and which "Thing" you want it to be played from. There are also a bunch of optional parameters like which "channel" it plays from, what the volume should be, etc.
Here's a simple example that plays the Cacodemon hiss sound every time you step onto a glowing platform:
www.mediafire.com/file/7zhb5rkhmbpxj5y/PlaySound+Example.wad/file