6:13 Delay(35) means a 35 tics delay and 35 tics are one second could be usefull for some people?
@buna-gf8ku4 жыл бұрын
for me is pretty useful
@noir661463 жыл бұрын
yes. is helpful.
@Chubzdoomer12 жыл бұрын
@BlsckGearPanther Romero's head actually isn't what spawns enemies. In order to do something like with Doom 2's MAP30, you just place a "Monsters Spawner" Thing wherever you want the cubes to shoot out from, then place "Monsters Target" Thing where you want the random destinations of the cubes to be. Both Things are under the Monsters category.
@RooZ133711 жыл бұрын
Thanks Chubz, Btw i've been watching your tutorial since i started with doombuilder, 5 years ago. Huge fan!
@Chubzdoomer13 жыл бұрын
@HknOtnicE No sir. The regular Doom 2 configuration allows you to do only what the developers did in the original levels. This means no scripting, no special ZDoom effects, etc.
@Chubzdoomer11 жыл бұрын
Map spots are the invisible Things that the monsters spawn at and that I placed on each of the four pillars in the video. Judging by your code, you should have at least two map spots: one with an ID of 1, the other with an ID of 2.
@Chubzdoomer12 жыл бұрын
I'll definitely keep that idea in mind. I still need to do an XWE tutorial on how to import custom textures, so I guess I could show how to import custom monsters, etc. in that same tutorial.
@MAZZEKAARTS14 жыл бұрын
Thanks for doing this video, Chubz! I've been stuck for ages, you're the man!
@Chubzdoomer13 жыл бұрын
@armandoynk The ZDoom Wiki has a list of all the commands. If you want monsters to respawn after you kill them, you can try using the "Spawn" line of code and putting the monster's ID in parentheses for the X, Y, and Z elements.
@Chubzdoomer13 жыл бұрын
@FinalPhoenix1 Absolutely! You can modify this example and do that easily. Replace the Chaingun with a Cyberdemon. Now, rather than a script being called when the Thing is picked up, since the Thing is a monster, it will be called when the monster is killed. Instead of having multiple map spots, just use one map spot and within the Thing_SpawnFacing line of code, use the Megasphere's spawn number (132) rather than the Chaingunner's.
@Chubzdoomer11 жыл бұрын
In order to tie a script to a monster that you've spawned, you'll need to make use of the Thing_SetSpecial function, which is a lot like giving something a special (via right-clicking it in Thing Mode) in word form. To assign script 1 to a monster with an ID of 5 via Script Execute (80), for example, this is what the code would look like (it should be placed AFTER the line that spawns the enemy): Thing_SetSpecial(5, 80, 1, 0, 0); See the Thing_SetSpecial page on the ZDoom Wiki for more info.
@TheMerkWithTheMouth12 жыл бұрын
Hey Chubz, could you do a tutorial on adding custom monsters to the maps? I can't figure out how to do it. Much appreciated!
@Chubzdoomer12 жыл бұрын
@Scott3563456 Skulltag uses the same scripting language and other than a few functions/lines of code unique to it, is almost identical. In other words, what you see here can also be done in Skulltag!
@Chubzdoomer13 жыл бұрын
@assassin132132 When you create a new map, you can't follow this tutorial if you choose "Doom" or "Doom 2" as the Game Configuration. You must select "ZDoom (Doom in Hexen format)." Otherwise, you're creating maps that can use only the features found in the earliest Doom games, which means no scripting, no Thing tag numbers, etc.
@Chubzdoomer13 жыл бұрын
@XVoIR Find the DECORATE file for your custom monster and take a look at it. There should be a line that says: spawnid # in which # is the number you would type for it to spawn. If this line does not yet exist, just add it in DECORATE inside the opening ({) and closing (}) braces.
@eonstar57973 жыл бұрын
Hey Chubsz I really like your style and your videos. Thanks for your efforts.
@Chubzdoomer3 жыл бұрын
Thanks for watching!
@eonstar57973 жыл бұрын
@@Chubzdoomer Yeah. I was watching your vids for a long time. The scripting in GZDB for example. I learned cool stuff thanks to you. Be safe. :)
@mArt1And00m3r1133912 жыл бұрын
I typed in "delay(75);" and it told me that it was an invalid declarator. How do you fix that problem?
@Chubzdoomer12 жыл бұрын
The easiest way is to use a While loop. Search for "Loops" on the ZDoom Wiki for more information. You can also check out this video which goes over the basics of While loops: /watch?v=0gE10q_voMo
@Chubzdoomer12 жыл бұрын
Ah, I see. To my knowledge, the only way to pull sprites from two different games is to manually rip the graphics/resources from that game via a WAD editor, then use the same WAD editor to import the missing ones into the WAD you've created. I could be wrong, as I don't have much experience in that area.
@xDavidxblap8 жыл бұрын
man i am very thanks, i was looking for metod for spawning monsters to span my custom monsters but i never found, here you show how to spawn and work for the customs monsters i have so thanks keep with good job =)
@Chubzdoomer11 жыл бұрын
How close are the map spots together? And have you double checked the second map spot to ensure that all of the difficulty levels are checked for it? If only some of them are checked, for example, then it will only exist when you play on those. I've had that happen a few times and it took me forever to figure out that that's what was causing it. The code itself is fine, so since the first Cacodemon spawns and the second doesn't, I'd highly suggest closely studying the second map spot.
@Chubzdoomer13 жыл бұрын
@kerelwtf That is strange! If "Repeatable" isn't checked, the script should only run one time. I've never had that happen. Could you send me the file so that I could look at it? Surely if I study it closely enough I can figure out why in the world that's happening.
@Chubzdoomer13 жыл бұрын
@assassin132132 You need to work with the "ZDoom (Doom in Hexen format)" Game Configuration when you start a new map rather than "Doom" or "Doom 2."
@Chubzdoomer13 жыл бұрын
@FinalPhoenix1 If done correctly, now when the Cyberdemon is killed, a Megasphere will spawn at the one map spot you used.
@Chubzdoomer12 жыл бұрын
Did you put the zcommon.acs line of code at the very top? Also, make sure you didn't forget any semicolons or braces.
@ZacharyStauffer11 жыл бұрын
I wasn't sure where to put in a video request but one involves monsters so I guess here will work. I would like to know about advanced monster features like adding new ones without replacing originals or disable their pickups or changing them. Another request I have is on advanced doors like ones that open out, as well as other doors that open sideways. Thanks! I've watched around 8 of your tutorials so far. :)
@Chubzdoomer14 жыл бұрын
@BakashPLalt You change the "delay" number.
@besosdechocolate199411 жыл бұрын
hello! very good videos a question if you want to teleport faster? For example: I have 4 and want mapspot demons teleport every second, if you can better faster Asher even want them to teleport in different mapspot demons while, hope your help! = (
@Chubzdoomer12 жыл бұрын
Save one level (aka file) just like you'd normally do, then when you go to save the second one use the File->Save Map Into command. This saves it "into" the first file you created, meaning the two are merged. If you first create and save a file with a level set on MAP01, for example, then you create a level set on MAP02 and save that file "into" the first one, you'll end up with two custom levels -- one for MAP01, the other for MAP02 -- that come one right after another.
@Voirowsky13 жыл бұрын
How to spawn a custom monsters?
@RooZ133711 жыл бұрын
Oh sorry, i was asking if its possible to make your custom added monsters to spawn like that( Those i added with xwe). Cause i can't find a spawn number and don't know how to make one :o
@Chubzdoomer12 жыл бұрын
Yes, it's a scripting language called ACS (Action Code Script) with a similar syntax to C(++)/Java.
@kerelwtf13 жыл бұрын
Great tutorial chubz! but i have a question. I've written the same script, but trigger it when walking over a line. Now, the script runs every time i cross the line (even with the 'repeatable action' box unchecked. So the monsters are spawning every time I walk over the line. But I want this to happen only once. how can i do this?? and the monsters that are spawned, aren't calculated in the total number of monsters until they are spawned. Can this be fixed? Thanks in advance!! grtz
@MyselfAgain14 жыл бұрын
@Chubzdoomer Same here. I can think of at least 3 that've kept me occupied recently.
@omanyte108 жыл бұрын
This is a 6 year old tutorial but still pretty relevant :) Thanks for making this. I have a problem though. I've noticed that enemies won't show up in certain cases, like if an existing enemy happens to be walking over where another is intended to spawn at the moment of spawning. Is there a way I could make them spawn as soon as the other enemy moves off their spawning spot?
@ricardojuarez59783 жыл бұрын
Lol, It's 2021 and it's very relevant to these days
@raiden_real62182 жыл бұрын
11* years
@Chubzdoomer12 жыл бұрын
How did you go about using the different sources?
@Chubzdoomer12 жыл бұрын
Did you type the line "spawnid #" (in which # is the monster's custom ID) in the DECORATE file? If so, you should be able to use that number to spawn it in unless I'm mistaken.
@Seekerz399613 жыл бұрын
@moodie69 thats becuase spidermastermind chaingunners zombies guns both use the shotgun firing sound.
@mArt1And00m3r113399 жыл бұрын
Do you have a tutorial on how to spawn projectiles because I followed everything Doom Wiki said in terms of instructions but when testing the map, nothing happens?
@Chubzdoomer11 жыл бұрын
The easiest way is to use a While loop with a condition of (GetActorProperty(#, APROP_HEALTH) > 0) in which # is the ID of your monsters. The only thing you should put inside the loop is a Delay of 1, which more or less causes it to loop infinitely until all monsters with the ID are dead. Place the code that you want to happen after they die below the loop, that way once the condition is no longer true (and the looping is finished), that code runs.
@MrThejoshmon12 жыл бұрын
how do you make constant spawning, I am trying to make a marine occupied base under demon attack but I have no idea on how to do it
@Chubzdoomer14 жыл бұрын
@MyselfAgain I haven't been up to much, just spending time with so many other games I barely even have time for Doom anymore!
@aethea_music12 жыл бұрын
and another wuestion...how to link two or more levels? i dont get the explanation from the site...
@HknOtnicE13 жыл бұрын
So...this can NOT be done in the regular doom 2 configuration?
@aethea_music12 жыл бұрын
hey is there a way to show a text to the player at some points for a few seconds?
@Chubzdoomer12 жыл бұрын
It sounds to me like you either left out a number in one of the parentheses or have one too many. Make sure you watch the video in 720p so that you can see the text more clearly, then compare it to yours.
@DirtyBoySingToGod4 жыл бұрын
EDIT: Scratch that :) I went back to your earlier tutorials on scripting and discovered that i DO need use "script 2 etc" Reason it wasn't working for me, was that I was putting the item no.8 ( for demon ) in the map spot (for example 54,55,56 etc) in the item place and vice versa, lol. D'oh! Hi Chubzdoomer, recently I got back into map making and have a couple of questions regarding this particular script. As i'm out of practice, these might be dumb questions, but I can't actually remember right now lol: 1) I already have some script for reflective floors ( thanks again to you ) named as "script 1 OPEN" etc. to create this script, i assume i need to start a new line with your above script as "script 2 (void)" ? ( Reflective floors is the only script i have in this level at this moment ). Or does it just continue as script 1 ? 2) Where you have 4 individual ID Tags for the 4 monsters, can I have 4 map spots linked to one ID Tag, so that 4 monsters teleport in at the exact same time ? So no need to do 4 lines of script for the 4 monsters ? Hope I explained myself properly. Thanks so much again, they're crucial for making good levels ! :)
@flamenod11 жыл бұрын
how do I teleport in monsters without using zdoom functions or scripting?
@MyselfAgain14 жыл бұрын
Chubz is at it again. Great vid dude! I never get sick of these kind of videos. (So what have you been up to?)
@Chubzdoomer11 жыл бұрын
Oh I see! Add this line to the monster's DECORATE (somewhere at the top, in between the braces): spawnid ### in which ### is a spawn number of your choice. Some spawn numbers are already taken (you can see which on the ZDoom Wiki), so I'd advise starting at 200 and just working your way up from there. So if you add "spawnid 200" to your monster's DECORATE, you should be able to spawn it using 200 as the spawn ID.
@RooZ133711 жыл бұрын
Is it possible to make added monster to spawn? If it is, what should i look for?
@killerkouhai7 жыл бұрын
Hi Chubbs :) I'm doing a map where I have a Spidermastermind and a Cyberdemon spawn in facing each other, but I have it set in a way that they can't see the player and needs a catalyst to set off the infight. The catalyst I'm using is a friendly BFG marine. I have switches set up that allow me to kill and spawn the bosses in repeatedly since I'd like to be able to watch the infight multiple times, however beyond the first placed BFG Marine thing, I'm unable to spawn more in because the only marine option is the scripted marine. Is there a way to script a friendly BFG Marine to spawn in and fire at an enemy?
@Chubzdoomer7 жыл бұрын
Hey, that's a good question. After doing some research it seems the BFG Marine doesn't have a spawn ID, so the only way to spawn it without making your own version in DECORATE is to use SpawnSpotFacing (which allows you to specifically type the class name, "MarineBFG") instead of Thing_SpawnFacing. Of course if you just spawn the marine without making any other changes, he'll be hostile to you. To make him friendly all you have to do is use the SetActorProperty function to set his APROP_Friendly property to true. Here's a quick example: hastebin.com/ojumakibuw.cpp I'd also like to add that if you ever need to, you can make monsters fight each other via the Thing_Hate function, which makes one actor "hate" another. Here's its ZDoom Wiki page if you want to learn more about it: zdoom.org/wiki/Thing_Hate
@assassin13213213 жыл бұрын
@Chubzdoomer i downloaded doom builder 2 fro site i build map for Doom2 and my doom 2 open with gzdoom i dont understand what you mean with hexen format :D I just mean when im in things mode and place thing i cant make a action beacouse i dont have this button in program
@gatokal7 жыл бұрын
Hey there! I'm making a doom wad myself, and I wanted to do Monster Spawns too. Hence why I'm here. But my issue is inside the 'things' tool I can't seem to find the ZDoom menu once so ever! This is probably an issue on my part, but how do I fix it? Is there a video I should have watched before this one? Or am I just being really blind? Thank you very much.
@Chubzdoomer7 жыл бұрын
In order for that to appear, your map must be using either the "ZDoom (Doom in Hexen format)" or "ZDoom (Doom in UDMF format)" Game Configuration (preferably UDMF as it's the most robust and popular).
@brucew.28055 жыл бұрын
Hi Chubz, I have both Doom Builder and GZDoom Builder and none of the builders have a action tab to write a script. "Properties" only tab. Do I need Doom Builder 2 or is there a plugin I need to add?
@Chubzdoomer5 жыл бұрын
In order for that tab to appear, you have to choose either UDMF, Hexen, or Skulltag format when you start a new map (UDMF is the most modern/flexible and best overall, especially for singleplayer stuff). If you choose regular DOOM format, you'll be stuck with vanilla DOOM's limitations (which means no scripts, etc.).
@brucew.28055 жыл бұрын
@@Chubzdoomer Thanks. I found this link helpful to - www.doomworld.com/forum/topic/67740-missing-some-linedef-options-in-doom-builder-2-v2121553/
@jacobbrownthe2nd12 жыл бұрын
copy you're map just in-case this doesn't work and go to doom builder and were you would usealy choose you're engine? go to zdoom[doom in udmf format] and you can go look at the things list and you will see the marines option oh and make sure you put the marines on ally and friendly so the wont shoot you :)
@allanwallace35385 жыл бұрын
So I tried this with custom monsters, and it doesn't work? It works perfectly with Vanilla ones, but not with custom monsters. Any idea as to why that would be?
@Chubzdoomer5 жыл бұрын
If the custom monster doesn't already have it, add this line to its DECORATE entry: SpawnID # Replace # with the spawn number you want to use, but make sure not to overwrite any of the defaults! Here's a list of the ones that already exist: zdoom.org/wiki/Doom_spawn_numbers You should be able to use that number afterwards to spawn the monster.
@Itezno12 жыл бұрын
can anyone help with my problem? i was working on my own wad and learned of scripting and what you could do with it so i switched my map from zdoom(doom in doom format) to zdoom(doom in hexen format) but now whenever i test play my map i continously get hurt like im standing on nukage. does anyone know why this happened and how i can fix it?
@1luarluar18 жыл бұрын
thank you, very clear! I hope you do more of these great videos...one question, once I use Doom Builder 2, can I create slopes or I need a different engine? does it exist a GZ Doom Builder?...thank you!
@Chubzdoomer8 жыл бұрын
You can definitely do slopes with Doom Builder 2, but GZDoom Builder is a better choice because it shows slopes, 3D floors, and more in Visual Mode by default which makes it much easier to work with them!
@1luarluar18 жыл бұрын
oh! thank you...I appreciated!...I wasn't sure that such engine existed...watching the videos is hard to understand which engine it has been used...cheers, I will maybe start with doom builer 2 to get the grip, then pass to the GZ...thank you again!
@Devilofdoom8 жыл бұрын
Is there any way to spawn alerted monsters? So that they will attack the player without having seen or heard them.
@Chubzdoomer8 жыл бұрын
Yep! What you're looking for is the Thing_Hate function, which tells monsters with a certain ID to "hate" either a player or monster with another ID. It's best to place this immediately after the line of code that spawns the monster, otherwise the monster won't even be in existence when the code is executed. Check out this page for an excellent breakdown: zdoom.org/wiki/Thing_Hate It's super easy to use, so try testing it out in a simple map.
@Devilofdoom8 жыл бұрын
Awesome. Thanks
@ErictheSandvich8 жыл бұрын
hi i have followed your steps, and read numerus wikis trying to solve this, but thing_spawn facing isnt working. Script 4 (VOID) { SetMusic("VRTLCMBT"); delay(35*2); Print(s:"\cfYou think I was done with you?"); delay(35*6); Thing_SpawnFacing(13, T_IMP, FALSE, 100); delay(35*2); Thing_SpawnFacing(14, T_IMP, FALSE, 101); } note that i have multiple monsters that are imps already in the map, multiple map spots with the same tag, my script saying it compiles without error, and my script working just without the spawn_thing facing.
@Chubzdoomer8 жыл бұрын
I just designed a test map and copy--pasted the script and it worked fine for me. Have you made sure your Map Spots have tags of 13 and 14? I'm not sure what else could be messing with the spawning.
@Mega1andy211 жыл бұрын
have you ever done thing_hate in the script before? really like to see the scripts. for thing hate.
@dr.ferret58024 жыл бұрын
What about resizing enemies.
@Chubzdoomer4 жыл бұрын
If your map is in UDMF format, you can do this directly on the monster itself by right-clicking it in Thing mode, clicking the "Action/Tag/Misc" tab, and then changing Scale to a value less than or larger than 1. The value you enter is considered a multiple, so setting it to 0.5 would result in a half-sized enemy for example, whereas setting the scale to 2 would make it twice as large as usual.
@Amalgart6 жыл бұрын
Hi there, this is a great tutorial indeed ! I have just met a problem: The script works fine with vanilla monsters and custom monsters when I use a weapon to spawn the monsters. But I wanted to use a blue card instead and it doesn't work, I don't know what's the matter because the two objects are the same
@Chubzdoomer6 жыл бұрын
So you're saying that when you use a blue keycard instead of a weapon, the spawning doesn't work?
@Amalgart6 жыл бұрын
Chubzdoomer, yes exactly ! But DoomSavior thank you I did not think about this ! I use the UMDF format so maybe it is the only alternative, better than nothing. Aniway thank you all for the answer
@aethea_music12 жыл бұрын
loaded them when i startet to create a map under recoures (doom, doom 2, tnt, plutonia)
@Casketkrusher_5 жыл бұрын
Hey man, I don't know if you reply to old videos but is there also a way to show the enemies that hasn't been spawn on the total monster count?
@Chubzdoomer5 жыл бұрын
I could be wrong, but sadly I don't think there's any way to do that. The best way to circumvent it would probably be to teleport the enemies (from some inaccessible "dummy" room) rather than spawn them, that way they technically already exist on the map and are therefore counted.
@Casketkrusher_5 жыл бұрын
@@Chubzdoomer Thanks for replying, this method is rather easy to use. Too bad they don't count as monsters until they've spawn, I got another question I use UDMF Doom format and everytime I use TeleportGroup (like 5 to 6 monsters at once in a seperate room) there only spawn 2 or 3. What am I doing wrong?
@Chubzdoomer5 жыл бұрын
@@Casketkrusher_ I don't think I've ever used TeleportGroup before. Based on what I can gather though, make sure that: - Your monsters are all clustered around a Teleport Destination (place it near the center of them) - Your teleport destination is also a Teleport Destination (not a Map Spot) - Your room is large enough to hold them all if they teleport in at once. If there isn't enough room for them, it might be holding back and only teleporting the ones it can support. Try making the room larger (or creating a large "test room" and sending them there) and see if it works then!
@squigglegames81718 жыл бұрын
hey chubz doomer i have followed what you have said but nothing is spawning. how do u make the chaingun the trigger. and what is a "thing" that im supposed to know what it means i appreciate your help
@Chubzdoomer8 жыл бұрын
I show how to make the Chaingun act as a trigger at 8:10. Things are objects you place (enemies, items, weapons, props, you name it).
@squigglegames81718 жыл бұрын
lol i feel like an idiot i didnt compile the code . could you pls answer this. so im using thing raise and the trigger is a red skull. but there are some problems. one they come back automatically a few times before they die and when i do pick up the red skull not all of them come back. would u know why? once again much appreciated oh and if it helps there are something like 8 monsters being raised and they all have a tag number of 28. im using zdoom in umdf format. Thanks
@Chubzdoomer8 жыл бұрын
EPIC GAMING! LOL, it happens! As for Thing_Raise... that's a good question. I've never used that function before in any of my maps (I didn't even know it existed), so even I don't know why that's happening. If you link me to the WAD though I may be able to load it up in DB and figure it out.
@rapappathepepper39965 жыл бұрын
Uh, theres a little problem, it says: Unable to find included file "zdoom.asc"
@Chubzdoomer5 жыл бұрын
I've never seen that error before, so I honestly have no idea what's going on there.
@MrThejoshmon12 жыл бұрын
:( I need constant spawnings like icon of sin but without romero (as its part of a side project in doom 1)
@Chubzdoomer11 жыл бұрын
In that case, you'll have to use something like a While loop.
@DuffkaBigNerd5 жыл бұрын
does it work onbugfix for gzdoombuilder? im having issues
@Chubzdoomer5 жыл бұрын
Yeah, the editor shouldn't make a difference. Just make sure you use UDMF or Hexen format when you first go to "New Map" (UDMF is the most modern and flexible, so I recommend only using it unless you're doing a strictly vanilla map).
@assassin13213213 жыл бұрын
where the hell get doom builder with Enemy tags???
@josephkaneaster105310 ай бұрын
udmf on how plz
@SassyPaddy11 жыл бұрын
i wanted to make a level end after a spawned cyberdemon dies. what should i do?
@rapappathepepper39965 жыл бұрын
check the list of IDs on zdoom wiki
@blurredsoftdev24202 жыл бұрын
How can I make a monster spawn every a single monster was killed
@Chubzdoomer2 жыл бұрын
One way would be to place the first monster and assign it an on-death script that: 1. Spawns another monster with a unique ID 2. Gives the monster spawned in step #1 the same script that the original monster had The functions you'd use for spawning and assigning the script would most likely be: zdoom.org/wiki/Thing_SpawnFacing zdoom.org/wiki/SetThingSpecial
@thebucketlovers91468 жыл бұрын
How do I make enemies that infinitley respawn after they die?
@Chubzdoomer8 жыл бұрын
+The Bucket Lovers You mean resurrected Archvile-style, or just respawned somewhere else?
@thebucketlovers91468 жыл бұрын
Chubzdoomer Nevermind, I saw you answered this question on another comment, haha. Thanks anyway.
@raptorprimal10777 жыл бұрын
Just asking does the Map number in the action part of the minigun matter?
@Chubzdoomer7 жыл бұрын
No, that's something that's rarely used so just keep it at 0.
@raptorprimal10777 жыл бұрын
Thanks man, its awesome to know you respond to your comments. unfortunately most youtubers dont do that these days except dcigs. hes pretty good too. anyway, thanks for your awesome vids, i just got into doom wad developing and its so fun! Imma give you a sub.
@quakenerd60683 жыл бұрын
Let's say I want to kill a monster to spawn more can I put the tag on the monster instead?
@Chubzdoomer3 жыл бұрын
Yeah, if you were to assign an action to a monster then that action would be performed as soon as it died. I have an old tutorial where I show that off here: kzbin.info/www/bejne/oIfOip55a5WrqJY I also do a bit of that throughout my ACS scripting series here: kzbin.info/www/bejne/fWLanKZmpJyDpdk
@quakenerd60683 жыл бұрын
What's the spawn number for the Maulator
@ThatGuyMurix9 жыл бұрын
Uh I've run into a critical problem while trying to add weapon and item spawns between waves and now even reverting back to an earlier save I still get this error when I take out the last few monsters from the map points 110-120 in the first wave. The error I keep getting is "Runaway script 1 terminated" I kept trying to find what could possibly be wrong but I couldn't and going back to a save well before anything like this was happen now all of a sudden also started doing this. What I found out after some testing is that if you kill all the monsters of a tag (say 1002) which is being checked in the script if they are alive before you kill all the monsters with the tag 1001 which are being checked if they are alive before the 1002 tag monsters are, then you get the Runaway script error. How would I fix this. (code I'm using below) #include "zcommon.acs" script 1 ENTER //Runs when the player enters the level { print(s:"Eliminate remaining monsters"); //While monsters with an ID of 1 are alive... While(ThingCount(0, 50)>0) { //...loop nonstop until monsters are dead delay(40); } //When loop exits (monsters with ID of 1 are all dead)... //...lower platform in middle of room. Thing_SpawnFacing(101, 4, 0, 1001); Thing_SpawnFacing(102, 4, 0, 1001); Thing_SpawnFacing(103, 4, 0, 1001); Thing_SpawnFacing(104, 113, 0, 1002); Thing_SetGoal(1001, 1, 0, 0); Thing_SetGoal(1002, 6, 0, 0); print(s:"WAVE 1 Incoming"); While(ThingCount(0, 1001)>0) While(ThingCount(0, 1002)>0) { //...loop nonstop until monsters are dead delay(1); } print(s:"Wave 1 complete"); Thing_SpawnFacing(780, 28, 0, 666); { //...loop nonstop until monsters are dead delay(100); } print(s:"Next Wave in 20 seconds"); { //...loop nonstop until monsters are dead delay(100); } print(s:"Supplys have spawned"); { //...loop nonstop until monsters are dead delay(1000); } Thing_SpawnFacing(101, 4, 0, 2001); Thing_SpawnFacing(102, 4, 0, 2001); Thing_SpawnFacing(103, 4, 0, 2001); Thing_SpawnFacing(104, 113, 0, 2002); Thing_SetGoal(1001, 1, 0, 0); Thing_SetGoal(1002, 6, 0, 0); print(s:"WAVE 2 Incoming"); }
@Chubzdoomer9 жыл бұрын
+Murix Try changing this: While(ThingCount(0, 1001)>0) While(ThingCount(0, 1002)>0) To this: While(ThingCount(0,1001)>0 && ThingCount(0,1002)>0) && stands for "and," so it says, "While at least one Thing with an ID of 1001 exists AND at least one Thing with an ID of 1002 exists, perform whatever is between the following brackets."
@ThatGuyMurix9 жыл бұрын
+Chubzdoomer Ah good that stops it from terminating the script. However if you kill the 1002 monster (1 hellknight) and leave the 3 other former humans (1001 tagged dudes) it immediately continues the script instead of waiting for the 1001 tagged monsters to be dead. and improvement over termination though.
@Chubzdoomer9 жыл бұрын
Murix Ah OK, in this case you'd use || instead of &&. || stands for "or," which means the code between the brackets runs when EITHER of the conditions is true. With "and," both of the conditions must be true.
@ThatGuyMurix9 жыл бұрын
+Chubzdoomer Nice it all seems to be working now. I've played 4 games and haven't had anything gone wrong so it looks like it's full steam ahead with map design and stuff now. You've helped so much with my deathmatch maps and now this, I'll have to make sure I release something soon.
@DirtyBoySingToGod7 жыл бұрын
Hey Chubz, I know that this video is pretty old now, but I was wondering if you can help me with what I am doing wrong here? For ref: Using Doom Builder 2 - ZDoom in Hexen Format. I wanted to create this exact scenario, as shown in your video above. I copied everything as you described, but I have a weird issue. The monsters spawn immediately, when I test the map. I don't even have to go to pick up the item (blue armour) that is linked to the script. They just teleport in immediately. For ref, my script reads: Thing_SpawnFacing(71, 2, 0, 999); delay(75); Thing_SpawnFacing(72, 3, 0, 999); delay(75); Thing_SpawnFacing(73, 4, 0, 999); delay(75); Thing_SpawnFacing(74, 5, 0, 999); } The item (blue armour) has Action 80 - Script Execute and is script number 1. The script compiles with no errors and the correct monsters spawn in. Everything works, but it works instantly haha. Script 1 has lines before all this, that are all linked with making reflective floors: #include "zcommon.acs" script 1 OPEN { Sector_SetPlaneReflection(4,45,0); Sector_SetPlaneReflection(7,45,0); Sector_SetPlaneReflection(5,40,0); Sector_SetPlaneReflection(12,45,0); Sector_SetPlaneReflection(16,45,0); Sector_SetPlaneReflection(17,45,0); Sector_SetPlaneReflection(25,45,0); Sector_SetPlaneReflection(26,45,0); Sector_SetPlaneReflection(27,45,0); Sector_SetPlaneReflection(28,45,0); Sector_SetPlaneReflection(29,45,0); Sector_SetPlaneReflection(30,45,0); Sector_SetPlaneReflection(31,45,0); Sector_SetPlaneReflection(49,45,0); Sector_SetPlaneReflection(50,45,0); Sector_SetPlaneReflection(56,45,0); Is it because I have written out something wrong, before i attempted scripting this monster spawn part? If you need any more info, let me know :) I know that it's going to be a tiny thing that I've overlooked, i bet :D Could it be that i need to close off script 1 (setplanereflection) with a " } " and then start the monster spawn as script 2 ? Sorry if i'm just confusing matters here :S
@Chubzdoomer7 жыл бұрын
Keep in mind that when a script is executed, it runs from top to bottom until every line of code is finished. Thing_SpawnFacing is no exception to this, so that's why the monsters spawn without you having to do anything. What you want to do instead is put the Thing_SpawnFacing section inside its own script (script 2), and execute that script via the armor. Like you said at the end of your comment, just end script 1 with } and start a brand new one. Also make sure script 2 ends with (void) rather than OPEN, that way you have to trigger it manually and it isn't just executed when the map is opened.
@DirtyBoySingToGod7 жыл бұрын
That is FANTASTIC, thank you so much for the concise answer! Really appreciate it Chubs, you've been super helpful yet again. I hope you have an awesome day :)
@DirtyBoySingToGod7 жыл бұрын
It worked ! :D Thanks again Chubz !
@iyago16388 жыл бұрын
I want to make when all the monsters die a door open. How i make that.
@Chubzdoomer8 жыл бұрын
You can either run an endless loop until they're dead (after which a door opens), or count how many are killed and open the door when the count reaches the desired number. See my "Monster Clearance" WADs on the following page for some examples: sites.google.com/site/chubzdoomer/doom-files
@dragishawk7 жыл бұрын
Make sure all the enemies you want the player to kill to open the door have the same tag, and then do a While loop with ThingCount using that tag, executing the door_open command once all of the tagged enemies are dead.
@edgykid42268 жыл бұрын
I'm trying to make a map where it spawns random weapons at the start. It works, but there's a flaw somewhere. Whenever I go into the map, I always just get the plasma gun nothing else. I don't think it's my luck because I did it multiple times. Do you think you could tell me what I did wrong? #include "zcommon.acs" int wep[3] = {11, 27, 30}; int ammo[3] = {11, 12, 75}; script 1 ENTER { int det = random(1,3); thing_spawnfacing(1, wep[det], 1, 5000); thing_spawnfacing(2, ammo[det], 1, 5001); thing_spawnfacing(3, ammo[det], 1, 5002); }
@Chubzdoomer8 жыл бұрын
Everything in that script looks correct except for the random number. Array indexes start at 0, so you should generate a random number from 0 to 2 instead of 1 to 3. If you try to access wep[3] or ammo[3], it will come back empty since 2 is the max index for both arrays. I just ran a quick test and it worked fine for me after making the little random number change!
@edgykid42268 жыл бұрын
Chubzdoomer Ok, yeah. I looked out for that, but I knew I did something wrong. Thanks.
@esdv42968 жыл бұрын
Can you do this enemy spawning with ammo and powerups in the same way (can you make the spawning endless)? Also where do I get the names of the heretic monsters, can I do this with custom monsters.
@Chubzdoomer8 жыл бұрын
Eshan Venkatesh Yeah, it'd be the same with ammo and powerups. To make it endless, you'd need to use a While loop with "Delay (1);" at the end of the script to prevent it from self-terminating. You can find the spawn IDs for all the games (Doom, Heretic, Hexen, even Chex Quest) here: zdoom.org/wiki/Classes
@esdv42968 жыл бұрын
Can I do this with custom monsters from realm667?
@potatophantom97177 ай бұрын
for the life of me I can't get this script to work. The script compiles nicely and when I cross my chosen LINEDEF nothing happens. I have the linedef set to run script and chose the proper script. Good turtorial though.
@Chubzdoomer7 ай бұрын
One thing I would do is use a PrintBold command to see if the script is being executed at all. Add this to the start of the script: PrintBold(s:"Script Executed!"); And then of course compile everything again. When you play the map, if you cross the linedef and don't see a small "Script Executed!" message appear in the middle of the screen, then that means the script isn't being executed!
@ookiemand10 жыл бұрын
Hi Chubz! Man I'm so happy with your Doom tutorials, for it got me into scripting! Question, can you have a script depending on skill levels? Meaning if people play hard, nightmare, coop they'll get more enemies then on easy mode. I'm working on a big megawad, meant for coop, and it would be nice if I can make it viable for SP as well. Thanks a lot.
@quakenerd60683 жыл бұрын
What is the Target for under Monsters?
@Chubzdoomer3 жыл бұрын
The Monsters Target marks a location where the Icon of Sin can fire a spawn cube. In case you want to know more, the Icon of Sin technically consists of three things: 1.) *Monsters Spawner* Plays the backwards-voice when it sees or hears the player, and then starts firing out spawn cubes from its position. Is totally invisible and can't be interacted with in any way. Think of it as an invisible and invulnerable monster whose "attack" is firing spawn cubes. 2.) *Monsters Target* Marks a possible destination for one of the Monsters Spawner's spawn cubes. You can place as many of these as you want. If there are _none_ on the map, the Monsters Spawner will effectively do nothing besides play its backwards-voice. 3.) *Icon of Sin* The infamous "John Romero's head on a stick." Literally does nothing besides spawn a bunch of explosions when killed and move the player to the next level. Surprisingly, it has _nothing_ to do with the backwards-voice or monster spawning.
@quakenerd60683 жыл бұрын
Is it possible for the monster spawners to spawn one monster without loop
@Chubzdoomer3 жыл бұрын
@@quakenerd6068 Nope, I don't think so. You'd either have to customize its actor (which is called BossEye) or do your own cube-shooting with a script.
@Chubzdoomer11 жыл бұрын
Sorry, I'm not sure what you're asking.
@aleks835427 жыл бұрын
Will this script work for GZDOOMBUILDER?
@Chubzdoomer7 жыл бұрын
Yep!
@edgarbanyxd11 жыл бұрын
Can I do that with new mosters? I have to put the ID or not?
@Chubzdoomer11 жыл бұрын
You can do it with new monsters, too. To specify their ID, add this line in their DECORATE: spawnid ### Change ### to a number that isn't used by any other custom monsters or those in this list: zdoom.org/wiki/Doom_spawn_numbers
@edgarbanyxd11 жыл бұрын
Chubzdoomer ehmmm..... ok thanks its easy haha.... new sub !!! :D
@Chubzdoomer11 жыл бұрын
The same way you do this, except you choose a Door Open special rather than Script Execute.
@SkwisgaarScampini9 жыл бұрын
where can i download Zdoom (doom hexen format)?
@Chubzdoomer9 жыл бұрын
***** That's just a map format that you can use. The game itself is DOOM 2 (or even DOOM, if for some reason you want to make maps for the original).
@SkwisgaarScampini9 жыл бұрын
Chubzdoomer I private messaged you
@SkwisgaarScampini9 жыл бұрын
Chubzdoomer Script error, "actors/nativeclasses.txt" line 4: 'A_MonsterRail' is already defined in class 'Actor'. this is the error message I get when trying to test my map in this format
@Chubzdoomer9 жыл бұрын
***** It looks like there's something wrong with a custom monster (or weapon/item?) in your WAD.
@xx_applebeesfan07_xx163 жыл бұрын
What about weapons? How do I spawn weapons?
@Chubzdoomer3 жыл бұрын
Weapons and other items are included in the same list shown at 5:03.
@xx_applebeesfan07_xx163 жыл бұрын
@@Chubzdoomer ok but I also wanna say that it says thing_spawnfacing is used but not defined. What did I do wrong?
@Chubzdoomer3 жыл бұрын
@@xx_applebeesfan07_xx16 It sounds like you didn't include this line at the top: #include "zcommon.acs" zcommon.acs is the file that contains definitions for all of the built-in functions, etc. so you always need to include it in order to avoid getting any errors.
@xx_applebeesfan07_xx163 жыл бұрын
@@Chubzdoomer ok I did and it worked
@null_ptr6669 жыл бұрын
You know a script to make a infinite monster spawn, im making a megawad, and the final level need to be hard.
@Chubzdoomer9 жыл бұрын
mastervideogames003 Yep, just spawn the enemy, followed by a short delay (2-3 seconds would be fine), followed by *restart;* which restarts the script. That should endlessly spawn enemies until the script is stopped/terminated.
@null_ptr6669 жыл бұрын
Ok thanks
@boomboom20114 жыл бұрын
great tutorial, this helped me alot =)
@arthercasillas27559 жыл бұрын
Can I create custom Spawn ID for custom monsters, I know about the Thing ID, but the Spawn ID is different. For instance the Zombieman has a Spawn ID of 4. So, I can spawn a Zombieman using: attaching it to a line def or another monster. action 136 :Projectile with Gravity Map Spot: 6 (user defined map spot pick any number) Projectile Type: 4 (this is the spawn ID) movement angle: 160 degrees Horizontal Speed :15 Vertical Speed: 1 With these setting I can make it look like Zombieman is jumping through the window when you enter the hallway. Now for what I want to do...I want to do the same thing but with ACTOR DemonDog 10303. I am using latest version of Slade and running GZDoom Builder. This is a drop box link of the map with enemies appearing to jump through the left window as you cross the corner( Line Def) of the hallway towards the BFG Commando. db.tt/9JcvMIEb How do I make it happen with ACTOR DemonDog 10303
@Chubzdoomer9 жыл бұрын
Arther Casillas You should be able to give custom monsters, items, etc. a spawn ID by simply placing this line in its DECORATE file: *SpawnID #* Replace # with the spawn ID you want it to have.
@Chubzdoomer11 жыл бұрын
Yeah, it's used to make one monster/thing "hate" (aka be hostile towards) another.
@madfinnishgamer3814 жыл бұрын
Archviles are good to use with the Thing_Spawn code.
@riderr314 жыл бұрын
cool feature, but usually I create hidden rooms with teleports and place monsters there
@ashtmslf23153 жыл бұрын
actual lifesaver
@Chubzdoomer11 жыл бұрын
Reduce the delays.
@Igror512 жыл бұрын
How can i spawn enemies through their names? Wiki said this is possible, but it doesn't works! Here's my script: #include "zcommon.acs" script 1 (void) { Thing_SpawnFacing(1, "DoomImp", FALSE, 999); } When i try to write SpawnID, it works fine. I want to create a mod with custom monsters, many monsters, but there are not enough SID's (only 255 max, and some are already uesd for normal monsters)