#Trying to create a mod to stop ALL enemies from respawning ever. Need some experienced help.

12 messages · Page 1 of 1 (latest)

slim plank
#

isnt a respawning ever but is a good starting point

normal crystal
#

You will want to use a tool Vawser made recently which will give every enemy in the game a unique entity id, then you'll want to create a reusable event which you can either put in common.emevd (try to handle all enemies in one emevd file option) or common_func.emevd (initialize the event for every enemy on each individual map, probably the better solution) and initialize for every enemy that doesn't have a similar perma death event already.

#
$Event(9955, Default, function(X0_4, X4_4) {
    if(EventFlag(X0_4)){
        DisableCharacter(X4_4);
        DisableCharacterCollision(X4_4);
        ForceCharacterDeath(X4_4, false);
    }
    WaitFor(CharacterDead(X4_4));
    SetEventFlagID(X0_4);
});
#

You can then initialize this event with a new event slot for every enemy in the game, you can try that all in common.emevd and see how much ~16,000 waitfors effect the system, or you can do it on a per map basis

#

Here's a link to Vawser's mapbuddy:
#tools-and-resources message

#

You'll also want to pick a range of eventflags that are safe to use, you should use this guide for that:
https://docs.google.com/spreadsheets/d/17sE1a1h87BhpiUwKUyJ9ZjKTeehXA4OuLwmQvTfwo_M/edit#gid=1770617590

#

That's the emevd solution I would implement, I'd try to write some script that generated the initializations for me if I were doing it because again, it's around 16,000 enemies

#

Maybe someone else has a better solution though, I basically only use emevd, but a dll injection option might exist too, I generally think that's the much more difficult option though

#

if you're able to get the entityids and the eventflags to increment at an equal rate, you could handle a lot of this in a loop with mattscript, but obviously that won't work for vanilla respawning enemies that already have entityids and don't line up with your new dynamically generated ones (maybe they do, I don't know how Map Buddy works tbh)

normal crystal
#

If map buddy generates entityids inline with From's standard way of handling enemy entityids per map, this would actually be fairly easy to write a script to generate a loop for all your initializations for every map

normal crystal
#

Since From has this convention that enemy entityids are XXXX <- map digits (1500 haligtree prefix) 0XXX <- 0 in the thousands digit designates that this is an enemy entity id