; ===================================================================================================================== [ItemList] ; ===================================================================================================================== quantityMenu.minCount = 6 ; Number of items required to trigger quantity dialog. 0 is disabled
and I changed default sorting after opening an item container from "name" to "value/weight".
If you switch to another tab (weapons, apparel), it still has the default sorting by name, you can change it by going into "; ITEM VIEWS" section and changing "...primaryColumn = " to desired option from <the list>.
I am trying to set the favorites menu to sort by type, do you happen to know how that could work? The mod seems to cover everything except that menu (which has several screens/tabs in it)
I have tried the new SE mod for a bit, and realise I actually like this oldrim mod more so am back to using this for my SE setup. Reason: The SE mod makes the columns smaller which I feel makes them harder to read, and it sorts primarily by equipped/unequipped, while this oldrim mod sorts primarily by item type which I personally find more logical. The only clear advantage of the SE mod is that it sorts active effects by "time left" which this oldrim mod does not.
So use whichever you prefer, but I continue to recommend this oldrim mod, even for Skyrim SE.
Hi! Could be possible to default sort the items by type, but uspide down (green arrow pointing down)? In this way one could pick up money and arrows really fast! Thank you!
For future readers: I can confirm this mod works like a charm in SSE. After all it is just a config txt file, I would expect that. BUT: it is also great and awesome and renders all other scripted and esp plugin based stuff unnecessary!
Since I also use Dear Diary (https://www.nexusmods.com/skyrimspecialedition/mods/23010), I can additionally confirm both do not work together out of the box, some minor tweaking would be necessary. Like this:
If you use MO2 (which you should, trust me), you will instantly realize that both this mod and Dear Diary modify the same file:
/interface/skyui/config.txt.
They are largely identical, but still need to be merged so you can make use of both.
Find and open config.txt of this mod in a text editor ( I fully recommend Notepad++) and open it. Then open config.txt of Dear Diary. Find line 25 in both files, you'll see the first difference."itemcard.xOffset = -35" Copy & paste line 25 from Dear Diary config to this mod's config. Do the same for lines 44-49
Save the adjusted file to anywhere on your desktop, name it "config.txt" Install an empty mod in MO2, create the folder path "interface/skyui" and drop your adjusted "config.txt" from Desktop into the newly created folder "skyui". Move the newly created mod in the left pane below this mod and Dear Diary and enjoy the best of both worlds ;-)
And do NOT forget to endorse both this mod and Dear Diary, both are legitimate awesome tweaks for Skyrim!
The tweak is great. The only annoyance is when you start getting rid of items in the inventory, it'll change the positions of the listed items. I dunno how to explain it better: for instance I've got 4 types of gems (3 amethyts, 3 rubies, 3 flawless rubies, 2 diamonds). If I start selling amethysts, it'll suddenly list flawless amethysts on top after the first sold amethyst, which is pretty annoying. <<<This is just a rough explanation, not an ACTUAL example. Something like a "lock" feature for this tweak would be amazing. But I guess it's coded inside SkyUI, so you can't just simply change config.txt to do that.
I'm sorry if I didn't explain myself well enough, I'm tired as hell and it's 5 am here.
Yeah, I've seen this happen, it's native SkyUI bug/behavior, it has nothing to do with the tweak, but I'll look into it, maybe it can be fixed in some way.
That would be hot, if it is fixable. It mostly affects me in the smelter menu. I'll be melting down all kind of junk, then it'll suddenly jump to something else that I really, really do not want to deconstruct. I've learned to make a savegame any time I use the smelter, and to do my smelting stuff much slower and more carefully than I would like to have to.
52 comments
For those who want sorting by Value/weight by default:
Create empty "config.txt" inside "Data/interface/skyui/"
Put this text file inside:
https://pastebin.com/ZV9e9qZt
or (the same LONG text under spoiler)
; =====================================================================================================================
[Input]
; =====================================================================================================================
controls.pc.search = 57 ; SPACE
controls.pc.switchTab = 56 ; ALT
controls.pc.equipMode = 42 ; LSHIFT
controls.gamepad.switchTab = 271 ; BACK
controls.gamepad.prevColumn = 274 ; LEFT_SHOULDER
controls.gamepad.nextColumn = 275 ; RIGHT_SHOULDER
controls.gamepad.sortOrder = 272 ; LEFT_THUMB
; =====================================================================================================================
[SearchBox]
; =====================================================================================================================
autoupdate.enable = true
autoupdate.delay = 0
; =====================================================================================================================
[ItemInfo]
; =====================================================================================================================
itemcard.align = center
itemcard.xOffset = 0
itemcard.yOffset = 0
; =====================================================================================================================
[ItemList]
; =====================================================================================================================
quantityMenu.minCount = 6 ; Number of items required to trigger quantity dialog. 0 is disabled
; =====================================================================================================================
[Appearance]
; =====================================================================================================================
icons.category.source = 'skyui/icons_category_psychosteve.swf'
icons.item.source = 'skyui/icons_item_psychosteve.swf'
icons.item.noColor = false
icons.item.showStolen = true
colors.text.enabled = 0xffffff
colors.stolen.enabled = 0xffffff
colors.negative.enabled = 0xff0000
colors.text.disabled = 0x4c4c4c
colors.stolen.disabled = 0x4c4c4c
colors.negative.disabled = 0x800000
; =====================================================================================================================
[ListLayout]
; =====================================================================================================================
vars.a_textBorder.value = <0, 0, 1.1, 0> ; left right top bottom
vars.n_iconSize.value = 18
defaults.entryWidth = 530
; Default text format defaults -------------------------------------------------------
defaults.entry.textFormat.font = '$EverywhereMediumFont'
defaults.entry.textFormat.align = right
defaults.entry.textFormat.bold = false
defaults.entry.textFormat.italic = false
defaults.entry.textFormat.underline = false
defaults.entry.textFormat.size = 14
defaults.entry.textFormat.letterSpacing = 0.8
defaults.entry.textFormat.kerning = false
defaults.entry.textFormat.leftMargin = 0
defaults.entry.textFormat.rightMargin = 0
defaults.entry.textFormat.indent = 0
defaults.entry.textFormat.leading = 0
defaults.label.textFormat.font = '$EverywhereMediumFont'
defaults.label.textFormat.align = right
defaults.label.textFormat.bold = false
defaults.label.textFormat.italic = false
defaults.label.textFormat.underline = false
defaults.label.textFormat.size = 12
defaults.label.textFormat.letterSpacing = 0.8
defaults.label.textFormat.kerning = false
defaults.label.textFormat.leftMargin = 0
defaults.label.textFormat.rightMargin = 0
defaults.label.textFormat.indent = 0
defaults.label.textFormat.leading = 0
; ICONS -------------------------------------------------------
columns.equipColumn.type = EQUIP_ICON
columns.equipColumn.passive = true
columns.equipColumn.states = 1
columns.equipColumn.indent = -28
columns.equipColumn.icon.size = n_iconSize
columns.equipColumn.border = <0, 10, 3, 3> ; left right top bottom
columns.equipColumn.state1.label.text = ' '
columns.iconColumn.type = ITEM_ICON
columns.iconColumn.states = 2
columns.iconColumn.icon.size = n_iconSize
columns.iconColumn.border = <0, 3, 3, 3> ; left right top bottom
columns.iconColumn.state1.label.text = ' '
columns.iconColumn.state1.sortAttributes = <type, formType, subType, weightClass, material, infoDamage, infoArmor, infoSchoolName, actorValue, resistance, skillLevel, magnitude, duration, isRead, text>
columns.iconColumn.state1.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}, {ASCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.iconColumn.state2.label.text = ' '
columns.iconColumn.state2.label.arrowDown = true
columns.iconColumn.state2.sortAttributes = <type, formType, subType, weightClass, material, infoDamage, infoArmor, infoSchoolName, actorValue, resistance, skillLevel, magnitude, duration, isRead, text>
columns.iconColumn.state2.sortOptions = <{DESCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {DESCENDING | CASEINSENSITIVE}, {DESCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {ASCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {DESCENDING | CASEINSENSITIVE}>
; ITEM NAME COLUMN -------------------------------------------------------
columns.itemNameColumn.type = NAME
columns.itemNameColumn.name = '$NAME'
columns.itemNameColumn.states = 4
columns.itemNameColumn.weight = 1.0
columns.itemNameColumn.border = a_textBorder
columns.itemNameColumn.label.textFormat.align = left
columns.itemNameColumn.state1.label.text = '$NAME'
columns.itemNameColumn.state1.entry.text = @text
columns.itemNameColumn.state1.sortOptions = {ASCENDING | CASEINSENSITIVE}
columns.itemNameColumn.state2.label.text = '$EQUIPPED'
columns.itemNameColumn.state2.entry.text = @text
columns.itemNameColumn.state2.sortAttributes = <isEquipped, equipState, text>
columns.itemNameColumn.state2.sortOptions = <{DESCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.itemNameColumn.state2.playerOnly = true
columns.itemNameColumn.state3.label.text = '$STOLEN'
columns.itemNameColumn.state3.entry.text = @text
columns.itemNameColumn.state3.sortAttributes = <isStolen, text>
columns.itemNameColumn.state3.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.itemNameColumn.state3.playerOnly = true
columns.itemNameColumn.state4.label.text = '$ENCHANTED'
columns.itemNameColumn.state4.entry.text = @text
columns.itemNameColumn.state4.sortAttributes = <isEnchanted, text>
columns.itemNameColumn.state4.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; ARMOR RATING COLUMN -------------------------------------------------------
columns.arColumn.type = TEXT
columns.arColumn.name = '$ARMOR'
columns.arColumn.states = 2
columns.arColumn.width = 0.09
columns.arColumn.border = a_textBorder
columns.arColumn.state1.label.text = '$ARM'
columns.arColumn.state1.label.arrowDown = true
columns.arColumn.state1.entry.text = @infoArmor
columns.arColumn.state1.sortAttributes = <infoArmor, text>
columns.arColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.arColumn.state2.label.text = '$ARM'
columns.arColumn.state2.entry.text = @infoArmor
columns.arColumn.state2.sortAttributes = <infoArmor, text>
columns.arColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; SUBTYPE COLUMN -------------------------------------------------------
columns.subTypeColumn.type = TEXT
columns.subTypeColumn.name = '$TYPE'
columns.subTypeColumn.states = 2
columns.subTypeColumn.width = 0.15
columns.subTypeColumn.border = a_textBorder
columns.subTypeColumn.state1.label.text = '$TYPE'
columns.subTypeColumn.state1.entry.text = @subTypeDisplay
columns.subTypeColumn.state1.sortAttributes = <subTypeDisplay, text>
columns.subTypeColumn.state1.sortOptions = <{ASCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
columns.subTypeColumn.state2.label.text = '$TYPE'
columns.subTypeColumn.state2.entry.text = @subTypeDisplay
columns.subTypeColumn.state2.label.arrowDown = true
columns.subTypeColumn.state2.sortAttributes = <subTypeDisplay, text>
columns.subTypeColumn.state2.sortOptions = <{DESCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
; MATERIAL COLUMN -------------------------------------------------------
columns.materialColumn.type = TEXT
columns.materialColumn.name = '$MATERIAL'
columns.materialColumn.states = 2
columns.materialColumn.width = 0.10
columns.materialColumn.border = a_textBorder
columns.materialColumn.hidden = true
columns.materialColumn.state1.label.text = '$MAT'
columns.materialColumn.state1.entry.text = @materialDisplay
columns.materialColumn.state1.sortAttributes = <materialDisplay, text>
columns.materialColumn.state1.sortOptions = <{ASCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
columns.materialColumn.state2.label.text = '$MAT'
columns.materialColumn.state2.entry.text = @materialDisplay
columns.materialColumn.state2.label.arrowDown = true
columns.materialColumn.state2.sortAttributes = <materialDisplay, text>
columns.materialColumn.state2.sortOptions = <{DESCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
; CLASS COLUMN -------------------------------------------------------
columns.classColumn.type = TEXT
columns.classColumn.name = '$CLASS'
columns.classColumn.states = 2
columns.classColumn.width = 0.10
columns.classColumn.border = a_textBorder
columns.classColumn.state1.label.text = '$CLASS'
columns.classColumn.state1.entry.text = @weightClassDisplay
columns.classColumn.state1.sortAttributes = <weightClassDisplay, text>
columns.classColumn.state1.sortOptions = <{ASCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
columns.classColumn.state2.label.text = '$CLASS'
columns.classColumn.state2.entry.text = @weightClassDisplay
columns.classColumn.state2.label.arrowDown = true
columns.classColumn.state2.sortAttributes = <weightClassDisplay, text>
columns.classColumn.state2.sortOptions = <{DESCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
; MAGNITUDE COLUMN -------------------------------------------------------
columns.magnitudeColumn.type = TEXT
columns.magnitudeColumn.name = '$MAGNITUDE'
columns.magnitudeColumn.states = 2
columns.magnitudeColumn.width = 0.09
columns.magnitudeColumn.border = a_textBorder
columns.magnitudeColumn.state1.label.text = '$MAG'
columns.magnitudeColumn.state1.label.arrowDown = true
columns.magnitudeColumn.state1.entry.text = @magnitude
columns.magnitudeColumn.state1.sortAttributes = <magnitude, text>
columns.magnitudeColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.magnitudeColumn.state2.label.text = '$MAG'
columns.magnitudeColumn.state2.entry.text = @magnitude
columns.magnitudeColumn.state2.sortAttributes = <magnitude, text>
columns.magnitudeColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; DURATION COLUMN -------------------------------------------------------
columns.durationColumn.type = TEXT
columns.durationColumn.name = '$TIME'
columns.durationColumn.states = 2
columns.durationColumn.width = 0.09
columns.durationColumn.border = a_textBorder
columns.durationColumn.state1.label.text = '$TIME'
columns.durationColumn.state1.label.arrowDown = true
columns.durationColumn.state1.entry.text = @duration
columns.durationColumn.state1.sortAttributes = <duration, text>
columns.durationColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.durationColumn.state2.label.text = '$TIME'
columns.durationColumn.state2.entry.text = @duration
columns.durationColumn.state2.sortAttributes = <duration, text>
columns.durationColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; MAGIC MAGNITUDE COLUMN -------------------------------------------------------
columns.magicMagnitudeColumn.type = TEXT
columns.magicMagnitudeColumn.name = '$MAGNITUDE'
columns.magicMagnitudeColumn.states = 2
columns.magicMagnitudeColumn.width = 0.15
columns.magicMagnitudeColumn.border = a_textBorder
columns.magicMagnitudeColumn.state1.label.text = '$MAG'
columns.magicMagnitudeColumn.state1.label.arrowDown = true
columns.magicMagnitudeColumn.state1.entry.text = @magnitude
columns.magicMagnitudeColumn.state1.sortAttributes = <magnitude, text>
columns.magicMagnitudeColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.magicMagnitudeColumn.state2.label.text = '$MAG'
columns.magicMagnitudeColumn.state2.entry.text = @magnitude
columns.magicMagnitudeColumn.state2.sortAttributes = <magnitude, text>
columns.magicMagnitudeColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; MAGIC DURATION COLUMN -------------------------------------------------------
columns.magicDurationColumn.type = TEXT
columns.magicDurationColumn.name = '$TIME'
columns.magicDurationColumn.states = 2
columns.magicDurationColumn.width = 0.15
columns.magicDurationColumn.border = a_textBorder
columns.magicDurationColumn.state1.label.text = '$TIME'
columns.magicDurationColumn.state1.label.arrowDown = true
columns.magicDurationColumn.state1.entry.text = @duration
columns.magicDurationColumn.state1.sortAttributes = <duration, text>
columns.magicDurationColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.magicDurationColumn.state2.label.text = '$TIME'
columns.magicDurationColumn.state2.entry.text = @duration
columns.magicDurationColumn.state2.sortAttributes = <duration, text>
columns.magicDurationColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; DAMAGE COLUMN -------------------------------------------------------
columns.damageColumn.type = TEXT
columns.damageColumn.name = '$DAMAGE'
columns.damageColumn.states = 2
columns.damageColumn.width = 0.09
columns.damageColumn.border = a_textBorder
columns.damageColumn.state1.label.text = '$DAM'
columns.damageColumn.state1.label.arrowDown = true
columns.damageColumn.state1.entry.text = @infoDamage
columns.damageColumn.state1.sortAttributes = <infoDamage, text>
columns.damageColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.damageColumn.state2.label.text = '$DAM'
columns.damageColumn.state2.entry.text = @infoDamage
columns.damageColumn.state2.sortAttributes = <infoDamage, text>
columns.damageColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; WEIGHT COLUMN -------------------------------------------------------
columns.weightColumn.type = TEXT
columns.weightColumn.name = '$WEIGHT'
columns.weightColumn.states = 2
columns.weightColumn.width = 0.09
columns.weightColumn.border = a_textBorder
columns.weightColumn.state1.label.text = '$WGT'
columns.weightColumn.state1.label.arrowDown = true
columns.weightColumn.state1.entry.text = @infoWeight
columns.weightColumn.state1.sortAttributes = <infoWeight, text>
columns.weightColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.weightColumn.state2.label.text = '$WGT'
columns.weightColumn.state2.entry.text = @infoWeight
columns.weightColumn.state2.sortAttributes = <infoWeight, text>
columns.weightColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; VALUE COLUMN -------------------------------------------------------
columns.valueColumn.type = TEXT
columns.valueColumn.name = '$VALUE'
columns.valueColumn.states = 2
columns.valueColumn.width = 0.09
columns.valueColumn.border = a_textBorder
columns.valueColumn.state1.label.text = '$VAL'
columns.valueColumn.state1.label.arrowDown = true
columns.valueColumn.state1.entry.text = @infoValue
columns.valueColumn.state1.sortAttributes = <infoValue, text>
columns.valueColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.valueColumn.state2.label.text = '$VAL'
columns.valueColumn.state2.entry.text = @infoValue
columns.valueColumn.state2.sortAttributes = <infoValue, text>
columns.valueColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; VALUE/WEIGHT COLUMN -------------------------------------------------------
columns.valueWeightColumn.type = TEXT
columns.valueWeightColumn.name = '$VALUE/WEIGHT'
columns.valueWeightColumn.states = 2
columns.valueWeightColumn.width = 0.09
columns.valueWeightColumn.border = a_textBorder
columns.valueWeightColumn.hidden = true
columns.valueWeightColumn.state1.label.text = '$V/W'
columns.valueWeightColumn.state1.label.arrowDown = true
columns.valueWeightColumn.state1.entry.text = @infoValueWeight
columns.valueWeightColumn.state1.sortAttributes = <infoValueWeight, text>
columns.valueWeightColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.valueWeightColumn.state2.label.text = '$V/W'
columns.valueWeightColumn.state2.entry.text = @infoValueWeight
columns.valueWeightColumn.state2.sortAttributes = <infoValueWeight, text>
columns.valueWeightColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; MAGIC NAME COLUMN -------------------------------------------------------
columns.magicNameColumn.type = NAME
columns.magicNameColumn.name = '$NAME'
columns.magicNameColumn.states = 2
columns.magicNameColumn.weight = 1.0
columns.magicNameColumn.border = a_textBorder
columns.magicNameColumn.label.textFormat.align = left
columns.magicNameColumn.state1.label.text = '$NAME'
columns.magicNameColumn.state1.entry.text = @text
columns.magicNameColumn.state1.sortOptions = {ASCENDING | CASEINSENSITIVE}
columns.magicNameColumn.state2.label.text = '$FAVORITE'
columns.magicNameColumn.state2.entry.text = @text
columns.magicNameColumn.state2.sortAttributes = <favorite, text>
columns.magicNameColumn.state2.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.magicNameColumn.state2.playerOnly = true
; SPELL COST COLUMN -------------------------------------------
columns.spellCostColumn.type = TEXT
columns.spellCostColumn.name = '$SPELL COST'
columns.spellCostColumn.states = 2
columns.spellCostColumn.width = 0.15
columns.spellCostColumn.border = a_textBorder
columns.spellCostColumn.state1.label.text = '$COST'
columns.spellCostColumn.state1.label.arrowDown = true
columns.spellCostColumn.state1.entry.text = @spellCostDisplay
columns.spellCostColumn.state1.sortAttributes = <infoSpellCost, text>
columns.spellCostColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.spellCostColumn.state2.label.text = '$COST'
columns.spellCostColumn.state2.label.arrowDown = false
columns.spellCostColumn.state2.entry.text = @spellCostDisplay
columns.spellCostColumn.state2.sortAttributes = <infoSpellCost, text>
columns.spellCostColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; WORD 1 COLUMN -------------------------------------------
columns.word0Column.type = TEXT
columns.word0Column.name = '$FIRST WORD'
columns.word0Column.states = 2
columns.word0Column.width = 0.2
columns.word0Column.border = a_textBorder
columns.word0Column.state1.label.text = '$FIRST WORD'
columns.word0Column.state1.label.arrowDown = true
columns.word0Column.state1.entry.text = @word0
columns.word0Column.state1.sortAttributes = <word0Recharge, text>
columns.word0Column.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.word0Column.state1.colorAttribute = word0Color
columns.word0Column.state2.label.text = '$FIRST WORD'
columns.word0Column.state2.label.arrowDown = false
columns.word0Column.state2.entry.text = @word0
columns.word0Column.state2.sortAttributes = <word0Recharge, text>
columns.word0Column.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.word0Column.state2.colorAttribute = word0Color
; WORD 2 COLUMN -------------------------------------------
columns.word1Column.type = TEXT
columns.word1Column.name = '$SECOND WORD'
columns.word1Column.states = 2
columns.word1Column.width = 0.2
columns.word1Column.border = a_textBorder
columns.word1Column.state1.label.text = '$SECOND WORD'
columns.word1Column.state1.label.arrowDown = true
columns.word1Column.state1.entry.text = @word1
columns.word1Column.state1.sortAttributes = <word1Recharge, text>
columns.word1Column.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.word1Column.state1.colorAttribute = word1Color
columns.word1Column.state2.label.text = '$SECOND WORD'
columns.word1Column.state2.label.arrowDown = false
columns.word1Column.state2.entry.text = @word1
columns.word1Column.state2.sortAttributes = <word1Recharge, text>
columns.word1Column.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.word1Column.state2.colorAttribute = word1Color
; WORD 3 COLUMN -------------------------------------------
columns.word2Column.type = TEXT
columns.word2Column.name = '$THIRD WORD'
columns.word2Column.states = 2
columns.word2Column.width = 0.2
columns.word2Column.border = a_textBorder
columns.word2Column.state1.label.text = '$THIRD WORD'
columns.word2Column.state1.label.arrowDown = true
columns.word2Column.state1.entry.text = @word2
columns.word2Column.state1.sortAttributes = <word2Recharge, text>
columns.word2Column.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.word2Column.state1.colorAttribute = word2Color
columns.word2Column.state2.label.text = '$THIRD WORD'
columns.word2Column.state2.label.arrowDown = false
columns.word2Column.state2.entry.text = @word2
columns.word2Column.state2.sortAttributes = <word2Recharge, text>
columns.word2Column.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.word2Column.state2.colorAttribute = word2Color
; SCHOOL COLUMN -------------------------------------------
columns.schoolColumn.type = TEXT
columns.schoolColumn.name = '$SCHOOL'
columns.schoolColumn.states = 2
columns.schoolColumn.width = 0.15
columns.schoolColumn.border = a_textBorder
columns.schoolColumn.state1.label.text = '$SCHOOL'
columns.schoolColumn.state1.label.arrowDown = false
columns.schoolColumn.state1.entry.text = @infoSchoolName
columns.schoolColumn.state1.sortAttributes = <infoSchoolName, text>
columns.schoolColumn.state1.sortOptions = <{ASCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
columns.schoolColumn.state2.label.text = '$SCHOOL'
columns.schoolColumn.state2.label.arrowDown = true
columns.schoolColumn.state2.entry.text = @infoSchoolName
columns.schoolColumn.state2.sortAttributes = <infoSchoolName, text>
columns.schoolColumn.state2.sortOptions = <{DESCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
; LEVEL COLUMN -------------------------------------------
columns.levelColumn.type = TEXT
columns.levelColumn.name = '$SKILL LEVEL'
columns.levelColumn.states = 2
columns.levelColumn.width = 0.15
columns.levelColumn.border = a_textBorder
columns.levelColumn.state1.label.text = '$LEVEL'
columns.levelColumn.state1.label.arrowDown = false
columns.levelColumn.state1.entry.text = @infoCastLevel
columns.levelColumn.state1.sortAttributes = <skillLevel, text>
columns.levelColumn.state1.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.levelColumn.state2.label.text = '$LEVEL'
columns.levelColumn.state2.label.arrowDown = true
columns.levelColumn.state2.entry.text = @infoCastLevel
columns.levelColumn.state2.sortAttributes = <skillLevel, text>
columns.levelColumn.state2.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; TIME REMAINING COLUMN -------------------------------------------
columns.timeRemainingColumn.type = TEXT
columns.timeRemainingColumn.name = '$TIME LEFT'
columns.timeRemainingColumn.states = 2
columns.timeRemainingColumn.width = 0.333
columns.timeRemainingColumn.label.textFormat.align = center
columns.timeRemainingColumn.entry.textFormat.align = center
columns.timeRemainingColumn.state1.label.text = '$TIME LEFT'
columns.timeRemainingColumn.state1.label.arrowDown = false
columns.timeRemainingColumn.state1.entry.text = @timeRemainingDisplay
columns.timeRemainingColumn.state1.sortAttributes = <timeRemaining, text>
columns.timeRemainingColumn.state1.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.timeRemainingColumn.state2.label.text = '$TIME LEFT'
columns.timeRemainingColumn.state2.label.arrowDown = true
columns.timeRemainingColumn.state2.entry.text = @timeRemainingDisplay
columns.timeRemainingColumn.state2.sortAttributes = <timeRemaining, text>
columns.timeRemainingColumn.state2.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; EFFECT ITEM COLUMN -------------------------------------------
columns.effectItemColumn.type = TEXT
columns.effectItemColumn.name = '$SOURCE'
columns.effectItemColumn.states = 2
columns.effectItemColumn.width = 0.333
columns.effectItemColumn.label.textFormat.align = right
columns.effectItemColumn.entry.textFormat.align = right
columns.effectItemColumn.state1.label.text = '$SOURCE'
columns.effectItemColumn.state1.label.arrowDown = false
columns.effectItemColumn.state1.entry.text = @cardName
columns.effectItemColumn.state1.sortAttributes = <cardName, text>
columns.effectItemColumn.state1.sortOptions = <{ASCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
columns.effectItemColumn.state2.label.text = '$SOURCE'
columns.effectItemColumn.state2.label.arrowDown = true
columns.effectItemColumn.state2.entry.text = @cardName
columns.effectItemColumn.state2.sortAttributes = <cardName, text>
columns.effectItemColumn.state2.sortOptions = <{DESCENDING | CASEINSENSITIVE}, {ASCENDING | CASEINSENSITIVE}>
; CRAFT NAME COLUMN -------------------------------------------------------
columns.craftNameColumn.type = NAME
columns.craftNameColumn.name = '$NAME'
columns.craftNameColumn.states = 1
columns.craftNameColumn.weight = 1.0
columns.craftNameColumn.border = a_textBorder
columns.craftNameColumn.label.textFormat.align = left
columns.craftNameColumn.state1.label.text = '$NAME'
columns.craftNameColumn.state1.entry.text = @text
columns.craftNameColumn.state1.sortAttributes = <text>
columns.craftNameColumn.state1.sortOptions = <{ASCENDING | CASEINSENSITIVE}>
; DISENCHANT EFFECT COLUMN -------------------------------------------------------
columns.disenchantEffectColumn.type = TEXT
columns.disenchantEffectColumn.name = '$EFFECT'
columns.disenchantEffectColumn.states = 2
columns.disenchantEffectColumn.width = 0.4
columns.disenchantEffectColumn.label.textFormat.align = right
columns.disenchantEffectColumn.entry.textFormat.align = right
columns.disenchantEffectColumn.state1.label.text = '$EFFECT'
columns.disenchantEffectColumn.state1.label.arrowDown = false
columns.disenchantEffectColumn.state1.entry.text = @effectName
columns.disenchantEffectColumn.state1.sortAttributes = <effectName, value, text>
columns.disenchantEffectColumn.state1.sortOptions = <{ASCENDING | CASEINSENSITIVE}, {DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.disenchantEffectColumn.state2.label.text = '$EFFECT'
columns.disenchantEffectColumn.state2.label.arrowDown = true
columns.disenchantEffectColumn.state2.entry.text = @effectName
columns.disenchantEffectColumn.state2.sortAttributes = <effectName, value, text>
columns.disenchantEffectColumn.state2.sortOptions = <{DESCENDING | CASEINSENSITIVE}, {DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; SOUL SIZE COLUMN -------------------------------------------------------
columns.soulSizeColumn.type = TEXT
columns.soulSizeColumn.name = '$HK19'
columns.soulSizeColumn.states = 2
columns.soulSizeColumn.width = 0.15
columns.soulSizeColumn.label.textFormat.align = right
columns.soulSizeColumn.entry.textFormat.align = right
columns.soulSizeColumn.state1.label.text = '$HK19'
columns.soulSizeColumn.state1.label.arrowDown = false
columns.soulSizeColumn.state1.entry.text = @soulSizeDisplay
columns.soulSizeColumn.state1.sortAttributes = <soulSize, text>
columns.soulSizeColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.soulSizeColumn.state2.label.text = '$HK19'
columns.soulSizeColumn.state2.label.arrowDown = true
columns.soulSizeColumn.state2.entry.text = @soulSizeDisplay
columns.soulSizeColumn.state2.sortAttributes = <soulSize, text>
columns.soulSizeColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; ALCHEMY WEIGHT COLUMN -------------------------------------------------------
columns.alchWeightColumn.type = TEXT
columns.alchWeightColumn.name = '$WEIGHT'
columns.alchWeightColumn.states = 2
columns.alchWeightColumn.width = 0.14
columns.alchWeightColumn.border = a_textBorder
columns.alchWeightColumn.state1.label.text = '$WGT'
columns.alchWeightColumn.state1.label.arrowDown = true
columns.alchWeightColumn.state1.entry.text = @infoWeight
columns.alchWeightColumn.state1.sortAttributes = <infoWeight, text>
columns.alchWeightColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.alchWeightColumn.state2.label.text = '$WGT'
columns.alchWeightColumn.state2.entry.text = @infoWeight
columns.alchWeightColumn.state2.sortAttributes = <infoWeight, text>
columns.alchWeightColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; ALCHEMY VALUE COLUMN -------------------------------------------------------
columns.alchValueColumn.type = TEXT
columns.alchValueColumn.name = '$VALUE'
columns.alchValueColumn.states = 2
columns.alchValueColumn.width = 0.14
columns.alchValueColumn.border = a_textBorder
columns.alchValueColumn.state1.label.text = '$VAL'
columns.alchValueColumn.state1.label.arrowDown = true
columns.alchValueColumn.state1.entry.text = @infoValue
columns.alchValueColumn.state1.sortAttributes = <infoValue, text>
columns.alchValueColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.alchValueColumn.state2.label.text = '$VAL'
columns.alchValueColumn.state2.entry.text = @infoValue
columns.alchValueColumn.state2.sortAttributes = <infoValue, text>
columns.alchValueColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; ALCHEMY VALUE/WEIGHT COLUMN -------------------------------------------------------
columns.alchValueWeightColumn.type = TEXT
columns.alchValueWeightColumn.name = '$VALUE/WEIGHT'
columns.alchValueWeightColumn.states = 2
columns.alchValueWeightColumn.width = 0.14
columns.alchValueWeightColumn.border = a_textBorder
columns.alchValueWeightColumn.hidden = true
columns.alchValueWeightColumn.state1.label.text = '$V/W'
columns.alchValueWeightColumn.state1.label.arrowDown = true
columns.alchValueWeightColumn.state1.entry.text = @infoValueWeight
columns.alchValueWeightColumn.state1.sortAttributes = <infoValueWeight, text>
columns.alchValueWeightColumn.state1.sortOptions = <{DESCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
columns.alchValueWeightColumn.state2.label.text = '$V/W'
columns.alchValueWeightColumn.state2.entry.text = @infoValueWeight
columns.alchValueWeightColumn.state2.sortAttributes = <infoValueWeight, text>
columns.alchValueWeightColumn.state2.sortOptions = <{ASCENDING | NUMERIC}, {ASCENDING | CASEINSENSITIVE}>
; ITEM VIEWS -------------------------------------------------------
views.defaultItemView.primaryColumn = valueWeightColumn
views.defaultItemView.columns = <equipColumn, iconColumn, itemNameColumn, subTypeColumn, weightColumn, valueColumn, valueWeightColumn>
views.weaponView.primaryColumn = itemNameColumn
views.weaponView.columns = <equipColumn, iconColumn, itemNameColumn, subTypeColumn, materialColumn, damageColumn, weightColumn, valueColumn, valueWeightColumn>
views.weaponView.category = <Inventory.FILTERFLAG_INV_WEAPONS, Inventory.FILTERFLAG_CONTAINER_WEAPONS>
views.armorView.primaryColumn = itemNameColumn
views.armorView.columns = <equipColumn, iconColumn, itemNameColumn, subTypeColumn, classColumn, materialColumn, arColumn, weightColumn, valueColumn, valueWeightColumn>
views.armorView.category = <Inventory.FILTERFLAG_INV_ARMOR, Inventory.FILTERFLAG_CONTAINER_ARMOR>
views.magicItemView.primaryColumn = itemNameColumn
views.magicItemView.columns = <equipColumn, iconColumn, itemNameColumn, subTypeColumn, magnitudeColumn, durationColumn, weightColumn, valueColumn, valueWeightColumn>
views.magicItemView.category = <Inventory.FILTERFLAG_INV_POTIONS, Inventory.FILTERFLAG_INV_SCROLLS, Inventory.FILTERFLAG_CONTAINER_POTIONS, Inventory.FILTERFLAG_CONTAINER_SCROLLS>
views.keysView.primaryColumn = itemNameColumn
views.keysView.columns = <equipColumn, iconColumn, itemNameColumn, weightColumn, valueColumn, valueWeightColumn>
views.keysView.category = <Inventory.FILTERFLAG_INV_KEYS, Inventory.FILTERFLAG_CONTAINER_KEYS>
; MAGIC VIEWS -------------------------------------------------------
views.defaultMagicView.primaryColumn = magicNameColumn
views.defaultMagicView.columns = <equipColumn, iconColumn, magicNameColumn, levelColumn, magicMagnitudeColumn, magicDurationColumn, spellCostColumn>
views.allMagicView.primaryColumn = magicNameColumn
views.allMagicView.columns = <equipColumn, iconColumn, magicNameColumn, schoolColumn, levelColumn, spellCostColumn>
views.allMagicView.category = <Inventory.FILTERFLAG_MAGIC_ALL, Inventory.FILTERFLAG_MAGIC_FAVORITES>
views.shoutsView.primaryColumn = magicNameColumn
views.shoutsView.columns = <equipColumn, iconColumn, magicNameColumn, word0Column, word1Column, word2Column>
views.shoutsView.category = Inventory.FILTERFLAG_MAGIC_SHOUTS
views.powersView.primaryColumn = magicNameColumn
views.powersView.columns = <equipColumn, iconColumn, magicNameColumn, magicDurationColumn, spellCostColumn>
views.powersView.category = Inventory.FILTERFLAG_MAGIC_POWERS
views.activeEffectView.primaryColumn = magicNameColumn
views.activeEffectView.columns = <equipColumn, iconColumn, magicNameColumn, timeRemainingColumn, effectItemColumn>
views.activeEffectView.category = Inventory.FILTERFLAG_MAGIC_ACTIVEEFFECTS
; CRAFTING VIEWS -------------------------------------------------------
views.defaultCraftingView.primaryColumn = craftNameColumn
views.defaultCraftingView.columns = <equipColumn, iconColumn, craftNameColumn, subTypeColumn, weightColumn, valueColumn, valueWeightColumn>
views.disenchantView.primaryColumn = craftNameColumn
views.disenchantView.columns = <equipColumn, iconColumn, craftNameColumn, disenchantEffectColumn, subTypeColumn, weightColumn, valueColumn, valueWeightColumn>
views.disenchantView.category = Inventory.FILTERFLAG_ENCHANTING_DISENCHANT
views.enchantItemView.primaryColumn = craftNameColumn
views.enchantItemView.columns = <equipColumn, iconColumn, craftNameColumn, subTypeColumn, materialColumn, weightColumn, valueColumn, valueWeightColumn>
views.enchantItemView.category = Inventory.FILTERFLAG_ENCHANTING_ITEM
views.enchantEnchantmentView.primaryColumn = craftNameColumn
views.enchantEnchantmentView.columns = <equipColumn, iconColumn, craftNameColumn>
views.enchantEnchantmentView.category = Inventory.FILTERFLAG_ENCHANTING_ENCHANTMENT
views.enchantSoulView.primaryColumn = craftNameColumn
views.enchantSoulView.columns = <equipColumn, iconColumn, craftNameColumn, soulSizeColumn, weightColumn, valueColumn, valueWeightColumn>
views.enchantSoulView.category = Inventory.FILTERFLAG_ENCHANTING_SOULGEM
views.craftWeaponView.primaryColumn = craftNameColumn
views.craftWeaponView.columns = <equipColumn, iconColumn, craftNameColumn, subTypeColumn, materialColumn, damageColumn, weightColumn, valueColumn, valueWeightColumn>
views.craftWeaponView.category = <Inventory.FILTERFLAG_CUST_CRAFT_WEAPONS, Inventory.FILTERFLAG_CUST_CRAFT_AMMO>
views.craftArmorView.primaryColumn = craftNameColumn
views.craftArmorView.columns = <equipColumn, iconColumn, craftNameColumn, subTypeColumn, classColumn, materialColumn, arColumn, weightColumn, valueColumn, valueWeightColumn>
views.craftArmorView.category = Inventory.FILTERFLAG_CUST_CRAFT_ARMOR
views.alchemyView.primaryColumn = craftNameColumn
views.alchemyView.columns = <equipColumn, iconColumn, craftNameColumn, alchWeightColumn, alchValueColumn, alchValueWeightColumn>
; LAYOUTS -------------------------------------------------------
layouts.itemListLayout.name = 'ItemListLayout'
layouts.itemListLayout.views = <weaponView, armorView, magicItemView, keysView, defaultItemView>
layouts.magicListLayout.name = 'MagicListLayout'
layouts.magicListLayout.views = <shoutsView, powersView, activeEffectView, allMagicView, defaultMagicView>
layouts.enchantListLayout.name = 'EnchantListLayout'
layouts.enchantListLayout.views = <disenchantView, enchantItemView, enchantEnchantmentView, enchantSoulView, defaultCraftingView>
layouts.constructListLayout.name = 'ConstructListLayout'
layouts.constructListLayout.views = <craftWeaponView, craftArmorView, defaultCraftingView>
layouts.smithingListLayout.name = 'SmithingListLayout'
layouts.smithingListLayout.views = <defaultCraftingView>
layouts.alchemyListLayout.name = 'AlchemyListLayout'
layouts.alchemyListLayout.views = <alchemyView>
I took the original config file here:
https://www.reddit.com/r/skyrimmods/comments/2y63c3/how_to_set_custom_skyui_config_like_item_sort/
and I changed default sorting after opening an item container from "name" to "value/weight".
If you switch to another tab (weapons, apparel), it still has the default sorting by name, you can change it by going into "; ITEM VIEWS" section and changing "...primaryColumn = " to desired option from <the list>.
Edit: after looking around at it for a while, I managed to create it myself! Check it out: https://www.nexusmods.com/skyrim/mods/108452/
(will update this post if I encounter any bugs in SSE)
Excellent mod. Endorsed! With this there is no need for bloated item sorting mods
But someone has recently made a very similar mod for SE:
Better SkyUI Config - Smart sorting by type
Reason: The SE mod makes the columns smaller which I feel makes them harder to read, and it sorts primarily by equipped/unequipped, while this oldrim mod sorts primarily by item type which I personally find more logical.
The only clear advantage of the SE mod is that it sorts active effects by "time left" which this oldrim mod does not.
So use whichever you prefer, but I continue to recommend this oldrim mod, even for Skyrim SE.
Could be possible to default sort the items by type, but uspide down (green arrow pointing down)? In this way one could pick up money and arrows really fast! Thank you!
I can confirm this mod works like a charm in SSE. After all it is just a config txt file, I would expect that.
BUT: it is also great and awesome and renders all other scripted and esp plugin based stuff unnecessary!
Since I also use Dear Diary (https://www.nexusmods.com/skyrimspecialedition/mods/23010), I can additionally confirm both do not work together out of the box, some minor tweaking would be necessary.
Like this:
If you use MO2 (which you should, trust me), you will instantly realize that both this mod and Dear Diary modify the same file:
/interface/skyui/config.txt.
They are largely identical, but still need to be merged so you can make use of both.
Find and open config.txt of this mod in a text editor ( I fully recommend Notepad++) and open it. Then open config.txt of Dear Diary. Find line 25 in both files, you'll see the first difference."itemcard.xOffset = -35"
Copy & paste line 25 from Dear Diary config to this mod's config.
Do the same for lines 44-49
"colors.text.enabled = 0x2A2A2A
colors.stolen.enabled = 0x2A2A2A
colors.negative.enabled = 0x780000
colors.text.disabled = 0x777777
colors.stolen.disabled = 0x777777
colors.negative.disabled = 0x800000"
Save the adjusted file to anywhere on your desktop, name it "config.txt"
Install an empty mod in MO2, create the folder path "interface/skyui" and drop your adjusted "config.txt" from Desktop into the newly created folder "skyui".
Move the newly created mod in the left pane below this mod and Dear Diary and enjoy the best of both worlds ;-)
And do NOT forget to endorse both this mod and Dear Diary, both are legitimate awesome tweaks for Skyrim!
I'm sorry if I didn't explain myself well enough, I'm tired as hell and it's 5 am here.