Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
SilverSound

Monster's [Decorate and Zscript]: Looking for some help.

Recommended Posts

I've been spending the past day and a half getting a mega wad project up and running.
Wanted to create a set of levels and play it with a friend. Good fun.

 



I did some research so I could properly set up monsters in GZDoom Builder.
But I've run into all kinds of issues. I'll do my best to explain in detail. 

 

For starters I have a little over or under 50 monsters. I know that some people might enjoy less but this project is very huge and I don't actually expect to use all 50 of them in one mega wad. I actually was just hoping to set up a big pile I can pull from and just use. Setting it up to "just work".


The first issue is that some of the monsters use Zscript instead of Decorate. Now that should be an easy fix. Decorate classes generally show up fine in editor if they have a proper ednumber

 

But Zscript doens't have that sort of thing (maybe "yet". not sure)
So I opted to go the MAPINFO rout. Fine and simple. That should add the monsters that are in Zscript to the editor.
 

I set up 2 pk3 files. one for the Zscript monsters and the other for decorate monsters.

Nice, neat and tidy.

Making sure that the main mapping wad loads the pk3's and GZdoom's pk3.

The method is the slower Wad in a pk3 file format.

I have not gone for the dissected method.

 

This is where the frustration started for me.
For some reason I can't use both decorate and Zscript monsters. As in: they don't seem to want to load along side each other.

 

In a way I've gotten decorate and Zscript monsters to load in the editor, but the monsters that load are only a few. 2 or 3 would load and the rest would not.
The editor would claim that the decorate class does not exist. Sure enough, if I check the scripts in the editor, the decorate files seem to just be missing.

Even though they do truly exist in the wad.

 

I can confirm that both pk3 files are loading properly. The editor is seeing both of them, but not all of the monsters are loading like you'd expect.

 

The exact errors are as follows:

Spoiler

GLDEFS warning in "Monsters.pk3\PsychicSoul.wad\GLDEFS:1", line 31. DECORATE class "PsychicSoul" does not exist.

Any other actor declared in any of the GLDEFS of a monster wad will report this error. proving the editor sees the monsters and that the normal pk3 is loading.

 

Here is a picture of what the ed thinks the wad file looks like followed by what the wad actually looks like:

Spoiler block for tidiness. I apologize if the image is too large for mobile users. I snipped the picture using snipping tool.

 

Spoiler

unknown.png

 

unknown.png

 

I'm just not sure why this is all happening.

 

The issue stops when I remove GZdoom.pk3 from the resources. But that stops the Zscript monsters from loading.
 

If any of you have a method that is sure to work the way I'm intending please let me know.

 

If you need any information or something expanded upon please ask away. I'm willing to work this through till it's resolved.

 

 

I was expecting a tough job when I decided to get a bunch of monsters going but I wasn't expecting these kind of errors.

 

Hopefully you doom experts can help me out. Surprisingly I haven't actually found this exact issue online. Only one or the other.

Share this post


Link to post

It looks like you have the DECORATE lump inside the PsychicSoul folder in Monsters.pk3.  Do you have a DECORATE file in the root folder that uses #INCLUDE to load the one in the sub-folder?

 

Also, you appear to have sprites between SS_START and SS_END markers in a pk3 as if it was a wad.

 

Here is the proper way to organize a pk3: https://zdoom.org/wiki/Using_ZIPs_as_WAD_replacement

 

Also, since you are using MAPINFO to get the ZScript monsters into GZDoom Builder, why not use the same method for the DECORATE monsters, in case GZDoom Builder finds it confusing to see two different methods used?

Share this post


Link to post
14 hours ago, Empyre said:

It looks like you have the DECORATE lump inside the PsychicSoul folder in Monsters.pk3.  Do you have a DECORATE file in the root folder that uses #INCLUDE to load the one in the sub-folder?

 

Also, you appear to have sprites between SS_START and SS_END markers in a pk3 as if it was a wad.

 

Also, since you are using MAPINFO to get the ZScript monsters into GZDoom Builder, why not use the same method for the DECORATE monsters, in case GZDoom Builder finds it confusing to see two different methods used?

 

I did a little testing with trying to load DECORATE with MAPINFO. I remember getting some to load.
But a lot of them complain that it couldn't assign the number to an actor of that name.

I think that was due to Doom Builder not seeing any of the DECORATE files like I showed in the pictures.


I originally didn't use the dissected method. I used the WAD in a PK3 format. That's supposed to work but it's slower.

I'll give the decorate in root a try to see if I get different results.

 

I'm Using Doombuilder2 bugfix btw

Share this post


Link to post
39 minutes ago, SilverSound said:

I'm Using Doombuilder2 bugfix btw

Did you mean GZDoom Builder Bugfix?

 

Organizing a wad into a proper pk3, as shown in that link I gave last time, is a bit of work, but once it is done, it is so much nicer to work with.  You will be glad you did it.

Share this post


Link to post
29 minutes ago, Empyre said:

Did you mean GZDoom Builder Bugfix?

 

Organizing a wad into a proper pk3, as shown in that link I gave last time, is a bit of work, but once it is done, it is so much nicer to work with.  You will be glad you did it.

 Yes I did mean that.
I'll give it a try and report back. Maybe that will fix the odd bug like issues I'm getting. Thanks for that suggestion. I skimmed over the idea.

Share this post


Link to post

So I tested with just one unpacked Decorate monster. Seeing if MAPINFO would load that monster. It didn't seem to work. I'm unsure if there's a specific way to do it or not.

 

I put sprites sounds and core files in specific folders. Sprites, sounds and actor. Actor had the info files.

 

I have 2 new things I can try but so far it's not looking good. I would love to avoid the root decorate "#include actors/PsychicSoul/" Thing if at all possible

sticking to MAPINFO. That way I'd have less hand done work to do. lol

 

 

Share this post


Link to post

If you don't #INCLUDE the file with the code for the monster, the code might as well not exist.  It is either that or put all the DECORATE code into one file, the DECORATE file in the root folder.  The #INCLUDE is not instead of using the MAPINFO method, but in addition to it, to tell the game (and GZDoom Builder) that there is more DECORATE code to load.

Share this post


Link to post
23 minutes ago, Empyre said:

If you don't #INCLUDE the file with the code for the monster, the code might as well not exist.  It is either that or put all the DECORATE code into one file, the DECORATE file in the root folder.  The #INCLUDE is not instead of using the MAPINFO method, but in addition to it, to tell the game (and GZDoom Builder) that there is more DECORATE code to load.

Looks like I can post if you post. It locked me out of DM's too after one dm.

on topic:

 

I did a big test. Set up decorate to load from wads in a directory and then set up Zscript.

If I load Decorate byitself it works just fine. GZDoomBuilder will load it and allow me to see sprites.

If I then load GZDoom.pk3 and my Zscript monsters. 
The decorate monsters no longer load at all.

This is even if I properly set up a decorate file.

 

It's almost as if loading both of them will cause GZDoomBuilder to flat out refuse to load Decorate files at all.

 

MAPINFO also refuses to work with Decorate if I am also loading zscript monsters.

Specifically if I just load GZDoom.pk3 and the decorate monsters only, then the decorate monsters will still fail to load even if Zscript monsters are not being loaded.

 

I'm super mega lost on what's going on here and I'm already in the process of reporting this as a possible bug to the Bugfix branch. (just need to get my account info)

Maybe you or another has had this sort of issue before and knows a better way to fix it.

 

Edit:I should note that I can still get a monster to spawn in a level if I know the ed number. But that's not ideal at all.

Making large levels would be a nightmare if I had to remember id's. on top of not being able to see the sprite.

 

Edit2: I did actually try the include method and I had the same issue

Edited by SilverSound

Share this post


Link to post

I don't know ZScript because I make stuff for Zandronum, and this MAPINFO method is also unfamiliar to me.  Here is what I do to make a DECORATE actor appear in GZDoom (from a work-in-progress project called OPMonsters):

Actor BloodMauler : Demon 15400
{
	//$Category OPMonsters/Demon
	//$Sprite MAUDA3A7
	tag "Blood Mauler"
... the rest of the code here ...

I assume you know about the DoomEd number on the first line.  The second line puts the monster in a folder other than the generic User Defined.  The third line tells what sprite to use in the map editor.  The fourth line gives a display name for the monster in-game and in the map editor.

 

In the DECORATE file in the root folder of the PK3, I have a whole bunch of lines like this:

#INCLUDE Actors/DemonAndSpectre/BloodMauler.dec

This tells the game (and map editor) to load the DECORATE files specified, so I don't have to put all the code into one huge file in the PK3.

Share this post


Link to post

See that is something I did on a small scale. I did it with one monster and set up everything correctly. The masterDecorate worked by it'self. 

But as soon as I added Zscript monsters it all fell apart and stopped loading.

 

Even if I did go in and add ed tags for sorting, it still won't load. Claiming that the decorate files don't exist. Or what ever file it's trying to load.

Edit:
Scratch that. I just loaded it and a lot of decorate monsters (but not all) and zscript started loading. But it looked VERY hit or miss.

 

Why hasn't someone created a way to automate this yet?!

 

Edited by SilverSound

Share this post


Link to post
3 hours ago, SilverSound said:

Claiming that the decorate files don't exist.

That is why you need #INCLUDE in the DECORATE file in the root folder, or none of the other DECORATE files will load.  Any file named DECORATE in the root folder will automatically load, and you can even have more than one, but any DECORATE file that is NOT in the root folder (or any file not named DECORATE) will NOT automatically load.  You have to tell it to load, which is what #INCLUDE is for.

Share this post


Link to post

I still think the way I'm trying to load it is supposed to work. I have a very big feeling it's a bug.

 

For now I'll work on doing this. To see if it fixes everything. 

 

But it half working and half not shows that I shouldn't need to do this to get it all to work.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×