Jump to content

NPCs: Intelligence, Luck, Charisma?


PAPVAFS11

Recommended Posts

I see a lot of NPCs in both vanilla and mods that have SPECIAL points in INT, LCK, and CHR - sometimes, in insane proportions - but I have absolutely no idea why. As far as I know, NPCs don't have any way to use these since they don't gain experience, can't deal critical hits, and don't ever deal with dialogue checks.

 

Does anyone know if any of these SPECIAL ratings do anything? At all?

Link to comment
Share on other sites

What I remember from before..

 

Strength:

Effects Carry weight and Damage

 

Perception:

Hit chance and detection

 

Endurance:

HP's

 

Charisma:

Unknown

 

Intelligence:

Unknown

 

Agility:

Avoidance

 

Luck:

Unknown,

Crits if you have a mod that allow crits out of VATS

Link to comment
Share on other sites

  • 4 weeks later...

Their special stats do nothing, really, despite what people say they do online. Simply test it. This was my solution to make each one more unique (unfinished), but what I have does work.

Scriptname ConquestorsUniverse:CU_RandomizeSpecialStats extends Actor 
{Randomizes special stats on load}
 
;Set up actor values for modification
ActorValue property Strength Auto
ActorValue Property Perception Auto 
ActorValue Property Endurance Auto 
ActorValue Property Charisma Auto 
ActorValue Property Intelligence Auto
ActorValue Property Agility Auto
ActorValue Property Luck Auto 
 
; Set up other we need. I can likely remove level here.
ActorValue Property HealthAV Auto 
int Level
float LuckTotal
;Crippling values for awful Luck
ActorValue Property LeftMobilityCondition Auto
ActorValue Property RightMobilityCondition Auto 
 
Event OnInit()
 
Modvalue(Strength, Utility.RandomFloat(2.0, 10.0))
Modvalue(Perception, Utility.RandomFloat(2.0, 10.0))
Modvalue(Endurance, Utility.RandomFloat(2.0, 10.0))
Modvalue(Charisma, Utility.RandomFloat(2.0, 10.0))
Modvalue(Intelligence, Utility.RandomFloat(2.0, 10.0))
Modvalue(Agility, Utility.RandomFloat(2.0, 10.0))
Modvalue(HealthAV, GetValue(Endurance)*10.0)
 
;Luck for other bonus calculation
Modvalue(Luck, Utility.RandomFloat(0.0, 10.0)) 
LuckTotal = GetValue(Luck)
 
if LuckTotal < 1.0
Modvalue(Strength, -1.0)
Modvalue(Perception, -1.0)
Modvalue(Endurance, -1.0)
Modvalue(Charisma, -1.0)
Modvalue(Agility, -1.0)
Modvalue(Intelligence, -1.0)
Modvalue(HealthAV, -10)
Modvalue(LeftMobilityCondition,-70)
Modvalue(RightMobilityCondition,-70)
elseif LuckTotal < 2.0
Modvalue(LeftMobilityCondition,-40)
Modvalue(RightMobilityCondition,-40)
elseif LuckTotal < 3.0
Modvalue(LeftMobilityCondition,-30)
Modvalue(RightMobilityCondition,-30)
elseif LuckTotal < 4.0 
Modvalue(LeftMobilityCondition,-20)
Modvalue(RightMobilityCondition,-20)
elseif LuckTotal < 5.0
Modvalue(LeftMobilityCondition,-10)
Modvalue(RightMobilityCondition,-10)
elseif LuckTotal < 6.0
 
elseif LuckTotal < 7.0
Modvalue(HealthAV, 5)
elseif LuckTotal < 8.0
Modvalue(HealthAV, 10)
elseif LuckTotal < 9.0
Modvalue(HealthAV, 10)
elseif LuckTotal < 10.0
Modvalue(HealthAV, 10)
elseif LuckTotal < 11.0
Modvalue(HealthAV, 10)
elseif LuckTotal > 10.0
Modvalue(HealthAV, 10)
EndIf
 
endEvent

You're gonna have to do that for each special stat and add perks/modify values through papyrus for it to make a difference.

Edited by PhanomGames
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...