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

Need a bit of help with using custom assets in maps

Recommended Posts

I'm trying to figure out how to use custom elements in my map wads (Doom Builder 2) and having a hell of a time figuring it out. Loading, say, a custom monster as a resource doesn't work, so I figured it had to be a convoluted process.

This video by Chubzdoomer says to copy the custom object data in slade, then paste it in the wad above the map stuff, presumably so it loads before the map. According to the comments, this only works if you build the map in Zdoom style Hexen format.

1) Can I only use custom actors/props/etc with this method (copy-paste in slade, use zdoom style hexen format)?

2) If so, do I have to copy-paste the custom assets into every map if I want to make a mapset? I get the impression that I should, since I need to worry about making each map before I can worry about merging them into a single wad. I didn't notice a merge function in Slade, and I'd rather not use XWE since it's basically a glitchy corpse.

3) And am I right in assuming that all the sprite files have to be between one set of S_START/S_END tags, or can each decorate object have its own?

Share this post


Link to post

1. a) You can also load the custom monster wad as a "resource" in your map editor, which will not copy its contents to your wad, but it will act just like that. When playing/testing outside of your map editor's Test mode, you must load both wads at the same time.
b) UDMF format is better than Hexen, much more flexible with its possibilities, Hexen format can be considered obsoleted by it.
c) Hexen/UDMF format lets you see a Decorate Thing tab, where you can easily select your custom things. But you can use them in Doom format too! If you look into SLADE3 and remember the custom monster's actor number, you can put a thing with this number into your map, and when testing the map, it should spawn as the desired monster. Obviously, you must play in a port that supports DECORATE.

2. The code for every custom thing must be present in any wad exactly once per wad. More precisely, it needs to be present exactly once per all wads that you load together at the same time. Position inside the wad doesn't matter. When developing your maps separately, you can place your custom monster into each map. Or you can load them as a resource, as I told you in 1a). Or you can make your own central texture/DECORATE resource wad, and load it as a resource for all your maps. Eventually, when merging your maps into a single wad, you must make sure that no DECORATE thing is present more than once in the wad as a whole. You can merge wads in SLADE3 by copying the entire content of one wad (Ctrl+A, Ctrl+C) and pasting it into another wad (Ctrl+V).

3. ZDoom can handle multiple S_START/S_END namespaces inside one wad - it's OK if you keep them as they stand next to their DECORATEs.

Share this post


Link to post

Ahhh, so I was just using the incorrect map format when I tried loading them as a resource. Thought it was weird that it didn't work, but I wasn't sure what any of the other map formats were I guess. Thanks for the tips, as always.

Share this post


Link to post

Not sure if this is off topic but I have this problem with a custom decorate.
I tried to add this sentry gun item from realm667
http://www.realm667.com/index.php/en/item-store-mainmenu-169-61042/others-mainmenu-172-93727?start=30#description-8
but builder complains that "Unable to find the DECORATE class 'CustomInventory' to inherit from, while parsing 'SentryBox:12369'"

ACTOR SentryBox : CustomInventory 12369
{
  +COUNTITEM
  +INVENTORY.INVBAR
  Inventory.MaxAmount 3
  Inventory.Icon "SENBB0"
  Inventory.PickupMessage "You picked up a sentry gun!"
  States
  {
  Spawn:
    SENB A -1
    Stop
  Use:
    TNT1 A 1 A_SpawnItemEx ("SentryGun", 56, 0, 8, 0, 0, 0, 0, 1)
    Stop
  }
}

Share this post


Link to post

I'm curious why some Decorate monsters/items register in DB2 as decorate objects, and others don't (on the "things" directory that is). A slip-up in the code somewhere? or is the editor REQUIRED to use the thing's id?

Share this post


Link to post
Impie said:

or is the editor REQUIRED to use the thing's id?

Well that's to be expected, considering that's how objects exist in maps in the first place, via their assigned DoomEdNum.

Share this post


Link to post
Edward850 said:

Well that's to be expected, considering that's how objects exist in maps in the first place, via their assigned DoomEdNum.

Yes, but my point is, they should be showing up under "Decorate" in the things menu, and a lot of them just don't appear at all.

Share this post


Link to post

Custom DECORATE objects with "//$Category XYZ" comment inside their code will appear in category XYZ (read: whatever category name you put there, for example Monsters or Weapons) instead of category Decorate in things menu in an editor.

Custom DECORATE objects without actor number will not appear anywhere, because the lack of the number indicates that they're not supposed to be placed in maps in a mapping editor, that's why the editor doesn't even show them (deliberately and rightfully).

Share this post


Link to post

Ohh, so if I get an asset that has no number, I just assign it one that isn't already taken, and it should appear on the list somewhere?

This was a lot easier back when I was screwing around in DeHacked...

Share this post


Link to post
Impie said:

Ohh, so if I get an asset that has no number, I just assign it one that isn't already taken, and it should appear on the list somewhere?

Correct.

This was a lot easier back when I was screwing around in DeHacked...

But far less flexible.

Share this post


Link to post
illuknisaa said:

but builder complains that "Unable to find the DECORATE class 'CustomInventory' to inherit from, while parsing 'SentryBox:12369'"

You can silence such errors by loading zdoom.pk3 or gzdoom.pk3 as a resource file. Don't forget to check the "exclude from testing parameters" checkbox, though!

scifista42 said:

Custom DECORATE objects with "//$Category XYZ" comment inside their code will appear in category XYZ (read: whatever category name you put there, for example Monsters or Weapons) instead of category Decorate in things menu in an editor.

Custom DECORATE objects without actor number will not appear anywhere, because the lack of the number indicates that they're not supposed to be placed in maps in a mapping editor, that's why the editor doesn't even show them (deliberately and rightfully).

There are a lot more special comments you can put in the DECORATE code to make things better in map editors:
http://zdoom.org/wiki/Doom_Builder#DECORATE_keys
http://zdoom.org/wiki/SLADE#DECORATE_keys

Impie said:

Ohh, so if I get an asset that has no number, I just assign it one that isn't already taken, and it should appear on the list somewhere?

If you want a list of editor numbers that are already taken, look here.

Impie said:

This was a lot easier back when I was screwing around in DeHacked...

If all you want to do is give an imp 5000 hit points, maybe, but try creating a monster with complex behavior in DeHackEd. Or try adding sixty five new decorative items, thirteen new monsters, and three new weapons. See if it's easier in DeHackEd.

Share this post


Link to post
scifista42 said:

But far less flexible.

No kidding. I just wish Slade tutorials were more useful. I keep having to post questions here because there's no comprehensive tuts that I'm aware of. Every time I follow the directions to the letter, something still fails to work that wasn't covered in the tutorial. Even Chubzdoomer's video about one method for importing Decorate critters into maps neglected to clarify that "this only works if ZYX, not if ABC."

I feel like I'd have to either take a college-level course on this stuff to get a solid grasp on it without pestering the forums like a noob, or pester somebody to do the heavy lifting for me and throw my autonomy out the window.

Share this post


Link to post
Impie said:

I feel like I'd have to either take a college-level course on this stuff to get a solid grasp on it without pestering the forums like a noob, or pester somebody to do the heavy lifting for me and throw my autonomy out the window.


Well, yes, as you progress from vanilla editing to more advanced stuff, there is a fairly steep learning curse involved. But the WIKIs usually do a good job of informing you how to go about it.

In the case of the ZDoom wiki, I usually take the long route through Special Pages - All Pages, because the search function is not all that good.

As to DECORATE, yes, every actor to be placed into a map needs a DoomED number. Think of it as a housenumber. You may know the town and street, but without the housenumber you may never find the correct address.

There are two distinct approaches when it comes to including multiple DECORATE actors. One is to use the pk3 file structure and give each actor its own folder, or the other, which I like to use for items less than 15 or so, is to use a master decorate lump and rename the individual decorate lumps according to its name, for example



with a list of the DoomED number and the SpawnID, depending on how the actor is to be introduced in the map.

Practice makes perfect.
Take other's maps apart with Slade3 to see how they have done it.
The best way to learn is to experiment and have fun creating new maps.
Plus, there is nothing wrong to ask questions.

Share this post


Link to post

Now that I'm getting used to UDMF format, I'm curious why the damaging floor effect doesn't work anymore. I figured out how differently tripwires work (for example, making the floor raise), but there doesn't seem to be any way to make the damaging floors do what they're told.

And now that all my monsters have DoomEdNum's, I'm also trying to figure out why some of them appear with the regular monsters in the thing list (like the Hell Warrior), while others appear just under DECORATE (like the Undead Hunter), and still others appear in their own "Monsters" category (like the KDiZD Nightmare). I haven't notices anything setting those critters apart from one-another in their decorate files.

EDIT: Naturally, just after I posted, I solved the second one. Finally noticed the "category" text.

EDIT2: And apparently it was mentioned before, but I never noticed that, either. Or forgot. This is why I shouldn't do game design I guess. Nyuk nyuk.

Share this post


Link to post

//$Category XYZ
This comment in their DECORATE code does it, me and Gez mentioned it above.

EDIT:

Sector effects are different in Hexen/UDMF format than in Doom format (see here), but mapping editors incorrectly don't account for that and display names of the Doom ones anyway.

Share this post


Link to post

How do I tag secret areas then? There doesn't seem to be a new option for that in the sector effects, and the original one doesn't work (as with the other "classic" sector effects).

Share this post


Link to post
scifista42 said:

It's sector effect 1024. Actually any number with bit 10 (1024) set to one will act like a secret sector. http://zdoom.org/wiki/Sector_specials#Generalized_flags

Alternatively, use Secret Trigger actor, it will trigger a secret when activated via a linedef/script action Thing_Activate.


This annoyed me. If you go through the list with predefined actions you can't find 1024 there but if you just type it in the box builder says it's secret. Why cant this be listed like other things?

Share this post


Link to post

I found that generalized effects list, but assumed it would be as useless as the other list. I guess it actually works, huh?

So is there a way to teleport the player when he touches down on a sector floor? or does it HAVE to be a tripwire? I'm referring to discussons in my Strange Aeons thread about alternatives to walking on the void.

Share this post


Link to post

There is a Thing category called "Sector Actions" available in ZDoom-specific map formats, you should find "Actor hits floor" in the list, place it into your sector and assign it an action you want to happen when the player hits floor.

Share this post


Link to post

Ahh, never noticed that. Did manage to figure out how to teleport groups of critters from sector to sector, though.

EDIT: Crap, thought you meant it was under sector effects. I gotta look this up, too, now.

Share this post


Link to post

I'm having the damnedest time getting MAPINFO to work correctly. All I want to do is restrict the player from jumping on any of the maps in the wad. After a lot of trial and error using the zdoom wiki's cryptic examples (i swear it feels like it was written by some seret clique just for the sake of archiving, rather than to actually teach anything to new people), I came up with defaultmap {nojump}, which got zdoom to at least run the map without aborting outright. But apart from that, it had no effect on the game whatsoever. Been trying to figure it out for a half hour now and I'm going crazy.

Share this post


Link to post

"Defaultmap" will take effect only on maps that you redefine using "map". So you need to add "map <map lump name> <nice name> { <all properties> }" for all maps where you want the player not to jump.

Share this post


Link to post
scifista42 said:

"Defaultmap" will take effect only on maps that you redefine using "map". So you need to add "map <map lump name> <nice name> { <all properties> }" for all maps where you want the player not to jump.

Oh, so when it says it affects "subsequent entries" it means in the mapinfo lump's entries, not the wad entries. Thanks for clearing that up for me.

Share this post


Link to post

I found this ancient thread illustrates a problem I'm having with skies myself. I have a sky texture that should tile vertically perfectly (256 x 200), yet it looks like this when the game loads up. I tried adjusting it to 256 x 228 like one post suggested, but the problem persisted, and it doesn't matter if i stretch the sky or not, nor if I change the offsets in slade (which has been crashing WAY too often the past few weeks). Surely there's a fix for this by now (since this screenshot is from 2007) but I'm not having much luck finding it.

Share this post


Link to post

Sky must have height 128 to tile perfectly vertically. Or possibly another power of 2, but I'm not certain. Other large heights (like 200, 228, 240) simply rely on the assumption that the height is large enough to never allow the player see it tiling in any map, which obviously depends on the map. In non-ZDoom ports, I think the height should be exactly 128.

Share this post


Link to post

How the hell do tall skies work then? I've seen quite a few uploaded for people to use, but they just don't work.

Share this post


Link to post

Tall skies are not supposed to be seen tiling vertically. That's it.

If the problem is that they don't display their image below 128 units at all, remember that the texture itself must have tall dimensions, not just the patch. If you place it between TX_START/TX_END markers, it's no problem. But if you use TEXTURE1/PNAMES, you must edit the respective TEXTURE1 entry to have proper dimensions.

Share this post


Link to post

Dammit, I forgot all about TX_START/TX_END, too. I bet that's the problem.

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
×