Keyword Fixes for Caenarvon Armours
⚪ Last updated 2021⚠️ Install Order · 5 steps
Install in this order, then this mod last — most mods fail to load without their framework and dependencies in place.
Preview

🔍 Analysis
- 👍 3.2% endorsement rate — high engagement, a strong quality signal
- 🏆 #57 of 233 Armour mods in this game by downloads
📋 About This Mod
Caenarvon's armour sets are really nice but they have just one problem: they don't have the heavy or light armour keywords and won't benefit from associated perks. These ESPs fix that.
By default, Skyrim's perks don't look for the type of the armour when applying perks, they look for specific keywords. Without those keywords, armour will only scale with the base skill and quickly find itself outclassed by even fur gear.
So here are a set of replacement ESPs to tag the armour correctly so that it benefits from perks. Uploaded with permission.
If you want to apply this to any other ESP you have, just use this xEdit script:
unit UserScript;var
slKeywordHA: TStringList;
slKeywordLA: TStringList;
slKeywordSH: TStringList;
slKeywords: TStringList;
//============================================================================
function Initialize: integer;
// keywords to add
slKeywordHA := TStringList. Create;
slKeywordLA := TStringList. Create;
slKeywordSH := TStringList. Create;
slKeywordHA. Add('0006BBD2'); // ArmorHeavy
slKeywordLA. Add('0006BBD3'); // ArmorLight
slKeywordSH. Add('000965B2'); // ArmorShield
//============================================================================
function Process(e: IInterface): integer;
kwda, k: IInterface;
i, j: integer;
exists: boolean;
//only processing armour
if Signature(e) <> 'ARMO' then
//determine correct keyword to add
if GetElementEditValues(e, 'BOD2\Armor Type') = 'Light Armor' then
slKeywords := slKeywordLA
else if GetElementEditValues(e, 'BOD2\Armor Type') = 'Heavy Armor' then
slKeywords := slKeywordHA
// get existing keywords list or add a new
kwda := ElementBySignature(e, 'KWDA');
if not Assigned(kwda) then
kwda := Add(e, 'KWDA', True);
// no keywords subrecord (it must exist) - terminate script
if not Assigned(kwda) then begin
AddMessage('No keywords subrecord in ' + Name(e));
Result := 1;
// check it isn't a shield - shields don't get armor keywords
// if it is, terminate
for i := 0 to slKeywordSH. Count - 1 do begin
for j := 0 to ElementCount(kwda) - 1 do
if IntToHex(GetNativeValue(ElementByIndex(kwda, j)), 8) = slKeywordSH then
// iterate through additional keywords
for i := 0 to slKeywords. Count - 1 do begin
// check if our keyword already exists
exists := false;
for j := 0 to ElementCount(kwda) - 1 do
if IntToHex(GetNativeValue(ElementByIndex(kwda, j)), 8) = slKeywords then begin
exists := true;
// skip the rest of cod
📊 Mod Details
- Game
- Skyrim Mods
- Author
- Caenarvon
- Version
- 1.0
- Downloads
- 3,977
- Endorsements
- 129
- Category
- Armour
- Created
- 10/29/2021
- Updated
- 10/29/2021
🔧 How to Install Skyrim Mods
Download from Nexus.
📖 Full step-by-step install guide for Skyrim →
Visit the official mod page for specific installation instructions for this mod.
🎮 Need cheat codes or console commands? Check ur gaming wiki for Skyrim commands, item IDs, and more.
Keep browsing — more Skyrim mods await