Jump to content

Mortal Weapons & Armors


Recommended Posts

Posted

Is tempering degradation working for anyone? Once I temper an armor it's basically invincible and the mod rendered useless. I had several high level enemies bashing down on me and the tempering of my armor never went away, so something seems broken here.

  • 3 months later...
Posted

I have NPCs instantly unequipping everything the moment they die. I spent an evening testing and deactivating mods and turns out, shutting down MWA solves it.

 

Is that normal?

Just turning off the NPC scan surprisingly did not solve it, so i wonder if something is wrong? Or would that only affect a not yet loaded cell?

  • 1 month later...
Posted

Is there a patch to let player also Tailor and Refit armors and weapons? Like needs 50 Smithing level to repair broken and needs Arcane Blacksmith perk to tailor/refit the enchanted

Posted
On 8/28/2025 at 2:11 PM, Nethertale said:

Is there a patch to let player also Tailor and Refit armors and weapons? Like needs 50 Smithing level to repair broken and needs Arcane Blacksmith perk to tailor/refit the enchanted

Tempering repairs your gear, and there's an option in the MCM that will also make it refit armor to fit your character.

Posted
2 hours ago, chaimhewast said:

Tempering repairs your gear, and there's an option in the MCM that will also make it refit armor to fit your character.

I'm aware but I ask for sth more immersive, like my character at least might know art of quilting or when his/her smithing skill went up, he/she can repair their own handmade armor

Posted (edited)

"I simply cannot carry any more"

 

And weapon/armor drops

 

 

Couldn't find what causing this in mcm

 

Edit: I have enough carry weight slots

Edited by Nethertale
  • 2 months later...
Posted
On 3/17/2025 at 4:39 PM, AlyssaAwoo said:

Is tempering degradation working for anyone? Once I temper an armor it's basically invincible and the mod rendered useless. I had several high level enemies bashing down on me and the tempering of my armor never went away, so something seems broken here.


So i had the same problem for a while, where weapons would be VERY inconsistent in their detection by the mod, had to drop them multiple times etc, so this past weekend i decided to take a look at the code.

It seems the problem lies in the "sanitychecker" module, which ensures weapons are detected and added to the correct slot. The detection part worked, but it didnt add the weapon to the form, so after a few hours analyzing i found that the base object variable was initialized as null (which is okay) but was never overriden by the actual weapon base, so when the code had to evaluate if the item was a candidate for destruction (which is done on the BASE object), this evaluation failed, and the weapon was never sent to the internal MWA Destructible Weapon slot:

In Sanitychecker.psc (original):
 

Function CheckAllSlots() ; Checks every slot and adds the Equipped ObjRef to the wornlist if missing
	Int i = SlotMasks.Length
	ReferenceAlias AliasSelect
	ObjectReference ObjRef
	Form akBaseObject	

	; Weapons
	AliasSelect = WornObject.GetNthReferenceAlias(PlayerRef, 1, 0, 0) as ReferenceAlias
	If AliasSelect
		ObjRef = AliasSelect.GetReference()
		If ObjRef
			If DestructTypes.IsDestructible(akBaseObject) "=== Here it fails, as akBaseObject is always null ==="
				ArmorDest.RightWeapon = ObjRef
			Else
				ArmorDest.RightWeapon = None
			EndIf
		Else
			ArmorDest.RightWeapon = None
		EndIf
	EndIf
	AliasSelect = WornObject.GetNthReferenceAlias(PlayerRef, 0, 0, 0) as ReferenceAlias
	If AliasSelect
		ObjRef = AliasSelect.GetReference()
		If ObjRef
			If DestructTypes.IsDestructible(akBaseObject) "=== Here it fails, as akBaseObject is always null ==="
				ArmorDest.LeftWeapon = ObjRef
			Else
				ArmorDest.LeftWeapon = None
			EndIf
		Else
			ArmorDest.LeftWeapon = None
		EndIf
	EndIf

 

Sanitychecker.psc (fixed):

 

Function CheckAllSlots() ; Checks every slot and adds the Equipped ObjRef to the wornlist if missing
	Int i = SlotMasks.Length
	ReferenceAlias AliasSelect
	ObjectReference ObjRef
	Form akBaseObject

	; Weapons
	AliasSelect = WornObject.GetNthReferenceAlias(PlayerRef, 1, 0, 0) as ReferenceAlias
	If AliasSelect
		ObjRef = AliasSelect.GetReference()
		If ObjRef
			akBaseObject = ObjRef.GetBaseObject()  ; "== Fix: get base object so evaluation succeeds =="
			If DestructTypes.IsDestructible(akBaseObject)
				ArmorDest.RightWeapon = ObjRef
				Debug.Trace("_MWA_: ArmorDest.RightWeapon :" + ArmorDest.RightWeapon)
			Else
				ArmorDest.RightWeapon = None
			EndIf
		Else
			ArmorDest.RightWeapon = None
		EndIf
	EndIf
	AliasSelect = WornObject.GetNthReferenceAlias(PlayerRef, 0, 0, 0) as ReferenceAlias
	If AliasSelect
		ObjRef = AliasSelect.GetReference()
		If ObjRef
			akBaseObject = ObjRef.GetBaseObject()   "== Fix: get base object so evaluation succeeds =="
			If DestructTypes.IsDestructible(akBaseObject)
				ArmorDest.LeftWeapon = ObjRef
				Debug.Trace("_MWA_: ArmorDest.LeftWeapon :" + ArmorDest.LeftWeapon)
			Else
				ArmorDest.LeftWeapon = None
			EndIf
		Else
			ArmorDest.LeftWeapon = None
		EndIf
	EndIf
	
	; Shield
	AliasSelect = WornObject.GetNthReferenceAlias(PlayerRef, 0, 512, 0) as ReferenceAlias
	If AliasSelect
		ObjRef = AliasSelect.GetReference()
		If ObjRef
			If DestructTypes.IsDestructible(ObjRef.GetBaseObject())
				ArmorDest.EquippedShield = ObjRef
				Util.WornListAdd(ObjRef, "CheckAllSlots()")
			Else
				ArmorDest.EquippedShield = None
			EndIf
		Else
			ArmorDest.EquippedShield = None
		EndIf
	EndIf

 

Now weapon detection never fails, at least on my end, but anyone is free to test it.

 

I also upload the fix here with the same source code i wrote above and its compiled .pex file

 

MWA Fix.zip

Posted
6 hours ago, Karmus said:


So i had the same problem for a while, where weapons would be VERY inconsistent in their detection by the mod, had to drop them multiple times etc, so this past weekend i decided to take a look at the code.

It seems the problem lies in the "sanitychecker" module, which ensures weapons are detected and added to the correct slot. The detection part worked, but it didnt add the weapon to the form, so after a few hours analyzing i found that the base object variable was initialized as null (which is okay) but was never overriden by the actual weapon base, so when the code had to evaluate if the item was a candidate for destruction (which is done on the BASE object), this evaluation failed, and the weapon was never sent to the internal MWA Destructible Weapon slot:

 

Interesting. Does this also mean tempered weapons and armors will break? The mod advertises that an item is supposed to lose it's tempering when being hit and then continue being damaged, but the item never loses tempering, and therefore also doesn't really break. Tempering at a workbench/grindstone = Invincible item.

Posted
11 hours ago, AlyssaAwoo said:

 

Interesting. Does this also mean tempered weapons and armors will break? The mod advertises that an item is supposed to lose it's tempering when being hit and then continue being damaged, but the item never loses tempering, and therefore also doesn't really break. Tempering at a workbench/grindstone = Invincible item.


Yes as tempering has a numeric value going up to ~1.7 (Legendary), each hit reduces this value until the item is untempered. Afterwards the durability (e.g Iron Sword 300/300) starts going down, so yes, you can have a Legendary item --> Fine --> Untempered --> Broken.

The problem was that after tempering, the script was not updating properly so the tempered weapon would get lost from the list of detected items, therefore it would never degrade.

As for armors, as long as you dont have Devious Devices Hider active they should work the same way without any changes.

Posted
3 minutes ago, Karmus said:


Yes as tempering has a numeric value going up to ~1.7 (Legendary), each hit reduces this value until the item is untempered. Afterwards the durability (e.g Iron Sword 300/300) starts going down, so yes, you can have a Legendary item --> Fine --> Untempered --> Broken.

The problem was that after tempering, the script was not updating properly so the tempered weapon would get lost from the list of detected items, therefore it would never degrade.

As for armors, as long as you dont have Devious Devices Hider active they should work the same way without any changes.

 

Huh, cool! Thanks for looking into it

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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