Jump to content

Is there a fix for missing weapon racks activators?


Recommended Posts

So I've found a bug where when you take your weapons from the weapon racks, the activator is gone and you can't place another weapon there. And the solution that kinda works is to drop a weapon to the ground and to drag it onto the rack. After that is magically works again.

 

Here's my two questions:

 

1. Is there a reliable way for a modder to eliminate the issue? I'm using the Unofficial Patch that doesn't seem to fix it.

2. Why is this even happening and why this kind of dumb solution even works?

 

I just created a place to store my weapons and armors and I'm having more and more questions to Bethesda. Mannequins wandering and losing collision at random places, activators don't work if placed at angles like 90, weapon racks drop weapons, lose activators and some weapons are just stuck there and you can't retrieve it. That's messed up.

 

Anyway, would be happy if someone with experience would explain to me how this works and how to fix it.

 

 

Link to comment
Share on other sites

My experience here is limited, but when I have had issues with weapon racks dropping the weapons and/or no longer accepting them, it has usually turned out to be that they were too close to the wall. Try multiselecting the plaque and activator(s) together, then moving them out until the cross arms of the little + sign is just flush with the wall. Also make sure there's nothing else with collision too near to the plaque, that may interfere with the weapon. If this gets them working again, then see how they look in relation to the wall, in-game. If they appear to be levitating, then try easing them back toward the wall, a little at a time, and test each time, until you find the place that still works and looks like it's properly mounted to the wall.

Link to comment
Share on other sites

My experience here is limited, but when I have had issues with weapon racks dropping the weapons and/or no longer accepting them, it has usually turned out to be that they were too close to the wall. Try multiselecting the plaque and activator(s) together, then moving them out until the cross arms of the little + sign is just flush with the wall. Also make sure there's nothing else with collision too near to the plaque, that may interfere with the weapon. If this gets them working again, then see how they look in relation to the wall, in-game. If they appear to be levitating, then try easing them back toward the wall, a little at a time, and test each time, until you find the place that still works and looks like it's properly mounted to the wall.

Hi! Thanks for the info, I'll try to use it if anything else fails.

 

I've looked at the script responsible for this and found out that it works like this:

 

a weapon that is on the rack leaves it's trigger

script checks if references are more than 0 in activator

if there are 0, it switches the activator back

 

That's why we can reactivate it by pulling it with a weapon, a shout or even with jumping on it - as soon as something leaves collision and there's nothing inside, the activator reactivates.

 

It fails at the first stage - when we take a weapon or a shield from rack. It simply doesn't detect if something leaves it's collision and therefore can't reactivate the activator.

 

So i thought "Maybe if it doesn't detect the weapon, I can fix it by adding a check code to Cellload?"

EVENT OnCellLoad()
	if (GetTriggerObjectCount() == 0)
			ActivatorRef = GetLinkedRef(WRackActivator)
			
			HasBeenTriggered = FALSE

			ActivatorRef.Enable()

			ActivatorRef = NONE

		endif
	if (numInTrig == 0)
	ActivatorRef = GetLinkedRef(WRackActivator)
			
			HasBeenTriggered = FALSE
			

			ActivatorRef.Enable()

			ActivatorRef = NONE

		endif

Strangely but it doesn't work either. Tried to do the same thing with OnLoad - doesn't work.

 

Where could be the problem or the solution?

Link to comment
Share on other sites

A bit information about weaponracks:

 

for "WeaponRackTriggerSCRIPT"

 

;[ACTI:000E946E] - WRDisplayCase01.nif   -- WeaponRackDisplayPlayerHouse
;
;[ACTI:0006ABBD] - WRSingle01.nif        -- WeaponRackTriggerOLD  "Test"
;[ACTI:0008AF5B] - WRSingle01.nif        -- WeaponRackMid
;[ACTI:0006A4A3] - WRSingle01.nif        -- WeaponRackMidPlayerHouse
;
;[ACTI:00084CF2] - WRPlaque01.nif        -- WeaponRackPlaque
;[ACTI:001019BC] - WRPlaque01.nif        ** WeaponRackPlaqueNor  (3D Name="RackFrame01:1")
;[ACTI:000DB2A3] - WRPlaque01.nif        -- WeaponRackPlaquePlayerHouse
;
;[ACTI:0007400D] - WRPlaqueShield01.nif  -- WeaponRackCOAMid
;[ACTI:000E49CA] - WRPlaqueShield01.nif  -- WeaponRackCOAMidPlayerHouse
;
;[ACTI:000E49BA] - WRPlaqueLeft01.nif    -- WeaponRackCOALeft             iA = TRUE
;[ACTI:000E49C8] - WRPlaqueLeft01.nif    -- WeaponRackCOALeftPlayerHouse  iA = TRUE
;
;[ACTI:000E49BC] - WRPlaqueRight01.nif   -- WeaponRackCOARight            iA = TRUE
;[ACTI:000E49CC] - WRPlaqueRight01.nif   -- WeaponRackCOARightPlayerHouse iA = TRUE
;
;[ACTI:000D505B] - WRDaggerCase01.nif    -- WeaponRackDaggerDisplayPlayerHouse

 

for "WeaponRackActivateSCRIPT"

 

; RackType = 1 (default)    "Clutter\WeaponRack\*.nif"
;
;[ACTI:000E946D] - WRDisplayCaseTrigger01.nif  -- WeaponRackDisplayACTIVATORPlayerHouse  "Weapon Rack"
;
;[ACTI:0006ABC1] - InvisibleCollision01.nif    -- WeaponRackActivateOLD                  "Weapon Rack"  "Markers\Misc\*.nif"
;
;[ACTI:0008AF59] - WRSingleTrigger02.nif       -- WeaponRackMidACTIVATOR    
;[ACTI:0006A4A4] - WRSingleTrigger01.nif       -- WeaponRackMidACTIVATORPlayerHouse      "Weapon Rack"
;
;[ACTI:00084CF1] - WRPlaqueTrigger01.nif       -- WeaponRackPlaqueACTIVATOR
;[ACTI:000DB2A2] - WRPlaqueTrigger01.nif       -- WeaponRackPlaqueACTIVATORPlayerHouse   "Weapon Plaque"
;
; RackType = 2
;[ACTI:0007400C] - WRPlaqueShieldTrigger01.nif -- WeaponRackCOAMidACTIVATOR
;[ACTI:000E49CB] - WRPlaqueShieldTrigger01.nif -- WeaponRackCOAMidACTIVATORPlayerHouse   "Shield Rack"
;
; RackType = 3
;[ACTI:000E49BB] - WRPlaqueLeftTrigger01.nif   -- WeaponRackCOALeftACTIVATOR
; RackType = 1, Patch14COARacks = TRUE
;[ACTI:000E49C9] - WRPlaqueLeftTrigger01.nif   -- WeaponRackCOALeftACTIVATORPlayerHouse  "Left Weapon Rack"
;
; RackType = 3
;[ACTI:000E49BD] - WRPlaqueRightTrigger01.nif  -- WeaponRackCOARightACTIVATOR
; RackType = 1, Patch14COARacks = TRUE
;[ACTI:000E49CD] - WRPlaqueRightTrigger01.nif  -- WeaponRackCOARightACTIVATORPlayerHouse "Right Weapon Rack"
;
; RackType = 4
;[ACTI:000D5081] - WRDaggerCaseTrigger01.nif   -- WeaponRackDaggerDisplayACTIVATORPlayerHouse "Dagger Rack"

 

 

 

What is wrong here?

 

1) https://www.afkmods.com/index.php?/topic/3669-overhauling-the-weapon-rack-scripts/page/4/
player home CoA rack left & right TRIGGERS have an additional ACTIVATOR script attached (in addition to the trigger script inherited from their base object)

That means an activator has both scripts attached instead of one only (the WeaponRackTriggerSCRIPT). The other script has to be out of order.

 

2) "cannot enable an object with an enable state parent." "cannot disable an object with an enable state parent."

Whiterun watchtower issue

 

3) Its safe to assume the rack is empty, when the trigger object count is Zero

That is like your code above, next should be added to "WeaponRackActivateSCRIPT" for testing only!!

 

EVENT OnCellAttach()
    ; original script content here
    myF_Test()
ENDEVENT

;-------------------------------------------
ObjectReference FUNCTION myF_TriggerMarker()
;-------------------------------------------
IF ( WRackTrigger )
ELSE
    RETURN None
ENDIF
;---------
    RETURN self.GetLinkedRef(WRackTrigger) ; TriggerMarker which has attached "WeaponRackTriggerSCRIPT"
ENDFUNCTION

;-----------------------
 FUNCTION myF_Test() 
;-----------------------
    IF (myF_TriggerMarker().GetTriggerObjectCount() == 0)
        IF self.IsDisabled()
            self.EnableNoWait()         ; its an empty WeaponRack.
        ENDIF
;;;     PlayersDroppedWeapon = None
    ELSE
        IF self.IsEnabled()
            self.DisableNoWait()        ; its filled/occupied with an item.
        ENDIF
    ENDIF
ENDFUNCTION

 

 

 

4) the weaponrack scripts have to many useless properties inside, which blow out the savegame, if you discover the Skyrim world more and more

Can only be solved by making an esp-based patch file

 

5) weaponracks won't hold weapons/shields which have a script attached

To fix this issue you have to rewrite the script when player is dropping the item.

 

6) Some weaponracks hold weapons and/or shield pre-placed by CK. The script handling is different to new placed items.

 

7) There exist weapons like dummy weapons, which cannot handled by vanilla scripts.

 

8) etc.

Edited by ReDragon2013
Link to comment
Share on other sites

  • Recently Browsing   0 members

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