Filter
filterByModNames allows you to filter by mods and can be combined with other filters. Multiple mods need to be separated by ,
Example:
filterByModNames=SkyValor.esp:filterByXXX=MyMod.esp|123:setWhatEver=123
filterByNpcs allows you to patch different NPCs at once. They need to be separated by ,
filterByNpcsExcluded can be used to exclude one or multiple objects. (multiple separated by ,)
filterByRaces allows you to patch NPCs by race. You can add multiple races.
filterByDefaultOutfits allows you to patch NPCs by outfit.
filterByKeywords allows you to filter by keywords. The keywords are connected by AND. Multiple keywords need to be separated by ,
filterByKeywordsOr keywords are connected with or. Multiple keywords need to be separated by ,
filterByKeywordsExcluded allows you to exclude keywords. Multiple keywords need to be separated by ,
filterByEditorIdContains allows you to filter by editorID(can also only contain a part of the editorID). The editorID filters are connected by AND. Multiple editorIDs need to be separated by ,
filterByEditorIdContainsOr editorIDs are connected with or. Multiple editorIDs need to be separated by ,
filterByEditorIdContainsExcluded allows you to exclude editorIDs. Multiple editorIDs need to be separated by ,
filterByFactions allows you to filter by factions. The factions are connected by AND. Multiple factions need to be separated by ,
filterByFactionsOr factions are connected with or. Multiple factions need to be separated by ,
filterByFactionsExcluded allows you to exclude factions. Multiple factions need to be separated by ,
filterByClass allows you to filter NPCs by class. You can add multiple classes separated by ,
filterByClassExclude allows you to exclude NPCs by class. You can add multiple classes separated by ,
filterByPCLevelMult allows you to filter NPCs by PCLevelMult.
filterByAutoCalc allows you to filter NPCs by filterByAutoCalc.
filterByEssential allows you to filter NPCs by filterByEssential.
filterByProtected allows you to filter NPCs by filterByProtected.
Example:
PCLevelMult=true
filterByGender can be used to filter NPCs by Gender.
Example:
filterByGender=female
filterByGender=male
restrictToMaleModelContains allows you to restrict to a male model by string(text).
Example:
A male model string from race: Actors\Character\Character Assets\skeleton.nif
restrictToMaleModelContains= Character Assets, skeleton.nif
Operations
attackDataToAdd allows you to add attack data to races. Multiple strings need to be separated by ,
Example:
attackDataToAdd=key=attackLeft~damagemult=1~attackchance=1~attackspell=null~attackangle=0~strikeangle=60~staggeroffset=0~attacktype=null~knockdown=0~recoverytime=0~staminamult=1
When an attackData is added, it has default values. The key, needs always to be added! When you miss to add an option it will use the default:
damageMult = 1
attackChance = 1
attackSpell = nullptr
attackAngle = 0
strikeAngle = 50
staggerOffset = 0
attackType = nullptr
knockDown = 0
recoveryTime = 0
staminaMult = 1
flags = none
attackDataToRemove allows you to remove attack data from races by event name. Multiple strings need to be separated by ,
Example:
attackDataToRemove=attackstart
attackDataToChange allows you to change attack data from races. The key, needs always to be added! Multiple strings need to be separated by ,
Example:
attackDataToChange=key=attackStart~damagemult=0~setFlags=powerattack=ignoreweapon
AttackData options
damagemult
attackchance
attackspell - Spell item, null will remove the spell
nullattackangle
strikeangle
staggeroffset
attacktype - Keyword, null will remove the keyword
nullknockdown
recoverytime
staminamult
setFlags - allows you to set flags
removeFlags - allows you to remove flags
resetFlags - allows you to reset all flags
flags
ignoreweapon
bashattack
powerattack
chargeattack
rotatingattack
continuousattack
overridedata
copyVisualStyle copies the visual style of another NPC. (Face and Hair)
Example:
filterByNPCs=Skyrim.esm|0000590B:copyVisualStyle=MyMod.esp|FE001A11
(Make sure that gender and race also matches. Those can also be modified with SkyPatcher. Otherwise crashes can occur.)
setRandomVisualStyle randomly picks and applies a new visual style to another NPC.
This includes:
Race, Sex, Skin, Face, Hair, Height, Weight, Body tint, Voice(optional)
All visual styles that have been applied are saved with the save file and are applied again on save load. When the chance failed to apply a new visual style, the NPC will keep his default look.
Important:
Use the ~true modifier only when you want to change the voice. If you use ~false, the new voice type will still be applied. If you don’t want the voice to be copied, remove that part. See examples below.
Example:
Apply a new random style with a 100% chance:
filterByFactions=Skyrim.esm|0001BCC0:setRandomVisualStyle=Test_Styles.esp|FE000800
filters by the faction bandits, picks a random style from the formlist Test_Styles.esp|FE000800, the style is applied with a chance of 100%
Apply a new random style with a 50% chance:
filterByFactions=Skyrim.esm|0001BCC0:setRandomVisualStyle=Test_Styles.esp|FE000800~50
filters by the faction bandits, picks a random style from the formlist Test_Styles.esp|FE000800, the style is applied with a chance of 50%
Apply a new random style with a100% chance and copy the voice of the template:
filterByFactions=Skyrim.esm|0001BCC0:setRandomVisualStyle=Test_Styles.esp|FE000800~100~true
filters by the faction bandits, picks a random style from the formlist Test_Styles.esp|FE000800, the style is applied with a chance of 100% and the voice of the NPC is also adjusted from the template picked from the formlist
Apply a new random style with a100% chance and will also copy the voice of the template:
filterByFactions=Skyrim.esm|0001BCC0:setRandomVisualStyle=Test_Styles.esp|FE000800~100~false
filters by the faction bandits, picks a random style from the formlist Test_Styles.esp|FE000800, the style is applied with a chance of 100% and the voice of the NPC is also adjusted from the template picked from the formlist. If you dont want the voice to be copied, remove the last part. In this example remove ~false from the string.
fullName allows you to change the full name of the object. The new name has to be written between ~~
Example:
fullName=~Dragonslayer Sword~
setAutoCalcStats - disables/enables the flag kAutoCalcStats from NPCs. This flag forces NPCs to re-calculate their stats, when certain events happen.
setPcLevelMult - disables/enables the flag kPCLevelMult from NPCs.
Example:
50 will be the level, when no level could be calculated and is a fail safe.
filterByRaces=Skyrim.esm|000131E8:setPcLevelMult=false=50
setEssential - disables/enables the flag from NPCs.
setProtected - disables/enables the flag from NPCs.
Example to disable a Flag:
autoCalcStats=no
or
autoCalcStats=false
Example to enable a Flag:
autoCalcStats=yes
or
autoCalcStats=true
Example, ignoring it:
autoCalcStats=none
or
delete it from the string
levelRange - you can specify a level range and if the avif has also a range, the avif is calculated for the level of the NPC.
It calculates the proportional increase from avif and level of the NPC.
Example: (this is only a part of a patch string.)
levelRange=25~100 :changeStats=health=150~250
-> A level 1 NPC will have 150 health
-> A level 25 NPC will have 150 health
-> A level 50 NPC will have ~183 health
-> A level 100 NPC will have 250 health
-> A level 200 NPC will have 250 health
changeStats allows you to manipulate the attribute values of NPCs, like changing their health, stamina etc.
changeStats different options for you:
Direct change
health = 200
stamina = 100
magicka = 300
Calc based on class and attribute weight (don't use that on Leveled NPCs, you have to disable PCLevelMult and set a level wit it.)
calcHealth = 10
calcStamina = 12
calcMagicka = 15
Multiply existing values
healthMult = 1.5
staminaMult = 2.5
magickaMult = 4
Examples:
changeStats=health=250
changeStats=health=250, magicka=150, stamina=50
changeStats=health=250, calcStamina=10, calcMagicka=10
changeStats=healthMult=2.5, calcStamina=10, calcMagicka=10
calcStamina will calculate the stamina based on the attribute weights by the class and the level of the NPC.
calcMagicka will calculate the magicka based on the attribute weights by the class and the level of the NPC.
More information about attribute weights and classes can be found here
changeSkills allows you to manipulate the skill values of NPCs
Example:
changeSkills=twohanded=45,onehanded=50
Skills
alchemy
alteration
block
conjuration
destruction
enchanting
heavyarmor
illusion
lightarmor
lockpicking
marksman
onehanded
pickpocket
restoration
smithing
sneak
speechcraft
twohanded
healthBonus adds a bonus to the health of the NPC, when using calcHealth.
Example:
healthBonus=50:changeStats=calcHealth=10, calcStamina=10
magickaBonus adds a bonus to the magicka of the NPC, when using calcMagicka.
Example:
magickaBonus=120:changeStats=health=90, calcMagicka=10
staminaBonus adds a bonus to the stamina of the NPC, when using calcStamina.
Example:
staminaBonus=80:changeStats=health=250, calcStamina=10
setFlags sets flag of the NPC. Multiple flags needs to be separated by ,
removeFlags removes flags of the NPC. Multiple flags needs to be separated by ,
Example:
setFlags=female, essential, unique
Flags
- female
- essential
- ischargenfacepreset
- respawn
- autocalcstats
- unique
- doesntaffectstealthmeter
- pclevelmult
- usestemplate
- calcforalltemplates
- protected
- norumors
- summonable
- doesntbleed
- bleedoutoverride
- oppositegenderanims
- simpleactor
- loopedscript
- noactivation
- loopedaudio
- isghost
- invulnerable
setTemplateFlags sets flag of the NPC. Multiple flags needs to be separated by ,
removeTemplateFlags removes flags of the NPC. Multiple flags needs to be separated by ,
Flags
- traits
- stats
- factions
- spells
- aidata
- aipackages
- unused
- basedata
- inventory
- script
- aidefpacklist
- attackdata
- keywords
- copiedtemplate
keywordsToAdd adds keywords to NPCs. You can add multiple and they have to be separated by ,
keywordsToRemove allows you to remove keywords. You can add multiple and they have to be separated by ,
factionsToAdd adds factions to NPCs. You can add multiple and they have to be separated by ,
Example: factionsToAdd=Skyrim.esm|0001CBED=0
You need to specify the faction and after = the rank. If in doubt, 0. It's the starting rank.
factionsToRemove allows you to remove factions. You can add multiple and they have to be separated by ,
perksToAdd adds perks to NPCs. You can add multiple and they have to be separated by ,
spellsToAdd adds spells to NPCs. You can add multiple and they have to be separated by ,
spellsToRemove remove spells from NPCs. You can remove multiple and they have to be separated by ,
levSpellsToAdd adds leveled spells to NPCs. You can add multiple and they have to be separated by ,
levSpellsToRemove remove leveled spells from NPCs. You can remove multiple and they have to be separated by ,
shoutsToAdd adds spells to NPCs. You can add multiple and they have to be separated by ,
shoutsToRemove remove spells from NPCs. You can remove multiple and they have to be separated by ,
deathItem allows you to change the deathItem of a NPC. Passing the string null will disable it
race allows you to change the race of a NPC.
voiceType allows you to change the voice of a NPC.
outfitDefault allows you to change the outfit of a NPC.
Example:
filterByFactions=Skyrim.esm|0001A692:outfitDefault=Skyrim.esm|D3E05
outfitSleep allows you to change the sleep outfit of a NPC.
class allows you to change the class of a NPC.
skin allows you to change the skin of a NPC. Passing the string null will disable it
level sets the level of the NPC
weight sets the weight of the NPC
height sets the height of the NPC
calcLevelMin - used with kPCLevelMult to set a minimum level
calcLevelMax - used with kPCLevelMult to set a maximum level
objectsToAdd adds objects(items or LLs) to NPCs. You can add multiple and they have to be separated by ,
Example: filterByNpcs=Skyrim.esm|13BBF:objectsToAdd=Skyrim.esm|73F34=5, Skyrim.esm|398F3=5
Adds 5 Deadly Poison to Nazeem
;Nazeem "Nazeem" [NPC_:00013BBF] | DamageHealth05 "Deadly Poison" [ALCH:00073F34] | FortifySkillDestruction04 "Elixir of Destruction" [ALCH:000398F3]
addOnceToInventory adds the object only once to NPCs. You can add multiple and they have to be separated by ,
Example: filterByNpcs=Skyrim.esm|13BBF:addOnceToInventory=Skyrim.esm|73F34~5, Skyrim.esm|398F3~3
Will only add the item with the amount, if he doesn't have the item
objectsToRemove removes objects(items or LLs) from NPCs. You can add multiple and they have to be separated by ,
Example: objectsToRemove=Skyrim.esm|211CC
removeInventoryObjectsByKeywords removes objects(items) from NPCs, which have matching keywords. You can add multiple and they have to be separated by ,
Example: removeInventoryObjectsByKeywords=Skyrim.esm|211CC, Skyrim.esm|211CD
removeInventoryObjectsByCount removes objects(items) from NPCs, which have a matching count of the item.
Example: removeInventoryObjectsByCountsSkyrim.esm|211CC~2
clearInventory removes all objects from NPCs.
Example: clearInventory=true
restrictToGender allows you to restrict to a skeleton path. If the path does not contain werewolf, the operation will fail.
Example:
restrictToGender=male
restrictToGender=female
restrictToMaleModelContains allows you to restrict to a skeleton path. If the path does not contain werewolf, the operation will fail.
Example: restrictToMaleModelContains=werewolf
restrictToSkill will restrict to all NPCs with the skill in the specified range.
Example: restrictToSkill=marksman~0~50
- onehandedtwohanded
- marksman
- block
- smithing
- heavyarmor
- lightarmor
- pickpocket
- lockpicking
- sneak
- alchemy
- speechcraft
- alteration
- conjuration
- destruction
- illusion
- restoration
- enchanting
NPC Patcher Example Strings:
;Adds two perks from SkyValor to all NPCs, except the player. When no filter is used, it only affects NPCs. If you have to filter for the player, if you want to patch the player.
perksToAdd=SkyValor.esp|1D8A,SkyValor.esp|3DE9
;Filters for the player changes his health
filterByNpcs=Skyrim.esm|7:changeStats=health=250
;filter by race for bear and modifies health and recalculates stamina and magicka based on the bears class. Disable the PCLevelMult and sets the level for those NPCs to 50.(Otherwise they have a level of 1000). Disables auto calc stats for all bear NPCs
filterByRaces=Skyrim.esm|000131E8:levelRange=1~30:changeStats=health=625~900,calcStamina=10,calcMagicka=10:setPcLevelMult=false=50:setAutoCalcStats=false
45 comments
I think I can do this using a string like filterByClass=Skyrim.esm|[MAGE]:levelRange=1~4:spellsToAdd=MyMod.esp|[MyNoviceSpell ID]
Is there a class form ID that I can use for "arbitrary mage character" or do I have to make a new string for any possible faction/mage that might spawn?
Or is there a better way to do this?
Version 3.6.0
NPC Patcher
-> added: addRandomVisualStyle
-> added: setAggression
calmed
unaggressive
aggressive
veryaggressive
frenzied
-> added: setAssistance
helpsnobody
helpsallies
helpsfriends
-> added: setConfidence
cowardly
cautious
average
brave
foolhardy
-> added: setMood
neutral
angry
fear
happy
sad
surprised
puzzled
disgusted
-> added: setMorality
anycrime
violenceagainstenemy
propertycrimeonly
nocrime
-> added: aggressionRadiusBehavior (true/false)
-> added: aggressionRadiusRanges
aggressionRadiusRanges=attack~1000
aggressionRadiusRanges=warn~2000
aggressionRadiusRanges=attackandwarn~1000
aggressionRadiusRanges=attack~1000, warn~2000
Version 3.5.0
NPC Patcher
-> added: rvsRestrictToTraits
-> added: restrictToFlags
-> added: restrictToTemplateFlags
-> added: restrictToRaces
-> added: restrictToGender
-> added restrictToVoiceType
I kinda hope it works the same way as copyVisualStyle, that is copy the whole visual from an NPC randomly within a formlist.
also I found many NPC still have vanilla assets (hair, eyes, etc) even though none of template NPC use it.
I was hoping FitlerByDefaultOutfits would do it, but that seems to be looking for DOFT records.
I'm hoping to make a quick mod that will patch all the required mudcrabs for SkyTest without me having to know their mods or IDs.
filterByFactions=Skyrim.esm|000B3292:objectsToRemove=Skyrim.esm|LItemWeaponMace
filterByFactions=Skyrim.esm|000B3292:objectsToAdd=MyPlugin.esp|Newleveledlist
Your string should look like:
filterByFactions=Skyrim.esm|000B3292:objectsToRemove=Skyrim.esm|00016577:objectsToAdd=MyPlugin.esp|(Newleveledlist FormID here)