Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
I said it before, but I'll say it again. I really think there should be a neutral AI mode for NPC's. The early game is extremely unbalanced once you figure out you can just kill all friendly NPC's you come across and take their loot and ammo. With neutral NPC's, you would fix this issue by having NPC's attack hostile players, but ignore friendly players.
I am also confused as to why hostile bandit's will switch to raider AI once they spot a player. This makes it so that if you encounter wanderers that are set to hostile, they will switch over to raider mode and from then on know the players exact location until they are dead. So if you drive past 6 different groups when travelling to your base, each of these groups will try to get to your base and kill you, unless something else kills them on their way there. So right now we have two types of NPC's. Either Raiders, or friendlies that will do nothing while you kill them, even if they are armed. I really feel like there should be a middle ground here.
I really wish more people read the actual description so that discussions could be less about issues and more about what causes the issues.
step 1, player attacks a friendly
step 2, friendly becomes hostile towards the player
step 3, how should others react, which side to take? players? or the victim?
you may say neutral, but this is not how it works. If any bandit is hostile, then in the eyes of friendly bandits it becomes hostile too.
Besides there are other technical problems. I cannot change some things about the bandits after the spawn because they will not synchronize for other players.
### This is how I think it works; All hostile and friendly NPCS spawn as a GROUP that belongs to a CLAN. CLANS can contain one or multiple GROUPS. GROUPS can contain one or multiple NPC members. All NPCS that spawn alone still belong to a GROUP that only has one member and a CLAN that can have multiple GROUPS. CLANS are not GROUPS, but a collection of GROUPS that work on the same instructions. This must be true, because otherwise there wouldn’t be a hostility slider in the sandbox setting that allows two GROUPS of the same CLAN to be friendly and hostile towards each other. Hostile GROUPS are hostile to all other GROUPS. Friendly GROUPS are hostile only to hostile GROUPS. Since all NPCS are zombies, I believe zombies are all tagged as one GROUP set to hostile, and all NPC GROUPS are tagged as separate zombie GROUPS. The player does not belong to any GROUP and are thus neither tagged as friendly nor hostile. Friendly GROUPS will use the same waypoint that zombies do when they chase players, to follow them. This waypoint can be assigned to other entities too, like nearby zombies. Wandering hostile GROUPS will have their waypoint default to the player after spotting him. The waypoint will always prioritize the nearest hostile entity, but default to the player location if no hostile entities are nearby. This is called raider mode. ###
If everything above is true, then I have a few ideas that may solve your problem. First, you need to make another bandit CLAN and assign one GROUP for each player in it. CLAN [Player], GROUP [Player ID]. Ideally you would place a player in each of these GROUPS, but it is possible that players can not be placed into zombie GROUPS as they are not tagged as zombies. If you can’t assign a player to a GROUP, then instead you could assign one immortal and invisible zombie to each player GROUP, turn it’s AI off, and then set its current location to the exact coordinate of the player that is tagged by the GROUP. Then write a script so that its position is constantly updated as the player move. Have its hitbox be adjacent to the player. Tag the player group as hostile.
Here is how this would work. Let us say that we have four GROUPS, each under the police CLAN. Each of these GROUPS are tagged as friendly. When a player attacks a member from GROUP 3, have the player zombie be tagged as visible to all members of GROUP 3. GROUP 3 will still be friendly towards the player but will notice a hostile zombie at the same position as the player and will thus attack it. Attacking this zombie will not harm the zombie but instead harm the player. GROUP 1, 2 and 4 will not have the zombie tagged as visible, and will thus not be attacking the player. They will also not be attacking GROUP 3, since GROUP 3 is still tagged as “friendly” and is not technically attacking the player. The zombie would also be tagged as if it were a normal zombie, so if the player runs far enough away, then he will be treated as an out-of-range zombie and thus not followed.
This same system could be used to introduce neutral NPCS and introduce a more dynamic way for NPCS to interact with one another. Neutral NPC GROUPS would be tagged as friendly but have a waypoint that would be set as a vector pointing away from the players origo. This would cause them to run away from the player. If the player got within a certain distance, the waypoint command would cancel and the player zombie would be tagged as visible, causing them to attack. As soon as enough distance is made, the zombie would be tagged as invisible again. This system would also prevent wandering hostiles from defaulting to the raider AI whenever they spot a player, preventing the issues of wandering gangs chasing players across the entire map after spotting them once.
The last issue that should be resolved, which is going to be more complicated, so I saved it for last, is the issue of follower NPCS not defending the player if the player is aggressive towards friendly NPCS. This is because they would not recognize that the player is under attack, since the attackers aren’t labeled as hostile. This could be resolved by making it so that when a friendly NPC do become a follower, they are regrouped into the player GROUP. All entities that have the player zombie tagged as visible will temporarily be assigned their own ghost zombies, belonging to a separate hostile GROUP called [ATTACK] or similar. These zombies would normally stay outside the map but would in ascending order be positioned at the exact coordinates as the friendly entities that can see the player zombie for as long as it is tagged as visible for them. Zombies belonging to the [ATTACK] GROUP will always be set to visible for all entities in the player GROUP. This method would also force you to assign ghost zombies to all members of the player GROUP as well, if you want hostile friendlies to have a chance of fighting back.
There are numerous ways this system could be useful to make NPCS behave in more natural and realistic ways, like making NPC followers protect you from other players, but I’ll leave it to this for now. The first part should be relatively simple to implement, while the last part would be a bit more complicated but still doable. Again, this idea is based on how I assume your system currently work based on what you have written in the description and guide section of your mod page. There may of course be many more factors that I’m not aware of, or I may have misinterpreted how your mod works. Regardless, I hope some of this may be useful, and if not, feel free to ignore.
I read what you said about making NPC Neutral... I am not a developer so i don't know the ins and outs.
However, I feel the way the gameplay is surrounding NPC is way to... Un captivating...
You have a mod that has a soul purpose of making the game feel more realistic... adding bomber planes, Sirens, Panicked People, Warning calls, NPCs that form groups to attack the un-dead, Biker gangs that wanna take control during such an outbreak, Military deployments to help combat areas of the city.
This would all happen IRL. Making this mod the best mod for project zomboid coming from a realistic immersive experience pov.
Then... This mod also includes Fully armed personnel, In LARGE quantities, that when are attacked nothing happens and then they drop so much loot.
People have different ways of playing the game, me personally, I wanna start my lets play off smashing some army guys head in to get his firearm to protect myself.
As of right now you can kill every NPC, and not be attacked and be rewarded INSANE amounts of loot and from a mod that tried to immerse you.. and make day one feel as realistic as possible.. it lets the mod down HUGELY.
Things to do:
Im not sure how you can change these, maybe make it so NPCs like the military don't drop loot... or make it so we can edit the sandbox and make it so we can change the loot rarity so that we can make firearms drop with a 5% chance or something.. im not sure. but if you cannot make it so NPCs attack a player once they have been attacked then.. idk.. but something needs to be changed regarding this or it makes the mod way to OP getting stacks of guns and ammo day one without consequence.
AND NO. I WILL NOT PLAY THE MOD NOT KILLING NPCS. This is not a solution.
READ THE COMMENTS OF PLAYERS AND PLEASE MAKE A FIX... THIS IS A HUGE OVERLOOK....
Thanks.
Please change something, make such a good mod just that bit better cause of right now.. its not perfect.
Friendlies may become hostile when attacked by the player, along with other friendlies who witnessed the situation. The first hit may be forgiven and treated as an accident.
Other friendlies who did not see what happened will remain friendly towards the player, but will not become hostile towards the new hostile friendlies. They will simply stay neutral because they don't know who started the fight. It's complicated to explain, but I think it works like it should.