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

is there a way to make custom powerups in Dehacked?

Recommended Posts

I don't see anything I can access to change what effects power-ups do, Is there a way to mess with those values in Dehacked or am I out of luck?

Share this post


Link to post

It cannot be done in DEHACKED, except for the limited features available in the Misc table (notably, changing the amount of health given by the Soulsphere pickup), and even some of those are a bit hacky and do not always work as you'd expect by their names.

Share this post


Link to post

Oh, you can do it. In MBF.
Say, you want to make a Regeneration Sphere (regenerates 1hp per second for 60 seconds)
Here is quick how-to:
1. Make a voodoo doll conveyor with health bonuses. Adjust your conveyor belt so voodoo doll will take 1 bonus in a second.
2. Block your voodoo with 2 bars.
3. Replace the unwanted thing (say, Dead Lost Soul) with your sphere and add a touchy flag for it (so player will "grab" it on touch). Add LineEffect codepointer in its death state and let it open 1st bar with DR action.
4. Place your item on map and surround it with linedefs which will open 2nd bar.

Voila, when you "grab" your new sphere (actually you kill it), you'll start to regenerate your health. No colormap effects, though.

It could be done in Boom, but this is more advanced - instead of simple item you should create a "monster" which will stand in one place. Add a melee attack for it with one TNT1 frame with zero duration (this will remove "monster" on touch). Since there isn't LineEffect for Boom, you should remove 1st bar from voodoo's path and place surround item with linedefs more carefully.

Damn, this stuff is really complicated...

Share this post


Link to post
cybermind said:

..... Damn, this stuff is really complicated...


That's why G/ZDoom's DECORATE was developed.
Use it.

Share this post


Link to post

The topic title clearly says "in Dehacked". And DECORATE stuff will work only in ZDoom based ports, whereas my method should work in every Boom/MBF compatible port.

Share this post


Link to post

Which is why you don't do this stuff outside of ZDoom, Eternity, EDGE, etc. based ports.

The thing about making a Doom mod that's playable by most Doom source ports is that you restrict yourself to making something that's unambiguously Doom. That's what most source ports are designed to play: Doom, and nothing else. If you want to make something that isn't just tweaked Doom, then you're going to have to give up the audience that just want to play Doom, and pick out their source ports accordingly.

Sure, you can hack in methods like that, but it's an imperfect solution that gives up other things, like multiplayer compatibility and accurate item totals. Ultimately, if you want to do something that Doom doesn't allow you, then your best bet is to go for more advanced ports designed to let you make your own stuff, rather than going through the headache to use everything but the direct method to get something to work.

Share this post


Link to post

Oh, I forgot that there is multiplayer stuff to bother with, though in most cases (I play single player only) I see this stuff in wad's txt:
Single Player : Designed for
Cooperative 2-4 Player : Starts included but not tested
Deathmatch 2-4 Player : Player starts only

The topic starter haven't said anything about that.

BTW, have you played any level created by Eternal? His levels have a lot of such "hacky" stuff (especially Voodoo Guns), and they play very good, you just don't notice it (some doomers may even think it's script-based, yeah)

Share this post


Link to post
Arctangent said:

Which is why you don't do this stuff outside of ZDoom, Eternity, EDGE, etc. based ports.

The thing about making a Doom mod that's playable by most Doom source ports is that you restrict yourself to making something that's unambiguously Doom. That's what most source ports are designed to play: Doom, and nothing else. If you want to make something that isn't just tweaked Doom, then you're going to have to give up the audience that just want to play Doom, and pick out their source ports accordingly.

Sure, you can hack in methods like that, but it's an imperfect solution that gives up other things, like multiplayer compatibility and accurate item totals. Ultimately, if you want to do something that Doom doesn't allow you, then your best bet is to go for more advanced ports designed to let you make your own stuff, rather than going through the headache to use everything but the direct method to get something to work.


-1 For shame

Never mind the obvious reasons this is stupid, most Doomers have higher expectations for wads built for more advanced source ports. So you know, in theory everyone says "build maps for (G)zDoom and people will play them," then you get this. Life is funny like that. I thought the map looked pretty good (for a Boom map), too.

Share this post


Link to post
Fonze said:

Never mind the obvious reasons this is stupid

You might have to explain this, because to me it's just taking the most direct route.

You want to replace monsters with new monsters that still effectively do the same thing? Sure, you can do that with vanilla or Boom compatibility. Want to make the SSG instead of quad-barreled shotgun that might even stall the second double-barrel blast? Yeah, that's easy enough if you use some extra frames? Want to make a monster that launches projectiles in a constant five-shot spread? Er. Want to make the SSG capable of firing each barrel individually, and only reload after you fire both? Um.

See, those are actually pretty basic things, but they're either outright impossible or incredibly obtuse and resource-draining to do. And I don't really see why you should have to put yourself through actually using all those resources and finding all the obscure quirks of Dehacked just because you want to add a touch of uniqueness to your project.

I don't have any issue with adding purely Dehacked-based tricks and stuff to your projects, mind, but it seems absurd that people should feel compelled to use it even if they're unfamiliar with it and its limitations and its what should be limitations but if you really, really know what you're doing you can do some pretty specific stuff. Frankly, the points you raise don't seem like an issue with using advanced ports, but the community's opinion on said ports.

Hell, it's gotten to the point where Terminus has managed not one but three whole community speedmapping sessions just to get some levels out that use ACS and other ZDoom features. Sure, those levels can't add custom weapons or monster themselves so that ZDoom gameplay mods can actually have some ZDoom maps to be played on, but everything else is fair game.

There really shouldn't be people saying to not use advanced ports or advising people to use advanced ports when someone wants to do something that others just don't have the infrastructure to do. The path with the least hoops to jump through should always be the standard answer, and in cases like this it's definitely ZDoom, given it's actually got the ability to make regeneration powerups built right into the engine, you don't have to use ACS or anything.

Share this post


Link to post

Okay, so you want this stuff to work both in weird Dehacked and funky Decorate way? Here is how-to:
Add a new item in Decorate based on PowerRegeneration, which will replace the item you've created in Dehacked in #3 of my previous how-to. Add some funky effects and there you go! Decorate actor will replace Dehacked in Zdoom-based ports and everybody will be happy

If you want to go the Boom way, it gets advanced - as we still have those linedefs surrounding the actor, we should nullify them in ZDoom. How? Easy - XLAT. Replace your linedef action with ACS script which will run the action only in case if it isn't tagged with the number your linedefs have.

In my recent wad I've managed to get continuous day/night cycle work in all MBF-based ports, including (G)ZDoom. The player just don't notice the fact that in case of ZDoom all voodoo doll stuff is replaced by ACS scripts.

Share this post


Link to post
cybermind said:

Okay, so you want this stuff to work both

I'm not sure how you garnered that at all. I'm saying that if the guy wants to add advanced stuff ill-fitting for the base engine, he should use a port that actually allows him to do said stuff by design rather than struggling around solution that won't even be fully satisfactory - and there shouldn't be any shame in it, either.

cybermind said:

In my recent wad I've managed to get continuous day/night cycle work in all MBF-based ports, including (G)ZDoom. The player just don't notice the fact that in case of ZDoom all voodoo doll stuff is replaced by ACS scripts.

That's quite impressive, albeit I have to point out that this is something suited to voodoo doll scripting. It's some continuous effect that utilizes line triggers to constantly alter the map it's built into that's not supposed to be dynamically altered. In the case of a powerup, though, it's an effect that lasts a certain amount of time specifically on the player that picks it up, and respawns in certain circumstances. The voodoo conveyor can do some of this - although it won't actually cause pickup-based effects, like the sound, screen fade, or messages - but only to player 1, and it would require far more set up to try and make it so that it works when the powerup respawns, if that's even possible. Not to mention, you'd had to build and set up the conveyor every time you add another one of those powerups into a map.

Meanwhile, in ZDoom, you can either just define a PowerupGiver that gives PowerRegeneration ( or a custom actor that inherits from PowerRegeneration, to alter its properties ) and plop it down, or create a CustomInventory that executes a global ACS script if you want to have more control over it than the normal coding already allows. Neither is terribly complicated, and both handle both multiple players and item respawning by default. And while if you don't make the ACS script global you'll have to compile it into the ACS of every level you make ... you can avoid that by making it global, because there's really no reason why you'd do otherwise unless you actually want to make it so that the powerup has somewhat different effects depending on the level.

I mean, granted, it'd also incredibly more straightforward to do what you did in that with UDMF, thanks to the fact that recent versions of ZDoom allow support for multiple sector tags in a single sector. But in the very least, consistency between levels and other in-game items isn't an issue that comes up with it, and MBF does give you the tools to actually do stuff like that in a mostly elegant manner.

Share this post


Link to post

This is way off-topic and I actually think for the OP's sake, zDoom and ACS would be the way to go.

Spoiler

It's stupid because (and forgive the slight Biblical reference here, replace those words with whatever you wish and the saying still holds true) "the road to Hell [bad place; not where you want to be; ruin] is laden with people who tried to take the easy way out." Sometimes the path of least resistance in the short term leads to more resistance down the line. Forest for the trees.

So you will severely limit your target audience later just for a bit of convenience now. Given that most newcomers want feedback more than anything; I'd say that's shooting yourself in the foot.

If it can be done in a lesser source port, it should be. It's not a community conspiracy or a problem with the communities' opinions on said ports; it's the simplicity of using what is necessary. It's a very similar reason why people will bitch, or at least comment, when a mapper attaches an mp3 file to their "awesome new first map," even if the mp3 file isn't under any copyright. Having said this, one effect/whatever or even a couple minor ones should never constitute advancing the source port and limiting one's audience further. If tons of advanced features are available, at least use a few that are necessary and always use the ones available when they should logically be used. But this is extra pressure, of course, on the mapper, and more reason why zDoom maps should be made by people who know what they are doing rather than people who want a "mostly standard Doom experience." Maybe I'm alone on this, but I'd take it a step further to say that every zDoom or better map set should at least have 3D floors and slopes, just like every GzDoom map should have dynamic lighting.

While I'd agree with you on more than a few of those points, (except since when has replacing sprites/frames been a Dehacked "trick?" I was under the impression that was merely a common function of it) there is a visible trend of (G)zDoom being used by new mappers because it is the path of least resistance and we often create our own Hell, which for a new mapper could be a severe lack of feedback from the community. Using (G)zDoom has become almost a thing for: 1) mods, 2) really brave, talented individuals that have the skill and time to make things that blow away any Boom map set (and it's sad that I've played newer Limit-Removing map sets that felt more like zDoom than the vast majority of newer, specifically zDoom map sets), and 3) new maps from totally new people that don't know much of anything about "ports," "formats," or "modern design standards."

I don't have any issue with adding purely Dehacked-based tricks and stuff to your projects, mind, but it seems absurd that people should feel compelled to use it even if they're unfamiliar with it and its limitations and its what should be limitations but if you really, really know what you're doing you can do some pretty specific stuff. Frankly, the points you raise don't seem like an issue with using advanced ports, but the community's opinion on said ports.


This is all well-and-good, and I don't think anyone dislikes said ports, but there is a general standard in the community for maps of each varying format. Pragmatics vs idealism. "In a perfect world..." and all that, don't get me wrong, but we live in a flawed shithole of a Hell which we have created for ourselves and sometimes everyone needs a reality check. There have been at least a couple awesome (G)zDoom map sets here on DW that I've seen get a disappointing amount of feedback. Perhaps instead of trying to combat the community's opinion on a standard, push for more advanced features in less-advanced ports; less people to convince, too, heh. PrBoom+ just got freelook with 2.1.4, among other things. Maybe not every feature can make it into our example PrBoom+ here, but the funny thing is: what else could these mechanics designed for Boom be intended for, but complex mechanisms that work on top of one another to achieve effects never possible in vanilla.

This is also a community of people clinging to an old game, many of which prefer to play it closer to how it was meant to be played (in addition to demo-recorders/watchers). ZDoom changed the mechanics on many things and not everybody is going to just want to play in zDoom or better, so at that point it becomes a question of "well, why do I need to play this on zDoom?" If the answer is "because the author wanted to cut a corner," then that's going to turn more than a few people off. Pride in one's work is important and shows in our actions.

While I'd say that overall I have enjoyed the DUMP series (though I still have yet to play the newest one), its existence and general attitude is just evidence of the community's general opinion on zDoom map sets. Note that the main goal of those projects was "speedmap; get it done; stop talking; map already" and the word "quality" was typed only one time in DUMP 3's OP, 1 time in DUMP 2's OP, and 0 times in DUMP 1's OP. Not to make a slight against the project; it's a good great project; but I think Terminus knew what he was doing when he typed that up.

Then again, you're talking to someone here who loves to try to make advanced mechanics work in less-advanced ports. Someone who spent at least an hour of their life making a little, stupid, insignificant worm for Boom format, just because it wasn't kosher. Anyone could have built a PolyObj worm in zDoom, but building one to work in Boom was fairly unique(ly stupid).


Personally, I'd love to see more zDoom map sets, but unfortunately Ed can only crank them out so fast.

Share this post


Link to post
Fonze said:

I actually think for the OP's sake

na it's ok, I enjoy reading this.
I wish to learn both, I'm going for the older first because It'lll help me understand the doom engine better and I do agree, if it can be done it should be done in the closest to vanilla source port. I wish to learn zdoom and gzdoom mapping as well. I'll get there in due time. For now I'm planning out a Boom compatible megawad, using All the Iwad textures. And I might slip my ss zombie in there with dehacked, I'v not decided yet.

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
×