-
Notifications
You must be signed in to change notification settings - Fork 11
Adding support for mod added Weapons
To add support for a weapon, the following information is needed, it can all be found in the mods esp.
- Weapon Name.
- Weapon EDID.
- Weapon Material. Check the keyword on the weapon and/or the main ingrediant in the crafting and tempering recipe (if any).
- Weapon Type. Sword, Greatsword, Katana etc.
- Does the weapon have a
Template Item
set? - Is the Weapon Enchanted.
- Is the Weapon required 'by' ANY quest. Quest reward weapons generally are not required for a quest. Some are a bit odd though, like Nettlebane.
- Determine if the weapon is a Hero item or an Alternate item. Hero items are things like Aela's Shield, Conan's Sword, Andúril, etc. alternate items are things like Super Cool Sword. Hero = True, Alternate = False
- Should random enchanted versions be made. Hero = False, Alternate = True
- Should it be distributed. If the original mod already distributes the items, they should be excluded from further distribution. If the original mod already distributes the items but if random enchanted variants are being made the variants should be distributed. Hero = False, Alternate = True
- Remember that everything below is case-sensitive, steel != Steel, and that entries should be as exclusive as possible, if the weapons name is
Bucklebury Ferry Guards Dagger
don't bind it asBuck
.
With that info open Weapons.xml
.
-
If #5 is false, create an entry in
weapon_material_bindings
;<binding> <identifier>Material</identifier> <substring>Weapon Name</substring> </binding>
-
If #5 is false and the weapon name does not contain a common weapon type, create an entry in
weapon_type_bindings
;<binding> <identifier>Weapon Type</identifier> <substring>Weapon Name</substring> </binding>
-
n1 If #6, #7 or #8 is true, create an entry in
reforge_exclusions
;<exclusion> <text>Info</text> <target>NAME</target> <type>CONTAINS</type> </exclusion>
What goes here can vary, the <target>
can be NAME
, EDID
or FORMID
n2. The <text>
is what the <target>
checks for, and the <type>
is how it is checked. <type>
can be either;
CONTAINS
- If the text
is matched anywhere in the target
the exclusion is true.
STARTSWITH
- If the text
is matched at the begining of the target
the exclusion is true.
EQUALS
or EQUALS_IGNORECASE
. - If the text
is matched exactly in the target
the exclusion is true.
-
If #6 or #9 is false and/or #7 or #8 is true, open
Enchanting.xml
and create an entry inenchantment_weapon_exclusions
-
If #10 is false and/or #7 is true, open
LeveledLists.xml
and create an entry indistribution_exclusions_weapon
. If the item is enchanted put it in thedistribution_exclusions_weapon_enchanted
subsection, otherwise put it in thedistribution_exclusions_weapon_regular
subsection. -
Do this for each weapon in the mod.
Using EDID for exclusions is almost always easier than using item names. Most modders will use custom EDID prefixes for every record in their mods, mine all use Raul_Weap_
for weapons. Using that all items in the mod can easily be excluded with just 1-2 entries instead of dozens. This will also help keep the file size down and speed up parsing.
Everything is case sensitive, except an EQUALS_IGNORECASE
exclusion type.
n1An Exclusion needs to be as exclusive as possible, EDID exclusions such as Armor
or Ench
will exclude nearly every Vanilla and DLC armor and cannot be used, most mods use a custom prefix, like Skyrim Immersive Creatures uses 00_
for everything, every EDID exclusion should be as long as possible, at least 4-5+ characters long, or 3+ characters long if it uses an underscore (_) near the start.
n2FORMID
is extremely rare and should almost never be used, I only use it for 1 item from Skyrim.esm
and only because the item had to be excluded and the name was the same as a common weapon. Anything submitted with a FormID check will need a very good reason and absolutely no other way of doing it. FormID checks should only be used for Skyrim.esm
and Update.esm
, using it for DLC or USKPs will force requirements on every user.