Clone Enemies v2

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Clone Enemies v2

Post by fcas3t »

Clone Enemies (CE) is a mod for increasing the amount of enemies. It works on any Doom map, for any difficulty.

CE is a fork of the 10.5x mod. The difference is CE adds 4 sliders to the main Options menu, whereas 10.5x adds just one slider. This means 10.5x spawns the same number of clones for every enemy. I like spawning clones to spice things up, but the across-the-board cloning became too rigid (and downright ridiculous for maps with the toughest enemies). That's why I made CE.

The first 3 sliders of CE control the number of clones to spawn for the 3 weakest vanilla Doom enemies: Zombiemen, Shotgun guys, and Imp demons. You can clone each Zombieman up to 19 times, but the more formidible Shotgunners and Imps up to 9 times each.

The bottom slider is for All Other enemy types. All means All, so this includes Cyberdemons, Archviles, etc. It also includes any special enemies added by mods. Up to 4 clones are allowed here.

CE does the cloning immediately after a map is loaded. It also disperses the clones a bit, as explained here.

The main change for version 2 was adding a hidden CVar (meaning you can only change it in the console) called clones_chance. This is the percent chance that each clone will actually be spawned. The default value of clones_chance is 100, meaning 100% of them will spawn. The cool thing about reducing clones_chance is that it makes cloning less predictable. So, for example, you can use the All Other slider and a small chance, like 5 or 10, to potentially have a few difficult clones to deal with. It's nice to have another way to spice things up.

(If you use an enemy mod, see the next post.)
You do not have the required permissions to view the files attached to this post.
Last edited by fcas3t on Thu Oct 14, 2021 6:46 pm, edited 4 times in total.
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Clone Enemies

Post by fcas3t »

CE needs to detect specific classes for the 3 enemy types, but I only accounted for the vanilla and EVP versions. (EVP is what I play with.)

This means that other modded versions of these enemies would have to be added to the code. But this is something I won't do.

So here's how you can add modded enemy types to CE.

Starting on line 33 of the zscript.zc file, you'll see:

Code: Select all

            string cName = original.GetClassName();

            // NOTE: uncomment this Printf to display the ClassNames for your enemy mod
            //Console.Printf( "%s", cName );

            int numCopies = zce_allothers;

            if ( cName == "Zombieman"  ||
                 cName == "EVPZombieman"  ||
                 cName == "EVP_Zombieman" ||
                 cName == "ShotgunCat" )
            {
                numCopies = zce_zombieman;
            }
What you first need to do is uncomment line 36, as noted. (If you're unfamiliar with coding, simply delete the two slashes // at the start of the line. Later, when you're done making changes, you'll want to restore them.)

Then run GZDoom with your enemy mod and CE. Load any map (I recommend the first map of Doom1 on Ultra-violence because it has all 3 enemies) and you'll see a bunch of console messages. There's one message for each enemy spawned on the map (not including clones). Whatever the modified names for the Zombieman, ShotgunGuy, and DoomImp are, those are what you'll need to add to the if-else if-else if block of code.

As you can see in the code, the vanilla and EVP names are already there, so if that's what you want to clone, you don't need any changes. (But note that EVP has changed its class names at least once, which is why the current underscore version was added; I kept the older ones too. "ShotgunCat" is the basic enemy of the Wool Ball TC; they're fun to clone with the Zombieman slider.)

Be careful when modifying the code. If you're not that comfortable editing it, and you don't use EVP, I recommend just replacing the EVP names with whatever your enemy mod calls them. That's the lowest risk way to change it.
Last edited by fcas3t on Thu Oct 14, 2021 7:17 pm, edited 2 times in total.
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Clone Enemies

Post by fcas3t »

I recently started playing with the Doom Slayer difficulty on EVP, which replaces regular Zombiemen with DS Shotgunners and Imps with a special DS type. So there are new class names needed if you want to clone DS shotgunners and Imps:

"EVPDSShotgunner" and "EVPDSImp"
(it's "DS" added to the regular names)

Doubling the Imps definitely increases the DS challenge :twisted:
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Clone Enemies v2

Post by fcas3t »

I just released version 2 of this mod, which is attached in the first post. (It replaces the original file, which had been downloaded 180 times.)

As explained in the first post, the main change is adding the clones_chance CVar. The other change is increasing the All Other slider to a maximum of 4 clones, instead of 2. (I never actually used that slider for my own gameplay until my recent addition of clones_chance.)

Return to “Gameplay Mods”