Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

jn64

Uploaded by

jn64

Virus scan

Safe to use

228 comments

  1. jn64
    jn64
    • premium
    • 49 kudos
    Locked
    Sticky
    FAQ

    Compatibility / patching / merging

    Patch for ____?

    Please make one and share with everyone :) You can also ask the other mod to adopt this mod's changes if you think it is better.

    How do I patch/merge it myself?

    You need to merge the changes of both mods' version of Data\interface\skyui\config.txt

    Details:
    Spoiler:  
    Show
    You can merge either way. Generally I would advise you to merge the other mod's changes into this mod, so you can easily enable/disable this mod. But if the other mod makes a lot of complicated changes, then it might be easier to merge this mod's changes into the other mod.

    Tip: Use a diff tool like Meld or WinMerge to compare and merge text files. Don't open 2 notepads like a milk drinker.

    Main things to look at are these lines:
    columns.iconColumn.state1.sortAttributes
    columns.iconColumn.state1.sortOptions
    columns.iconColumn.state2.sortAttributes
    columns.iconColumn.state2.sortOptions
    where I added timeRemaining and isEquipped

    and all the
    views.*.primaryColumn = iconColumn
    which is changing the default sort of every view to the iconColumn (sort by type)

    How do I merge if I have more than 2 conflicting mods?

    Diff tools like Meld and WinMerge can compare 3 files.

    Customisation / options

    I don't like sorting by type for certain views. How do I change it back to sort by name?

    Spoiler:  
    Show
    Set the primaryColumn of the view to itemNameColumn, magicNameColumn, or craftNameColumn.

    For example, to change Armor Crafting view to sort by name, find this line in the config.txt:

    views.craftArmorView.primaryColumn = iconColumn

    and change it to:

    views.craftArmorView.primaryColumn = craftNameColumn

    How do I disable the Value/Weight (V/W) column?

    Spoiler:  
    Show
    Find this line in the config.txt:
    columns.valueWeightColumn.hidden = false
    and change false to true.
  2. jn64
    jn64
    • premium
    • 49 kudos
    Locked
    Sticky
    v1.0.1 update

    For Immersive Jewelry users:
    This mod is now compatible by default, no need to do anything.

    For Dear Diary OR Dear Diary + Immersive Jewelry users:
    I uploaded compatible version for Dear Diary 3.0.3. It is not tested.

    2022-01-08
    Uploaded compatible version for the new Dear Diary Dark Mode 1.0.0. It is not tested.
  3. Guizoca
    Guizoca
    • supporter
    • 1 kudos
    does it work with vr?
  4. JoacoAV
    JoacoAV
    • member
    • 0 kudos
    You have boosted my enjoyment of this game tenfold. Thank you so much.
  5. nihlo
    nihlo
    • premium
    • 2 kudos
    Great mod, thanks.
    Does anyone know if this:
    https://www.nexusmods.com/skyrimspecialedition/mods/112166
    is already included by now ?
  6. darthvladi
    darthvladi
    • premium
    • 14 kudos
    Amazing mod... is there any possibility for you to show warmth and hunger columns for survival?
    1. jn64
      jn64
      • premium
      • 49 kudos
      I won't be adding it to this mod, because it involves modifying SkyUI's Flash files (.swf), which is 1) out of scope for this mod, and 2) redundant as it's already done by a few other mods.

      With one of those other mods, you just need to merge the config.txt file with this mod. I can't give any particular recommendation because I've never used any of them or Survival Mode, but there's an example merged file for Dear Diary Dark Mode in the optional files here. Also, Aura's Inventory Tweaks includes/supersedes this mod.
    2. darthvladi
      darthvladi
      • premium
      • 14 kudos
      Appreciate your response. No worries, I was just wondering if it was possible, since all other mods are screwed lol. Not a single one is working with SkyUI, unless you install Dear Diary, which as a personal preference I don't like.

      I actually attempted to merge yours and the most popular one, but adding new columns (warmth, hunger) means the game need to handle some how the new variables, which I think are hard coded in the dll or the script.

      Anyway, thanks for this mod, I am using it right now. 

      EDIT: I just realized SkyUI Survival Integration just works along with your mod. I'm so dumb.
  7. Originseternal
    Originseternal
    • supporter
    • 0 kudos
    I dunno if this is a bug or what but when I go into the config and force slots on in skyrim vr, all of the slots of everything is just a blank space. do I need to do some extra steps?
    1. jn64
      jn64
      • premium
      • 49 kudos
      I can't help with Skyrim VR; I don't use it nor claim to support it. Did you check if the problem happens without this mod?
    2. Originseternal
      Originseternal
      • supporter
      • 0 kudos
      it looks like the problem is just this mod. Maybe my mod pack has some files missing or something? When I add the body slots standalone mod it butchers the controls but it also adds the right slots to stuff. but when try using the better skyui provided by the body slots mod it still has the same issue as this mod where all the slots are blank. The only difference I see between the two is that the body slots mod comes with a bunch of swf files for inventory and stuff and this mod doesn't seem to have that, at least in my installation of it

      UPDATE: It's not just slots. Anything I enable manually through the config is blank
      UPDATE 2: It looks like the problem is missing files... I don't know what files are missing, but when I added a button that lets me add a mouse, there was entire buttons missing from the gear menu at the top as if there's nothing to reference to pull up the features. perhaps skyui vr is missing files? or dear diary vr which overwrites it outright removes them?

      I feel like it would be overstepping for me to ask you to produce an override that simply makes sure all of the relevant files are available for reference because I'd imagine you'd only be able to test it in vr and as you don't have vr it would be rude of me to ask, so who do I ask about this issue?
    3. GroundAura
      GroundAura
      • premium
      • 212 kudos
      Sounds more like an asset overwrite order issue than a vr issue.

      If columns appear, but are empty, that indicates their relevant properties are not being set (usually properties need to be set in .swf files). You need to have the proper load order with your swf mods for certain columns to be able to display data. Better SkyUI Config does not add any new columns so the problem should not be with this mod.

      If you like, I have a link to a discord server in my profile where I might be able to help you figure out what your problem is.
    4. jn64
      jn64
      • premium
      • 49 kudos
      Are you confusing this mod with another mod?

      These are signs you are not using this mod:


      • You got it from somewhere else (I only distribute this mod on this page)
      • There is more than 1 file, or you are expecting more than 1 file (this mod contains a single file named config.txt)
      • There is an "override" (whatever that means)
      • There are "relevant files" to "reference" (this mod's only requirement is SkyUI 5.2SE)

      I can't remember if slots are exposed by normal SkyUI, but I never added anything specifically for slots in this mod (except maybe whatever was merged in the Dear Diary / DDDM examples).

      If you use multiple modified SkyUI (I don't know the details of SkyUI VR, Dear Diary VR, what "body slots mod", or your unspecified mod pack), they will overwrite each other as GroundAura mentioned, unless all of them are explicitly compatible or there is a patch to combine them.
    5. Originseternal
      Originseternal
      • supporter
      • 0 kudos
      I'm just saying that I've discovered the issue is with dear diary vr. it removes a bunch of key components. I was wondering if there was a way for you to add a patch on your end since they seem to have been inactive for 2 years
    6. jn64
      jn64
      • premium
      • 49 kudos
      I'm just saying that I've discovered the issue is with dear diary vr. it removes a bunch of key components. I was wondering if there was a way for you to add a patch on your end since they seem to have been inactive for 2 years

      No.

      If the problem is between Dear Diary VR and another mod that modifies SkyUI's swf files (like maybe whichever body slots mod), then it needs to be fixed by patching the swf files (either one of them adding compatibility for the other, or a third-party patch). I'm not interested in doing that, and it's not the purpose of this mod, which is a single config file with no swf files.

      I understand why you'd ask me, because of the Dear Diary compatible files. In this case, only Dear Diary itself conflicts with, or rather modifies SkyUI. I am only merging my changes to the SkyUI config, with Dear Diary's changes to the SkyUI config. There is no conflict between Dear Diary and some other mod that modifies SkyUI (if there was, it would need to be solved between them).
  8. Hich
    Hich
    • member
    • 0 kudos
    Good mod. Now if it was also sorting the favorite menu the same way it'd be perfect.
    1. Hellstorm33414
      Hellstorm33414
      • member
      • 0 kudos
      That was actually my question, it does not ? Cause I want to sort all my spells by school first then alphabetically in the favorites menu, so I hoped this mod would do !
    2. Hich
      Hich
      • member
      • 0 kudos
      I ended up using Custom Favorites Menu instead. Takes a bit to finetune it to your taste, but is much more convenient with so many items and spells immediately present.
    3. GroundAura
      GroundAura
      • premium
      • 212 kudos
      Yeah, there's not really anything available to sort the favorites menu like other menus can be. Currently your only option for a "sorted" favorites menu is mods like Categorized Favorites Menu.
    4. megnoeu
      megnoeu
      • member
      • 8 kudos
      Wish that was a thing. You either won't have it for a modest quick menu, or fill your entire screen with a "quick menu" larger than the default menu. All or none.
    5. GroundAura
      GroundAura
      • premium
      • 212 kudos
      I do want to improve the favorites menu some day. Make it sortable, maybe add more categories, fix some problems it has with icons.
  9. thymewayster
    thymewayster
    • member
    • 0 kudos
    This mod is such a good QoL improvement.

    Is there a way to choose the order in which icons are sorted in the misc tab? I have a modded item that was named with spaces so it would always appear at the top of the list, which was handy since I used it often, but now it's quite a ways down. A minor inconvenience to be sure, but I figured I'd ask if there's a way to get that modded item's icon group to be the first one.
    1. GroundAura
      GroundAura
      • premium
      • 212 kudos
      There are ways to manipulate SkyUI's config to sort things however you want, but they're a little complicated. Basically you can create new properties and sort using those properties.

      For example in Aura's Inventory Tweaks I gave all misc items the property 'itemClass': 2, then gave certain items 'itemClass': 1. Then I added 'itemClass' to the sortAttributes of the icon column, and those certain items are pushed to the top.
    2. thymewayster
      thymewayster
      • member
      • 0 kudos
      Follow-up question. I can't for the life of me figure out how to get my food and ingredients to sort by name.

      I've got this:

      ;jn: Set the default sorting column for every view to iconColumn
      ; ITEM VIEWS -------------------------------------------------------
      ;jn: defaultItemView applies to the following views in the Item menu: Favorites, All, Food, Ingredients, Books, and Misc.
      views.defaultItemView.primaryColumn = iconColumn
      views.defaultItemView.columns = <equipColumn, iconColumn, itemNameColumn, subTypeColumn, weightColumn, valueColumn, valueWeightColumn>

      and then under crafting menus I have this:
      views.alchemyView.primaryColumn = iconColumn
      views.alchemyView.columns = <equipColumn, craftNameColumn, iconColumn, alchWeightColumn, alchValueColumn, alchValueWeightColumn>

      From that, I would assume that food would first sort by type (drink/food) and then by name, and that ingredients would sort by name. But they don't. Food sorts by type (drink/food), but after that they are in no order at all, and ingredients aren't in any sort of order either. I can't find anything else specific to ingredients.

      What code should I change?
    3. jn64
      jn64
      • premium
      • 49 kudos
      I haven't touched Skyrim or this mod in a long time, so I'll try to explain what I can, but you're on your own for making changes.


      • Normally in SkyUI, Ingredients doesn't have its own view, it uses defaultItemView.
      • Right now, your views.defaultItemView... seem to be what's in this mod, you haven't edited it (?)
      • views.defaultItemView.columns = ... -- this is the list of columns that are visible in-game. It is not the columns used to sort or the order of sorting, that's elsewhere in the code, you can probably find it by searching my comments ;jn

      • views.defaultItemView.primaryColumn = iconColumn  -- this means the defaultItemView sorts by iconColumn by default

      • To sort by name by default, change the value on the right to itemNameColumn, but it'll affect all the other tabs that use defaultItemView
      • If you want Ingredients to sort by name while preserving the rest of this mod sorting by icon, you need to define a new view and use that for Ingredients. I've actually done this in the "test version" under misc files, but there were some limitations/bugs which I never had the time to iron out. There is a thread about this somewhere in this posts section (can't search or link to it easily because this website sucks), it shouldn't be too far back though. I think I was talking with Wolfpack.
      • To understand how it works, I suggest you do this: download both the test version and the normal version of this mod, extract their config.txt (rename them so you know which is which), and open them side by side in a visual diff tool (see the FAQ above on merging). The diff tool highlights differences in text files.
      • Also use the diff tool to compare this mod with SkyUI's default config.txt, it'll help you understand what's going on
      • Then you can figure out how to do the same for a Food view.

      • You can search for variable names in the SkyUI source code (last I checked still on GitHub), there are some things available in SkyUI but not used in the default config.txt. Like whatever I used to create the ingredients view.

    4. thymewayster
      thymewayster
      • member
      • 0 kudos
      Thank you so much for taking the time to explain! I will play with it some more. (I actually did change it a few times, must have changed it back to the original somehow)
  10. WarriorKitten
    WarriorKitten
    • member
    • 0 kudos
    This doesn't appear to work? It's supposed to remember the sorting options selected, if I'm understanding correctly, and also allow for smarter sorting in general, but it does neither of those things?
  11. deleted126058658
    deleted126058658
    • account closed
    • 1 kudos
    have a thousand thanks
  12. SirCadsimar
    SirCadsimar
    • member
    • 17 kudos
    My game already had this function, emphasis on "had".  But something I did in the last 24 hours, I'm not even sure exactly what, caused that function to be removed, erased, gone

    EDIT: Nevermind, I was incorrect, my game just had the Type category and stuff added from SkyUI, not the automatically pre-sorted lists that this mod does.
    1. GroundAura
      GroundAura
      • premium
      • 212 kudos
      If you share the contents of your SkyUI config (the last instance of "/data/interface/skyui/config.txt" in your load order), I might be able to help figure out your problem.
    2. SirCadsimar
      SirCadsimar
      • member
      • 17 kudos
      Here, I'm not sure what's relevant, so I just copied the entire contents of config.txt
      Spoiler:  
      Show
      ; =====================================================================================================================
      [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 = ' '
      ;jn: Add timeRemaining (only affects Active Effects view) and isEquipped
      columns.iconColumn.state1.sortAttributes = <timeRemaining, isEquipped, type, formType, subType, weightClass, material, infoDamage, infoArmor, infoSchoolName, actorValue, resistance, skillLevel, magnitude, duration, isRead, text>
      ;jn: Don't forget to add a corresponding sortOption for each added sortAttribute
      columns.iconColumn.state1.sortOptions = <{ASCENDING | NUMERIC}, {DESCENDING | NUMERIC}, {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
      ;jn: Add timeRemaining
      columns.iconColumn.state2.sortAttributes = <timeRemaining, 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}, {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.06
      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.06
      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.06
      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.12
      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.12
      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.06
      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.06
      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.07
      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.07
      columns.valueWeightColumn.border = a_textBorder
      ;jn: Show Value/Weight column by default
      columns.valueWeightColumn.hidden = false

      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.12
      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}>


      ;jn: Set the default sorting column for every view to iconColumn
      ; ITEM VIEWS -------------------------------------------------------
      ;jn: defaultItemView applies to the following views in the Item menu: Favorites, All, Food, Ingredients, Books, and Misc.
      views.defaultItemView.primaryColumn = iconColumn
      views.defaultItemView.columns = <equipColumn, iconColumn, itemNameColumn, subTypeColumn, weightColumn, valueColumn, valueWeightColumn>

      views.weaponView.primaryColumn = iconColumn
      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 = iconColumn
      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 = iconColumn
      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 = iconColumn
      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 = iconColumn
      views.defaultMagicView.columns = <equipColumn, iconColumn, magicNameColumn, levelColumn, magicMagnitudeColumn, magicDurationColumn, spellCostColumn>

      views.allMagicView.primaryColumn = iconColumn
      views.allMagicView.columns = <equipColumn, iconColumn, magicNameColumn, schoolColumn, levelColumn, spellCostColumn>
      views.allMagicView.category = <Inventory.FILTERFLAG_MAGIC_ALL, Inventory.FILTERFLAG_MAGIC_FAVORITES>

      views.shoutsView.primaryColumn = iconColumn
      views.shoutsView.columns = <equipColumn, iconColumn, magicNameColumn, word0Column, word1Column, word2Column>
      views.shoutsView.category = Inventory.FILTERFLAG_MAGIC_SHOUTS

      views.powersView.primaryColumn = iconColumn
      views.powersView.columns = <equipColumn, iconColumn, magicNameColumn, magicDurationColumn, spellCostColumn>
      views.powersView.category = Inventory.FILTERFLAG_MAGIC_POWERS

      views.activeEffectView.primaryColumn = iconColumn
      views.activeEffectView.columns = <equipColumn, iconColumn, magicNameColumn, timeRemainingColumn, effectItemColumn>
      views.activeEffectView.category = Inventory.FILTERFLAG_MAGIC_ACTIVEEFFECTS


      ; CRAFTING VIEWS -------------------------------------------------------
      views.defaultCraftingView.primaryColumn = iconColumn
      views.defaultCraftingView.columns = <equipColumn, iconColumn, craftNameColumn, subTypeColumn, weightColumn, valueColumn, valueWeightColumn>

      views.disenchantView.primaryColumn = iconColumn
      views.disenchantView.columns = <equipColumn, iconColumn, craftNameColumn, disenchantEffectColumn, subTypeColumn, weightColumn, valueColumn, valueWeightColumn>
      views.disenchantView.category = Inventory.FILTERFLAG_ENCHANTING_DISENCHANT

      views.enchantItemView.primaryColumn = iconColumn
      views.enchantItemView.columns = <equipColumn, iconColumn, craftNameColumn, subTypeColumn, materialColumn, weightColumn, valueColumn, valueWeightColumn>
      views.enchantItemView.category = Inventory.FILTERFLAG_ENCHANTING_ITEM

      views.enchantEnchantmentView.primaryColumn = iconColumn
      views.enchantEnchantmentView.columns = <equipColumn, iconColumn, craftNameColumn>
      views.enchantEnchantmentView.category = Inventory.FILTERFLAG_ENCHANTING_ENCHANTMENT

      views.enchantSoulView.primaryColumn = iconColumn
      views.enchantSoulView.columns = <equipColumn, iconColumn, craftNameColumn, soulSizeColumn, weightColumn, valueColumn, valueWeightColumn>
      views.enchantSoulView.category = Inventory.FILTERFLAG_ENCHANTING_SOULGEM

      views.craftWeaponView.primaryColumn = iconColumn
      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 = iconColumn
      views.craftArmorView.columns = <equipColumn, iconColumn, craftNameColumn, subTypeColumn, classColumn, materialColumn, arColumn, weightColumn, valueColumn, valueWeightColumn>
      views.craftArmorView.category = Inventory.FILTERFLAG_CUST_CRAFT_ARMOR

      views.alchemyView.primaryColumn = iconColumn
      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>


      ;jn: Immersive Jewelry
      ; =====================================================================================================================
      [Properties]
      ; =====================================================================================================================

      props.clothingIcon.propertiesToSet = <'iconLabel'>
      props.clothingIcon.filter = <'formType': Form.TYPE_ARMOR>
      props.clothingIcon.keywords.ClothingPouch = <'iconLabel': 'misc_goldsack', 'subTypeDisplay': 'Bag'>
      props.clothingIcon.keywords.CDC_StorageHelpersToken = <'iconLabel': 'misc_goldsack', 'subTypeDisplay': 'Bag'>
      props.clothingIcon.keywords.ClothingRing = <'iconLabel': 'armor_ring', 'subTypeDisplay': '$Ring'>
      props.clothingIcon.keywords.ClothingEarrings = <'iconLabel': 'armor_ring', 'subTypeDisplay': 'Earrings'>
      props.clothingIcon.keywords.ClothingEarCuffs = <'iconLabel': 'armor_ring', 'subTypeDisplay': 'Ear Cuffs'>
      props.clothingIcon.keywords.ClothingAmulet = <'iconLabel': 'armor_amulet', , 'subTypeDisplay': '$Amulet'>
      props.clothingIcon.keywords.ClothingCirclet = <'iconLabel': 'armor_circlet', , 'subTypeDisplay': '$Circlet'>
      props.clothingIcon.keywords.ClothingBracelet = <'iconLabel': 'armor_circlet', 'subTypeDisplay': 'Bracelet'>
      props.clothingIcon.keywords.ClothingCrown = <'iconLabel': 'armor_circlet', 'subTypeDisplay': 'Crown'>
      props.clothingIcon.keywords.ArmorTorc = <'iconLabel': 'armor_circlet', 'subTypeDisplay': 'Torc'>
      props.clothingIcon.keywords.JewelryTorc = <'iconLabel': 'armor_circlet', 'subTypeDisplay': 'Torc'>
      props.clothingIcon.keywords.ClothingChoker = <'iconLabel': 'armor_amulet', 'subTypeDisplay': 'Choker'>
      props.clothingIcon.keywords.ClothingHighNecklace = <'iconLabel': 'armor_amulet', 'subTypeDisplay': 'Necklace'>

      props.otherIcon.propertiesToSet = <'iconLabel'>
      props.otherIcon.filter = <'formType': Form.TYPE_MISC>
      props.otherIcon.keywords.CDC_StorageHelpersToken = <'iconLabel': 'misc_goldsack'>

      props.weaponIcon.propertiesToSet = <'iconLabel'>
      props.weaponIcon.filter = <'formType': Form.TYPE_WEAPON>
      props.weaponIcon.keywords.DLC2NordicPickaxe = <'iconLabel': 'weapon_pickaxe'>

      itemIcons = <clothingIcon, weaponIcon, otherIcon>
    3. GroundAura
      GroundAura
      • premium
      • 212 kudos
      Oh goodness, I don't even know where to start. Chunks of your config are just gone. I would recommend reinstalling your config.

      These are the types of lines that have missing code.
      columns.*Column.state*.sortAttributes = (there should be stuff here)
      views.*View.columns = (there should be stuff here)
      views.*View.category = (there should be stuff here)
      itemIcons = (there should be stuff here)

      If you were trying to make specific tweaks, I could probably help you tweak safely. A good tool to help you debug in the future is WinMerge. You could also check out the mods AIT or SAS if you're just looking for more SkyUI features than Better SkyUI Config.
    4. SirCadsimar
      SirCadsimar
      • member
      • 17 kudos
      I deleted all my saves, deleted a bunch of custom mod files that I made in MO2 to dump my Overwrite files into (I wasn't knowledgable enough to put them into FNIS Outputs at the time), restarted computer, (deleted old FNIS Outputs, they were really old like back from last spring when I first started playing with mods on PC) started new game, now I can sort categories by "type" again, the proper SKYUI way.  Plus the addition of sorting that your mod adds too.
    5. GroundAura
      GroundAura
      • premium
      • 212 kudos
      Glad that you were able to clean up your setup.