Jump to content

Recommended Posts

Posted
On 8/3/2022 at 9:01 PM, SafyreStorme said:

Anyone know how to rename a mod in Vortex? If I check the mod folder itself, SoS has retained its proper name, however, Vortex has decided to call it "STEM Additions" which is going to confuse the heck out of me next time I'm trying to do something and am looking for something with either "SoS" or "Schlongs of Skyrim" in the name (cause I will have totally forgotten Vortex decided to be a butt and rename it). 

you can do it by double clicking on the mod, and it will bring out a bar on the right, in the "Mod Name" box at the top, you can change the name

Posted
On 8/5/2022 at 8:49 AM, wildblast said:

you can do it by double clicking on the mod, and it will bring out a bar on the right, in the "Mod Name" box at the top, you can change the name

Thank you! You're a prince!

Posted

Hi guys! Is there a way to fix the SchlongsofSkyrim.dll from crashing the game everytime when you adding or removing esp/esl/espfe in you load order?

Posted
On 11/21/2021 at 4:30 AM, Erstam said:

Great news - PapyrusUtil has been updated to Skyrim AE. That means that this version of SOS, which only depends on SKSE and PapyrusUtil, works on the 1.6.318 exe:

 

SOS PapyrusUtil version Beta 4 (UPDATE).7z 61.39 kB · 30,260 downloads

 

Some important things first:

  1. This is an update to SOS SE and only contains the changed esp and scripts. It's not the full mod. So install the files over your existing SOS installation.
  2. As long as you have a working SKSE and PapyrusUtil (either for AE or older SE versions), you're good to go.
  3. Best remove, hide, or move your SchlongsOfSkyrim.dll. It shouldn't really hurt when it's trying to load, but it will cause warnings in the logs.
  4. I've done no testing on 1.6.318 (I'm running a partially downgraded 1.5.97), but it runs fine on my Skyrim installation, and I'm pretty sure it will also work with the new exe, provided you have installed the requirements. After some testing on 1.6.318 I can confirm that it does work.

So how does this work? I've replaced all the functions from the dll with corresponding functions from PapyrusUtil. It looks like the SOS dll was actually forked from an early version of PapyrusUtil, so many functions are identical.

 

Other functions are emulated in Papyrus script. Of course that's much slower than native code, but I took a lot of effort in optimizing them. Particularly the function that randomly picks a schlong for new actors, depending on race and MCM probabilities. Now it caches the values in lists according to race and gender. For example, the first time a Nord gets a schlong, the process is still slow, but subsequent Nords are schlongified much faster. The cache is invalidated when you install or remove addons, or enable/disable addons for certain races in the MCM, or change their probabilities.

 

Further optimizations have been done all over the place. PapyrusUtil functions were often wrapped in multiple layers of convenience functions. I've inlined those where speed does matter. Also fixed some bugs - for instance, when schlongs have been lost (often due to load order changes), the recovery code would run twice.

 

This version cannot read old exported settings from SOS.json. It's using JsonUtil now (part of PapyrusUtil), and the format is different compared to SchlongsOfSkyrim.dll. But I think it's not a big deal, you can easily export your settings in the new format.

 

 

So after I install this update and let it load over SOS I have to delete the SOS.dll from the data folder to make it work?

Posted
On 7/29/2022 at 6:52 PM, Moacir Jr said:

I cant select NPC. I am trying select the folower, or any other, showing E (dialog), then ESC -> System -> MCM Menu -> Scholong of Skyrim -> Player and NPC, and still showing "No Npc Selected".

 

Thanks a lot

 

 

Honestly I'm having the exact same problem myself, both in my Skyrim VR game, and in my older SE game, which I haven't touched in ages... though it's working with another one of my characters in my SE setup. Frankly it's *really* annoying, and I'm not sure what the heck is causing it. :(

Posted

Oh, Jesus Frelling Christ on a stick people.

 

 

WHICH version of SoS will run with 1.6.353 ???

 

I install the newest I can find, SKSE won't launch with it.

 

If it's older version, DD will tell me it's out of date.

 

 

 

Posted
On 8/11/2022 at 3:48 AM, Exploited Kiri said:

Oh, Jesus Frelling Christ on a stick people.

 

 

WHICH version of SoS will run with 1.6.353 ???

 

I install the newest I can find, SKSE won't launch with it.

 

If it's older version, DD will tell me it's out of date.

 

 

 

 

 

Should work with 1.6.353.

Posted
On 7/22/2022 at 12:38 PM, besinister said:

 

Over on NEXUS in the post section for CBBE 3BA [3BBB] CBBE 3BA (3BBB) at Skyrim Special Edition Nexus - Mods and Community (nexusmods.com) UnholyDKSaeko asks the same question.  Lers98 replied with the following:

 

Go to Data/SKSE/Plugins and open CBPCMasterConfig_SOS.txt
Then copy-paste this:

[ConfigMap]                   
NPC Genitals01 [Gen01]=SOS01
NPC Genitals02 [Gen02]=SOS02
NPC Genitals03 [Gen03]=SOS03
NPC Genitals04 [Gen04]=SOS04
NPC Genitals05 [Gen05]=SOS05
NPC Genitals06 [Gen06]=SOS06
<
#GenitalsLag01=SOS01
#GenitalsLag02=SOS02
#GenitalsLag03=SOS03
#GenitalsLag04=SOS04
#GenitalsLag05=SOS05
#GenitalsLag06=SOS06
>
NPC GenitalsScrotum [GenScrot]=SOSScrotum
GenitalsScrotumLag=SOSScrotum

 

End quote.

It tried it and it seems to have fixed the problem for me.

 

Thanks for this - finally fixed my bent schlongs.

Posted
19 hours ago, yhgghdg said:

Whenever I try to download this all I get is this with the mod manager as well as this

 

1st pic means there's a mod that dependent on SOS,

2nd pic you enabled mod that contain same esps/esls that might conflict 

 

you can double click on sos see if any mod that conflicted or use filter to find only esps that might conflict sos

dclickmod.png.301715d2d72b1f20dff1ae6e4e52e951.png

Posted
1 hour ago, rageshinobi said:

1st pic means there's a mod that dependent on SOS,

2nd pic you enabled mod that contain same esps/esls that might conflict 

 

you can double click on sos see if any mod that conflicted or use filter to find only esps that might conflict sos

dclickmod.png.301715d2d72b1f20dff1ae6e4e52e951.png

But I have Skyrim and everything on vortex

Posted (edited)

hi

 

In regards to the SOS mod does anyone know why "Schlongs of Skyrim.bsa" exists?

 

for example one of the scripts in the sos bsa "bladessparringscript.pex" decompiled gives us....

 

Spoiler

;/ Decompiled by Champollion V1.0.1
Source   : BladesSparringScript.psc
Modified : 2016-07-28 20:40:12
Compiled : 2016-07-28 20:40:14
User     : Maximilian
Computer : MARUNAE
/;
scriptName BladesSparringScript extends ReferenceAlias

;-- Properties --------------------------------------
ReferenceAlias property Opponent auto

;-- Variables ---------------------------------------

;-- Functions ---------------------------------------

; Skipped compiler generated GetState

; Skipped compiler generated GotoState

function OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, Bool abPowerAttack, Bool abSneakAttack, Bool abBashAttack, Bool abHitBlocked)

    if akAggressor != Opponent.GetRef()
        if (akSource as weapon) as Bool || (akSource as spell) as Bool && (akSource as spell).IsHostile() || (akSource as scroll) as Bool
            self.GetOwningQuest().SetStage(300)
        endIf
    endIf
endFunction

 

skyrims native pex equivalent gives us ...

 

Spoiler

;/ Decompiled by Champollion V1.0.1
Source   : BladesSparringScript.psc
Modified : 2011-10-03 19:27:52
Compiled : 2021-12-15 19:06:47
User     : builds
Computer : RKVBGSBUILD08
/;
scriptName BladesSparringScript extends ReferenceAlias

;-- Properties --------------------------------------
ReferenceAlias property Opponent auto

;-- Variables ---------------------------------------

;-- Functions ---------------------------------------

; Skipped compiler generated GetState

; Skipped compiler generated GotoState

function OnHit(ObjectReference akAggressor, Form akWeapon, Projectile akProjectile, Bool abPowerAttack, Bool abSneakAttack, Bool abBashAttack, Bool abHitBlocked)

    if akAggressor != Opponent.GetRef()
        self.GetOwningQuest().SetStage(300)
    endIf
endFunction

function OnMagicEffectApply(ObjectReference akCaster, MagicEffect akEffect)

    if akCaster != Opponent.GetRef() && akCaster != self.GetRef()
        self.GetOwningQuest().SetStage(300)
    endIf
endFunction

 

and for comparisons sake sos v3 (le) gives us...

 

Spoiler

Scriptname BladesSparringScript extends ReferenceAlias

;Keyword[] Property MagicEffectArray Auto
{ Array of Keywords to check for. Array traversal is > 1000x faster than using FLSTs, so should stay as an Array, despite FLST's convenience.
Only if the magic effect keyword from this list is cast by the player will the opponent consider it cheating.
}
Keyword[] MagicEffectArray

import game

Event OnInit()
    MagicEffectArray = new Keyword[27]
    MagicEffectArray[0] = (GetFormFromFile(0x0001CEAD, "Skyrim.esm") as Keyword) ; MagicDamageFire
    MagicEffectArray[1] = (GetFormFromFile(0x0001CEAF, "Skyrim.esm") as Keyword) ; MagicDamageShock
    MagicEffectArray[2] = (GetFormFromFile(0x00046B99, "Skyrim.esm") as Keyword) ; MagicShout
    MagicEffectArray[3] = (GetFormFromFile(0x00078098, "Skyrim.esm") as Keyword) ; MagicInfluence
    MagicEffectArray[4] = (GetFormFromFile(0x0001CEAE, "Skyrim.esm") as Keyword) ; MagicDamageFrost
    MagicEffectArray[5] = (GetFormFromFile(0x000FBFEE, "Skyrim.esm") as Keyword) ; DB10MagicHeavyFire
    MagicEffectArray[6] = (GetFormFromFile(0x00042509, "Skyrim.esm") as Keyword) ; MagicAlchHarmful
    MagicEffectArray[7] = (GetFormFromFile(0x0010E4B3, "Skyrim.esm") as Keyword) ; dunCGMagicHeavyFire
    MagicEffectArray[8] = (GetFormFromFile(0x0001EA70, "Skyrim.esm") as Keyword) ; MagicParalysis
    MagicEffectArray[9] = (GetFormFromFile(0x000424E0, "Skyrim.esm") as Keyword) ; MagicInfluenceFear
    MagicEffectArray[10] = (GetFormFromFile(0x0009F28E, "Skyrim.esm") as Keyword) ; MagicTrapGas
    MagicEffectArray[11] = (GetFormFromFile(0x000424EE, "Skyrim.esm") as Keyword) ; MagicInfluenceCharm
    MagicEffectArray[12] = (GetFormFromFile(0x000B729E, "Skyrim.esm") as Keyword) ; MagicSlow
    MagicEffectArray[13] = (GetFormFromFile(0x000C44B6, "Skyrim.esm") as Keyword) ; MagicInfluenceFrenzy
    MagicEffectArray[14] = (GetFormFromFile(0x00109D79, "Skyrim.esm") as Keyword) ; MagicRune
    MagicEffectArray[15] = (GetFormFromFile(0x0007F404, "Skyrim.esm") as Keyword) ; MagicTelekinesis
    MagicEffectArray[16] = (GetFormFromFile(0x000FBFEF, "Skyrim.esm") as Keyword) ; DB10MagicLightFire
    MagicEffectArray[17] = (GetFormFromFile(0x00101BDE, "Skyrim.esm") as Keyword) ; MagicVampireDrain
    MagicEffectArray[18] = (GetFormFromFile(0x001093BB, "Skyrim.esm") as Keyword) ; MagicTrapPoison    
    MagicEffectArray[19] = (GetFormFromFile(0x0010E4B4, "Skyrim.esm") as Keyword) ; dunCGMagicLightFire
    ;MagicEffectArray[20] = (GetFormFromFile(0x00074F4E, "Skyrim.esm") as Keyword) ; MagicAlchWeaknessFire
    ;MagicEffectArray[21] = (GetFormFromFile(0x00074F4F, "Skyrim.esm") as Keyword) ; MagicAlchWeaknessFrost
    ;MagicEffectArray[22] = (GetFormFromFile(0x00074F50, "Skyrim.esm") as Keyword) ; MagicAlchWeaknessShock
    ;MagicEffectArray[23] = (GetFormFromFile(0x00074F51, "Skyrim.esm") as Keyword) ; MagicAlchWeaknessMagic
    ;MagicEffectArray[24] = (GetFormFromFile(0x00074F53, "Skyrim.esm") as Keyword) ; MagicEnchWeaknessFire
    ;MagicEffectArray[25] = (GetFormFromFile(0x00074F55, "Skyrim.esm") as Keyword) ; MagicEnchWeaknessShock
    
    GoToState("Waiting")
EndEvent

State Waiting

    Event OnHit(ObjectReference akAggressor, Form akWeapon, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
        ; if I'm hit by anybody but my opponent, stop quest
        GotoState("Busy")
        if (akWeapon as Spell)
            ; handle in OnMagicEffectApply
            return
        endif
        if (akAggressor != Opponent.GetRef())
            ;debug.trace(self + " hit by someone besides my opponent - end sparring")
            GetOwningQuest().SetStage(300)
        endif
        GotoState("Waiting")
    endEvent

    Event OnMagicEffectApply(ObjectReference akCaster, MagicEffect akEffect)
        ; if hit by anybody but opponent
        GotoState("Busy")
        ;debug.trace(self + "OnMagicEffectApply akCaster=" + akCaster)
        Actor pActor = GetActorRef()
        If HasMagicEffectKeywordInList(akEffect, MagicEffectArray)
            if akCaster != Opponent.GetRef() && akCaster != GetRef()
                ;debug.trace(self + " hit by someone besides my opponent - end sparring")
                GetOwningQuest().SetStage(300)
            endif     
        EndIf
        GotoState("Waiting")
    endEvent
EndState

State Busy

    Event OnHit(ObjectReference akAggressor, Form akWeapon, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
        return
    EndEvent
    
    Event OnMagicEffectApply(ObjectReference akCaster, MagicEffect akEffect)
        return
    EndEvent
    
EndState

ReferenceAlias Property Opponent  Auto

bool Function HasMagicEffectKeywordInList(MagicEffect akEffect, Keyword[] akList)
    int aiIndex = 0
    While aiIndex < akList.Length
        ; Order akList in order of prevalence (User count in CK)
        ; MagicDamageFire, MagicDamageShock, and so forth.
        ; This is so walking the array will return True faster.
        If (akEffect.HasKeyword(akList[aiIndex]))
            return True
        EndIf
        aiIndex += 1
    EndWhile
    return False
EndFunction

 

and finally here's vanilla script micro optimizations take on bladesparringscript

 

Spoiler

Scriptname BladesSparringScript extends ReferenceAlias  

import game

Event OnHit(ObjectReference akAggressor, Form akWeapon, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
    ; if I'm hit by anybody but my opponent, stop quest
;    if akAggressor != Opponent.GetRef()
    if akAggressor != Opponent.GetReference()
;         debug.trace(self + " hit by someone besides my opponent - end sparring")
;        GetOwningQuest().SetStage(300)
        GetOwningQuest().SetCurrentStageID(300)
    endif
endEvent

Event OnMagicEffectApply(ObjectReference akCaster, MagicEffect akEffect)
;     debug.trace(self + "OnMagicEffectApply akCaster=" + akCaster)
    ; if hit by anybody but opponent
;    if akCaster != Opponent.GetRef() && akCaster != GetRef()
    if akCaster != Opponent.GetReference() && akCaster != GetReference()
;         debug.trace(self + " hit by someone besides my opponent - end sparring")
;        GetOwningQuest().SetStage(300)
        GetOwningQuest().SetCurrentStageID(300)
    endif     
endEvent

ReferenceAlias Property Opponent  Auto

 

Major difference here is .getref() slower than GetReference() (source)

 

My LO is vanilla script (scripts in bsa) and then SOS bsa . So sos will win with scripts :(

I've deleted my sos.bsa, I have a copy in an archive somewhere if I need to install again. And now I've forgotten why I was looking at the scripts to begin with :( ...sigh!

Edited by pinkfluf
Posted
On 3/4/2018 at 8:57 PM, galgaroth said:

Correct. For the moment it's unstable and it could be a lot of things causing it, maybe the ESMs/NIFs/HKXs were not converted properly or maybe SKSE64 is the culprit, it's still in an alpha state. But don't be shy if you want to test, the more eyes we have on this the better.

bruh i just installed this mod and it keeps telling me that its either not installed or mod is too old what are people suppose to use for sos now??

Posted (edited)
23 hours ago, Panther619 said:

bruh i just installed this mod and it keeps telling me that its either not installed or mod is too old what are people suppose to use for sos now??

 

Here:

On 11/20/2021 at 5:30 PM, Erstam said:
23 hours ago, Panther619 said:

bruh i just installed this mod and it keeps telling me that its either not installed or mod is too old what are people suppose to use for sos now??

Great news - PapyrusUtil has been updated to Skyrim AE. That means that this version of SOS, which only depends on SKSE and PapyrusUtil, works on the 1.6.318 exe:

 

SOS PapyrusUtil version Beta 4 (UPDATE).7z 61.39 kB · 31,232 downloads

 

Some important things first:

  1. This is an update to SOS SE and only contains the changed esp and scripts. It's not the full mod. So install the files over your existing SOS installation.
  2. As long as you have a working SKSE and PapyrusUtil (either for AE or older SE versions), you're good to go.
  3. Best remove, hide, or move your SchlongsOfSkyrim.dll. It shouldn't really hurt when it's trying to load, but it will cause warnings in the logs.
  4. I've done no testing on 1.6.318 (I'm running a partially downgraded 1.5.97), but it runs fine on my Skyrim installation, and I'm pretty sure it will also work with the new exe, provided you have installed the requirements. After some testing on 1.6.318 I can confirm that it does work.

So how does this work? I've replaced all the functions from the dll with corresponding functions from PapyrusUtil. It looks like the SOS dll was actually forked from an early version of PapyrusUtil, so many functions are identical.

 

Other functions are emulated in Papyrus script. Of course that's much slower than native code, but I took a lot of effort in optimizing them. Particularly the function that randomly picks a schlong for new actors, depending on race and MCM probabilities. Now it caches the values in lists according to race and gender. For example, the first time a Nord gets a schlong, the process is still slow, but subsequent Nords are schlongified much faster. The cache is invalidated when you install or remove addons, or enable/disable addons for certain races in the MCM, or change their probabilities.

 

Further optimizations have been done all over the place. PapyrusUtil functions were often wrapped in multiple layers of convenience functions. I've inlined those where speed does matter. Also fixed some bugs - for instance, when schlongs have been lost (often due to load order changes), the recovery code would run twice.

 

This version cannot read old exported settings from SOS.json. It's using JsonUtil now (part of PapyrusUtil), and the format is different compared to SchlongsOfSkyrim.dll. But I think it's not a big deal, you can easily export your settings in the new format.

 

This right here fixed the problem for me, you can even delete the SOS dll. There's another solution too, which updates the dll, though I preferred the first option. Both of these solutions were in the same page you commented on btw. Regardless, the mod works now.

Edited by lo0u
Posted

im ripping my hair out i keep getting dirty plugins messages(despite me using the same sos setup and havent changed it and it worked before)

and it just keeps disabling the schlongs for corruptions causing to have zero any solution too this?

Posted

Hey guys, can someone help me with SoS and full SMP 3BA body? In sex scenes with SMP the V seems only to like twitch and a bit to none opening, in CBPC mode opens on max. Tried the smp patch on this page still nothing. Btw is there a way for anus collusion (without the mod for anal colus in this forum its breaks my body physics BAD with the new 3BA)
A simple step by step guide? I lost 2 days fixing physics and tryed new bodies like HIMBo but there are no penis SMP collusion. Thanks in advance

Posted (edited)
Spoiler

 

Btw I have a problem with VectorPlexus Regular Addon (size 20)

Spoiler

ScreenShot8.png


the other is normal (size 20)

Spoiler

ScreenShot7.png

 

 

 

Edited by Perelik
Posted (edited)

NPCs are not getting schlongs unless I manually equip them in the mcm, is there some fix for this?

 

I made sure they had chance to equip different schlong types and even tried restarting SoS but no dice. They just have the no schlong underwear unless I do it manually.

 

Edit: after playing a bit more I see that *some* npcs are getting a schlong.... I am starting to wonder if the gender controls are broken and SoS is trying to give them a futa schlong, seeing its the wrong gender, and then just defaulting to no schlong.

 

Is there a way to check this? 

Edited by sila
Posted
On 7/22/2022 at 12:38 PM, besinister said:

 

Over on NEXUS in the post section for CBBE 3BA [3BBB] CBBE 3BA (3BBB) at Skyrim Special Edition Nexus - Mods and Community (nexusmods.com) UnholyDKSaeko asks the same question.  Lers98 replied with the following:

 

Go to Data/SKSE/Plugins and open CBPCMasterConfig_SOS.txt
Then copy-paste this:

[ConfigMap]                   
NPC Genitals01 [Gen01]=SOS01
NPC Genitals02 [Gen02]=SOS02
NPC Genitals03 [Gen03]=SOS03
NPC Genitals04 [Gen04]=SOS04
NPC Genitals05 [Gen05]=SOS05
NPC Genitals06 [Gen06]=SOS06
<
#GenitalsLag01=SOS01
#GenitalsLag02=SOS02
#GenitalsLag03=SOS03
#GenitalsLag04=SOS04
#GenitalsLag05=SOS05
#GenitalsLag06=SOS06
>
NPC GenitalsScrotum [GenScrot]=SOSScrotum
GenitalsScrotumLag=SOSScrotum

 

End quote.

It tried it and it seems to have fixed the problem for me.

This did not work for me, still have crooked dongs on all characters.

Posted

hello and sorry for bother, i have a little problem, for some reason i cant equit any underwear nor some pants armor parts, every time i equit those the top its unequiped, i read somewhere to look on sos in the mod list and click on transparent texture but didnt activate, it disable itself, i not sure what to do

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
  • Recently Browsing   0 members

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