Jump to content

Soul Gems making


georgejbps

Recommended Posts

Just wondering. Is it possible to make a mod the makes gathering souls cumulative so as to making Grand Black Soul Gems? That is, when you kill a low end thing that only warrants a petty soul gem, can a mod be made the keeps that soul in abeyance till enough souls are collected to make a single grand black soul gem? Instead of having to forge lower soul gems into bigger ones. I have a large collection of lower soul gems and am kind of tired having to either sell them and buy a bigger gem or take the time to forge them. Though it adds more "time" to the game, it takes away from the adventuring! Just wondering!

Link to comment
Share on other sites

Even if it were possible to store the smaller souls and force two or more souls into a larger gem, the type of souls are different. Black souls are humanoid (i.e. the playable races). Whereas white souls are animals. What that means is that you might be able to with some sort of magical device transfer the souls from say two petty gems into a lesser gem and be left with two empty petty gems and one full lesser gem (or the petty gems could be destroyed in the process). But going from white soul gems to black soul gems doesn't make sense, to me at least. Other than their source of souls there is no difference in function between a white grand gem and a black grand gem.

 

No idea what mod allows the forging of soul gems, but it sounds to me that you'd prefer some portable device that can do the following:

upgrade two petty gems into one lesser gem

upgrade four petty gems into one common gem OR two lesser gems into one common gem

upgrade eight petty gems into one greater gem OR four lesser gems into one greater gem OR two common gems into one greater gem

upgrade one greater & one common into one grand gem OR all the other possible combinations :tongue:

 

The less time spent out of the adventuring, the better. Rather than a portable "forge" or other crafting station a portable device with a script that will on activate automatically create the necessary larger gems and remove the smaller gems as a cost factor seems to be more warranted.

 

Problem. I can't run Skyrim any more. However the script (which might be trickiest for most) should be fairly simple. It's the application and testing that I cannot do.

 

 

 

Scriptname SomeScript Extends ObjectReference
;attach this script to an object that the player will carry.  misc object or armor/weapon object.  if misc object, text will be displayed that object cannot be equipped but the function/events will still process
 
SoulGem Property FilledPettyGem Auto
SoulGem Property FilledLesserGem Auto
SoulGem Property FilledCommonGem Auto
SoulGem Property FilledGreaterGem Auto
SoulGem Property FilledGrandGem Auto
 
SoulGem Property EmptyLesserGem Auto
SoulGem Property EmptyCommonGem Auto
SoulGem Property EmptyGreaterGem Auto
SoulGem Property EmptyGrandGem Auto
 
Actor Property PlayerRef Auto
 
;function for upgrade to lesser, common & greater -- grand is different
Function SoulGemUpgrade(Actor Holder, SoulGem FilledSmallGem, SoulGem FilledBigGem, SoulGem EmptyBigGem)
  Int NumSmall = Holder.GetItemCount(FilledSmallGem)
  Int NumBigEmpty = Holder.GetItemCount(EmptyBigGem)
  While (NumBigEmpty >= 1) && (NumSmall >= 2)
    Holder.AddItem(FilledBigGem,1,true)
    Holder.RemoveItem(FilledSmallGem,2,true)
    Holder.RemoveItem(EmptyBigGem,1,true)
    NumSmall = Holder.GetItemCount(FilledSmallGem)
    NumBigEmpty = Holder.GetItemCount(EmptyBigGem)
  EndWhile
EndFunction
 
;function to upgrade to grand
;petty = 250, lesser = 500, common = 1000, greater = 2000, grand = 3000
Function SoulGemUpgradeToGrand(Actor Holder, SoulGem EmptyGrand, SoulGem FilledPetty, SoulGem FilledLesser, SoulGem FilledCommon, SoulGem FilledGrand)
  Int NumEmpty = Holder.GetItemCount(EmptyGrand)
  Int NumPetty = Holder.GetItemCount(FilledPetty)
  Int NumLesser = Holder.GetItemCount(FilledLesser)
  Int NumCommon = Holder.GetItemCount(FilledCommon)
  Int NumGreater = Holder.GetItemCount(FilledGreater)
  While NumEmpty >= 1 && NumGreater >= 1
    If NumCommon >= 1
      Holder.AddItem(FilledGrand,1,true)
      Holder.RemoveItem(FilledGreater,1,true)
      Holder.RemoveItem(FilledCommon,1,true)
      Holder.RemoveItem(EmptyGrand,1,true)
      NumEmpty = Holder.GetItemCount(EmptyGrand)
      NumGreater = Holder.GetItemCount(FilledGreater)
      NumCommon = Holder.GetItemCount(FilledCommon)
    ElseIf NumLesser >= 2
      Holder.AddItem(FilledGrand,1,true)
      Holder.RemoveItem(FilledGreater,1,true)
      Holder.RemoveItem(FilledLesser,2,true)
      Holder.RemoveItem(EmptyGrand,1,true)
      NumEmpty = Holder.GetItemCount(EmptyGrand)
      NumGreater = Holder.GetItemCount(FilledGreater)
      NumLesser = Holder.GetItemCount(FilledLesser)
    ElseIf NumPetty >= 4
      Holder.AddItem(FilledGrand,1,true)
      Holder.RemoveItem(FilledGreater,1,true)
      Holder.RemoveItem(FilledPetty,4,true)
      Holder.RemoveItem(EmptyGrand,1,true)
      NumEmpty = Holder.GetItemCount(EmptyGrand)
      NumGreater = Holder.GetItemCount(FilledGreater)
      NumPetty = Holder.GetItemCount(FilledPetty)
    ElseIf NumLesser = 1 && NumPetty >= 2
      Holder.AddItem(FilledGrand,1,true)
      Holder.RemoveItem(FilledGreater,1,true)
      Holder.RemoveItem(FilledLesser,1,true)
      Holder.RemoveItem(FilledPetty,2,true)
      Holder.RemoveItem(EmptyGrand,1,true)
      NumEmpty = Holder.GetItemCount(EmptyGrand)
      NumGreater = Holder.GetItemCount(FilledGreater)
      NumLesser = Holder.GetItemCount(FilledLesser)
      NumPetty = Holder.GetItemCount(FilledPetty)
    ElseIf (NumCommon < 1) && (NumLesser < 1) && (NumPetty < 2)
      NumEmpty = 0 ;exits the while loop if no valid combonations left
    EndIf
  EndWhile
EndFunction

Event OnEquipped(Actor Someone)
  If Someone == PlayerRef
    SoulGemUpgradeToGrand(Someone,EmptyGrandGem,FilledPettyGem,FilledLesserGem,FilledCommonGem,FilledGreaterGem,FilledGrandGem)
    SoulGemUpgrade(Someone,FilledPettyGem,FilledLesserGem,EmptyLesserGem)
    SoulGemUpgrade(Someone,FilledLesserGem,FilledCommonGem,EmptyCommonGem)
    SoulGemUpgrade(Someone,FilledCommonGem,FilledGreaterGem,EmptyGreaterGem)
  EndIf
EndEvent

 

 

I have not tested, compiled or done anything otherwise than type this. I believe the theory is sound.

 

If attached to an object that the player will carry, when that object is "equipped" the script will process. The following will happen:

Any valid combination of gems alongside one greater gem will be converted into a white grand gem provided there is an empty grand gem available. Those combinations are:

1 greater & 1 common

1 greater & 2 lesser

1 greater & 4 petty

1 greater & 1 lesser & 2 petty

 

When that is finished the remaining gems will be upgraded provided there is an empty gem and the proper number of lower size gems to fit within. Those groupings are:

2 petty per lesser

2 lesser per common

2 common per greater

 

It will upgrade all petty first, then upgrade those lesser to common and finally the common to greater.

 

In theory it could take a few moments to process if you have large amounts of gems. Otherwise processing should be fairly quick with smaller amounts of gems.

 

Again, someone has to create the object to be equipped, compile the above script, assign it to the object to be equipped, fill in the properties appropriately and test the whole thing out. At least tho this is may be a start for someone who may want to create such a mod.

Link to comment
Share on other sites

OK...I see...Thanks. Just thought a soul was a soul . Didn't know there were distinct category's. Just hoping to bypass a longer drawn out process! Since you can "charge" your weapon with any gem I just figured if you converted all gems to the highest so you can "charge" or enchant faster, that's all. Thanks again!

Link to comment
Share on other sites

  • Recently Browsing   0 members

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