Factions: true no-global-effect?

Hi. Got a question about factions.

If a faction has the “global effect” box unticked, hostile actions against a member of the faction will only affect the PC’s reputation with other members if they witness the action. My question is, is it possible to make it so that other faction members won’t change their attitude to the PC even if they witness the action?

I can’t seem to find a way to do this. I’ve used Lilac Soul to make a script that makes a single enemy turn hostile without affecting faction rep. But the moment the PC fights back, other nearby faction members turn hostile. This happens even when I’ve stripped the NPC being attacked of all their default scripts - since “OnPhysicalAttacked” and others seem to involve them “shouting” to nearby allies to alert them to the attack. But even without any scripts at all, their nearby allies still turn hostile. Is there simply no way to stop this happening (short of making a separate faction for each of my 15 NPCs)?

It’s hardcoded and controlled by the file readjust.2da. Some info here: repadjust.2da (and Reputation in general) - Neverwinter Nights 1: EE - nwn.wiki

Good luck messing with it! it’s an uphill struggle and you’re not given all the tools or pretty much enough to do this kind of more complex interaction. If you want to discuss it I’m on the vault discord.

1 Like

Thanks for the reply. That’s the response I was afraid I would get! Not keen on the idea of messing with what sounds like basically part of the game’s engine. Never mind, I’ll find another way.

Is there a particular reason not to have fifteen separate factions for fifteen NPCs? It seems horribly inefficient but it would solve the problem. (Otherwise my plan b is just to paralyse them all when the PC enters the area and have the scripts on the triggers unparalyse them before making them attack).

I don’t think this ever worked.

1 Like

Anyway no drawback except that adding new faction takes ages in large modules and that the faction editor is very limited and annoying to use. But making 15 custom factions seems to me as the easiest solution. Perhaps this could be scripted, like restoring the reputation after kill, but I would still go for new factions.

Can you move the attacker to a separate faction before going agro? I.e. “HatesPC”, subfaction of Hostile. Make this faction neutral towards everyone (including itself, so PC haters won’t call each other) but hostile towards PC. This way you only need one custom faction. AFAIR you can’t make above faction change in OnAttacked useful as repadjust is applied before that script fires.

EDIT: you may also need to zero the WITNEUA column in repadjust.2da so that neutral witnesses won’t care about your actions. Zeros in FACTIONREP should also prevent global reputation drop in all factions. This table isn’t hard to modify sans the cryptic column names.

1 Like

NWShacker above has a nice solution. If you don’t need to track each of the individual NPC’s factions for the future, though, you might just make them all part of a single, completely neutral faction, as a quick and dirty route.

1 Like

The method I’ve used is to define a non-global faction that is neutral to everyone including itself and PC.

As far as I can see, witnesses from that faction don’t attack or change reputation.

I’ve never had a problem with it.

2 Likes

@NWShacker @Carlo @Proleric

Thanks everyone! So can I just make them all that custom faction by default? I shouldn’t need to script a change of faction or anything, right? As long as their faction is neutral to itself they shouldn’t turn hostile when the PC fights one of them. I’ll give it a try tonight.

Just remember to test, test, test. The issues around factions are by design, but that design is very dumb and hard to debug with the default script commands.

1 Like