***UPDATE 1.1: if you installed the original file and you do not see "You gave a compliment" or "You gave an insult" notification, please download the updated version! ***
Just wanted to say thank you all for the downloads and endorsements, I hope you enjoy the mod!
To answer some common questions:
- This should be compatible with EVERYTHING. It is very lightweight and simply adds dialogue, it does not edit any existing dialogue trees. Let me know if you run into problems.
- I do not plan on porting this to Oldrim/Classic at this time. I don't play Classic and don't have the Classic CK, and I would have to rebuild it and maintain/test/bugfix it.. for a game that I don't even play. I work full-time and go to grad school, so my free time is pretty important to me - I'd like to spend it either working on more mod ideas or, of course, actually playing my games. :)
- You have my permission to modify any part of this mod for your PERSONAL use.
- You also have my permission to port the mod yourself and post it - NOTIFY ME and credit the original mod page if you choose to do so!
- I am not sure if I will port the mod to Xbox - I need to get around to checking if Bethesda.net is an easy process or not. I have no way to test on Xbox, however. Stay tuned.
I love this mod, congratulations! Is there any way the insult could make the target hostile (or perhaps start a bare-knuckle fight)? I imagine guards wouldn't deal with swearing. Sorry for the google translation ×D
I love this mod, it works perfectly! but only the first time. That's OK though because it could be rather cheaty otherwise. As is it is fun and functional, thank you
Now you must patch the scripts. Unfortunately, the author of this mod did not include .psc files with the mod. Fortunately, you can decompile .pex to .psc. You need to make the following changes to CAI_TIF__010048A0.psc and CAI_TIF__010058CA.psc:
This is the Insult script; it calls .AddSpell() on line 20. Remove that line; all it will do is teach the spell to the Actor as if they had read a spell tome. .AddSpell() works well when adding Abilities, but these are Spell types now so instead we use .Cast(). On line 20 of insult script: replace akSpeaker.AddSpell(CAIInsultedSpell, True) with CAIInsultedSpell.Cast(akSpeaker as ObjectReference, None)Do this for both CAI_TIF__010058CA.psc and CAI_TIF__010048A0.psc, using correct spell on both. Compile your scripts. Your patch should include an .esp and two .pex files.
Bonus: you can move the new line in the script to the line right before EndFunction to make this spell recast and reset the duration on the effect even if they already had the effect! Do this, too, for both.
Bonus 2 for the brave: edit the script to prevent increasing relationship over 3 or lowering it below -3. Coding these maximums would prevent the loop of complimenting someone at relationshiprank 4 resulting in a reset of relationshiprank to 0 (same with -4 and insults probably).
Edit2: I'll release my files if the mod author permits me so you don't have to do all of this yourself.
Thank you for this thorough fix, BrokenDeer. However, I'm a noob with scripting and don't know how to compile the edited psc into pex. Did you ever get permission from author to share updated pscs?
Sorry for not being around. I'll edit this post to include fixed files for everybody because my "fix" involves work not everybody can easily do. I was a noob once so I understand. Until I post it, I'll tell you that PCA is how you compile scripts, but learning to use it is moderately difficult. I didn't get permission but I get the feeling the author won't care and I'll just remove it if asked.
Infinite timer has nothing to do with script lag. It's just a variable like any other, except infinitely negative and this simple light mod is not the cause of your script lag issues.
Hi, you totally have permission to post any fixes. It's been years since I touched this mod and I'd have to relearn how to do everything, so go nuts. It was a bit of an experiment to learn how to mod and I think for my first time I did alright, lol
I'm flattered that people found my idea interesting enough that they can tweak it to work better. In fact if you're willing to pass along the fixed esp/script files I can add them to the main mod page and credit you. Or you can just upload them yourself and I'll put up a notice on this page to use yours. Up to you
Compliments and Insults Tweaks Sorry for delay and thanks for the mod, saintcrazy. I fixed the issues and also rebalanced the mod. If you like it, feel free to upload the files to this page. Or don't, idc lol. I'd have sent them to you personally but idk how to use this site. I'll keep an eye out on these comments in case support is needed.
This mod is great, OP. One of my biggest problems in Skyrim is the limit on how the PC can influence other actors. In Oblivion and Morrowind, you could use your speech skill to influence disposition. In Skyrim, the only way to earn people's loyalty is through completing quests. Quests are fairly limited in vanilla so I use Sidequests of Skyrim by wSkeever to earn friends by doing favors. Still, it's Compliments and Insults which finally unlocked the player's ability to change relationshiprank through a simple dialogue option and speech check.
Did anyone try to tweak the mod to work with Beyond Skyrim - Bruma NPCs? I have been trying to edit the mod with TESedit to make the NPCs compatible but i am not sure where i should look. Bruma NPCs used a different script to Skyrim NPCs. Any tips? Thx :)
... and also ... I just wanted to let you know that you saved the lives of - oh so many - many many NPCs with this mod ... and they would probably want to thank you too, hrr hrr ... >:)
I am *loving* this mod so much, thank you for such a perfect little bit of RP! I was wondering, however, whether you could let me know how I could modify the % chance for an effect? I'm finding that I'm increasing relationship rank far more quickly than I would like and would like to edit it to be a bit more of a slow burn, if that's possible.
Glad you're enjoying it so far. That's something that should be easy to edit with the CK or SSEEdit.
It's been a year since I've touched this mod and I don't really have time to get back into it, but look into SSEEdit tutorials, it's easier than it looks.
Oh geez, like I said, it's been a while, haha! I had to go find my script text file.
The random roll is done with script fragments in each dialogue response, I don't know how that looks in SSEEdit but the script fragment should look like this:
int randomChance = Utility.RandomInt(0,200) int myRelRank = akSpeaker.GetRelationshipRank(Game.GetPlayer()) if randomChance <= Game.GetPlayer().GetActorValue("Speechcraft") akSpeaker.SetRelationshipRank(Game.GetPlayer(), myRelRank + 1) endif
So in theory in the CK you could change the bounds of "randomChance" to, say, 0-500 or 0-1000, and that should decrease the chance of the relationship increasing.
Hi saintcrazythefollower....thanks for this great mod! I followed your advice in the following area:
int randomChance = Utility.RandomInt(0,200)
"So in theory in the CK you could change the bounds of "randomChance" to, say, 0-500 or 0-1000, and that should decrease the chance of the relationship increasing"
I used Champillion to decompile, changed it to 2000 ("I like a challenge" lol), and then put it in the "Scripts" folder in MO2/mods/CAI directory (CAI_TIF__0100489F.pex). The directory notes the date change of the file, so I think I'm good there. I only report this in case some one can help me with this issue...I would just enjoy a longer time to have folks befriend me. EDIT: It does not seem to make any change in the time it takes me to raise relationship rank.
This mod is essential in my games now, so whether the RandomInt is 200 or 2000 in the end will not make too much of a difference to me; I wonder out loud if I might approach this another way: lowering the amount of experience gained in Speech situations throughout the entire game. I already have made it so that I level up at about 20% of normal speed (I like the "slow burn" as one of my colleagues put it), along with greatly increasing the cost of major items with homebrew mods through the Creation Kit (for example, Breezehome now costs 100,000 coin for me to acquire, just the home without any extras!)
So, 9 months on from my last post in this thread, I decided to take more of a look at the code in CAI_TIF__0100489F.pex and I found some things I thought were interesting:
First, it seems the code calls for a "Debug.MessageBox" to fire when the relationship rank is increased. However, my messages for relationship ranks increasing have never shown a message box. I do get a message in the upper left portion of the screen, but I think that is from the Relationship Rank Notification mod (that was recently discussed in this comments section). Poking around reddit, I found this bit of code to add when wanting to display a certain random number result: "Debug.Notification("You got:" + RandomChance)" ... I tried inserting this into the psc and did get it complied with the Creation Kit (so the CK said). I then tried a test player, and I did not receive notification of my random number, and relationship increases seem to happen at the typical "Utility.RandomInt(0, 200)" rate , not at my modified "Utility.RandomInt(0, 2000)" rate. I do find that interesting as I have used this mod for a L-O-O-N-G time, and even before I modified the pex file, it still has never given me a message box. It's not a big deal at all, but if anyone has any ideas, I'm all ears. Currently I have this mod near the bottom of my load order using MO2, just a couple of mods like DYNDOLOD and a map mod come after it.
I'm starting a new playthrough soon, and with SKVA Synth happening, I taught myself how to make dialogue only mods with random choices WITHOUT scripts. I was thinking about making a more intensive Compliments mod with many dialogue responses, but that would probably take me, oh, 100 hours or more to complete for EVERY generic voice and every possible relationship rank (-4 through 3 or 4). I am still hoping to get Utility.RandomInt(0, 2000) to work for me, but as of yet no-go. It would solve the same basic purpose I am going for, but less work for me (although also a bit less rich in voices and effect perhaps).
I kind of wonder about interdependency among other scripts with this mod. It does work how it basically should, but I am baffled why my modded scripts do not seem to work, and then the mod STILL DOES work as if it were the original CAI_TIF__0100489F.pex file (without the intended MessageBox so it seems). It's probably something I'm doing wrong, lol.
To continue the tradition of replying to things months later, I'll chime in with what I can remember off the top of my head but I am by no means an expert and I go long stretches without checking back at this page these days.
The Debug.Messagebox is either what the game calls the upper-left notifications (thank Bethesda for naming that function a box when it's just text), or it may have been leftover and commented out from my testing, I'm not sure. But this mod does include messages in the upper-left when complementing, you can see them in the screenshots. The other mod may add something similar as well but that would be in addition to the messages from this one.
Basic troubleshooting questions/possibilities for your script-editing problem: Are you sure the script frags re-compiled properly from your script editor? You might have better luck opening them up in the CK and saving your changes there. Are you sure you edited the correct script fragment? If I recall correctly I made two separate, nearly-identical ones, one for complimenting and one for insulting. I wonder if maybe you edited one but not the other. Finally, I wonder if you could test it by editing the scripts in the CK, and installing the mod manually in your folder, being sure to include the scripts file to rule out something weird with your mod manager (like maybe it's trying to pull from the old script file, or the old one is overwriting the new one).
Maybe a lot of trouble just to change a random roll, maybe you've tried this stuff but it seems like you've been dedicated to it already so who knows, maybe it'll help.
(Seven Months Later)...thanks very much for the reply! I still use this mod, and I will take a look at your suggestions! I am definitely a neophyte when it comes to modding, stumbling through things. As mentioned back in September 2021, I have migrated to using CK dialogue only quests and xVASynth to create spoken lines as needed for many "on the fly" situations (including dispositions, now that I finally mastered "randomness" in quest dialogues), usually using this mod only for scenes that are "less complicated" like gaining the favor of a merchant. Still, it is a *Great* mod; thanks for making it and sharing!
110 comments
Just wanted to say thank you all for the downloads and endorsements, I hope you enjoy the mod!
To answer some common questions:
- This should be compatible with EVERYTHING. It is very lightweight and simply adds dialogue, it does not edit any existing dialogue trees. Let me know if you run into problems.
- I do not plan on porting this to Oldrim/Classic at this time. I don't play Classic and don't have the Classic CK, and I would have to rebuild it and maintain/test/bugfix it.. for a game that I don't even play. I work full-time and go to grad school, so my free time is pretty important to me - I'd like to spend it either working on more mod ideas or, of course, actually playing my games. :)
- You have my permission to modify any part of this mod for your PERSONAL use.
- You also have my permission to port the mod yourself and post it - NOTIFY ME and credit the original mod page if you choose to do so!
- I am not sure if I will port the mod to Xbox - I need to get around to checking if Bethesda.net is an easy process or not. I have no way to test on Xbox, however. Stay tuned.
Edit the .esp as follows (or download my fix here):
These spell types needn't be "Ability". Abilities are always-on, constant-effect spells, such as the Wood Elf's racial resistance to poison and disease. Setting duration for Abilities shouldn't even be an option, since all it does is set a timer that will go infinitely into the negatives as the Ability effect will never expire. Change the spells' types from "Ability" to "Spell" in the .esp. Do this for both spells.
Now you must patch the scripts. Unfortunately, the author of this mod did not include .psc files with the mod. Fortunately, you can decompile .pex to .psc. You need to make the following changes to CAI_TIF__010048A0.psc and CAI_TIF__010058CA.psc:
This is the Insult script; it calls .AddSpell() on line 20. Remove that line; all it will do is teach the spell to the Actor as if they had read a spell tome. .AddSpell() works well when adding Abilities, but these are Spell types now so instead we use .Cast().
On line 20 of insult script:
replace
akSpeaker.AddSpell(CAIInsultedSpell, True)
withCAIInsultedSpell.Cast(akSpeaker as ObjectReference, None)
Do this for both CAI_TIF__010058CA.psc and CAI_TIF__010048A0.psc, using correct spell on both.Compile your scripts. Your patch should include an .esp and two .pex files.
Bonus: you can move the new line in the script to the line right before EndFunction to make this spell recast and reset the duration on the effect even if they already had the effect! Do this, too, for both.
Bonus 2 for the brave: edit the script to prevent increasing relationship over 3 or lowering it below -3. Coding these maximums would prevent the loop of complimenting someone at relationshiprank 4 resulting in a reset of relationshiprank to 0 (same with -4 and insults probably).
Edit2: I'll release my files if the mod author permits me so you don't have to do all of this yourself.
As is, does the infinite timer cause script lag in the game?
I didn't get permission but I get the feeling the author won't care and I'll just remove it if asked.
Infinite timer has nothing to do with script lag. It's just a variable like any other, except infinitely negative and this simple light mod is not the cause of your script lag issues.
Edit: Compliments and Insults Tweaks
I'm flattered that people found my idea interesting enough that they can tweak it to work better. In fact if you're willing to pass along the fixed esp/script files I can add them to the main mod page and credit you. Or you can just upload them yourself and I'll put up a notice on this page to use yours. Up to you
Sorry for delay and thanks for the mod, saintcrazy. I fixed the issues and also rebalanced the mod. If you like it, feel free to upload the files to this page. Or don't, idc lol. I'd have sent them to you personally but idk how to use this site. I'll keep an eye out on these comments in case support is needed.
... and also ... I just wanted to let you know that you saved the lives of - oh so many - many many NPCs with this mod ... and they would probably want to thank you too, hrr hrr ... >:)
It's been a year since I've touched this mod and I don't really have time to get back into it, but look into SSEEdit tutorials, it's easier than it looks.
The random roll is done with script fragments in each dialogue response, I don't know how that looks in SSEEdit but the script fragment should look like this:
int randomChance = Utility.RandomInt(0,200)
int myRelRank = akSpeaker.GetRelationshipRank(Game.GetPlayer())
if randomChance <= Game.GetPlayer().GetActorValue("Speechcraft")
akSpeaker.SetRelationshipRank(Game.GetPlayer(), myRelRank + 1)
endif
So in theory in the CK you could change the bounds of "randomChance" to, say, 0-500 or 0-1000, and that should decrease the chance of the relationship increasing.
Also this pairs so perfectly with Relationship Change Notifications, it's like the mods were made for each other haha.
int randomChance = Utility.RandomInt(0,200)
"So in theory in the CK you could change the bounds of "randomChance" to, say, 0-500 or 0-1000, and that should decrease the chance of the
relationship increasing"
I used Champillion to decompile, changed it to 2000 ("I like a challenge" lol), and then put it in the "Scripts" folder in MO2/mods/CAI directory (CAI_TIF__0100489F.pex). The directory notes the date change of the file, so I think I'm good there. I only report this in case some one can help me with this issue...I would just enjoy a longer time to have folks befriend me. EDIT: It does not seem to make any change in the time it takes me to raise relationship rank.
This mod is essential in my games now, so whether the RandomInt is 200 or 2000 in the end will not make too much of a difference to me; I wonder out loud if I might approach this another way: lowering the amount of experience gained in Speech situations throughout the entire game. I already have made it so that I level up at about 20% of normal speed (I like the "slow burn" as one of my colleagues put it), along with greatly increasing the cost of major items with homebrew mods through the Creation Kit (for example, Breezehome now costs 100,000 coin for me to acquire, just the home without any extras!)
Regards
So, 9 months on from my last post in this thread, I decided to take more of a look at the code in CAI_TIF__0100489F.pex and I found some things I thought were interesting:
First, it seems the code calls for a "Debug.MessageBox" to fire when the relationship rank is increased. However, my messages for relationship ranks increasing have never shown a message box. I do get a message in the upper left portion of the screen, but I think that is from the Relationship Rank Notification mod (that was recently discussed in this comments section). Poking around reddit, I found this bit of code to add when wanting to display a certain random number result: "Debug.Notification("You got:" + RandomChance)" ... I tried inserting this into the psc and did get it complied with the Creation Kit (so the CK said). I then tried a test player, and I did not receive notification of my random number, and relationship increases seem to happen at the typical "Utility.RandomInt(0, 200)" rate , not at my modified "Utility.RandomInt(0, 2000)" rate. I do find that interesting as I have used this mod for a L-O-O-N-G time, and even before I modified the pex file, it still has never given me a message box. It's not a big deal at all, but if anyone has any ideas, I'm all ears. Currently I have this mod near the bottom of my load order using MO2, just a couple of mods like DYNDOLOD and a map mod come after it.
I'm starting a new playthrough soon, and with SKVA Synth happening, I taught myself how to make dialogue only mods with random choices WITHOUT scripts. I was thinking about making a more intensive Compliments mod with many dialogue responses, but that would probably take me, oh, 100 hours or more to complete for EVERY generic voice and every possible relationship rank (-4 through 3 or 4). I am still hoping to get Utility.RandomInt(0, 2000) to work for me, but as of yet no-go. It would solve the same basic purpose I am going for, but less work for me (although also a bit less rich in voices and effect perhaps).
I kind of wonder about interdependency among other scripts with this mod. It does work how it basically should, but I am baffled why my modded scripts do not seem to work, and then the mod STILL DOES work as if it were the original CAI_TIF__0100489F.pex file (without the intended MessageBox so it seems). It's probably something I'm doing wrong, lol.
Regards,
Jeff
The Debug.Messagebox is either what the game calls the upper-left notifications (thank Bethesda for naming that function a box when it's just text), or it may have been leftover and commented out from my testing, I'm not sure. But this mod does include messages in the upper-left when complementing, you can see them in the screenshots. The other mod may add something similar as well but that would be in addition to the messages from this one.
Basic troubleshooting questions/possibilities for your script-editing problem:
Are you sure the script frags re-compiled properly from your script editor? You might have better luck opening them up in the CK and saving your changes there.
Are you sure you edited the correct script fragment? If I recall correctly I made two separate, nearly-identical ones, one for complimenting and one for insulting. I wonder if maybe you edited one but not the other.
Finally, I wonder if you could test it by editing the scripts in the CK, and installing the mod manually in your folder, being sure to include the scripts file to rule out something weird with your mod manager (like maybe it's trying to pull from the old script file, or the old one is overwriting the new one).
Maybe a lot of trouble just to change a random roll, maybe you've tried this stuff but it seems like you've been dedicated to it already so who knows, maybe it'll help.
Regards,
Jeff