Mods, can this maybe get pinned?


ScriptName BagOfHoldingQuestScript extends Quest ConditionalActor Property Player AutoArmor Property BagOfHoldingARMO AutoArmor Property DecapitatedHead AutoBool Property bUpdate Auto ConditionalFloat Property fVersion Auto ConditionalFormList Property BagOfHoldingItemFLST AutoLeveledItem Property BagOfHoldingLVLI AutoLeveledItem Property GetGameLoadedLVLI AutoMessage Property BagOfHoldingDeliveryMESG AutoMessage Property BagOfHoldingSpoilerOptMESG AutoMessage Property BagOfHoldingSpoilerMESG AutoObjectReference Property BagOfHoldingREF AutoObjectReference Property dunAnsilvundSummonSwordMarker AutoObjectReference Property QASmokeXMarkerREF AutoObjectReference Property MapMarkerAnsilvundREF AutoQuest Property DunAnsilvundQST AutoSoulGem Property SoulGemGrandFilled AutoEvent OnInit() RegisterForSingleUpdate(1)EndEventEvent OnUpdate() If GetGameLoaded(GetGameLoadedLVLI, DecapitatedHead, BagOfHoldingREF) While bUpdate != (fVersion < 1.15) bUpdate = !bUpdate If bUpdate fVersion = 1.15 BagOfHoldingREF.RemoveItem(BagOfHoldingItemFLST, BagOfHoldingREF.GetItemCount(BagOfHoldingItemFLST)) Player.RemoveItem(BagOfHoldingARMO, Player.GetItemCount(BagOfHoldingARMO) - 1, True) If DunAnsilvundQST.IsCompleted() If !Player.GetItemCount(BagOfHoldingARMO) Player.AddItem(BagOfHoldingARMO, 1) EndIf EndIf ElseIf !Player.GetItemCount(BagOfHoldingARMO) If Game.IsMenuControlsEnabled() Int iButton = BagOfHoldingDeliveryMESG.Show() If (iButton == 0) ; Quest reward If !BagOfHoldingREF.GetItemCount(SoulGemGrandFilled) BagOfHoldingREF.AddItem(BagOfHoldingLVLI) EndIf BagOfHoldingREF.BlockActivation() iButton = BagOfHoldingSpoilerOptMESG.Show() If (iButton == 0) ; Yes iButton = BagOfHoldingSpoilerMESG.Show() If (iButton == 0) MapMarkerAnsilvundREF.AddToMap() EndIf EndIf ElseIf (iButton == 1) ; Immediate gratification Player.AddItem(BagOfHoldingARMO, 1) EndIf EndIf EndIf EndWhile RegisterForSingleUpdate(30) If BagOfHoldingREF.IsDisabled() If !Player.GetItemCount(BagOfHoldingARMO) If BagOfHoldingREF.GetParentCell() == QASmokeXMarkerREF.GetParentCell() Player.AddItem(BagOfHoldingARMO, 1, True) EndIf EndIf EndIf EndIfEndEventBool Function GetGameLoaded(LeveledItem akLeveledItem = None, Form apItem = None, ObjectReference akContainer = None) akContainer.AddItem(akLeveledItem, 1, True) If akContainer.GetItemCount(apItem) akContainer.RemoveItem(apItem, akContainer.GetItemCount(apItem), True) Return False Else akLeveledItem.AddForm(apItem, 1, 1) Return True EndIfEndFunction
ScriptName BagOfHoldingArmorScript extends ObjectReferenceActor Property Player AutoArmor Property BagOfHoldingARMO AutoArmor Property DecapitatedHead AutoBagOfHoldingContainerScript Property BagScript AutoObjectReference Property BagOfHoldingREF AutoEvent OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer) If akNewContainer If akOldContainer == Player If !akNewContainer == BagOfHoldingREF RemoveItem(BagOfHoldingARMO, 1, True, Player) EndIf EndIf Else SetScale(0) BagOfHoldingREF.MoveTo(Self) If BagOfHoldingREF.IsDisabled() BagOfHoldingREF.Enable() EndIf Disable() Delete() EndIfEndEventEvent OnEquipped(Actor akActor) If akActor == Player Game.DisablePlayerControls(False, False, False, False, False, True) Player.UnequipItem(BagOfHoldingARMO, False, True) BagOfHoldingREF.AddItem(DecapitatedHead) If BagScript.iAccessMode == 2 BagOfHoldingREF.BlockActivation(False) ElseIf Player.IsSneaking() BagOfHoldingREF.BlockActivation(!BagScript.iAccessMode As Bool) Else BagOfHoldingREF.BlockActivation(BagScript.iAccessMode As Bool) EndIf Game.EnablePlayerControls(False, False, False, False, False, True) BagOfHoldingREF.Activate(Player) EndIfEndEvent
ScriptName BagOfHoldingContainerScript extends ObjectReference ConditionalBool bMessage = FalseBool bShownOnce = FalseBool bVar = FalseForm FormVar = NoneFormList FormListVar = NoneInt iVar = 0Actor Property Player AutoArmor Property BagOfHoldingARMO AutoArmor Property DecapitatedHead AutoBool Property bMenu Auto ConditionalBool Property bSorting = False Auto ConditionalBool Property bSortingItems Auto ConditionalBool Property bTesting = True Auto ConditionalEffectShader Property GhostFXShader AutoFormList Property BagOfHoldingCategoryFLST AutoFormList Property BagOfHoldingItemFLST AutoFormList Property BagOfHoldingSortApparelAllFLST AutoFormList Property BagOfHoldingSortApparelFLST AutoFormList Property BagOfHoldingSortArcheryFLST AutoFormList Property BagOfHoldingSortArmorFLST AutoFormList Property BagOfHoldingSortArrowsFLST AutoFormList Property BagOfHoldingSortBookFLST AutoFormList Property BagOfHoldingSortBooksFLST AutoFormList Property BagOfHoldingSortBowsFLST AutoFormList Property BagOfHoldingSortClothingFLST AutoFormList Property BagOfHoldingSortClutterFLST AutoFormList Property BagOfHoldingSortFoodFLST AutoFormList Property BagOfHoldingSortGemsFLST AutoFormList Property BagOfHoldingSortHeavyArmorFLST AutoFormList Property BagOfHoldingSortIngredientsFLST AutoFormList Property BagOfHoldingSortJewelryFLST AutoFormList Property BagOfHoldingSortKeysFLST AutoFormList Property BagOfHoldingSortLightArmorFLST AutoFormList Property BagOfHoldingSortMiscFLST AutoFormList Property BagOfHoldingSortNotesFLST AutoFormList Property BagOfHoldingSortOneHandedFLST AutoFormList Property BagOfHoldingSortPoisonFLST AutoFormList Property BagOfHoldingSortPotionFLST AutoFormList Property BagOfHoldingSortPotionAndPoisonFLST AutoFormList Property BagOfHoldingSortScrollsFLST AutoFormList Property BagOfHoldingSortShieldsFLST AutoFormList Property BagOfHoldingSortSkillBooksFLST AutoFormList Property BagOfHoldingSortSmithingFLST AutoFormList Property BagOfHoldingSortSoulGemsFLST AutoFormList Property BagOfHoldingSortSpellTomesFLST AutoFormList Property BagOfHoldingSortStavesFLST AutoFormList Property BagOfHoldingSortTwoHandedFLST AutoFormList Property BagOfHoldingSortWeaponsAllFLST AutoFormList Property BagOfHoldingSortWeaponsFLST AutoInt Property iAccessMode Auto ConditionalKeyword Property BagOfHoldingItemKYWD AutoLeveledItem Property BagOfHoldingLVLI AutoMessage Property BagOfHoldingConfirmationMESG AutoMessage Property BagOfHoldingDeliveryMESG AutoMessage Property BagOfHoldingDefaultActivationMESG AutoMessage Property BagOfHoldingGrabMESG AutoMessage Property BagOfHoldingMainMenuMESG AutoMessage Property BagOfHoldingOptionsMESG AutoMessage Property BagOfHoldingTestingMESG AutoMessage Property BagOfHoldingSortApparelMESG AutoMessage Property BagOfHoldingSortArcheryMESG AutoMessage Property BagOfHoldingSortArmorMESG AutoMessage Property BagOfHoldingSortBookMESG AutoMessage Property BagOfHoldingSortBooksMESG AutoMessage Property BagOfHoldingSortClothingMESG AutoMessage Property BagOfHoldingSortClutterMESG AutoMessage Property BagOfHoldingSortFoodMESG AutoMessage Property BagOfHoldingSortGemsMESG AutoMessage Property BagOfHoldingSortHeavyArmorMESG AutoMessage Property BagOfHoldingSortIngredientsMESG AutoMessage Property BagOfHoldingSortJewelryMESG AutoMessage Property BagOfHoldingSortKeysMESG AutoMessage Property BagOfHoldingSortLightArmorMESG AutoMessage Property BagOfHoldingSortMiscMESG AutoMessage Property BagOfHoldingSortNotesMESG AutoMessage Property BagOfHoldingSortOneHandedMESG AutoMessage Property BagOfHoldingSortPotionsMESG AutoMessage Property BagOfHoldingSortScrollsMESG AutoMessage Property BagOfHoldingSortShieldsMESG AutoMessage Property BagOfHoldingSortSkillBooksMESG AutoMessage Property BagOfHoldingSortSmithingMESG AutoMessage Property BagOfHoldingSortSoulGemsMESG AutoMessage Property BagOfHoldingSortSpellTomesMESG AutoMessage Property BagOfHoldingSortStavesMESG AutoMessage Property BagOfHoldingSortTwoHandedMESG AutoMessage Property BagOfHoldingSortWeaponsMESG AutoMessage Property BagOfHoldingSortingMESG AutoMessage Property BagOfHoldingSpoilerMESG AutoMessage Property BagOfHoldingSpoilerOptMESG AutoObjectReference Property MapMarkerAnsilvundREF AutoEvent OnLoad() bMessage = 1 GhostFXShader.Play(Self) BlockActivation()EndEventEvent OnUnload() If IsDisabled() If Player.GetItemCount(BagOfHoldingARMO) MoveToMyEditorLocation() EndIf EndIfEndEventEvent OnGrab() bMessage = 1 BlockActivation()EndEventEvent OnActivate(ObjectReference akActionRef) If akActionRef == Player If Player.GetItemCount(BagOfHoldingARMO) If iAccessMode == 2 If !bMenu Menu() EndIf ElseIf IsActivationBlocked() != iAccessMode As Bool If !iAccessMode If !bMenu Menu() EndIf Utility.Wait(0.1) BlockActivation(False) EndIf ElseIf IsActivationBlocked() If !bMenu Menu() EndIf EndIf ElseIf bMessage If !bMenu Menu() EndIf EndIf EndIfEndEventEvent OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) If !BagOfHoldingItemFLST.HasForm(akBaseItem) Return ElseIf akBaseItem == BagOfHoldingARMO Player.RemoveItem(BagOfHoldingARMO, Player.GetItemCount(BagOfHoldingARMO), True) RemoveItem(BagOfHoldingARMO, 1, True, Player) If bMenu == False Menu() EndIf ElseIf akBaseItem == DecapitatedHead RemoveItem(DecapitatedHead) If bSortingItems iVar = 9 While (iVar > 0) FormListVar = BagOfHoldingCategoryFLST.GetAt(iVar) As FormList FormVar = BagOfHoldingItemFLST.GetAt(iVar) As Form If GetItemCount(FormVar) As Bool != (GetItemCount(FormListVar) || Player.GetItemCount(FormListVar)) As Bool If GetItemCount(FormVar) RemoveItem(FormVar, GetItemCount(FormVar)) Else AddItem(FormVar) EndIf EndIf iVar -= 1 EndWhile EndIf EndIfEndEventEvent OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) If !akBaseItem.HasKeyword(BagOfHoldingItemKYWD) Return ElseIf Player.GetItemCount(BagOfHoldingItemFLST) > 2 Player.RemoveItem(akBaseItem, akDestContainer.GetItemCount(akBaseItem), True) If !Player.GetItemCount(BagOfHoldingARMO) akDestContainer.AddItem(BagOfHoldingARMO, 1, True) EndIf Else Player.RemoveItem(akBaseItem, 1, True, Self) If !bSorting iVar = 1 While akBaseItem != BagOfHoldingItemFLST.GetAt(iVar) iVar += 1 EndWhile Menu(iVar) EndIf EndIfEndEventFunction Menu(Int aiMessage = 0, Int aiButton = 0) bMenu = True While bMenu If bSorting ElseIf (aiButton == -1) ElseIf (aiMessage == -3) ; Sorting aiButton = BagOfHoldingSortingMESG.Show() If (aiButton == 9) ; Back aiMessage = 0 Else aiMessage = aiButton + 1 EndIf ElseIf (aiMessage == -2) ; Testing aiButton = BagOfHoldingTestingMESG.Show() If (aiButton == 9) ; Back aiMessage = -1 Else TestList(BagOfHoldingCategoryFLST.GetAt(aiButton + 1) As FormList, GetItemCount(BagOfHoldingCategoryFLST.GetAt(aiButton + 1) As FormList) As Bool) EndIf ElseIf (aiMessage == -1) ; Options aiButton = BagOfHoldingOptionsMESG.Show() If (aiButton == 0) ; Default Access Mode aiButton = BagOfHoldingDefaultActivationMESG.Show() iAccessMode = aiButton ElseIf (aiButton < 3) ; Sorting Items On/Off RemoveItem(BagOfHoldingItemFLST, GetItemCount(BagOfHoldingItemFLST)) If (aiButton == 1) ; On bSortingItems = True ElseIf (aiButton == 2) ; Off bSortingItems = False EndIf AddItem(DecapitatedHead) ElseIf (aiButton == 3) ; Delivery/Find the bag aiButton = BagOfHoldingDeliveryMESG.Show() If (aiButton == 2) aiButton = BagOfHoldingConfirmationMESG.Show() If (aiButton == 0) ; Yes bMenu = False RemoveItem(BagOfHoldingItemFLST, GetItemCount(BagOfHoldingItemFLST)) RemoveAllItems(Player, True, True) Player.RemoveItem(BagOfHoldingARMO, Player.GetItemCount(BagOfHoldingARMO), True) BlockActivation() aiButton = BagOfHoldingSpoilerOptMESG.Show() If (aiButton == 0) ; Yes aiButton = BagOfHoldingSpoilerMESG.Show() If (aiButton == 0) MapMarkerAnsilvundREF.AddToMap() EndIf EndIf Utility.Wait(0.1) RemoveAllItems(Player, True, True) AddItem(BagOfHoldingLVLI) EndIf EndIf; ElseIf (aiButton == 4) ; ; ElseIf (aiButton == 5) ; ; ElseIf (aiButton == 6) ; ElseIf (aiButton == 7) ; Testing aiMessage = -2 ElseIf (aiButton == 8) ; Back aiMessage = 0 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 0) ; Main Menu aiButton = BagOfHoldingMainMenuMESG.Show() If (aiButton == 0) ; Access BlockActivation(False) If !Player.GetItemCount(BagOfHoldingARMO) bMessage = 0 If !bShownOnce bShownOnce = 1 BagOfHoldingGrabMESG.Show() EndIf BlockActivation(False) EndIf Activate(Player) Utility.WaitMenuMode(0.1) bMenu = False ElseIf (aiButton == 1) ; Sort aiMessage = -3 ElseIf (aiButton == 2) ; Take Disable() bMessage = 1 Player.AddItem(BagOfHoldingARMO, 1) BlockActivation(iAccessMode As Bool) bMenu = False; ElseIf (aiButton == 3) ; ; ElseIf (aiButton == 4) ; ; ElseIf (aiButton == 5) ; ; ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Options aiMessage = -1 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 1) ; Weapons aiButton = BagOfHoldingSortWeaponsMESG.Show() If (aiButton < 2) ; All Sort(BagOfHoldingSortWeaponsFLST, aiButton As Bool, 1, aiButton As Bool) ElseIf (aiButton == 2) ; Archery aiButton = BagOfHoldingSortArcheryMESG.Show() If (aiButton < 2) ; All Sort(BagOfHoldingSortArcheryFLST, aiButton As Bool, 1, aiButton As Bool) ElseIf (aiButton == 2) ; Take Bows Sort(BagOfHoldingSortBowsFLST, False, 1) ElseIf (aiButton == 3) ; Stash Bows Sort(BagOfHoldingSortBowsFLST, True, 1, True) ElseIf (aiButton == 4) ; Take Arrows Sort(BagOfHoldingSortArrowsFLST, False, 1) ElseIf (aiButton == 5) ; Stash Arrows Sort(BagOfHoldingSortArrowsFLST, True, 1, True); ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiButton == 3) ; One Handed aiButton = BagOfHoldingSortOneHandedMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortOneHandedFLST, aiButton As Bool, 1) EndIf ElseIf (aiButton == 4) ; Two Handed aiButton = BagOfHoldingSortTwoHandedMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortTwoHandedFLST, aiButton As Bool, 1) EndIf ElseIf (aiButton == 5) ; Staves aiButton = BagOfHoldingSortStavesMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortStavesFLST, aiButton As Bool, 1) EndIf; ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 2) ; Apparel aiButton = BagOfHoldingSortApparelMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortApparelFLST, aiButton As Bool, 2, aiButton As Bool) ElseIf (aiButton == 2) ; Armor aiButton = BagOfHoldingSortArmorMESG.Show() If (aiButton < 2) ; All Sort(BagOfHoldingSortArmorFLST, aiButton As Bool, 2) ElseIf (aiButton == 2) ; Light Armor aiButton = BagOfHoldingSortLightArmorMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortLightArmorFLST, aiButton As Bool, 2) EndIf ElseIf (aiButton == 3) ; Heavy Armor aiButton = BagOfHoldingSortHeavyArmorMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortHeavyArmorFLST, aiButton As Bool, 2) EndIf ElseIf (aiButton == 4) ; Shields aiButton = BagOfHoldingSortShieldsMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortShieldsFLST, aiButton As Bool, 2) EndIf EndIf ElseIf (aiButton == 3) ; Clothing aiButton = BagOfHoldingSortClothingMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortClothingFLST, aiButton As Bool, 2) EndIf ElseIf (aiButton == 4) ; Jewelry aiButton = BagOfHoldingSortJewelryMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortJewelryFLST, aiButton As Bool, 2) EndIf; ElseIf (aiButton == 5) ; ; ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 3) ; Potions aiButton = BagOfHoldingSortPotionsMESG.Show() If (aiButton < 2) ; Take/Stash All Sort(BagOfHoldingSortPotionAndPoisonFLST, aiButton As Bool) ElseIf (aiButton == 2) ; Take Potions Sort(BagOfHoldingSortPotionFLST) ElseIf (aiButton == 3) ; Stash Potions Sort(BagOfHoldingSortPotionFLST, True) ElseIf (aiButton == 4) ; Take Potions Sort(BagOfHoldingSortPoisonFLST) ElseIf (aiButton == 5) ; Stash Poisons Sort(BagOfHoldingSortPoisonFLST, True); ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 4) ; Scrolls aiButton = BagOfHoldingSortScrollsMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortScrollsFLST, aiButton As Bool); ElseIf (aiButton == 2) ; ; ElseIf (aiButton == 3) ; ; ElseIf (aiButton == 4) ; ; ElseIf (aiButton == 5) ; ; ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 5) ; Food aiButton = BagOfHoldingSortFoodMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortFoodFLST, aiButton As Bool); ElseIf (aiButton == 2) ; ; ElseIf (aiButton == 3) ; ; ElseIf (aiButton == 4) ; ; ElseIf (aiButton == 5) ; ; ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 6) ; Ingredients aiButton = BagOfHoldingSortIngredientsMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortIngredientsFLST, aiButton As Bool); ElseIf (aiButton == 2) ; ; ElseIf (aiButton == 3) ; ; ElseIf (aiButton == 4) ; ; ElseIf (aiButton == 5) ; ; ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 7) ; Books aiButton = BagOfHoldingSortBooksMESG.Show() If (aiButton < 2) ; All Sort(BagOfHoldingSortBooksFLST, aiButton As Bool) ElseIf (aiButton == 2) ; Books aiButton = BagOfHoldingSortBookMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortBookFLST, aiButton As Bool) EndIf ElseIf (aiButton == 3) ; Notes aiButton = BagOfHoldingSortNotesMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortNotesFLST, aiButton As Bool) EndIf ElseIf (aiButton == 4) ; Skill Books aiButton = BagOfHoldingSortSkillBooksMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortSkillBooksFLST, aiButton As Bool) EndIf ElseIf (aiButton == 5) ; Spell Tomes aiButton = BagOfHoldingSortSpellTomesMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortSpellTomesFLST, aiButton As Bool) EndIf; ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 8) ; Keys aiButton = BagOfHoldingSortKeysMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortKeysFLST, aiButton As Bool); ElseIf (aiButton == 2) ; ; ElseIf (aiButton == 3) ; ; ElseIf (aiButton == 4) ; ; ElseIf (aiButton == 5) ; ; ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf ElseIf (aiMessage == 9) ; Misc aiButton = BagOfHoldingSortMiscMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortMiscFLST, aiButton As Bool) ElseIf (aiButton == 2) ; Clutter aiButton = BagOfHoldingSortClutterMESG.Show() If (aiButton < 2) ; Sort(BagOfHoldingSortClutterFLST, aiButton As Bool) EndIf ElseIf (aiButton == 3) ; Gems aiButton = BagOfHoldingSortGemsMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortGemsFLST, aiButton As Bool) EndIf ElseIf (aiButton == 4) ; Soul Gems aiButton = BagOfHoldingSortSoulGemsMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortSoulGemsFLST, aiButton As Bool) EndIf ElseIf (aiButton == 5) ; Smiting Goods aiButton = BagOfHoldingSortSmithingMESG.Show() If (aiButton < 2) Sort(BagOfHoldingSortSmithingFLST, aiButton As Bool) EndIf; ElseIf (aiButton == 5) ; ; ElseIf (aiButton == 6) ; ; ElseIf (aiButton == 7) ; ElseIf (aiButton == 8) ; Back aiMessage = -3 ElseIf (aiButton == 9) ; Done bMenu = False EndIf EndIf EndWhileEndFunctionFunction Sort(FormList akCurrentList = None, Bool abStashing = False, Int aiMode = 0, Bool abStashingAll = False, ObjectReference akDonor = None, ObjectReference akRecipient = None, Form akCurrentForm = None, Int aiListIndex = 0, Int aiListOfListsIndex = 0) bSorting = True If abStashing akDonor = Player akRecipient = Self If aiMode If !Player.IsEquipped(akCurrentList) aiMode = 0 EndIf EndIf Else aiMode = 0 akDonor = Self akRecipient = Player EndIf If (aiMode == 0); Normal sorting akDonor.RemoveItem(akCurrentList, akDonor.GetItemCount(akCurrentList), True, akRecipient) ElseIf (aiMode == 1) ; Weapon sorting If abStashingAll aiListOfListsIndex = (BagOfHoldingSortWeaponsAllFLST.GetSize() - 1) While (aiListOfListsIndex > -1) akCurrentList = BagOfHoldingSortWeaponsAllFLST.GetAt(aiListOfListsIndex) As FormList If Player.GetItemCount(akCurrentList) If Player.IsEquipped(akCurrentList) aiListIndex = (akCurrentList.GetSize() - 1) While (aiListIndex > -1) akCurrentForm = akCurrentList.GetAt(aiListIndex) As Weapon If Player.IsEquipped(akCurrentForm) If Player.GetEquippedWeapon() == akCurrentForm If Player.GetEquippedWeapon(True) == akCurrentForm Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm) - 2, True, Self) EndIf ElseIf Player.GetEquippedWeapon(True) == akCurrentForm Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm) - 1, True, Self) EndIf Else Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm), True, Self) EndIf If Player.GetItemCount(akCurrentList) aiListIndex -= 1 Else aiListIndex = -1 EndIf EndWhile aiListOfListsIndex -= 1 Else Player.RemoveItem(akCurrentList, Player.GetItemCount(akCurrentList), True, Self) aiListOfListsIndex -= 1 EndIf Else aiListOfListsIndex -= 1 EndIf EndWhile Else aiListIndex = (akCurrentList.GetSize() - 1) While (aiListIndex > -1) akCurrentForm = akCurrentList.GetAt(aiListIndex) As Weapon If Player.IsEquipped(akCurrentForm) If Player.GetEquippedWeapon() == akCurrentForm If Player.GetEquippedWeapon(True) == akCurrentForm Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm) - 2, True, Self) EndIf ElseIf Player.GetEquippedWeapon(True) == akCurrentForm Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm) - 1, True, Self) EndIf Else Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm), True, Self) EndIf If Player.GetItemCount(akCurrentList) aiListIndex -= 1 Else aiListIndex = -1 EndIf EndWhile EndIf ElseIf (aiMode == 2) ; Apparel sorting If abStashingAll aiListOfListsIndex = (BagOfHoldingSortApparelAllFLST.GetSize() - 1) While (aiListOfListsIndex > -1) akCurrentList = BagOfHoldingSortWeaponsAllFLST.GetAt(aiListOfListsIndex) As FormList If Player.GetItemCount(akCurrentList) If Player.IsEquipped(akCurrentList) aiListIndex = (akCurrentList.GetSize() - 1) While (aiListIndex > -1) akCurrentForm = akCurrentList.GetAt(aiListIndex) As Armor If Player.IsEquipped(akCurrentForm) Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm) - 1, True, Self) Else Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm), True, Self) EndIf If Player.GetItemCount(akCurrentList) aiListIndex -= 1 Else aiListIndex = -1 EndIf EndWhile aiListOfListsIndex -= 1 Else Player.RemoveItem(akCurrentList, Player.GetItemCount(akCurrentList), True, Self) aiListOfListsIndex -= 1 EndIf Else aiListOfListsIndex -= 1 EndIf EndWhile Else aiListIndex = (akCurrentList.GetSize() - 1) While (aiListIndex > -1) akCurrentForm = akCurrentList.GetAt(aiListIndex) As Armor If Player.IsEquipped(akCurrentForm) Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm) - 1, True, Self) Else Player.RemoveItem(akCurrentForm, Player.GetItemCount(akCurrentForm), True, Self) EndIf If Player.GetItemCount(akCurrentList) aiListIndex -= 1 Else aiListIndex = -1 EndIf EndWhile EndIf EndIf AddItem(DecapitatedHead) Player.AddItem(DecapitatedHead, 1, True) Player.RemoveItem(DecapitatedHead, 1, True) Debug.Notification("Sorting done.") bSorting = FalseEndFunctionFunction TestList(FormList akList = None, Bool abRemove = False, Int aiIndex = 0, Form akForm = None) aiIndex = akList.GetSize() - 1 While (aiIndex > -1) akForm = akList.GetAt(aiIndex) As Form If abRemove RemoveItem(akList, aiIndex) AddItem(DecapitatedHead) aiIndex = -1 Else AddItem(akForm) aiIndex -= 1 EndIf EndWhile Debug.Notification("List added/removed")EndFunction 


This mod so far has used no 3D modeling skills and that could be changed

Glad I made this thread, sounds like theres alot of cool stuff in the works



1. Shift + F is also useful for re-adjusting the cameras rotation to rotate around an object
2. Beware about using ice and falmer pieces, their shaders don’t show up in sandbox and otherwise they look the same (but arent!)
3. Shift + Q - I use this one a lot, and do remember to have snapping turned on. Can also be useful to use this when going off the grid and you find even the small increments are off so you want a bit of adjustment as to where the object moves
4. Markers can interfere when placing navmesh points, so turn those off with M when creating the navmesh
4. Markers can interfere when placing navmesh points, so turn those off with M when creating the navmesh