Can anyone tell me why or what else I need to script?
According to the Wiki, there should be zilch and that's what I want.
Is there anything else that wouldn't get moved if it was in the player's inventory?
FormList Property AllBethFilteredItemsFLST AutoFormList Property CurrentlyFilteredItemsFLST AutoEvent SomeEvent() If Criterion ; Remove ALL items MoveEverything(Game.GetPlayer(), HoldingContainer) ElseIf Something ; Give all items back/Revert filters and FLST RemoveAllItems(Game.GetPlayer(), True, True) Game.GetPlayer().AddInventoryEventFilter(CurrentlyFilteredItemsFLST) CurrentlyFilteredItemsFLST.Revert() EndIf EndEventFunction MoveEverything(ObjectReference akDonor = None, ObjectReference akRecipient = None, Int aiListIndex = 0, Form akCurrentForm = None) akDonor.RemoveAllItems(akRecipient, True, True) If akDonor.GetItemCount(AllBethFilteredItemsFLST) aiListIndex = AllBethFilteredItemsFLST.GetSize() While aiListIndex aiListIndex -= 1 akCurrentForm = AllBethFilteredItemsFLST.GetAt(aiListIndex) If akDonor.GetItemCount(akCurrentForm) CurrentlyFilteredItemsFLST.AddForm(akCurrentForm) akDonor.RemoveInventoryEventFilter(akCurrentForm) akDonor.RemoveItem(akCurrentForm, akDonor.GetItemCount(akCurrentForm), True, akRecipient) EndIf EndWhile EndIfEndFunction
Player.UnequipAll()Utility.Wait(0.3) ; Wait for the items to be fully unequipped. This MUST be done. I do not know if it only needs 0.1 seconds or the full 0.3, but this is what I use and it works.Player.RemoveAllItems(Target, True, True) ; Move the players items to the target
FormList Property AllBethFilteredItemsFLST AutoFormList Property CurrentlyFilteredItemsFLST AutoEvent SomeEvent() If Criterion ; Remove ALL items MoveEverything(Game.GetPlayer(), HoldingContainer) ElseIf Something ; Give all items back/Revert filters and FLST RemoveAllItems(Game.GetPlayer(), True, True) Game.GetPlayer().AddInventoryEventFilter(CurrentlyFilteredItemsFLST) CurrentlyFilteredItemsFLST.Revert() EndIf EndEventFunction MoveEverything(ObjectReference akDonor = None, ObjectReference akRecipient = None, Int aiListIndex = 0, Form akCurrentForm = None) akDonor.RemoveAllItems(akRecipient, True, True) If akDonor.GetItemCount(AllBethFilteredItemsFLST) aiListIndex = AllBethFilteredItemsFLST.GetSize() While aiListIndex aiListIndex -= 1 akCurrentForm = AllBethFilteredItemsFLST.GetAt(aiListIndex) If akDonor.GetItemCount(akCurrentForm) CurrentlyFilteredItemsFLST.AddForm(akCurrentForm) akDonor.RemoveInventoryEventFilter(akCurrentForm) akDonor.RemoveItem(akCurrentForm, akDonor.GetItemCount(akCurrentForm), True, akRecipient) EndIf EndWhile EndIfEndFunction
FormList Property AllBethFilteredItemsFLST Auto FormList Property CurrentlyFilteredItemsFLST Auto Event SomeEvent() If Criterion ; Remove ALL items MoveEverything(Game.GetPlayer(), HoldingContainer) ElseIf Something ; Give all items back/Revert filters and FLST RemoveAllItems(Game.GetPlayer(), True, True) Game.GetPlayer().AddInventoryEventFilter(CurrentlyFilteredItemsFLST) CurrentlyFilteredItemsFLST.Revert() EndIf EndEvent Function MoveEverything(ObjectReference akDonor = None, ObjectReference akRecipient = None, Int aiListIndex = 0, Form akCurrentForm = None) akDonor.RemoveAllItems(akRecipient, True, True) If akDonor.GetItemCount(AllBethFilteredItemsFLST) aiListIndex = AllBethFilteredItemsFLST.GetSize() While aiListIndex aiListIndex -= 1 akCurrentForm = AllBethFilteredItemsFLST.GetAt(aiListIndex) If akDonor.GetItemCount(akCurrentForm) CurrentlyFilteredItemsFLST.AddForm(akCurrentForm) akDonor.RemoveInventoryEventFilter(akCurrentForm) akDonor.RemoveItem(akCurrentForm, akDonor.GetItemCount(akCurrentForm), True, akRecipient) EndIf EndWhile EndIf EndFunction