Already tried modify spelllist.mes, "ai_type" of a specific spell txt, py script, but seems it doesn't work at all
Alright, as I fiddling around I find out that none of those data files are mattered, I've switched data and scripts of "charm person" and "heroism" entirely, yet in game, heroism can charm people without alarm, and charm person would still alarm npcs even it buffs them. Another thing I've notice is that after I changed cast range of charm person, casting charm person out of range will start combat mode immediately, it seems the data to determine a spell is offensive or not is stored in somewhere else...
That's interesting. I've tried to introduce spells you could cast to alter NPC behaviour without triggering combat but had no luck. I think that sort of stuff is hard coded, there is evidence that the spell numbers have hard-coded attributes with them up to a certain point. One work around, if you are interested, is to make your spell an area-affect rather than target spell. I got 'Modify Memory' going that way, iirc: made it a tiny area effect spell.
I never heard of the spell Power Sight before. I was very surprised when it triggered combat with Maeri in kotb.