This stuff is confuse Right, so, all NPCs have GetReaction; in their talk_p_proc However, as far as I can tell if you call that alone it only gives you the reaction value. It does not give you the reaction level. I tried it with Klint, and normally you get a reaction of 20 with him which should give you a level 1 reaction, but instead it's level 0. To get the level ReactToLevel needs to be called, either directly or through the UpReact/DownReact macros. This basically means that if you check for level before doing any adjustment to the reaction the level won't be correct. Take Hakunin for example. He has this (local_var(LVAR_reaction_level) == REACTION_LEVEL_BAD)) which I don't think could ever be true right from the first talk with him, if the level is always 0 until adjustments are made. Adding ReactToLevel; right after GetReaction; seems to calculate it correctly. Am I getting this right? Edit: Also in the GetReaction procedure from modreact.h it checks for REACTION_BONUS_KARMA which is set to 0 at the start of the file. And considering GetReaction is only called once per NPC then this bonus karma will always be 0? There's also a commented line: //#define REACTION_BONUS_KARMA ((check_general_rep*Karma_Perception)/KARMA_MODIFIER) This one at least seems to calculate some karma. Why is this one commented out and instead it's just set to 0 and therefore made useless? Edit: I'm stupid, GetReaction doesn't get called only once. I got confused, actually the charisma bonus in calculated only once. However, Reaction_Bonus_Karma will still be always 0 as far as I can tell.