Jump to content

The C.A.N.S. (Cooperative Algebraic Node Sizing) Framework


Recommended Posts

So, I got one of the original mod scripts to recompile with the edits, and that's where my luck runs out. The one mod was Mana Tanks. I've fired up the game and it appears to work in so far as I saw node conflicts with a save that was using Hookmmerse (The main reason I really want this mod to work). The fact that the breast nodes were reacting to this change has to be a good thing. On the other hand, I didn't see any mods registered in the CANS MCM.

 

 

I've tried editing the relevant scripts to Beeing Female (too big to recompile. It's got something along 1400 lines of code in that one source file), Estrus Charus, Soulgem Oven, Milk Mod Economy, and Fill Her Up all complain about SexLabFramework being an "unknown user defined type" when I try to compile them.

 

Here's the particular error log for Fill Her Up:

 

 

 
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(238,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(242,9): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(298,21): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(309,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(341,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(456,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(569,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(588,9): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(712,25): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(712,12): type mismatch while assigning to a float (cast missing or types unrelated)
 
Starting 1 compile threads for 1 files...
Compiling "sr_inflateQuest"...
No output generated for sr_inflateQuest, compilation failed.
 
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on sr_inflateQuest

 
I'm also getting unknown types for source files called "slautilscr" and "slaframeworkscr" from Estrus Charus and MilkModEconom respectively. Anybody know what mod these are from?
Link to comment

Sla- I believe is the abbreviation for SexLab Aroused, which might be required for those mods in particular anyway. The redux version of the mod should work as well since most mods that require Aroused say that either will work.

Yup, it's SexLab Aroused. Now I'm having problems with Milk Mod Economy and it's numerous hooks. I'm pretty sure _snquestscript is from iNeed, and there's an error relating to hentaipregnancy. I have all of the available source files for both of those mods, yet I'm still pulling up errors.

 

EDIT: Milk Mod Economy problem resolved.

 

There's also issues with Fill Her Up:

 

 

 

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(238,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(242,9): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(298,21): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(309,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(341,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(456,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(569,13): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(588,9): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(712,25): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(712,12): type mismatch while assigning to a float (cast missing or types unrelated)
 
Starting 1 compile threads for 1 files...
Compiling "sr_inflateQuest"...
No output generated for sr_inflateQuest, compilation failed.
 
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on sr_inflateQuest

 
And a problem with Beeing Female:
 

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(636,32): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(636,21): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(639,32): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(639,21): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(643,33): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(643,22): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(646,33): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(646,22): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(650,33): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(650,22): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(653,33): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(653,22): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(657,33): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(657,22): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(660,33): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(660,22): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(664,33): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(664,22): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(667,33): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(667,22): type mismatch while assigning to a float (cast missing or types unrelated)
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(740,21): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(743,21): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(751,21): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(754,21): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(766,21): too many arguments passed to function
C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(769,21): too many arguments passed to function
 
Starting 1 compile threads for 1 files...
Compiling "FWAbilityBeeingFemale"...
No output generated for FWAbilityBeeingFemale, compilation failed.
 
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on FWAbilityBeeingFemale

 

@Feliks

Interestingly, the script FWAbilityBeeingFemale is actually an extension of the script FWAbilityBeeingBase.

 

Where FWAbilityBeeingBase extends activemagiceffect, it doesn't have any node changes in it. All of the node changes are contained in FWAbilityBeeingFemale. For the purpose of mod registration, would this also be an extension of activemagiceffect?

Link to comment

 

Sla- I believe is the abbreviation for SexLab Aroused, which might be required for those mods in particular anyway. The redux version of the mod should work as well since most mods that require Aroused say that either will work.

Yup, it's SexLab Aroused. Now I'm having problems with Milk Mod Economy and it's numerous hooks. I'm pretty sure _snquestscript is from iNeed, and there's an error relating to hentaipregnancy. I have all of the available source files for both of those mods, yet I'm still pulling up errors.

 

EDIT: Milk Mod Economy problem resolved.

 

There's also issues with Fill Her Up:

 

 

 

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(238,13): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(242,9): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(298,21): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(309,13): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(341,13): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(456,13): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(569,13): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(588,9): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(712,25): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\sr_inflateQuest.psc(712,12): type mismatch while assigning to a float (cast missing or types unrelated)

 

Starting 1 compile threads for 1 files...

Compiling "sr_inflateQuest"...

No output generated for sr_inflateQuest, compilation failed.

 

Batch compile of 1 files finished. 0 succeeded, 1 failed.

Failed on sr_inflateQuest

 

 

 

And a problem with Beeing Female:

 

 

 

 

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(636,32): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(636,21): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(639,32): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(639,21): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(643,33): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(643,22): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(646,33): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(646,22): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(650,33): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(650,22): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(653,33): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(653,22): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(657,33): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(657,22): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(660,33): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(660,22): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(664,33): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(664,22): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(667,33): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(667,22): type mismatch while assigning to a float (cast missing or types unrelated)

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(740,21): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(743,21): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(751,21): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(754,21): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(766,21): too many arguments passed to function

C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\scripts\source\FWAbilityBeeingFemale.psc(769,21): too many arguments passed to function

 

Starting 1 compile threads for 1 files...

Compiling "FWAbilityBeeingFemale"...

No output generated for FWAbilityBeeingFemale, compilation failed.

 

Batch compile of 1 files finished. 0 succeeded, 1 failed.

Failed on FWAbilityBeeingFemale

 

 

 

@Feliks

Interestingly, the script FWAbilityBeeingFemale is actually an extension of the script FWAbilityBeeingBase.

 

Where FWAbilityBeeingBase extends activemagiceffect, it doesn't have any node changes in it. All of the node changes are contained in FWAbilityBeeingFemale. For the purpose of mod registration, would this also be an extension of activemagiceffect?

At first glance yeah, it should work roughly the same way, I can give it a more in depth look when I get home (I'm using my phone on my break at work rn)

Link to comment

Okay, but aside from that, I still have to get around compiling the script as I'm having issues with "too many arguments passed to function".

 

EDIT: Looking at the Beeing Female script, there are a lot of "NetImmerse.HasNode()" entries just before the errors that come up. Should I replace those with "CANS.ReturnX()" where X is the body node in question?

 

In the Fill Her Up script, among the errors (which occur everywhere I changes a NetImmerse.GetNode or NetImmerse.SetNode), the structure usually looks something like this:

 

 

while(currentInflation < inflationTarget)
currentInflation += 0.1
CANS.Belly(akActor, "FillHerUp", currentInflation)
Utility.wait(0.1)
EndWhile

 

 

 

or like this

 

 

 

StartLeakage(akActor, isAnal, animate)
Moan(akActor)
if deflateTarget < maxInflation
; Only actually deflate if total cum is less than max belly size
If akActor.Is3DLoaded()
float timeElapsed = 0.0
while currentInflation > deflateTarget
currentInflation -= 0.025
CANS.Belly(akActor, "FillHerUp", currentInflation)
Utility.wait(0.1)
timeElapsed += 0.1
endWhile
float toAnim = Utility.RandomFloat(4.0, 8.0) * config.animMult
toAnim -= timeElapsed
if toAnim > 0.0
Utility.Wait(toAnim)
endIf
EndIf
akActor.RemoveSpell(sr_inflateBurstSpell)
CANS.Belly(akActor, "FillHerUp", deflateTarget)
Else
float toAnim = cumAmount * 4.1
if toAnim < 5.0
toAnim = Utility.RandomFloat(5.0, 10.0) * config.animMult
endIf
Utility.wait(toAnim)
endIf
StopLeakage(akActor)

 

On another note, If for some reason the mod author decided to split the node changes across two different scripts (probably to separate functions, like having belly growth only occur during pregnancy, while breasts and butt can grow at any time as is the case with PSQ), would those two scripts from the same mod require two different registration lines (and thus two different names)?

sr_inflateQuest.psc

FWAbilityBeeingFemale.psc

Link to comment

Okay, but aside from that, I still have to get around compiling the script as I'm having issues with "too many arguments passed to function".

 

EDIT: Looking at the Beeing Female script, there are a lot of "NetImmerse.HasNode()" entries just before the errors that come up. Should I replace those with "CANS.ReturnX()" where X is the body node in question?

 

In the Fill Her Up script, among the errors (which occur everywhere I changes a NetImmerse.GetNode or NetImmerse.SetNode), the structure usually looks something like this:

 

 

while(currentInflation < inflationTarget)
currentInflation += 0.1
CANS.Belly(akActor, "FillHerUp", currentInflation)
Utility.wait(0.1)
EndWhile

 

 

 

or like this

 

 

 

StartLeakage(akActor, isAnal, animate)
Moan(akActor)
if deflateTarget < maxInflation
; Only actually deflate if total cum is less than max belly size
If akActor.Is3DLoaded()
float timeElapsed = 0.0
while currentInflation > deflateTarget
currentInflation -= 0.025
CANS.Belly(akActor, "FillHerUp", currentInflation)
Utility.wait(0.1)
timeElapsed += 0.1
endWhile
float toAnim = Utility.RandomFloat(4.0, 8.0) * config.animMult
toAnim -= timeElapsed
if toAnim > 0.0
Utility.Wait(toAnim)
endIf
EndIf
akActor.RemoveSpell(sr_inflateBurstSpell)
CANS.Belly(akActor, "FillHerUp", deflateTarget)
Else
float toAnim = cumAmount * 4.1
if toAnim < 5.0
toAnim = Utility.RandomFloat(5.0, 10.0) * config.animMult
endIf
Utility.wait(toAnim)
endIf
StopLeakage(akActor)

 

On another note, If for some reason the mod author decided to split the node changes across two different scripts (probably to separate functions, like having belly growth only occur during pregnancy, while breasts and butt can grow at any time as is the case with PSQ), would those two scripts from the same mod require two different registration lines (and thus two different names)?

 

NetImmerse.HasNode() doesn't do the same thing the return function does, I'm going to say for now just to leave it in there, CANS checks for the nodes on it's own but I kinda think every mod should. 

 

I'm assuming those are the source files you've been modifying, would you mind copying and pasting the compiler errors? (right click the title bar, edit>select all, repeat for copy to prevent it form auto closing on you). I'll root through your script and see if I can't figure out where the "too many arguments" error is coming from, since it really shouldn't.

 

Also, if it's giving you trouble about lack of memory, you may want to switch to an external editor, I've only ever gotten that error from the CK, never from NotePad++. Creationkit.com should have guides to set them up for papyrus.

 

EDIT: shit I've got no idea what's even going on on my end, it's throwing literally more errors than the compiler can display. And it looks like a lot of them are in the other scripts from the mod. Interesting. I'm gonna try and hunt this down on my end, but I think I'm definitely going to need your compiler logs.

Link to comment

Looking through the BeeingFemale thing it looks like most the errors are that extra true or false at the end. You don't need to pass that to CANS, it'll figure it out on it's own. In fact, for the GetNodeScale functions you should only pass it once because CANS doesn't even bother with that check since it isn't going to a real node. For SetNodeScale Functions you can actually remove the original scripts two versions, so instead of one with false and then a check to see if it's the player and a second with true, you can just use one CANS.Belly() since it'll do both internally. 

 

As far as I can tell none of the errors in the sr_inflatequest should be showing up at all. The only thing I can think of is for some reason it's using the 0.5.0.0 scripts and not the 0.7 scripts. Try deleting whatever CANS files you have and replacing them with the new ones. 

 

Also, be sure to include the magic effect application script and registration scripts. I saw the variables but didn't see the check for the effect or RegisterMyMod() functions. (granted I barely looked).

Link to comment

So, just to be absolutely sure, I currently have a separate script that has the magic effect application and the registration function, and I pass all the mods I want registered through that. In reality, those effects and functions need to go into the original script that came with the mods I want to register (in this case, Beeing Female and Fill Her Up)?

Link to comment

So, just to be absolutely sure, I currently have a separate script that has the magic effect application and the registration function, and I pass all the mods I want registered through that. In reality, those effects and functions need to go into the original script that came with the mods I want to register (in this case, Beeing Female and Fill Her Up)?

 

I would, if you put them in the OnEffectStart() and OnInit() functions of magic effects and quests respectively it keeps everything nice and self-contained. Meaning that when you finish writing these patches they could be released to the public without requiring both of them. 

 

It could work just fine in another script but then it'd require an additional esp (which I'm told isn't a problem for most people as not everyone is constantly a few mods away from the limit like I am) and it'd be dependent on having both installed, making it restrictive to which members of the forum could download and use it.

Link to comment

 

So, just to be absolutely sure, I currently have a separate script that has the magic effect application and the registration function, and I pass all the mods I want registered through that. In reality, those effects and functions need to go into the original script that came with the mods I want to register (in this case, Beeing Female and Fill Her Up)?

 

I would, if you put them in the OnEffectStart() and OnInit() functions of magic effects and quests respectively it keeps everything nice and self-contained. Meaning that when you finish writing these patches they could be released to the public without requiring both of them. 

 

It could work just fine in another script but then it'd require an additional esp (which I'm told isn't a problem for most people as not everyone is constantly a few mods away from the limit like I am) and it'd be dependent on having both installed, making it restrictive to which members of the forum could download and use it.

 

 

If I'm following this correctly, having them separate would also mean that if one of the mods changes significantly, the individual C.A.N.S. script for that specific mod could be updated all on its own, rather than having one script to has to be re-released every time any of the mods changes something.

 

Here's a question from the non-script-literate side of the room: if C.A.N.S. is somehow wildly successful, would there be a way for the mods that C.A.N.S. addresses to build in support for C.A.N.S.? In other words, is there a chunk of code that the author of Hentai Pregnancy or Fill Her Up or Milk Mod could add that would check if C.A.N.S. was installed, and then if it was, output C.A.N.S.-compatible commands rather than its normal behavior? Basically it would give the mod native compatibility with C.A.N.S., without the need for a separate script.

 

I don't think having individual patch files / modules on the C.A.N.S. download page for each mod is a bad idea at all! I'm just wondering if there's a way to give the authors of node-altering mods an easy way to add in a chunk of code to make their mod "C.A.N.S. Compatible" (if they feel like it, of course).

Link to comment

 

If I'm following this correctly, having them separate would also mean that if one of the mods changes significantly, the individual C.A.N.S. script for that specific mod could be updated all on its own, rather than having one script to has to be re-released every time any of the mods changes something.

 

Here's a question from the non-script-literate side of the room: if C.A.N.S. is somehow wildly successful, would there be a way for the mods that C.A.N.S. addresses to build in support for C.A.N.S.? In other words, is there a chunk of code that the author of Hentai Pregnancy or Fill Her Up or Milk Mod could add that would check if C.A.N.S. was installed, and then if it was, output C.A.N.S.-compatible commands rather than its normal behavior? Basically it would give the mod native compatibility with C.A.N.S., without the need for a separate script.

 

I don't think having individual patch files / modules on the C.A.N.S. download page for each mod is a bad idea at all! I'm just wondering if there's a way to give the authors of node-altering mods an easy way to add in a chunk of code to make their mod "C.A.N.S. Compatible" (if they feel like it, of course).

 

 

From what I've gathered through the conversation, TechBaNe is effectively doing is just that. Modifying the original mod (via a patch) to direct all of the desired mods functions that change a node towards C.A.N.S. instead. The ability of a mod to add support for this could be hard-coded as a dependency, but a patch would be the easiest method to soft-code it, as long as the mod doesn't change its functions for node scaling or add new ones. Whether or not any of these mod authors want to put in the effort to add the dependency, or create the patch themselves is the bigger question since I'm sure the answer is yes they can make their mods support C.A.N.S. natively.

 

A true soft dependency though is what I'm not sure of, as some mods are only able to allow cross mod support without making dependency on each other is by using ModEvents() calls, and the responsive mod looking for that call. This is seen in mods like SexLab Hormones/Angrim's Apprentice and Player Succubus Quest, which just send out the call when they want the player to become a succubus, and PSQ sees it and activates itself. From the editing that TechBaNe has done so far, I don't think such a method is possible with the framework as it is, and directly calling on any functions within C.A.N.S., even as an 'if' statement, would still require C.A.N.S. as a dependency to compile it anyway. Most patches done for other mods show both the parent mod and the mod which the patch is tailored towards as masters which is the best proof I have at the moment of this.

 

Of course, take all of this info with a grain of salt, as I am not a mod developer or coder, just someone with a little background in coding and lurking in numerous modding threads for various games.

 

Link to comment

I can build a couple of profiles in MO to test this when you're ready.

 

A "standard" profile for me has Fill Her Up, Soul Gem Oven II, and Milk Mod Economy. Right now I juggle settings between them to decide who controls which node.

 

I can add Being Female or whatever else you are including in the patch, and kind of "build up" to a profile with all of them or any combination.

 

Also... not sure if this is relevant.... some of the mods that scale nodes have little "catches" in them. For example, one of them has a node check when changing cells because the node it was scaling would "pop" to a default size and then immediately "pop" to the size being requested by the mod. The "catch" essentially catches the cell change and prevents the pop.

 

Is that something that needs to be built in to a patch or does the patch simply catch all requests for node changes from a particular mod?

Link to comment
The way I understand it, CANS intercepts all of the node checks and passes through some internal maths and then spits out a change if there is any difference between the "GetNodeScale" and "SetNodeScale" floats for that particular mod, which is why the mod has to be registered with CANS. It's node changes are stored as a float within CANS, and CANS is effectively the only mod that makes the changes. Right now, I've changed over to separate script patches as Feliks suggested instead of using an additional esp to effect the changes, as I'd need to change the scripts that came with the original mods (sgo_QuestController for Soulgem Oven, and MilkQUEST for MME) anyway. Might as well free up space in load orders. As for Fill Her Up, I'm having trouble recompiling the script with the changes, so that one will have to wait until Feliks or I can (or anyone else who wants to take a stab at it, my edits and error logs are posted above) can figure out what's wrong.
 

 

As far as I can tell none of the errors in the sr_inflatequest should be showing up at all. The only thing I can think of is for some reason it's using the 0.5.0.0 scripts and not the 0.7 scripts. Try deleting whatever CANS files you have and replacing them with the new ones. 

 

Reinstalled CANS 0.7 and still get the same error for sr_inflatequest.

 

Here's what I have sofar if anyone want to test the patches out.

 

CANS Patches.7z

Link to comment

for the inflation script errors, do a quick check of the encoding on that file. I was having fits trying to compile something in SGO (I just wanted to change the range of one slider in MCM) . Weird errors about it no EOF and error on line 1701..... it only has about 520 lines.... so......and as it turns out the file was encoded UTF-8 no BOM. I clicked a box and converted it to ANSI and it compiled without issue.

 

So that MIGHT not be your issue but easy enough to check.

Link to comment

The way I understand it, CANS intercepts all of the node checks and passes through some internal maths and then spits out a change if there is any difference between the "GetNodeScale" and "SetNodeScale" floats for that particular mod, which is why the mod has to be registered with CANS. It's node changes are stored as a float within CANS, and CANS is effectively the only mod that makes the changes. Right now, I've changed over to separate script patches as Feliks suggested instead of using an additional esp to effect the changes, as I'd need to change the scripts that came with the original mods (sgo_QuestController for Soulgem Oven, and MilkQUEST for MME) anyway. Might as well free up space in load orders. As for Fill Her Up, I'm having trouble recompiling the script with the changes, so that one will have to wait until Feliks or I can (or anyone else who wants to take a stab at it, my edits and error logs are posted above) can figure out what's wrong.

 

 

As far as I can tell none of the errors in the sr_inflatequest should be showing up at all. The only thing I can think of is for some reason it's using the 0.5.0.0 scripts and not the 0.7 scripts. Try deleting whatever CANS files you have and replacing them with the new ones.

Reinstalled CANS 0.7 and still get the same error for sr_inflatequest.

 

 

Here's what I have sofar if anyone want to test the patches out.

 

you haven't included sources :s

Link to comment

 

The way I understand it, CANS intercepts all of the node checks and passes through some internal maths and then spits out a change if there is any difference between the "GetNodeScale" and "SetNodeScale" floats for that particular mod, which is why the mod has to be registered with CANS. It's node changes are stored as a float within CANS, and CANS is effectively the only mod that makes the changes. Right now, I've changed over to separate script patches as Feliks suggested instead of using an additional esp to effect the changes, as I'd need to change the scripts that came with the original mods (sgo_QuestController for Soulgem Oven, and MilkQUEST for MME) anyway. Might as well free up space in load orders. As for Fill Her Up, I'm having trouble recompiling the script with the changes, so that one will have to wait until Feliks or I can (or anyone else who wants to take a stab at it, my edits and error logs are posted above) can figure out what's wrong.

 

 

As far as I can tell none of the errors in the sr_inflatequest should be showing up at all. The only thing I can think of is for some reason it's using the 0.5.0.0 scripts and not the 0.7 scripts. Try deleting whatever CANS files you have and replacing them with the new ones.

Reinstalled CANS 0.7 and still get the same error for sr_inflatequest.

 

 

Here's what I have sofar if anyone want to test the patches out.

 

you haven't included sources :s

 

Oops. Here's one with the sources included  :blush:

CANS Patches.7z

Link to comment

 

The way I understand it, CANS intercepts all of the node checks and passes through some internal maths and then spits out a change if there is any difference between the "GetNodeScale" and "SetNodeScale" floats for that particular mod, which is why the mod has to be registered with CANS. It's node changes are stored as a float within CANS, and CANS is effectively the only mod that makes the changes. Right now, I've changed over to separate script patches as Feliks suggested instead of using an additional esp to effect the changes, as I'd need to change the scripts that came with the original mods (sgo_QuestController for Soulgem Oven, and MilkQUEST for MME) anyway. Might as well free up space in load orders. As for Fill Her Up, I'm having trouble recompiling the script with the changes, so that one will have to wait until Feliks or I can (or anyone else who wants to take a stab at it, my edits and error logs are posted above) can figure out what's wrong.

 

 

 

As far as I can tell none of the errors in the sr_inflatequest should be showing up at all. The only thing I can think of is for some reason it's using the 0.5.0.0 scripts and not the 0.7 scripts. Try deleting whatever CANS files you have and replacing them with the new ones.

 

Reinstalled CANS 0.7 and still get the same error for sr_inflatequest.

 

Here's what I have sofar if anyone want to test the patches out.

Did that solve the problem with the Beeing female script though?

Link to comment

 

 

The way I understand it, CANS intercepts all of the node checks and passes through some internal maths and then spits out a change if there is any difference between the "GetNodeScale" and "SetNodeScale" floats for that particular mod, which is why the mod has to be registered with CANS. It's node changes are stored as a float within CANS, and CANS is effectively the only mod that makes the changes. Right now, I've changed over to separate script patches as Feliks suggested instead of using an additional esp to effect the changes, as I'd need to change the scripts that came with the original mods (sgo_QuestController for Soulgem Oven, and MilkQUEST for MME) anyway. Might as well free up space in load orders. As for Fill Her Up, I'm having trouble recompiling the script with the changes, so that one will have to wait until Feliks or I can (or anyone else who wants to take a stab at it, my edits and error logs are posted above) can figure out what's wrong.

 

As far as I can tell none of the errors in the sr_inflatequest should be showing up at all. The only thing I can think of is for some reason it's using the 0.5.0.0 scripts and not the 0.7 scripts. Try deleting whatever CANS files you have and replacing them with the new ones.

Reinstalled CANS 0.7 and still get the same error for sr_inflatequest.

 

Here's what I have sofar if anyone want to test the patches out.

 

Did that solve the problem with the Beeing female script though?

 

Nope. Same errors in the same places.

 

Link to comment

Hrm. I'm gonna investigate more seriously when I get home, I'll build a few dummy scripts and see if I can't replicate these issues. Your doing these in the CK right? What does the properties window show for the CANS_Framework? Maybe that's pointing to something it shouldn't?

Link to comment

 

 

The way I understand it, CANS intercepts all of the node checks and passes through some internal maths and then spits out a change if there is any difference between the "GetNodeScale" and "SetNodeScale" floats for that particular mod, which is why the mod has to be registered with CANS. It's node changes are stored as a float within CANS, and CANS is effectively the only mod that makes the changes. Right now, I've changed over to separate script patches as Feliks suggested instead of using an additional esp to effect the changes, as I'd need to change the scripts that came with the original mods (sgo_QuestController for Soulgem Oven, and MilkQUEST for MME) anyway. Might as well free up space in load orders. As for Fill Her Up, I'm having trouble recompiling the script with the changes, so that one will have to wait until Feliks or I can (or anyone else who wants to take a stab at it, my edits and error logs are posted above) can figure out what's wrong.

 

 

As far as I can tell none of the errors in the sr_inflatequest should be showing up at all. The only thing I can think of is for some reason it's using the 0.5.0.0 scripts and not the 0.7 scripts. Try deleting whatever CANS files you have and replacing them with the new ones.

Reinstalled CANS 0.7 and still get the same error for sr_inflatequest.

 

 

Here's what I have sofar if anyone want to test the patches out.

 

you haven't included sources :s

 

Oops. Here's one with the sources included  :blush:

 

hm.....well its all broken

1) integration, you need to modify esp for script changes to work or do soft dependency

2) you lack many bones scaling

 

 

NetImmerse.SetNodeScale(akActor, "NPC L Breast P1", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC R Breast P1", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC L Breast P2", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC R Breast P2", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC L Breast P3", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC R Breast P3", CurrentSize, false)

these are used when actor transformed to werewolf and has 3 rows of breasts

 

NetImmerse.SetNodeScale(akActor, "NPC L Breast01", CurveFix, false)

NetImmerse.SetNodeScale(akActor, "NPC R Breast01", CurveFix, false)

you dont have function for breast curve 

 

;NetImmerse.SetNodeScale(akActor, "NPC L GenitalsScrotum [LGenScrot]", CurrentSize, false)

;NetImmerse.SetNodeScale(akActor, "NPC R GenitalsScrotum [RGenScrot]", CurrentSize, false)

i think there are left and right Scrotum though im not sure since ive never tested

 

ill do proper integration later, you should add missing functions for bone scaling 

Link to comment

 

 

 

The way I understand it, CANS intercepts all of the node checks and passes through some internal maths and then spits out a change if there is any difference between the "GetNodeScale" and "SetNodeScale" floats for that particular mod, which is why the mod has to be registered with CANS. It's node changes are stored as a float within CANS, and CANS is effectively the only mod that makes the changes. Right now, I've changed over to separate script patches as Feliks suggested instead of using an additional esp to effect the changes, as I'd need to change the scripts that came with the original mods (sgo_QuestController for Soulgem Oven, and MilkQUEST for MME) anyway. Might as well free up space in load orders. As for Fill Her Up, I'm having trouble recompiling the script with the changes, so that one will have to wait until Feliks or I can (or anyone else who wants to take a stab at it, my edits and error logs are posted above) can figure out what's wrong.

 

 

As far as I can tell none of the errors in the sr_inflatequest should be showing up at all. The only thing I can think of is for some reason it's using the 0.5.0.0 scripts and not the 0.7 scripts. Try deleting whatever CANS files you have and replacing them with the new ones.

Reinstalled CANS 0.7 and still get the same error for sr_inflatequest.

 

 

Here's what I have sofar if anyone want to test the patches out.

you haven't included sources :s

Oops. Here's one with the sources included :blush:

hm.....well its all broken

1) integration, you need to modify esp for script changes to work or do soft dependency

2) you lack many bones scaling

 

 

NetImmerse.SetNodeScale(akActor, "NPC L Breast P1", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC R Breast P1", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC L Breast P2", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC R Breast P2", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC L Breast P3", CurrentSize, false)

NetImmerse.SetNodeScale(akActor, "NPC R Breast P3", CurrentSize, false)

these are used when actor transformed to werewolf and has 3 rows of breasts

 

NetImmerse.SetNodeScale(akActor, "NPC L Breast01", CurveFix, false)

NetImmerse.SetNodeScale(akActor, "NPC R Breast01", CurveFix, false)

you dont have function for breast curve

 

;NetImmerse.SetNodeScale(akActor, "NPC L GenitalsScrotum [LGenScrot]", CurrentSize, false)

;NetImmerse.SetNodeScale(akActor, "NPC R GenitalsScrotum [RGenScrot]", CurrentSize, false)

i think there are left and right Scrotum though im not sure since ive never tested

 

ill do proper integration later, you should add missing functions for bone scaling

Will do, I honestly didn't realize there were bones for werewolf breasts. Or mods that messed with them. In general I just grabbed the nodes I saw mods messing with already and did that. Will push an update either tonight or tomorrow.

Link to comment

Yes, the esp needs to be updated to account for the script changes. I haven't gotten around to doing that yet. I'm purely focused on getting the scripts to compile for now.

 

@Feliks: I was having too many problems trying to get the CK to work via Mod Organizer and switched to using either Skyrim Script Editor or notepad++. I'll try again in CK to see if there's any difference. I just didn't want to copy all of those esp files into my data folder to launch the CK via steam.

Link to comment

if it is not to much trouble TechBaNe I would like to have an esp version where all of the mod patches is in one esp as I use wrye bash I can use the bash tag "filter" so wrye only merges or imports the changes just for the mods i have installed

 

(have you played oblivion with cobl installed?)

Link to comment

 

 

 

The way I understand it, CANS intercepts all of the node checks and passes through some internal maths and then spits out a change if there is any difference between the "GetNodeScale" and "SetNodeScale" floats for that particular mod, which is why the mod has to be registered with CANS. It's node changes are stored as a float within CANS, and CANS is effectively the only mod that makes the changes. Right now, I've changed over to separate script patches as Feliks suggested instead of using an additional esp to effect the changes, as I'd need to change the scripts that came with the original mods (sgo_QuestController for Soulgem Oven, and MilkQUEST for MME) anyway. Might as well free up space in load orders. As for Fill Her Up, I'm having trouble recompiling the script with the changes, so that one will have to wait until Feliks or I can (or anyone else who wants to take a stab at it, my edits and error logs are posted above) can figure out what's wrong.

 

As far as I can tell none of the errors in the sr_inflatequest should be showing up at all. The only thing I can think of is for some reason it's using the 0.5.0.0 scripts and not the 0.7 scripts. Try deleting whatever CANS files you have and replacing them with the new ones.

Reinstalled CANS 0.7 and still get the same error for sr_inflatequest.

 

Here's what I have sofar if anyone want to test the patches out.

 

Did that solve the problem with the Beeing female script though?

 

Nope. Same errors in the same places.

 

 

Glancing through your code (and some of the original as I attempt to integrate a few things into the CANS side of things) it looks like a lot of the errors are coming from the extra bool at then end. There should only be three arguments in a CANS updating function, the actor, the mod, and the size as a float. The true and false at the end is unnecessary. For the same reason the Return Functions should only pass two arguments, and make sure to put the category in quotes as it is a string.

 

Specific issues: The EC patch refused to compile because the OnEffectStart() event was defined twice, just cut and paste the CANS initial snippets into the already defined section down towards the bottom of the script ~Line 573

 

There seems to be an identical issue with the other scripts in the zip folder (two of them are OnInit() events instead though)

 

If that's all fixed and you're only passing 3 arguments (actor string float) to CANS.Belly() I honestly have no idea where the hell the error could be coming from.

Link to comment

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...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use