Jump to content

Determining the size of a soul contained within a soul gem


Recommended Posts

 

From what I can see, it wouldn't just be a matter of adding a variant for each combination of soul gem and soul size, as you can only link an unfilled soul gem to one filled variant anyway (which Bethesda have set to a soul of equivalent size to the soul gem). This puts a stop to your plans before you even get started.

No it doesn't. If you wanted to still partially fill gems, which I would not, you simply make them. You make a lesser filled with petty, a common filled with lesser etc., and add them to the players inventory when appropriate.

 

Like I said I would set up the script so only petty soulgems could hold petty souls and only lesser gems lesser souls etc. But you could do whatever you wanted.

 

I know that you could simulate the effect with scripts by swapping soul gems in and out as you capture souls (and it would almost certainly work just fine), but if I set it up this way I'd prefer it to be an extention of the game's in-built mechanics, rather than a roundabout solution I've whipped up myself. Hence, I'm looking to see how the game manages things and use the same system.

 

 

 

All of that aside though, Nokhal has been walking me through some things, where he basically outlines the fact that Bethesda apparently determine the size of a soul contained within a soul gem using alias's, and he has linked me to this related mod . I'll check this all out once I wake up, but this is probably what I'll end up going with.

Keep us up to date on this. I would like to hear more about these alias's.

 

Probably bulls***. I've gone through the CK and the scripts for the past day trying to find an answer for this thread without any additional forms. Frankly what I have found is that determining the size of soul contained within a soul gem is done natively as is enchanting items.

 

While there are parts of enchanting that are in the CK, the actual use of the bench and the outcome of the crafting is done natively and can't be modified by the CK it seems. Unless I missed something, it won't be possible to get what soul is in a soul gem without modifying the game itself or creating additional forms for each soul gem with each different soul size.

 

Well, the mod that I linked to apparently set it up this way at the very least, which sounds like a much cleaner solution than the alternatives that have been suggested (as it doesn't change the vanilla system and therefore cause compatibility problems). You could very well be correct in saying that it's all hard-coded, etc. - that's still what I'm thinking could be the case as well.

 

The key point of what Nokhal said was:

 

"the way the CreationEngine handles it is by creating aliases in your save

When you load your save, an ObjectReference is instancied from the base form, with whatever modifications of the actor values are contained in the aliases

So the Base Form is still the Unfilled soul gem

But something simmiliar to a quest is making it apply modifier so that the name is changed"

 

 

Probably bulls***.

 

I don't know. I would like to hear from this guy. eyeonus

 

If I downloaded Mods and was interested in this, I would check out this one, all of the functions other than languages do not require SKSE.

 

http://www.nexusmods.com/skyrimspecialedition/mods/1469/?

 

The functions may be native, but you may have access to resources used by the native functions and manipulate them.

 

I went through the source of that mod yesterday - trapping the soul doesn't retain any information about the size of the soul in the soul gem, because the size of the soul is determined by the level of the NPC that had their soul trapped (e.g. level 38 and above grants a grand soul). This means that this issue that we encounter once the soul is actually in the soul gem isn't an issue at all in the soul-trapping process.

Edited by KernalsEgg
Link to comment
Share on other sites

You should probably call them something other than aliases, because they are not aliases and this will create confusion.

 

I believe what happens is similar to the way that stolen items are tracked. Instead of creating a new, "stolen" version of an item, the game keeps track of "the fifth silver ring in the player's inventory is stolen." Then when the fifth silver ring moves out of your inventory, it transfers that info. "The second silver ring in the chest is stolen." This would also explain why soul gems lose their souls when they are dropped from your inventory. For a stolen item, it's simply a matter of setting its ownership when it is dropped. But there is no way for the game to set the soul value of soul gem reference, so the game simply forgets.

Link to comment
Share on other sites

You should probably call them something other than aliases, because they are not aliases and this will create confusion.

Well, I was thinking to alias them in a housekeeping quest to keep track of them - wouldn't that make the term suitable? Otherwise, this confusion has spread to me mate haha - if you could fill me in I'd appreciate it. I still have some things to work out beyond this, though, such as whether I can work with the instance reference rather than the base reference of the soul gem, which would make my job a lot easier (and would allow the soul size to be kept track of by dynamic keywords, etc.). I've been having conversations in PMs, on Discord, etc. so this conversation has become rather fragmented for me, sorry.

 

I believe what happens is similar to the way that stolen items are tracked. Instead of creating a new, "stolen" version of an item, the game keeps track of "the fifth silver ring in the player's inventory is stolen." Then when the fifth silver ring moves out of your inventory, it transfers that info. "The second silver ring in the chest is stolen." This would also explain why soul gems lose their souls when they are dropped from your inventory. For a stolen item, it's simply a matter of setting its ownership when it is dropped. But there is no way for the game to set the soul value of soul gem reference, so the game simply forgets.

To my knowledge, objects can be owned by either an actor reference, an actor base, or a faction. In the case of doors, containers, etc. this can be as simple as existing in an owned cell, so these objects aren't necessarily directly owned (by which I mean, they could be unowned, but be situated in an owned cell - making them owned by the owner of the cell). Wouldn't these objects just be separated based upon whether the owner qualifies as having been stolen from or not? For instance, there are functions, such as some of the remove functions, that have parameters that allow you the retain the owner of the object. This would mean that the game tracks the owner of the object, and determine whether it's stolen based off of that - rather than just tracking whether it was stolen.

 

Edit: That's not to say that this is how soul gems are managed, it very well could be - the more I look, the more I concede that it's hard coded. I'm almost certain it is now, which means that I'm trying some trickery to keep track of individual soul gems, without doing something like create new forms for each sized soul in a soul gem. I'm against that because it feels sloppy and it would break compatibility with a number of mods, which would be a pain to patch.

Edited by KernalsEgg
Link to comment
Share on other sites

 

In other words, it's fillings aliases in an internal quest(not really, more like a form handler), that can't be looked at through normal means.

That's my understanding of it. I'll take a look at how this other mod handled things shortly.

 

 

Yeah it seems that way, unless you are correct that there is an actor value related to the soul gems that determine the soul size.

 

You should probably call them something other than aliases, because they are not aliases and this will create confusion.

 

I believe what happens is similar to the way that stolen items are tracked. Instead of creating a new, "stolen" version of an item, the game keeps track of "the fifth silver ring in the player's inventory is stolen." Then when the fifth silver ring moves out of your inventory, it transfers that info. "The second silver ring in the chest is stolen." This would also explain why soul gems lose their souls when they are dropped from your inventory. For a stolen item, it's simply a matter of setting its ownership when it is dropped. But there is no way for the game to set the soul value of soul gem reference, so the game simply forgets.

 

I'm starting to believe that it is something relating to that.

Link to comment
Share on other sites

 

You should probably call them something other than aliases, because they are not aliases and this will create confusion.

Well, I was thinking to alias them in a housekeeping quest to keep track of them - wouldn't that make the term suitable? Otherwise, this confusion has spread to me mate haha - if you could fill me in I'd appreciate it. I still have some things to work out beyond this, though, such as whether I can work with the instance reference rather than the base reference of the soul gem, which would make my job a lot easier (and would allow the soul size to be kept track of by dynamic keywords, etc.). I've been having conversations in PMs, on Discord, etc. so this conversation has become rather fragmented for me, sorry.

 

I was referring to this comment:

 

the way the CreationEngine handles it is by creating aliases in your save

Which is definitely inaccurate. Soul gems in your inventory are not object references, so they cannot be aliases. It's not very illustrative to call them "something like an alias" either, because they share almost none of the attributes of aliases. They are not references, they're not persistent, etc. It's just misleading to call them such.

 

 

I believe what happens is similar to the way that stolen items are tracked. Instead of creating a new, "stolen" version of an item, the game keeps track of "the fifth silver ring in the player's inventory is stolen." Then when the fifth silver ring moves out of your inventory, it transfers that info. "The second silver ring in the chest is stolen." This would also explain why soul gems lose their souls when they are dropped from your inventory. For a stolen item, it's simply a matter of setting its ownership when it is dropped. But there is no way for the game to set the soul value of soul gem reference, so the game simply forgets.

To my knowledge, objects can be owned by either an actor reference, an actor base, or a faction. In the case of doors, containers, etc. this can be as simple as existing in an owned cell, so these objects aren't necessarily directly owned (by which I mean, they could be unowned, but be situated in an owned cell - making them owned by the owner of the cell). Wouldn't these objects just be separated based upon whether the owner qualifies as having been stolen from or not? For instance, there are functions, such as some of the remove functions, that have parameters that allow you the retain the owner of the object. This would mean that the game tracks the owner of the object, and determine whether it's stolen based off of that - rather than just tracking whether it was stolen.

 

Edit: That's not to say that this is how soul gems are managed, it very well could be - the more I look, the more I concede that it's hard coded. I'm almost certain it is now, which means that I'm trying some trickery to keep track of individual soul gems, without doing something like create new forms for each sized soul in a soul gem. I'm against that because it feels sloppy and it would break compatibility with a number of mods, which would be a pain to patch.

 

I only brought up stolen items because it seems the system is related, not to go in-depth into how stolen items work. The game does seem to keep track of whom you have stolen an item from (which can be either an actor base or a faction, not a reference), but that really isn't material to soul gem management. The point is that it is tracked based on the item's position in your inventory, not in any way analogous to aliases.

Link to comment
Share on other sites

I was referring to this comment:

the way the CreationEngine handles it is by creating aliases in your save

Which is definitely inaccurate. Soul gems in your inventory are not object references, so they cannot be aliases. It's not very illustrative to call them "something like an alias" either, because they share almost none of the attributes of aliases. They are not references, they're not persistent, etc. It's just misleading to call them such.

 

Oh ok, gotcha, thanks.

 

I only brought up stolen items because it seems the system is related, not to go in-depth into how stolen items work. The game does seem to keep track of whom you have stolen an item from (which can be either an actor base or a faction, not a reference), but that really isn't material to soul gem management. The point is that it is tracked based on the item's position in your inventory, not in any way analogous to aliases.

 

Oh, my bad - I took that knowledge from FO4 where you can set an actor reference as the owner, which doesn't look to be the case in SSE now that I look at things. Thanks for filling me in mate, I'll try to work something out with that in mind.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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