Jump to content

Understanding Leveled Lists


Recommended Posts

Hello!

So I've just begun my foray into leveled lists and I'm getting some of it, but honestly it feels like Bethesda's datatypes are massively convoluted? They're at least complicated and sometimes seems to run circles around one another. I have made basic success at some of what I'd like to do, but some of it also seems fairly unclear as to how it works or how to accomplish. If there's anyone who doesn't mind answering a few questions or directing me towards videos that might help, I would appreciate.

 

Currently I'm working on a personal project that alters the gear bandits spawn with to give them more advanced armors as the player level progresses and I would also like to expand that project into other spawns like giving different types of sorcerers something other than plain black robes. I'll need to keep working on the data entry of it to accomplish my goal of course, but I have managed to make a degree of definite success, which shows I can probably accomplish all I hope to as long as I can muster sufficient understanding of how it works, I think.

 

1) So I'm pretty sure I've got the first part correctly sorted out to a point. Basically Leveled Items control items which are then furtehr sorted into lists, but then after this comes the seemingly convoluted part. After this outfits can either go into leveled NPC's datatype or into Non-Player Character (Actor) datatype. These datatypes do seem to have different purposes, the leveled NPC seems more or less the same as leveled item, but for NPC's whereas the NPC(Actor) datatype seems to contain info like face appearance and such. So it seems liek bothe of these are kind of essential, but it's not clear which direction they 'should' go in, or ma i overthinking and they're actually onmidirectional???

2) For NPC(Actor) it seems like some entries utilize the DFOT field while others do not, what is this fields specific purpose and how do I detemrine if I need it or not???

3) I also want to be able to understand how the game determines what characters to spawn, I'm not currently looking on creating new NPC's yet (but might in the future) I have explored the references to try to understand this, but again looks a little complicated as if there's multiple pathways, some which kind of make sense, but i don't fully understand them. I can see things liek say named bandits end up getting an explicit reference in the worldspace datatype, but I'm not sure i understand where the more generic NPC's go, such as the generic bandits.

 

Anyways, thankyou friends for your help, I hope I'm clear enough about what I'm trying to understand, if not please do say so and I'll try to communicate more effectively.

Link to comment
Share on other sites

LeveledActor is very much like a LeveledItem; it's list of ActorBase objects to choose from when generating a Reference (an Actor).

Not all actors are linked to a LeveledActor record.  Most non baddies in fact are just simple Actors that are references to a simple ActorBase.

You will notice that Actors have both a .getActorBase and a .getLeveledActorBase method.  In the simple case they return the same ActorBase.

However, if the actor is linked to a LeveledActor, these two methods will return different things.  GetActorBase will return the ActorBase that was chosen from the LeveledActor list.  GetLeveledActorBase will return a modified clone of that base (with an id 0xFFxxxxxx).   Though it starts out as a "clone", the game will inject a bunch of data taken from the LeveledActor record, and computed from the ActorBase's skill data.

I do not know in much detail exactly which fields are copied from where or computed nor how.  I do believe however that the outfit data from the LeveledActor is copied into the clone.

Link to comment
Share on other sites

Levelled items and actors are really best explored via Creation Kit, not via xEdit.

A 'LeveledCharacter'   is a list that will select one of its entries based on player level.    

An Actor (NPC) can be templated on either another Actor, or on a LevelledCharacter.    Templated means it inherits certain properties from the other record.

Then, NPCs can be placed in the world.    

Example:, in  KnifePointRidge cell, there is an encounter marker (ID 0x00A665C) , which has LvlBanditWizard (0x0001E79F) as its base.    But who exactly gets to spawn there?

Looking at this 'Actor'  (NPC)  record, you can see that it is templated on LCharBanditWizard (0x0001E771), for almost everything except keywords.    Means it inherits inventory (including default outfit) from its template.

LCharBanditWizard  will actually yield one of potential results.   I.e. if player is between level 9 and 14, it will select 'SubCharBandit03Magic' (0x00039D61)

SubCharBandit03Magic will randomly select one of EncBandit03Magic NPC records, which may be a male or female Breton, Dark Elf or Nord, or male Argonian.     Lets assume it goes with a female Breton (EncBandit03MagicBretonF, 0x00039D44)

EncBandit03MagicBretonF Actor record is templated on EncBandit03TemplateMagic (0x00039D43) for everything except Traits and Keywords.   Means it inherits inventory rather has its own.

EncBandit03TemplateMagic is templated on EncBandit00Template for a number of things, but NOT  for inventory.    And it its inventory tab, it specifies 'BanditMageOutfit'  (0x0006E26F) as its default outfit.

Finally, EncBandit00Template (0x00039CF4) is not templated on anything.

So to answer your questions:   

1.  Outfits do NOT got into 'Levelled NPC'  datatype - those are just lists of potential Actor (NPC) objects.   Outfits go into Actor (NPC) datatype.

2.  DOFT field is default outfit - what this NPC it going to be wearing, found on the 'Inventory' tab.   If an NPC uses another NPC or LevelledNPC as its template for Inventory, then this NPC will naot have its own default outfit.

3.  My lineup above should answer this one.   Player enter Knife Point Ridge, in last room before boss, it will spawn a 'LvlBanditWizard'  NPC, which will select a specific tier of NPC based on player level, then randomly select a specific sex/race template.

 

Link to comment
Share on other sites

Thanks, I was honestly a bit nervous about asking all this, but I'm glad I did.

On 4/7/2024 at 6:53 AM, xkkmEl said:

LeveledActor is very much like a LeveledItem; it's list of ActorBase objects to choose from when generating a Reference (an Actor).

Not all actors are linked to a LeveledActor record.  Most non baddies in fact are just simple Actors that are references to a simple ActorBase.

You will notice that Actors have both a .getActorBase and a .getLeveledActorBase method.  In the simple case they return the same ActorBase.

However, if the actor is linked to a LeveledActor, these two methods will return different things.  GetActorBase will return the ActorBase that was chosen from the LeveledActor list.  GetLeveledActorBase will return a modified clone of that base (with an id 0xFFxxxxxx).   Though it starts out as a "clone", the game will inject a bunch of data taken from the LeveledActor record, and computed from the ActorBase's skill data.

I do not know in much detail exactly which fields are copied from where or computed nor how.  I do believe however that the outfit data from the LeveledActor is copied into the clone.

So basically just an NPC(Actor) will createa duplicate, but adding a leveled NPC to the reference will introuduce some randomness.

On 4/7/2024 at 9:46 AM, scorrp10 said:

Levelled items and actors are really best explored via Creation Kit, not via xEdit.

Well the main reason I'm not using the CK is because it looks like it's limited to SE, I've just never migrated over I guess because my mods are so well established on LE. I mean i suppose I always could.

 

On 4/7/2024 at 9:46 AM, scorrp10 said:

 

A 'LeveledCharacter'   is a list that will select one of its entries based on player level.    

An Actor (NPC) can be templated on either another Actor, or on a LevelledCharacter.    Templated means it inherits certain properties from the other record.

Then, NPCs can be placed in the world.    

Example:, in  KnifePointRidge cell, there is an encounter marker (ID 0x00A665C) , which has LvlBanditWizard (0x0001E79F) as its base.    But who exactly gets to spawn there?

Looking at this 'Actor'  (NPC)  record, you can see that it is templated on LCharBanditWizard (0x0001E771), for almost everything except keywords.    Means it inherits inventory (including default outfit) from its template.

LCharBanditWizard  will actually yield one of potential results.   I.e. if player is between level 9 and 14, it will select 'SubCharBandit03Magic' (0x00039D61)

SubCharBandit03Magic will randomly select one of EncBandit03Magic NPC records, which may be a male or female Breton, Dark Elf or Nord, or male Argonian.     Lets assume it goes with a female Breton (EncBandit03MagicBretonF, 0x00039D44)

EncBandit03MagicBretonF Actor record is templated on EncBandit03TemplateMagic (0x00039D43) for everything except Traits and Keywords.   Means it inherits inventory rather has its own.

EncBandit03TemplateMagic is templated on EncBandit00Template for a number of things, but NOT  for inventory.    And it its inventory tab, it specifies 'BanditMageOutfit'  (0x0006E26F) as its default outfit.

Finally, EncBandit00Template (0x00039CF4) is not templated on anything.

So more accurately it would be LItem > Outfit > NPCActor > LNPC > Word References

And also their could be multiple layers of references within each tier as well.

On 4/7/2024 at 9:46 AM, scorrp10 said:

2.  DOFT field is default outfit - what this NPC it going to be wearing, found on the 'Inventory' tab.   If an NPC uses another NPC or LevelledNPC as its template for Inventory, then this NPC will naot have its own default outfit.

And in this case then the NPCActor block would be referenced into an LNPC and the LNPC would include the proper outfit options, but those would be LItems and not Outfits.

So a couple of new questions:

4. Digging further into your example above: The mage outfit has references to boots and a curraise, in the boots LItemBanditBoots (0000037C23) it actually has multiple references to the same Armor in two cases which reference the objets for Fur Shoes and Hide Boots, as the levels increase this adds in new references for additional items, but also new references for those already referenced. Can i safely assume this creates a probablity set where it has an equal chance of selecting each reference, even copies?

Link to comment
Share on other sites

There are separate version of the CK for LE and SE.  Similar but distinct.

Though I have little experience with LItems and LNPCs, from other examples I would expect the game engine to proceed hierarchically, as Scorrp10 detailed, in selecting ActorBases and outfit items, resorting to randomness only when the records specifically call for it.  It is however possible to have outfits with redundant or conflicting items, in which case the game will choose from the available options, sometimes randomly, sometimes selecting the "best" item; the LItem generation process itself does not care if it creates multiples of the same base item, or items that fill the same equipment slot.

Link to comment
Share on other sites

@ProxyMoxie Go into the Steam client, and look in the game list on the left.  In the pulldown at the top, check Software and Tools.  You should then be able to see Skyrim Creation Kit and Skyrim Special Edition: Creation Kit listed somewhere in that sidebar.

Spoiler

Screenshot_2024-04-09_06-30-08.png.abb39b3d45147383e831fd428d0b7eb4.png

 

Edited by AaronOfMpls
smaller pic
Link to comment
Share on other sites

2 hours ago, AaronOfMpls said:

@ProxyMoxie Go into the Steam client, and look in the game list on the left.  In the pulldown at the top, check Software and Tools.  You should then be able to see Skyrim Creation Kit and Skyrim Special Edition: Creation Kit listed somewhere in that sidebar.

  Reveal hidden contents

Screenshot_2024-04-09_06-30-08.png.abb39b3d45147383e831fd428d0b7eb4.png

 

and there it is, Thankyou! 🙂

  • Like 1
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...