craftymonkey Posted May 27, 2021 Share Posted May 27, 2021 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 More sharing options...
thumbincubation Posted May 27, 2021 Share Posted May 27, 2021 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 More sharing options...
craftymonkey Posted May 28, 2021 Author Share Posted May 28, 2021 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 triggerscript checks if references are more than 0 in activatorif 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 More sharing options...
thumbincubation Posted May 28, 2021 Share Posted May 28, 2021 I'm sorry, but I have no idea about scripting. Link to comment Share on other sites More sharing options...
ReDragon2013 Posted May 31, 2021 Share Posted May 31, 2021 (edited) 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 May 31, 2021 by ReDragon2013 Link to comment Share on other sites More sharing options...
Recommended Posts