Micromanaging npc inventory

I’d like to see some changes to NPCs. Been watching Vormithrax videos and the first thing he seems to do, in every game, is completely strip down the NPC he spawns next to. Seems cheap AF to me. I recognize this is an issue I have with his playstyle, but it’s also an issue with the way NPCs function.

Currently, all it takes is accepting a quest and passing a single check before you can strip them of items and equipment.

I’d like to see this be more of a system, so that each item you remove makes it less likely that you can remove another item, stacking with itself.

IE: Make it like trade in most games. You can take some innocuous stuff, but not everything, and they expect you to balance what you take with what you give.

I like that idea, seems pretty nice to me!

There are legitimate reasons I might strip down a PC and replace his gear with stuff worth significantly less:

  • no, you can’t keep that unsilenced Glock 22 pistol, you’re going to get us killed
  • no, you can’t keep your first aid kits, I don’t trust your little pea brain to correctly evaluate when to use them
  • no, you can’t keep this fire ax, you’re ST 6 and will be a liability with that
  • no, I’m taking your fire gauntlets and replacing them with a pair of leather gloves, you’ve got a pistol crossbow and pistols 2 and I’d like you to hit the stuff you shoot at sometimes

even with the most respect for the NPC that the game really allows, there are plenty of instances when I’m going to make very unequal trades with the NPC. Over the course of the game, it’s going to balance out - because NPCs don’t craft survivor armor or pimped out pneumatic guns, and the PC eventually will - but it’s reasonable in the short term for an early game PC to take all of an NPC’s stuff and give them back not very much.

Each of your scenarios should be handled by making NPCs smart enough to either voluntarily exchange the items in question because they understand they aren’t ideal, or by making the NPCs responsible enough to handle them without causing problems. Papering over this kind of thing by requiring players to micromanage NPC gear leads to the problem never being addressed.

2 Likes

Huh, expanding on your thought, it would be cool if there was a way to designate a locker as an NPC equipment locker, and NPCs would occasionally check it for superior weapons/armor than what they are currently wearing.

Perhaps a locker directly adjacent to a Bulletin Board? Or something similar to the way you can tell NPCs to guard a base when they’re near a bulletin board, you could also show them their equipment locker, allowing you to assign each NPC their own lockers?

1 Like

It would be great if the NPCs were smarter. In the absence of that, I do have to micromanage them. Adding roadblocks to micromanagement of NPCs at this point just makes them even less useful, which means more players are just going to kill rather than deal with the hassle.

3 Likes

I see this as an issue for two reasons. The first is ease of use from a player perspective and the second is for realism/roleplay.

My issue was with the realism/roleplay aspect of it. I watch a lot of youtube Cata and they all seem to abuse this system. It made me crinkle my brow and think, vaguely, that they were cheating. That upset me and I thought I’d see what other people thought.

As for the system side of things, I get what you’re saying. If we make it more difficult to manage equipment and such then we make the game less enjoyable/more likely to die due to technical issues with npcs/etc.

I do think that it needs balancing in some capacity. I think, if you spawn next to a guy with grenades then that should be a difficult situation to handle. I don’t think it should be completely resolved because you told him you’d find a file in a hospital for him and then disarmed him completely.

It feels ‘gamey’ to me, and as a role-play (ish) kind of guy I don’t like it. I understand why it’s there, I just think it needs refined.

EDIT: Although as I think about it, is it really fair for me to complain? I can choose not to abuse the system and if other people like stripping NPCs down to nothing then who am I to tell them not to.

–Going along with the idea of NPC intelligence, I really wish that your NPC buddy wouldn’t think it was a good idea to fight a massive horde of zombies. They should have some way of checking their skills, gear, and injuries to decide whether it is truly a good idea to fight that zombie hulk nearby. It should also re-check for injuries in the middle of a fight, so that if they get too wounded they’ll skedaddle.
–They should also be smart enough to realize that sometimes you simply cant run away. As such, you might as well go down fighting. This will make it so that if they end up getting surrounded they don’t try to just constantly run away even though it is literally impossible.
–It might also be a good idea to change some of the ‘fighting’ commands to compensate for this AI change. You could keep the ones that already exist, but there should be other options now to. Here are some ideas for those:
–Always run away
–Never run away
–Run away if too dangerous
–Avoid combat/Never fight
–Fight only weak enemies
–Run away when injured
–Don’t run when injured
A bunch of things like that. You’d probably want to add some more categorization stuff depending on just how many different command options you want.

2 Likes

I added the micromanage functionality because the NPCs were in a sorry state where they were dumb AND refused player’s help.
It didn’t lead to problem not being addressed. It lead to problem being more visible because players actually bother with NPCs instead of treating them as pure obstacles and food sources.

There is some NPC item selection functionality, but it’s currently poor and gets outdated quickly. Especially armor selection, which can’t be done well - percentage coverage + part coverage mean that it’s very improbable that anyone will ever design a non-bad automatic armor selection functionality.

1 Like

So in summary, people now play with NPCs and have a bad experience because it only works if they micromanage inventory, and the underlying behavior is still broken.

Honestly, I’d really like a couple of simpler commands:
“Fight in place if you’re next to a door or window, and advance to contact zombies otherwise.”
“Smash corpses and pick up stuff IF you can do so without moving closer to active zombies - no, stop running up to pick up a crossbolt there’s a freaking hulk over there.”

Oh, plus one for labs now that I’m running through labs a lot:
“Do not go through ANY door that I have not moved through, there’s an active turret there and it will shoot you again.”

I’ve been told the AI code is such a mess that even these are hard to implement, and having looked briefly at the code, I can believe it.

2 Likes

–I haven’t looked at the code yet since I’m new and NPCs would inevitably be more confusing and complex than the rest. Plus, I also heard rumors that the AI code is messy and such.
–Something I thought of is an ‘advanced’ option. Bascially, you get a few simple options, but if you press the ‘advanced’ button, you get significantly more action choices. This should help reduce clutter at least a little and help with those unfamiliar to all the different commands inside.
–I also like the idea of the player ‘creating’ his/her own fighting commands with ‘if’ ‘else’ ‘and’ statements and stuff like that. Of course this would be much more complex and harder to implement, but it could be very useful in certain situations. Here is are some examplse of what you might be able to do with the ‘advanced’ window


If: hostile nearby:
run away
else:
follow player


while: no hostile nearby:
pulp corpse


if: hostile nearby AND NPC not hurt:
attack hostile IF lower danger
elif: hostile nearby AND NPC below 50% hp:
keep distance
else:
attack hostile


if: Player yells: “Code Red!”:
run away


if: Player yells: “Omega”:
if: hostile nearby
attack hostile IF lower danger
else:
run away IF npc at low hp


If: Sees: “Hel staff”:
give “Hel staff” to player


if: npc health below “%”:
use “first aid kit”


Inside “” are names of items and creatures. These commands can be saved and loaded to each individual NPC, and across worlds too. It also gives more use to when you choose the option to ‘yell something’ ingame. If the NPC thinks it’s a good idea to fight something despite your other commands, ‘yell’ commands are effectively overrides you can do. Probably not case sensative

Tedious NPCs are par for the course when it comes to bullshit and brokeness - comparable to armor damage, knife spear nerf, breakfast crafting. And like breakfast but unlike armor and spear, there is no easy fix for this.

The problems with commands like yours are that they are very specific. Without a ton of special cases, you’d get weird things like NPC charging zeds then stopping because it got adjacent to a window. Maybe except that “don’t pick stuff up when you see any danger” one - this sounds doable.

When it comes to NPC code being a mess, the biggest problem is that they are inherently incapable of remembering anything of note. As soon as they don’t see something, it no longer exists.
Second biggest problem is that they have this weird decision/action split - first they decide to do something, then they attempt to do only that. No way to handle failures, other than making sure they won’t happen (this involves duplicating checks). And you can’t fail and then remember not to do that (because of the first problem).

It a hassle to organize everything in the ncp inventory when probably all of it is just filthy clothing which is the first thing they pick up and them charging hulks plus feeding them is already a hassle by repeating the same action maybe just a simple action like maybe a feed ncp below use item on which is only use for medical stuff I think

Dumb NPCs is a problem you see pretty much in every game with NPCs. The more actions they can take, and in a sandbox game like cata, that number is truly staggering, the dumber they seem.

Can and should this be mitigated as much as possible? YES.
But can we realistically expect there ever to be a solution good enough that it won’t require player micromanagement? I don’t think so.

So I’m not terribly bothered by the ability to freely choose what the NPCs carry and wear being mildly open to abuse.


Inventory management doesn’t sound like something that can get much better at, with deciding their weapons, they cannot predict where the player will go nor what foes there will be there, nor how much ammo the player has stashed away for their guns or expects to find soon.
With armor, it just has too many parameters for an automated system to decide beyond choices superior in all parameters, and once again it cannot know where the player intends to go, nor how do they plan to deal with the dangers there.

Let’s see, what else…

  • They really could do with a better way of letting the player know about their injuries and needs. Maybe a quick status of those following you could be added to the @ menu? Maybe a modification of the 'e’at menu so you can share a meal with all followers that are hungry/thirsty?
  • Once the future inventory system comes in, it might be possible to take advantage of it to better handle NPCs:
    • flagging a container as ‘don’t touch things here’ would finally allow the use of NPC to move cargo without fear of them breaking out the good stuff for any rando enemy.
    • ‘put unsorted loot here’ would make it easier to check what they’ve picked up.
    • ‘look here first when looking to fulfill your needs’ would prioritize what you’ve given them over loot, so they don’t consume them before the player has the chance to check them and decide on that matter.
    • ‘don’t use the items in this container unless I give you a specific command to do so’ would allow for them to carry emergency weapons and items without fear of them wasting them on mooks.

Shooters can’t even get NPCs to duck under the right side of the chest-height walls, even when they are pretty much a railroad where all encounters are pre-planned, so I don’t really expect NPCs to ever intelligently use terrain.

They could, however, do so with player input. move here, stand there, target this enemy, and of course, ‘cancel all orders and follow me’ could become part of the chat and look menus.
The last command is rather important, since it’s often the ‘what are you doing, stupid!? Stop that and come here’ command for when the NPC decides on a truly idiotic idea.

1 Like

In my old topic from aug '16 I suggested that it would be nice to have a special menu for giving simple commands(separately) to our NPC followers just like in the first Ghost Recon. It goes like this:

  1. “Stop”

  2. “Follow me”

  3. “Hold fire/fire at will”

  4. “Move there and wait” (pointing given tile with mouse)

  5. “Cover me” (they don’t move-only shoot)

  6. “Throw grenade over there” (the same as “move there”)

NPCs may be devided into Alpha, Bravo, Charlie etc depending on how many NPCs are with the player. NPC’ AI in Ghost Recon isn’t better than in Cata… NPCs are still dumb but we can avoid chaos due to command system. I don’t know if it is possible to create this kind of system but it would be great. Maybe debug system is the clue. If we can use debug to teleport our character, maybe it is possible to “force” a given NPC to go to a specific tile.

2 Likes

I think it’s worth noting that the player-made base content coming in is going to make large scale NPC operations spectacularly easier, since you won’t be controlling them directly. As far as armor and equipment goes I think it would probably be okay to make early follower npcs only use what they have, replacing it if the player gives them something obviously better (e.g higher or equal coverage AND higher armor rating).

It might even be worth giving NPCs the ability to passively accumulate food/ammunition based on the areas they move through. I.E when an NPC, follower or otherwise, moves through a location the npc gets some supplies added to their inventory based on the location (food from grocery stores, ammo from gun stores, etc). That way NPCs wandering the map passively get stronger, and your follower NPCs get their needs handled as they move through areas with you. Basically completely remove player management of NPC’s inventories, with possible exceptions for players asking their followers for medical supplies and such.

Once you get to the point where you have a proper base established and can make orders through the bulletin board, have all NPC’s gear based on the material, scavenging, and skill level of your base. If your base has a low equipment level everyone has tshirts and jeans, uses baseball bats and bows for weapons. Mid-level you get leather armor, spears and pistols. End-level all your NPCs have survivor armor, broadswords and military grade rifles.

The problem with that is that there is no right definition of stronger, so their decision of what to equip from their passive looting is always going to annoy the players in some way. What’s good for one skillset is not so for another, what’s good for traveling light and sneaking around is not so for when taking everything not nailed, what’s good for one enemy group is not so for another enemy group.

With guns, it’s worse. This could easily lead to the NPC going ‘ooh shiny’, pick a gun, and waste all the ammo on shit foes rather than the worse weapon you gave them, but which had plentiful and craftable ammo.
Worse yet, what the player thinks as ‘worth breaking out the big guns’ is going to change wildly through the game as the group gets stronger, not to mention those times where you don’t want to break out those big guns and would rather quietly flee and hope they pick a fight with the ant nest a little bit north.

Ditto for consuming food and medical supplies. It’d be annoying if they carelessly chug that one thing you’re trying to scavenge to craft something.

Basically, this isn’t ‘solving’ the problem, what you’re achieving is adding more NPCs to the old equation.

A way to do things would be to make a mass party inventory management screen: create a ‘virtual’ group loot bag that’s made up of a portion of what each party member is carrying, but which they cannot touch without your permission. From there, you can move it to the ‘this is usable guys’ bag, or to the personal inventory of a party member.
If they’re hungry, for example, and they have no food, but the group has food, the party member would move to the guy who has the food and take it from their bag. Or if one party member fills their carrying capacity and there’s no enemies around, the others could offload some of the loot to their own portion of the loot bag, so that party member can continue picking stuff.
A whitelist system may also allow for them to know which items can be automatically moved from the don’t-touch-this bag to the usable one, or into their personal inventory. Make the doctor carry the medical supplies, for example, and from there, make the doctor be the one to administer first aid to the injured party members.
This way as the game progresses, a large chunk of the management becomes automated according to the player’s desires.

This would solve that, but it sacrifices a lot to achieve it.
You can no longer dress your group for the situation, or dress it in some way because it amuses you. You can no longer arm them in a specific way, give different weapons according to different skillsets, offload old equipment to them, etc, etc, etc.

Smarter and more knowledgeable folks have already chimed in regarding the technical/game-play details of this request/suggestion so i will just respond to the ‘cheap AF’ and ‘playstyle’ part of the post.

First, It would be more accurate to say i TRY to strip the NPC i spawn next to. Your statement makes it sound like i automatically get free gear every game through the NPC interaction system. First he has to have something i want/ need (i would guess 50% of the time), then he has to have a quest that allows me to ask him to join (there are a couple that don’t), then i have to pass the recruitment check (on average about 30-50% chance). If all of these random chances manage to occur then yes i do immediately strip him for reasons i outline below.

With the difficulty settings and scenario’s i generally use on my live-stream challenges, that starting NPC has about a .01% chance of surviving the first 10 minutes anyway, with or without his gear (i’m looking at you Really Bad Day with 3.0 zombie spawns in the middle of a size 16 city). In my games He/She is really just another difficulty option that has a random small chance of paying out useful gear on occasion or being a meat-shield for 5 minutes.

One of the great benefits of CDDA is the fact that each player can tailor the difficulty and content in a truly massive number of ways to suit their preferences, this is just one of those options. I leave static NPC’s on more by habit than intent (sometimes fun/funny/useful stuff happens with them) but IF he has something i want/need and IF i pass the recruitment check then of course i grab it off him. What difference does it make if i do it before or after his guaranteed death (that i TOTALLY did not cause by ACCIDENTALLY luring zombies into him)?

I personally don’t find the current implementation of NPC’s to be worth the time/effort/key-presses to keep them alive. Riding constant vigilant herd on insane, amnesiac, suicidal cats is not my idea of fun times so i tend to ignore them, especially on my live-stream challenge runs where i try to keep things moving for the audience. There is already enough ‘downtime’ (inventory sorting, base building, crafting, etc) and having to constantly go 3-4 menu’s deep into the NPC interaction menu’s to adjust their settings adds a huge amount of key-presses and ‘downtime’ to an already ponderous interface. In addition, the NPC’s do not scale well with the difficulty settings i tend to use. As i increase my difficulty options (directly or through tougher start scenario’s or ‘theme’ conditions i set myself) NPC’s become more and more of a liability to the strategies and tactics necessary to stay alive (things like fast movement, intelligent use of terrain/line-of-sight/obstacles, kiting, etc).

Again, these are just my own personal preferences, but i wanted to give some insight into my ‘play-style’ choices. I agree that the current implementation is not ideal, i just think putting effort toward other fixes/adjustments/improvement for NPC’s would be more beneficial to the game than trying to curb this one situation with additional rules/restrictions.

1 Like

This isn’t a “tactics” game where you tell every character where to go and what to do, the whole set of actions for the game would have to be very different to support that kind of gameplay, and if you try to play DDA like that, it’s going to be a terrible game.

There is a LOT of room for improvement, but no one has taken it on.

This seems like something it would be reasonable for the player to tell them if it matters, e.g. “we’re going to go fight a bunch of triffids”. Other than that though, it should just be a matter of them equiping the best weapons they’re skilled with, which should be totally doable.

They should either be conservative with their ammo, or if their personality indicates otherwise they should use it up and then fall back to something else. The desire to control this kind of thing is exactly the problem that arises when you are allowed to micromanage NPCs, it’s not actually something the player should be determining.

It really doesn’t, you don’t have to pick the best possible ensemble, just meet some basic criteria that you care about.

That’s fine, you’re so far into the micromanaging mindset that you don’t see that this isn’t something you should be worrying about. Ideally different NPCs are going to have different personalities, to the extent that you don’t want to take some of them with you because they do things like start shooting from too far away, or use loud guns, charge into melee, etc.

The NPC knows their own skillset.
The player should be able to tell the NPCs traveling with thim what their goals are.
The player should be able to tell NPCs what enemies they expect to encounter.

Full stop, this is an exploit, a bug, and we should fix it. Regardless of whether we want to support this kind of micromanagement at all, stripping an NPC for loot after a simple speech check is not something the game should encourage.

1 Like