Garry's Mod

Garry's Mod

Zombie/NPC Invasion+
A plea for more convars/options and fixes
This addon is quite fun on the right maps, but unfortunately comes with a few problems to boot though. This is a comprehensive list of things the addon desperately needs fixed/added in my opinion from using it since before this superior + version was made.

COLLISIONS(Addition)
One issue is that multiple npcs will often try to navigate to the player in the exact same route (such as on bigcity) resulting in them getting stuck behind whoever is the slowest npc. Could we please have an option for all npcs to have collisions disabled with each other to avoid this? It's quite a bummer when you have a bunch of fast npcs all grinding to a screeching halt because a much slower npc is in front of them, and can seriously jam up the pace of an npc invasion rush.

CHASE PLAYERS(Fix)
Chase Players as an option is sort of broken. If you check it off it just makes the npcs walk to where the player was upon that npc spawning, and they will completely ignore the player and all other entities of interest until they reach that destination. You can walk right by them or even stand in front of them, they just go around you to get to that location. I have discovered, however, that if you enable chase players temporarily for about 7 seconds, then turn it back off, it updates their knowledge of your whereabouts without overriding their natural behaviors, and they come to you immediately as though they have discovered your location and are aggro'd to you like normal. They will change directions based on where you go, they follow as they should, etc etc. Can you please touch up Chase Players so that it functions like an all-encompassing aggro at all times? This is a pretty mandatory option for things like zombie survival usage of the addon. It's pretty lame when the horde walks right by, even ignoring being attacked or killed by you simply because they are on their way towards where you were 40 seconds ago.

SPEED MODIFIER(Addition)
Regarding modifiers, can we PLEASE get a speed modifier feature? We have a damage modifier, we have a size modifier, can we please get a speed modifier? The closest thing to a speed buff is simply the usage of the model scaler, which makes them move faster due to being larger, however it does not speed up any of their animations, such as attacks. Is it plausible to add a speed modifier that encompasses all of the actions the npc can do? This would allow for things like melee-oriented npcs to be able to immediately attack you upon being close enough without the chance of the player avoiding damage 100% of the time simply by running in the opposite direction?

STUCK EDITOR MEMORY(Fix)
It also seems the addon can glitch quite easily and not actually update the spawn editor information. I've had plenty of instances where I add a new npc to a spawn editor, or change profiles all together, and it still will only spawn what I had previously inputted when ZINV was turned on. It required a full-blown map change in order to finally obey the most recent variables in the spawn editor. Can you please check that so it updates the moment the spawn editor is closed or something at least?

NPC BEHAVIOR(Addition)
Not sure if it's possible, but is there any way we could get spawned npc behavior we can specify? For instance, can we have npcs to patrol in a small area of where they spawned? Can we have npcs roam, and select random areas of the map to move towards at random times to increase the chances of locating a player in a large map? I know that some VJ Base npcs already have a built-in wander feature, but it's garbage, and the npcs only move a few feet in a random direction every so often, resulting in them making no actual progress towards a destination, and more acting as a pointless 'active-appearing' gimmick with no value to it.
Can we get npcs that only turn aggressive if attacked, allowing other npcs to follow suit, much like a hive mind? Perhaps just achieve this by utilizing the ignore player feature, but then immediately shutting it off and turning Chase Players (in a fixed state) on upon any of the spawned npcs taking damage? Can we get npcs that are afraid of the player and run away upon noticing them? (Or running away at all times if Chase Players is toggled on, resulting in a game of hide-and-seek?) Npc behavior based on relationship to player as well as navigation decisions would be fantastic, as I'm pretty sure those are the two things this addon can in fact change, even with vj base npcs, which I know for a fact cannot accept squad changes, preventing some vj base npcs from reacting when their friends have an interaction elsewhere in the map, even though a squad feature is meant to allow exactly this.

NPC DROPS(Addition)
I noticed the exploding npcs option, and was wondering if we could also get an elaboration on that? Could we have npcs that do other things upon dying? Can we have them drop/spawn a specified entity, or multiple specified entities, such as a health kit or ammo or armor or any entity name the player chooses? Giving this utility to the player could also allow for really interesting combinations, such as an npc spawning several other npcs upon dying, allowing us to get more creative. And speaking of spawnable entities...

NON-NPC SPAWNING SUPPORT(Addition)
Lastly, can we please get non-npc spawning support? Replicator melon, for example, is a hoot of an addon that allows you to spawn melons which turn whatever they touch into another replicator melon, and will actively move towards a potential target, be it prop, npc, or player. When they get into large enough numbers, they move much faster, and in dedicated swarms, easily taking flight in bigger numbers. You have no idea how disappointed I was to realize I couldn't simply cheat the functionality of the addon by forcing it to try and spawn entities other than an npc. It just raises an error in console complaining about a lack of "npc_info" and refuses to spawn it. Could we please get a feature or box-check or just the removal of the spawn-denial functionality for entities that don't qualify as npcs? It would sure make things like my example way more fun, where you are moving through a large map like bigcity, and actively being hunted by instant-death replicator melon swarms that could be literally anywhere for all you know.

This is one of the more malleable and fun addons, especially for people who still choose to mess around in singleplayer garry's mod. Please consider coming back to this and giving it lots of love and attention. It definitely deserves it.
Last edited by sharktemplar; 6 Dec, 2017 @ 7:43am
< >
Showing 1-2 of 2 comments
moomoohk  [developer] 21 Dec, 2017 @ 4:49pm 
Hi. Please make a list of convars/console commands you'd like to see. I'm considering working on your "chase players" and "speed modifier" suggestions
sharktemplar 21 Dec, 2017 @ 6:09pm 
Originally posted by moomoohk:
Hi. Please make a list of convars/console commands you'd like to see. I'm considering working on your "chase players" and "speed modifier" suggestions
Sure, if that will help.

zinv_npc_nocollide 0/1/2 - Disables collisions of spawned npcs/entities. 0 = off. 1 = no collision with other npcs/entities spawned with ZINV. 2 = no collisions with anything, player included.

zinv_wander 0/1 - Spawned npcs will wander to random locations continually once spawned, selecting new random locations to wander to after reaching each destination.

zinv_wander_radius_min <value> - If zinv_wander is 1, then spawned npcs will wander to random locations no closer than this distance.

zinv_wander_radius_max <value> - If zinv_wander is 1, then spawned npcs will wander to random locations no further away than this distance.

zinv_afraid 0/1 - Spawned npcs will be afraid of players, and actively run away if they spot a player. This convar is overwritten by zinv_passive and zinv_neutral.

zinv_passive 0/1 - Spawned npcs will be passive, and will not attack anything, even if they are attacked. This convar overwrites the functionality of zinv_afraid, and is overwritten by zinv_neutral.

zinv_neutral 0/1 - Spawned npcs will be initially passive, and will only attack if individually attacked first. This convar overwrites functionality of zinv_passive and zinv_afraid.

zinv_hivemind 0/1 - All npcs spawned with ZINV will react the same if even one npc spawned with ZINV is engaged.
Using this convar with zinv_afraid 1 results in all npcs trying to flee if one is alerted to a player.
Using this convar with zinv_neutral 1 results in all npcs engaging the player or another npc if one is attacked, assuming spawned npcs do not already sport this all-encompassing squad functionality by default.

zinv_death_drop <input> - Npcs spawned with ZINV will spawn the specified entity name on the ground upon their death. Turn sv_cheats to 1 and type impulse 106 while pointing at an entity to see its entity name.


Also as a final note, I thought of a new addition that I feel might be simple enough to pull off.

DELAYED SPAWN ROSTER INCLUSION/EXCLUSION(Addition)
The Heroes tab is an interesting idea with ZINV, however to my knowledge all it really does differently is make sure that whatever is spawned from the heroes list will only spawn with one of that npc present at a time. In my opinion, this could be done in not just a more straightforward fashion, but also needs a bit more functionality to allow players to decide the number of Hero npcs they want at a single time, as well as whether or not they can spawn multiple times, or only once.
The concept of being able to add bosses to ZINV has a lot more potential than what is available. I propose to scrap the Heroes tab, and in place of it, add a feature that allows you to introduce a specified delay from when zinv is enabled that will allow a spawn roster entry to be active only after zinv has been enabled for long enough. This would allow players to ramp up the difficulty of ZINV without having to disengage from combat/activity and actively change which profile they are using. It would give people a means to deliberately create tougher npcs, with more health, and with a 5% size increase and speed increase and damage increase, but these npcs will only begin spawning from the roster if zinv has been enabled for at least X amount of seconds.
OR
in much the same fashion, allow spawn entries to become disabled after zinv has been enabled for X amount of seconds.
This can essentially give people a way to craft their own 'waves' of enemies to see how long they can survive. Customized lesser enemies for the first 3 minutes, and are then disabled from the spawn roster. Customized stronger enemies are now enabled for spawning for the next 7 minutes. Then customized elite enemies are now enabled for spawning for the next 10 minutes. Then boss npcs are now able to spawn after 15 minutes. Etc etc. Combine this with a universal option to specify how many of a specific entry is able to be spawned at one time, as well as if a specific entry can only be spawned once, twice, 7 times, infinite, etc, and you suddenly have full capability to craft an enormous array of different experiences with ZINV.
You can have distinct waves of specific types of enemies, starting with easy-to-kill mobs of headcrabs, and eventually unlocking spawning for poison zombies that do 500% damage, are 300% larger, and move 400% faster as customized bosses, or you can simply gradually enable more and more types of enemies, diversifying what is spawned more and more the longer zinv stays enabled.
You could even expand on this further and allow certain sounds to be played to all players on the server or have text of the player's specification displayed on the screen when certain spawn entries are disabled/enabled. This can signify if a difficulty is ramping up, or if a new wave is imbound.
You could also add a new convar along side this addition that would actively change the spawn distances automatically without the player having to change them themselves. Something like:

zinv_spawndist_max_timer <value1> <value2> - What the maximum spawn distance for npcs will change from and to respectively over the duration of zinv_spawndist_timer once zinv is enabled.
zinv_spawndist_min_timer <value1> <value2> - What the minimum spawn distance for npcs will change from and to respectively over the duration of zinv_spawndist_timer once zinv is enabled.
zinv_spawndist_timer <value> - How long it takes maximum and minimum spawn distances to change from their first value to their second value after zinv has been enabled.

This would result in npcs being able to spawn closer and closer and closer to the player's location, quickly ramping up how many npcs the player is dealing with at one time based on how long zinv has been enabled.
OR
You could make it so that each entry has the possibility of having custom spawn distances, so certain npcs spawn closer or further away than all the others.

Obviously all of that would be a lot more effort though, were you to want to go all out, but still, a simple delay feature that disables/enables certain entries from spawning would be a nice means to automate a difficulty incline.

Hopefully some of these can interest you enough to try and incorporate.
Last edited by sharktemplar; 24 Dec, 2017 @ 9:36pm
< >
Showing 1-2 of 2 comments
Per page: 1530 50