Jump to content
  • 0

How to navigate a leveled list?


GabrielWithoutWings

Question

Hi all,

What's the best way to navigate leveled lists in Skyrim? It seems that each list is just composed of smaller and smaller lists to the point that it's easy to forget where you started from.

I'm a bit confused as to the way "Count" is done and how specific lists are done (the 25, 50, 75 ones)

So, take Belethor's Merchant Chest (0009CAF8). One of the entries is this:

[img]https://i.imgur.com/lWAsW1Z.png[/img]lWAsW1Z.png

So the count is 15. Is this potentially 15 different items to buy? Double-clicking on the leveled entry shows this:

2wf67ww.png

Each entry has a count of "1". Clicking on LItemArmorCuirassAnyTown (0001674E) shows two entries for HeavyTown and LightTown with a count of "1" apiece. Clicking on the Heavy entry shows 16 different entries, several of which are duplicated. AmorIronCuirass has 4 different entries, all with a level of "1" and a count of "1". Does that mean you have a chance to see a maximum of 4 iron armor available to purchase at Belethor?

If any of you have a good video tutorial on this, it'd be appreciated.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Good question. I'm not aware of an easy way to navigate nested objects back and forth in xEdit. I wish there were 'Back' and 'Forward' shortcuts, and a history of viewed records, like in a web browser. Personally I write down the form ID of the record I'm viewing before drilling down the hierarchy, so I can go back to previous records later. It's a cumbersome hassle. Another way to navigate back is by using the 'Referenced By (n)' tab at the bottom of the record window, but it can list several possible paths back which doesn't really help.

About your other questions, let's drill down the list chain from your example, and then go back up, the way the game would work:

Belethor's Merchant Chest requests up to 15 items from LItemMiscVendorArmor75 [LVLI:0009AF07].

  • LItemMiscVendorArmor75 [LVLI:0009AF07] requests one item each from 5 sub-lists, one of them being LItemArmorCuirassAnyTown [LVLI:0001674E].
    • LItemArmorCuirassAnyTown [LVLI:0001674E] requests one item each from 2 sub-lists, one of them being LItemArmorCuirassHeavyTown [LVLI:00016747].
      • LItemArmorCuirassHeavyTown [LVLI:00016747] contains 16 entries, some of which are individual armor pieces, others are more sub-lists.
        • The list has the 'Calculate from all levels <= player's level' flag. If the player is level 10 for example, the game will randomly pick an item among the first 8 entries from Level 1 to Level 8, rather than pick the Level 8 entry (closest to, and not greater than, level 10). Thus the list may return a low-level Iron Cuirass, even though the player is level 10 and better Banded Iron Cuirasses are available.
        • The list has the 'Calculate for each item in count' flag. This has no effect here, because only 1 item is requested from this list.
        • The list contains 4 identical entries for Iron Cuirass at Level 1. This is intended to increase the probability of returning an Iron Cuirass. This makes the Iron Cuirass 4 times more likely to be picked than if it were listed only once.
      • One item has been selected from LItemArmorCuirassHeavyTown [LVLI:00016747]. Repeat the above steps for the other sub-list within LItemArmorCuirassAnyTown [LVLI:0001674E].
    • Then we're back to LItemArmorCuirassAnyTown [LVLI:0001674E] which now contains one randomly selected Heavy Armor Cuirass and one randomly selected Light Armor Cuirass.
    • The list has 'Calculate from all levels <= player's level' flag. See above.
    • The list has the 'Calculate for each item in count' flag. This has no effect here, because only 1 item is requested from this list.
    • Repeat the above steps for the 4 other sub-lists within LItemMiscVendorArmor75 [LVLI:0009AF07].
  • Then we're back to LItemMiscVendorArmor75 [LVLI:0009AF07] which now contains one randomly selected Cuirass, one randomly selected Boots, one randomly selected Gauntlets, one randomly selected Helmet and one randomly selected Shield, of various qualities/levels.
  • The list has the 'Calculate from all levels <= player's level' flag. See previous.
  • The list has the 'Calculate for each item in count' flag. As the vendor chest requests 15 items from this list and each entry in this list has a quantity of 1, this causes 15 random separate item selections, rather one single item selection multiplied by 15. For example, the list may return 3 shields, 2 boots, 4 cuirasses, 1 gauntlets and 5 helmets. If that flag wasn't set, it could return 15 identical helmets, or 15 identical boots, etc.
  • The list has a 'Chance None' value of 25. There is a 25% chance the list selects nothing. As the 'Calculate for each item in count' flag is set, this applies to each random selection. So in the best case the list will return a total of 15 items to the chest (0.75^15 = ~1.3% chance of happening), and in the worst case, it will return 0 items (0.25^15 = about 1 chance in 100 millions, practically never), with an average of 15*0.75 = ~11 items selected across all draws.

You can use the Creation Kit to see how the leveled list behaves inside the chest:

g81gCd7.png

  1. Enter the list Form ID in filter field.
  2. Double-click the list found.
  3. In list panel, enter desired player level and number of items.
  4. Click 'Preview Calculated Results'.

See also https://en.uesp.net/wiki/Skyrim:Leveled_Lists.

  • Thanks 1
Link to comment
Share on other sites

  • 0
9 minutes ago, Mousetick said:

Good question. I'm not aware of an easy way to navigate nested objects back and forth in xEdit. I wish there were 'Back' and 'Forward' shortcuts, and a history of viewed records, like in a web browser. Personally I write down the form ID of the record I'm viewing before drilling down the hierarchy, so I can go back to previous records later. It's a cumbersome hassle. Another way to navigate back is by using the 'Referenced By (n)' tab at the bottom of the record window, but it can list several possible paths back which doesn't really help.

xEdit Overview 2.8.5 - Navigation Treeview

  • Ctr + 1 through 5 to set a bookmark
  • Alt + 1 through 5 to jump to a bookmark

Basically set a bookmark before you Ctrl+Click to jump to the FormId. When you're finished, jump to the bookmark to return where you were.

If I understand correctly, the leveled list also has LVLD - Chance None that specifies the chance for getting nothing. LItemMiscVendorArmor has this set to 25 so if I'm not mistaken, each time it attempts to select an item from this list it has 25% chance of selecting nothing.

Link to comment
Share on other sites

  • 0
17 hours ago, Greg said:

xEdit Overview 2.8.5 - Navigation Treeview

  • Ctr + 1 through 5 to set a bookmark
  • Alt + 1 through 5 to jump to a bookmark

Basically set a bookmark before you Ctrl+Click to jump to the FormId. When you're finished, jump to the bookmark to return where you were.

Thanks for the tip! I can see how bookmarking would be useful in some cases while working in xEdit, but it's not very intuitive or efficient for navigating a tree-like hierarchy: it requires bookmarking every step of the way, remembering which bookmark/shortcut corresponds to which node/level in the hierarchy, and updating the bookmarks when traversing laterally. Too many steps and mental effort :) compared to a history of viewed pages with back/forward functions.

17 hours ago, Greg said:

If I understand correctly, the leveled list also has LVLD - Chance None that specifies the chance for getting nothing. LItemMiscVendorArmor has this set to 25 so if I'm not mistaken, each time it attempts to select an item from this list it has 25% chance of selecting nothing.

Yes indeedy. That's my understanding as well. I tried to explain as much in my post, but it apparently got lost in the wall of text :)

18 hours ago, Mousetick said:

The list has a 'Chance None' value of 25. There is a 25% chance the list selects nothing. As the 'Calculate for each item in count' flag is set, this applies to each random selection. So in the best case, the list will return a total of 15 items to the chest, and in the worst case, it will return 15 x 0.75 = 11 items.

I realized it's partly wrong though, because I'm very bad at probability math. The correct outcomes for this particular example would be:

In the best case the list will return a total of 15 items to the chest (0.75^15 = ~1.3% chance of happening), and in the worst case, it will return 0 items (0.25^15 = about 1 chance in 100 millions, practically never), with an average of 15*0.75 = ~11 items across all draws.

I've updated my post above with these corrections.

Link to comment
Share on other sites

  • 0
18 hours ago, Mousetick said:

Good question. I'm not aware of an easy way to navigate nested objects back and forth in xEdit. I wish there were 'Back' and 'Forward' shortcuts, and a history of viewed records, like in a web browser. Personally I write down the form ID of the record I'm viewing before drilling down the hierarchy, so I can go back to previous records later. It's a cumbersome hassle. Another way to navigate back is by using the 'Referenced By (n)' tab at the bottom of the record window, but it can list several possible paths back which doesn't really help.

About your other questions, let's drill down the list chain from your example, and then go back up, the way the game would work:

Belethor's Merchant Chest requests up to 15 items from LItemMiscVendorArmor75 [LVLI:0009AF07].

  • LItemMiscVendorArmor75 [LVLI:0009AF07] requests one item each from 5 sub-lists, one of them being LItemArmorCuirassAnyTown [LVLI:0001674E].
    • LItemArmorCuirassAnyTown [LVLI:0001674E] requests one item each from 2 sub-lists, one of them being LItemArmorCuirassHeavyTown [LVLI:00016747].
      • LItemArmorCuirassHeavyTown [LVLI:00016747] contains 16 entries, some of which are individual armor pieces, others are more sub-lists.
        • The list has the 'Calculate from all levels <= player's level' flag. If the player is level 10 for example, the game will randomly pick an item among the first 8 entries from Level 1 to Level 8, rather than pick the Level 8 entry (closest to, and not greater than, level 10). Thus the list may return a low-level Iron Cuirass, even though the player is level 10 and better Banded Iron Cuirasses are available.
        • The list has the 'Calculate for each item in count' flag. This has no effect here, because only 1 item is requested from this list.
        • The list contains 4 identical entries for Iron Cuirass at Level 1. This is intended to increase the probability of returning an Iron Cuirass. This makes the Iron Cuirass 4 times more likely to be picked than if it were listed only once.
      • One item has been selected from LItemArmorCuirassHeavyTown [LVLI:00016747]. Repeat the above steps for the other sub-list within LItemArmorCuirassAnyTown [LVLI:0001674E].
    • Then we're back to LItemArmorCuirassAnyTown [LVLI:0001674E] which now contains one randomly selected Heavy Armor Cuirass and one randomly selected Light Armor Cuirass.
    • The list has 'Calculate from all levels <= player's level' flag. See above.
    • The list has the 'Calculate for each item in count' flag. This has no effect here, because only 1 item is requested from this list.
    • Repeat the above steps for the 4 other sub-lists within LItemMiscVendorArmor75 [LVLI:0009AF07].
  • Then we're back to LItemMiscVendorArmor75 [LVLI:0009AF07] which now contains one randomly selected Cuirass, one randomly selected Boots, one randomly selected Gauntlets, one randomly selected Helmet and one randomly selected Shield, of various qualities/levels.
  • The list has the 'Calculate from all levels <= player's level' flag. See previous.
  • The list has the 'Calculate for each item in count' flag. As the vendor chest requests 15 items from this list and each entry in this list has a quantity of 1, this causes 15 random separate item selections, rather one single item selection multiplied by 15. For example, the list may return 3 shields, 2 boots, 4 cuirasses, 1 gauntlets and 5 helmets. If that flag wasn't set, it could return 15 identical helmets, or 15 identical boots, etc.
  • The list has a 'Chance None' value of 25. There is a 25% chance the list selects nothing. As the 'Calculate for each item in count' flag is set, this applies to each random selection. So in the best case, the list will return a total of 15 items to the chest, and in the worst case, it will return 15 x 0.75 = 11 items.

You can use the Creation Kit to see how the leveled list behaves inside the chest:

g81gCd7.png

  1. Enter the list Form ID in filter field.
  2. Double-click the list found.
  3. In list panel, enter desired player level and number of items.
  4. Click 'Preview Calculated Results'.

See also https://en.uesp.net/wiki/Skyrim:Leveled_Lists.


Thank you very much for this answer. I had no idea leveled lists were that convoluted. I have to take my hat off to the modders who do major overhauls. I can't imagine going through each one of these to change them.

18 hours ago, Greg said:

xEdit Overview 2.8.5 - Navigation Treeview

  • Ctr + 1 through 5 to set a bookmark
  • Alt + 1 through 5 to jump to a bookmark

Basically set a bookmark before you Ctrl+Click to jump to the FormId. When you're finished, jump to the bookmark to return where you were.

If I understand correctly, the leveled list also has LVLD - Chance None that specifies the chance for getting nothing. LItemMiscVendorArmor has this set to 25 so if I'm not mistaken, each time it attempts to select an item from this list it has 25% chance of selecting nothing.

Very cool. I had no idea you could set bookmarks in xEdit. I'll have to give it a try.

  • Like 1
Link to comment
Share on other sites

  • 0
2 hours ago, Mousetick said:

Thanks for the tip! I can see how bookmarking would be useful in some cases while working in xEdit, but it's not very intuitive or efficient for navigating a tree-like hierarchy: it requires bookmarking every step of the way, remembering which bookmark/shortcut corresponds to which node/level in the hierarchy, and updating the bookmarks when traversing laterally. Too many steps and mental effort :) compared to a history of viewed pages with back/forward functions.

You're right that is not nearly as easy as pressing Backspace or Alt+Left Arrow to go back through history, but I find it's better than nothing.

 

2 hours ago, Mousetick said:

Yes indeedy. That's my understanding as well. I tried to explain as much in my post, but it apparently got lost in the wall of text :)

Oops! Sorry, I indeed missed this in the "wall of text." O_o

Link to comment
Share on other sites

  • 0
2 hours ago, GabrielWithoutWings said:


Thank you very much for this answer. I had no idea leveled lists were that convoluted. I have to take my hat off to the modders who do major overhauls. I can't imagine going through each one of these to change them.

Very cool. I had no idea you could set bookmarks in xEdit. I'll have to give it a try.

Actually, I think the 'lesson' is to modify LLs in the CK (as Mouse's screenshot above demonstrates). It's much simpler to create (and check them) in the more intuitive LL editor in the CK. I'm sure that's how the experienced MAs do it initially for their mods. Once you've done many of them, it becomes simpler to modify them using xEdit, but the data org in the more code-like UI of xEdit just isn't as clear, and it's easier to muck it up.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.