Bool bReadyToRumbleInt iIndexObjectReference rApparelItemActor Property PlayerREF AutoArmor Property ArenaARMO AutoFormList Property EmptyFLST AutoYourArenaModPlayerAliasScript Property PlayerAliasScript AutoEvent SomeEvent() If bReadyToRumble ; Change clothing PlayerAliasScript.Strip() Utility.WaitMenuMode(1) ; Give other script time to catch the items PlayerREF.EquipItem(ArenaARMO, True) ; Disallow unequip. Will give the armor at the same time. Else PlayerREF.RemoveItem(ArenaARMO) iIndex = BagOfHoldingDroppedItemFLST.GetSize() While iIndex > 0 iIndex -= 1 rApparelItem = EmptyFLST.GetAt(iIndex) As ObjectReference rApparelItem.Enable() rApparelItem.Activate(PlayerREF) PlayerREF.EquipItem(rApparelItem.GetBaseObject(), False, True) EndWhile EndIfEndEvent
ScriptName YourArenaModPlayerAliasScript extends ReferenceAliasActor Property PlayerREF AutoFormList Property EmptyFLST AutoState Catch Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference) ObjectReference rObject = EmptyFLST.AddForm(PlayerREF.DropObject(akBaseObject)) If rObject rObject.Disable() EndIf EndEventEndStateFunction Strip(Int aiSlot = 44, String asInitialState = "") asInitialState = GetState() GoToState("Catch") While aiSlot > 30 aiSlot -= 1 PlayerREF.UnequipItemSlot(aiSlot) Utility.WaitMenuMode(0.01) EndWhile GoToState(asInitialState)EndFunction
I'm assuming you want to strip the player, force equip arena armor for the duration of the fight, then later remove the arena armor and re-equip whatever the player had on before the fight? If so, that'll work.