About this mod
Makes it easier to target actors in SPID based on their default location or clothes. Enables filtering actors in SPID based on their relationships and association types.
- Requirements
- Permissions and credits
Consider an example. All_Key distributes the keyword AcLocTypeCity to all actors whose editor location is situated in a city. Using that keyword you could distribute a spell to civilians to help them survive dragon and vampire attacks. Or perhaps a package that causes them to flee.
Spell = Ironflesh|AcLocTypeCity
With that little bit of SPID code, everyone who permanently lives in a city can cast the Ironflesh spell. They will be more hardy in the event of a dragon attack. Without this framework, targeting all of those NPCs based on their Editor Location would be nearly impossible. It would require specifying hundreds of different Locations, because SPID does not natively let you target Location Types.
All_Key exposes this data to SPID scripts:
- Editor Location — Location Type and Parent Locations. Filter everyone who lives in the Hjaalmarch hold with AcLocHjaalmarchHold, or everyone who lives on a farm with AcLocTypeFarm.
- Default Outfit Items — Filter actors based on their worn clothing. Target everyone who wears Elven armor with the DoftKywdMaterialElven keyword. If you have a replacer outfit for a specific item such as Miner Clothes, you can swap it out using DoftBodyMinerClothes. SPID lets you swap 100% of the time, or less if you want your replacer to be more of a variety enhancer.
- Actor Relationships — Filter actors based on their family, or whether they are a boss or an employee, or any other Association Type. If you want to do something special for mothers day in Skyrim, use the AcRelMother keyword to find all of them.
Install with a mod manager. The only files in this mod are SPID _DISTR.ini files. If you wish to manually install you can copy these to the Skyrim\Data\ dir.
All_Key is safe to uninstall, and makes no alterations to your saves.
How it works
The mod is generated by xEdit scripts that read actor data and output an SPID keyword file. Those files tag forms that SPID supports with keywords, based on the data. What is uploaded here is the output of the xEdit scripts.
Export comes from the Elysium Remastered modlist, which contains around 2000 mods, most of them popular. Thus the distributed files contain support for numerous optional mods. Even mods not in this modlist will frequently have integrated support, due to inheriting keywords from the forms they implement.
If you are the sort of person who reads your po3_SpellPerkItemDistributor.log file, you will see it note some missing optional mods, while continuing on with the distribution. In the future I will upload the xEdit scripts, so you can generate your own INI tailored to your load order. But these redistributable pregenerated files are surprisingly comprehensive. Your mod's users will not need to generate their own _DISTR files in xEdit, in order to get mileage out of the framework.
Keywords added by mod
Here is a list of all the keywords added by this mod. Any of these can be targeted with an SPID filter. You can also combine and exclude using + and - filtering in SPID.
You can use More Informative Console to view these keywords in game. Click on actor, then expand the Keywords[] array. Any keyword in that list can be used to target or exclude that actor.
Locations
All location types are included. Those are keywords added to locations with LocType prefix.
- AcLocTypeAnimalDen
- AcLocTypeBanditCamp
- AcLocTypeBarracks
- AcLocTypeCastle
- AcLocTypeCemetery
- AcLocTypeCity
- AcLocTypeClearable
- AcLocTypeDDSafe
- AcLocTypeDragonLair
- AcLocTypeDragonPriestLair
- AcLocTypeDraugrCrypt
- AcLocTypeDungeon
- AcLocTypeDwarvenAutomatons
- AcLocTypeDwelling
- AcLocTypeFalmerHive
- AcLocTypeFarm
- AcLocTypeForswornCamp
- AcLocTypeGiantCamp
- AcLocTypeGuild
- AcLocTypeHabitation
- AcLocTypeHabitationHasInn
- AcLocTypeHagravenNest
- AcLocTypeHoldMajor
- AcLocTypeHoldMinor
- AcLocTypeHouse
- AcLocTypeInn
- AcLocTypeJail
- AcLocTypeLumberMill
- AcLocTypeMilitaryCamp
- AcLocTypeMilitaryFort
- AcLocTypeMine
- AcLocTypeOrcStronghold
- AcLocTypePlayerHouse
- AcLocTypeSettlement
- AcLocTypeShip
- AcLocTypeShipwreck
- AcLocTypeSprigganGrove
- AcLocTypeStables
- AcLocTypeStewardsDwelling
- AcLocTypeStore
- AcLocTypeTemple
- AcLocTypeTown
- AcLocTypeVampireLair
- AcLocTypeWarlockLair
- AcLocTypeWerewolfLair
The full list of location keywords can be viewed in the AllLocationKeywords_DISTR.ini file. They follow the convention of having the AcLoc prefix, followed by a condensed version of the parent location's EDID.
Actor Relationships
Nearly all Association Types are included. The relevant label is applied to the actor as a keyword with the prefix AcRel.
- AcRelHusband
- AcRelWife
- AcRelFather
- AcRelDaughter
- AcRelMother
- AcRelBrother
- AcRelSister
- AcRelSon
- AcRelJarl
- AcRelHousecarl
- AcRelSteward
- AcRelMaster
- AcRelAssistant
- AcRelCousin
- AcRelBoss
- AcRelEmployee
- AcRelGrandfather
- AcRelGrandson
- AcRelUncle
- AcRelNephew
- AcRelFavorTarget
- AcRelGrandmother
- AcRelGranddaughter
- AcRelNiece
- AcRelGranduncle
- AcRelGrandnephew
- AcRelAunt
- AcRelGirlfriend
- AcRelBoyfriend
- AcRelBusinessPartner
- AcRelConspirator
Default Outfit & clothes
Find NPCs based on the default clothes they wear. Keywords begin with the prefix Doft and then the type.
- Worn keywords such as ArmorHeavy have the DoftKywd prefix: DoftKywdArmorHeavy.
- Specific items of clothing are prefixed with Doft + the slot they occupy. Example DoftBodyMonkRobes is a Monk's robes occupying the Body slot, while DoftHeadMonkHood is a Monk's hood occupying Head (Hair).
The full list of keywords can be found in the downloaded files. Here are some cherry-picked examples of the WornClothing keywords..
- Armor & Clothing Classes
- DoftKywdArmorHeavy
- DoftKywdArmorLight
- DoftKywdClothingPoor
- DoftKywdClothingRich
- Armor & Clothing Materials
- DoftKywdMaterialBlades
- DoftKywdMaterialBonemoldHeavy
- DoftKywdMaterialChitinHeavy
- DoftKywdMaterialChitinLight
- DoftKywdMaterialDaedric
- DoftKywdMaterialDawnguard
- DoftKywdMaterialDragonplate
- DoftKywdMaterialDragonscale
- DoftKywdMaterialDwarven
- DoftKywdMaterialEbony
- DoftKywdMaterialElven
- DoftKywdMaterialElvenGilded
- DoftKywdMaterialFalmer
- DoftKywdMaterialFalmerHardened
- DoftKywdMaterialForsworn
- DoftKywdMaterialGlass
- DoftKywdMaterialGolden
- DoftKywdMaterialGuard
- DoftKywdMaterialHide
- DoftKywdMaterialImperialHeavy
- DoftKywdMaterialImperialLight
- DoftKywdMaterialImperialStudded
- DoftKywdMaterialIron
- DoftKywdMaterialIronBanded
- DoftKywdMaterialLeather
- DoftKywdMaterialMadness
- DoftKywdMaterialMithril
- DoftKywdMaterialMoragTong
- DoftKywdMaterialNordicHeavy
- DoftKywdMaterialOrcish
- DoftKywdMaterialOrcishLight
- DoftKywdMaterialScaled
- DoftKywdMaterialStalhrimHeavy
- DoftKywdMaterialStalhrimLight
- DoftKywdMaterialSteel
- DoftKywdMaterialSteelPlate
- DoftKywdMaterialStormcloak
- DoftKywdMaterialBearStormcloak
- DoftKywdMaterialStudded
- DoftKywdMaterialThievesGuild
- DoftKywdMaterialThievesGuildLeader
- DoftKywdMaterialVampire
- DoftKywdArmorDarkBrhood
- DoftKywdArmorNightingale
- Armor Types
- DoftKywdArmorBoots
- DoftKywdArmorClothing
- DoftKywdArmorCuirass
- DoftKywdArmorGauntlets
- DoftKywdArmorHelmet
- DoftKywdArmorShield
- Clothing Types
- DoftKywdClothingFeet
- DoftKywdClothingHands
- DoftKywdClothingHead
- DoftKywdClothingTorso
- Jewelery Types
- DoftKywdArmorJewelry
- DoftKywdClothingCirclet
- DoftKywdClothingNecklace
- DoftKywdClothingRing
- DoftKywdJewelryExpensive
- Current followers of the player.
- Members of the Blades who have moved to Skyhaven. They change outfits to Blades armor.
- An NPC who has had armor reverse pick pocketed onto them, or picked up armor dropped in the world. They will wear that armor for a little while when they first obtain it, and can put it back on when they enter battle.
Outfits that point to a LVLI will be tagged with a keyword indicating the LVLI's EDID. Due to the runtime nature of LVLIs this is as specific as we can get. But it can still be extremely useful, many LVLIs contain descriptive EDIDs. So an SPID wildcard filter such as *SteelPlate can target both ARMO items and related LVLIs.
Mods that alter the NPC's DOFT record are compatible. But mods which substantially alter the OTFT record itself, or add new OTFTs, can see their changes ignored by these keywords. In this situation running the xEdit script will tailor the keywords to your load order.
Future Plans
- Clean up the source for the xEdit scripts and upload them.
- Await feedback. If there is actor data you would like to be able to filter in SPID but currently can not, please post a request.