The Personal Reputation and Reaction System 3 for NWN2 is a complete set of scripts that offer the following functionality:
NPC Reactions
Allows NPCs to react dynamically to players actions, factoring in one-on-one interactions, faction standing, differences in alignment, and charisma modifiers.
Ownership and Theft
Allows NPCs to own doors, chests and other containers, confronting players when they unlock, disarm, open or disturb these doors and placeables.
Security and Crime
Allows for security creatures to be assigned to come and watch over a door or container if an owner calls for help.
Picking Pockets
Allows similar theft functionality for picking pockets.
Skill Checks
Allows personal reactions to affect skill checks on a creature, providing a situational penalty or bonus.
Dynamic Rumors
Allows NPCs to provide the players with rumors, where better reactions mean better rumors.
Persistence
Allows module builders to flush all PRR variables to a standard Campaign Database for use in sequels, campaigns, or a persistent world.
Factions
A set of simple scripts makes dealing with factions much more pleasant.
Persistent Compansions
Uses the same database methods as the Persistent Companion scripts.
These scripts require only one overwrite of the standard OE NWN2 scripts, and all components are modular and easy to configure. Import the erf file and set up a few variables and you�ll be in business.
This is currently a beta release. Feedback is welcome.
Be sure to download the example module, as this provides a quick (and hopefully entertaining) look at how these scripts can be used.
UPDATES:
PRR beta_002
- Changed the rumors to use a new quality element and use the categories element for the original intent.
- Added dynamic delays to rumors.
prr_example_v0_2
Added the lizard camp and quests to go along with it.
Added persistent companions.
NOTE: As of prr_example_v0_2, you will need MotB to play the example module, but you can still use the scripts if you don't have the expansion yet.
I really like this and I think with just the way you laid out the sample area does a lot to explain what you have created.
I noticed that when the guards attack they will attack once and then stop. My character will continue fighting them. Is this intentional?
I suppose if one wanted to get around that then they would need to create super guards who in just one hit they kill your character. But then that leads into a bunch of issues.
Vendalus, I downloaded your package and it looks very promising. I have an immediate need to have a simple faction change based upon a conversation my PCs have with some castle guards. Depending on how the PCs react to the guards orders I wanted to adjust the faction rep to create a fight in one case. The guards have a unique faction rated at 50 across the board. Is there a way to easily excute this with your system?
Posted by ImmoralSinner at 2009-03-10 23:32:50 Voted 9.50 on 03/10/09
Just wanted to drop a note that dmguild and I worked this out over at the Citadel. The issue ended up having to do with a missing function call on the OnModuleLoad event.
I've also updated the link to go to the thread where this conversation is happening. I has a few notes on possible upgrades down the line.
Posted by dmguild at 2009-01-16 00:45:56 Voted 10.00 on 01/16/09
Outstanding work. I'm having problems getting the database to work thought.
Do I just change the
const string PRR_CAMPAIGN_NAME = "XXXX"; so that XXXX = my campaign folder name? That didn't seem to work.
You should just be able to start a new module as a directory, open that module directory in Windows, import the PRR, and copy everything that gets added into a subfolder of your campaign folder. Using the subfolder, scripts and convos won't show up in the resource list. If you want to use the template as a base, that might be easier to copy to the root.
You are correct that the faction zoo area needs to be replicated across modules.
Glad to hear it's working. Let me know if you have any suggestions. I've been meaning to publish a new version that has a basic version of charm spells working. Hopefully I'll get on that soon.
I'm using a campaign with multiple modules ... is there a way to add these resources at the campaign level, rather than importing it into each and every module ?
Seems the faction area might be module specific, but the rest could all be under the campaign dir? _________________________ the Red Hand of Doom campaign .. Click Here
Vendalus @ I've merged in your PRR code to my module/campaign. Works awesome!
May take some time to updated all of the dialogs ... but I truly appreciate the functionality it brings. Really adds a lot of the "role play" element back into the game! _________________________ the Red Hand of Doom campaign .. Click Here
Posted by mtsaint at 2008-03-12 13:12:15 Voted 9.00 on 03/12/08
looks like it will give me a big head start on dynamic interactions. thx for your work
You only need to add the factions if you want to allow the players to change how different factions feel about them through the course of the game. For example, if you have two factions (say druids and towns folk) and you'd like to create several opportunities for the PCs to choose to side with one over the other, you can use the faction functionality to help make this happen. How a faction feels about the PCs gets factored in to the final reaction, so as the PCs perform more tasks and gain the trust of the faction, all its members become more friendly. Creating one for merchants and goblins is not needed if you know they are never going to change.
If you just want to update how NPCs feel about the PCs, then you don't need to use the faction functions at all. The system was built so that you can use as little or as much as you want. Most builders will probably just want the reaction scripts and possibly the theft scripts. Generally, you can jump in just by using the prr_template conversation as the basis of new conversations. It includes all the functionality for personal reactions.
I'd suggest scanning through the documentation. I tried to write it so that it works up from simple functions to more complex. I've been thinking about a quick-start or cheat sheet document as well, so any feedback would be most appreciated.
Hi vendalus! I'm going to download this and see about adding it into the Red Hand of Doom series ... I'd like to integrate all of the FRW "haks" into it and think this will help with the "realism" a lot.
Will I need to go back and make extra factions to have this operate properly ? ie. one for towns folk, merchants, druid, goblins, etc.
or does the code keep track of each NPCs "attitude" towards each PC separately (not faction based) ?
I'm downloading now, so I'll check the documentation for answers as well. _________________________ the Red Hand of Doom campaign .. Click Here
Posted by Saphhira at 2007-12-30 02:57:07 Voted 10.00
Therefore I deleted the nw_i0_plot library from my module script list because I'm not using it for other script system.
Then I've downloaded prr_3beta_002.zip and imported ERF in module. Now it works without problems.
I just opened a new module and imported the scripts and it compiled fine. I also opened up nw_i0_plot and my line numbers seem to be a bit different than yours. Do you have an nw_i0_plot in your scripts list? If you have not altered that script through another system or custom code, I'd suggest copying and pasting the code from a new module to see if that fixes it. (It might be worth noting that the version I am looking at does use SPELL_LESSER_GLOBE_OF_INVULNERABILITY).
Again, PRR should not be touching that script, so it could be something else. If you keep digging and figure it out, please let me know.
Posted by Saphhira at 2007-12-29 09:56:01 Voted 10.00
I've updated it to 1.11 and it doesn't work. If I compile the single library (nw_i0_plot) there is no problem. If I compile all the script of the modules it said that in line 1253 and in 754 the variable isn't defined.
I report here the lines:
754 if (nSkill == SKILL_PERSUADE || nSkill == SKILL_BLUFF || nSkill == SKILL_INTIMIDATE)
At the moment I've changed in the first line SKILL_PERSUADE with SKILL_DIPLOMACY and in the second line SPELL_MINOR_GLOBE_OF_INVULNERABILITY with SPELL_LESSER_GLOBE_OF_INVULNERABILITY and now everything works fine.
Saphhira, I've upgraded to 1.11 and everything compiled fine. The scripts should not be touching nw_i0_plot. Can you open the example module and try to compile it? If it works fine in the example module, there's a good chance it is something else. Let me know.
I'll upgrade to 1.11 today and test (I've been holding off). Thanks for letting me know.
Posted by Saphhira at 2007-12-28 08:53:44 Voted 10.00
Hi Vendalus,
I'm using your PRR for my PW but at the moment I have some problems. After the patch 1.11 I can not compile your script and I have notice that the problem is on nw_i0_plot library.
Did you modified it?
Thanks a lot
Posted by MyHouse at 2007-12-06 20:45:33 Voted 10.00 on 12/06/07
This is great. Thanks a lot! A must have for PW or SP.
The new version is up with the changes mentioned below. I've also tested this with the Persistent Companion scripts and added them to the example module. Works great!
I've actually got the code restructured to use the new category/quality elements, and I hope to post it soon.
Posted by MyHouse at 2007-11-12 20:00:58 Voted 10.00 on 12/06/07
I see where you are going with the elements. If quality was set for current area and I could mix the rumors with the other elements that would work too. Category could be for large rumors that everyone would know. Subject would elemenate speaking about ones self. And Quality be area specific. My thought was that if say an NPC was "Out of town" giving rumors to the PC. He could still talk about his home town.
Posted by MyHouse at 2007-11-12 19:50:33 Voted 10.00 on 12/06/07
A script parameter would be more flexable. Such as a NPC could give rumors of another area specific and where conversation is takeing place.
Ex: Every one knows about the Lich Queen rumor 100 miles north but only residents close by would know rumors that the watch could be paid off...The more flexable the better.
Posted by MyHouse at 2007-11-03 19:30:39 Voted 10.00 on 12/06/07
Any chance this can be set up to do rumors based on area tags? A particular NPC could be used to do area only rumors for basic quests. And large quests for the whole mod.
Thanks for the comments SDJ. Please let me know how it goes!
Posted by SDJ at 2007-10-30 17:12:25 Voted 10.00 on 10/30/07
Hi there,
I am planning to add this in my PW server. It's really useful because social skills like diplomacy, and other ones that I added, will gain the importance that deserve. With the CD checks in dialogues players will try to focus in this skills, not only the combat ones. Also by this way npc can be better integrated to their surrounding world, being able to react if are robbed, insulted or if the PC is rude (speaking with a noble without good manners can produce - influence).
I'm also trying to figure if PC will be able to improve their rank in factions by this way. Gaining influence with the Guard faction can improve your rank to Lt for example (completing missions for them and speaking correctly to your superiors can be a good reason). Or being really good at performance can improve your reputation among the students of yout musical academy (CD checks "performance" at plays or concerts is a way).
As you see, with imagination a lot can be done with your work I think, and thanks for it, because I was wondering how to create a similar system, but I'm not a scripter xd
Some advice for PW? I mean, you tested this in online modules? I will try, thanks to share your work and time ;)
_________________________ SDJ - Oriental style 3D Models (Pack 2) Link
SDJ - Oriental style 3D Models Link
142 Oriental portraits Link
I will hold off on voting just yet, however your code looks very good so far.
I have a situation where my PW is split into several factions. Some factions start off friendly to PC Races and others do not. There are quests where PCs can alter their reputation with each faction. If a faction reputation is in the extremes, a PC could become neutral or even an ally of a normally hostile faction and vice-versa.
For Example, the Goblin faction is currently at war with the nearby human town. Therefore, the Goblin faction starts off as hostile to PCs. Through quests and actions, PC could make it so Goblins are no longer hostile to them. Will your system handle this?
I mean if Bob the PC has raised their repution with the Goblins to a point where they are no longer hostile to him, what happens when he approaches a group of Goblins?
What happens if Bob the PC is partied with PCs that the Goblins Should be hostile to?
Does this maintain across server resets?
I use NWNX4 and a MySQL Database. Are you open to possibly having the capability to connect to this instead of the default campaign database?
The PRR 3 system looks very good and if it can handle situations like these, I would not mind converting my PW to using it and even assisting in the development of a MySQL connector.
10 - A Masterpiece, Genuinely Groundbreaking 9 - Outstanding, a Must Have 8 - Excellent, Recommended to Anyone 7 - Very Good, Deserves a Look 6 - Good, Qualified Recommendation 5 - Fair, Solid yet Unremarkable 4 - Some Merit, Requires Improvements 3 - Poor Execution, Potential Unrealized 2 - Very Little Appeal 1 - Not Recommended to Anyone