Jump to content

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


Recommended Posts

Alright y'all, 0.7.8.2 is now up, most of the issues pointed out have been addressed, and an MCM has been added, including optional mods. It currently defaults to highest only, with cumulative and a few others in a dropdown list.

 

Additionally this comes with the inclusion of categories, a self cleaning framework, and a few other neat little tricks I came up with. Going to work on dealing with magic effects detaching and then I'll make a patch or two real quick. 

 

I'll keep you guys posted as I go.

 

 

EDIT: Sorry if I just spammed everyone following the file with like four updates, there were a few things I needed to touch up in the post, never uploaded here before.

Link to comment

Installed, caused CTD on startup. Tried moving to top, middle and bottom of load order, CTD persisted. Uninstalled to resolve issue.

 

Well that's umm... Unexpected. You've got NiOverride or Racemenu?

Link to comment

 

 

Installed, caused CTD on startup. Tried moving to top, middle and bottom of load order, CTD persisted. Uninstalled to resolve issue.

 

Well that's umm... Unexpected. You've got NiOverride or Racemenu?

 

 

I use Racemenu.

 

 

Hrm. Let me poke it with a stick a bit and see if I can turn anything up.

 

EDIT: Well, I'm not encountering any issues at startup. Is is before the main menu like a missing master CTD? or when you actually load a game?

Link to comment

 

 

 

Installed, caused CTD on startup. Tried moving to top, middle and bottom of load order, CTD persisted. Uninstalled to resolve issue.

 

Well that's umm... Unexpected. You've got NiOverride or Racemenu?

 

 

I use Racemenu.

 

 

Hrm. Let me poke it with a stick a bit and see if I can turn anything up.

 

EDIT: Well, I'm not encountering any issues at startup. Is is before the main menu like a missing master CTD? or when you actually load a game?

 

 

On startup before the main menu.

 

Link to comment

Loaded in game. No issues, MCM even loads. Just can't do anything with it yet because I've got to throw together a patch, and get some sleep.

Alright good to hear. On the first page, under the current status, it didn't happen to have text about how many mods were installed and current sizes did it? It's supposed ot be there but I can't quite figure out why it isn't. I'm going to assume for the time being that it has something to do with there not being any mods.

 

Out of curiosity, this patch you're making, is it for an existing mod? If so, which one(s)?

Link to comment

Loads fine for me too. New and existing game. Nothing under status for me though other than the current version of CANS

 

Yeah that's what I'm getting too. Funny thing is there's no discernible difference between that and the code after it. Go figure. It's gotta be something to do with returning 0's for the mod count. I just don't know why.

Link to comment

 

Loaded in game. No issues, MCM even loads. Just can't do anything with it yet because I've got to throw together a patch, and get some sleep.

Alright good to hear. On the first page, under the current status, it didn't happen to have text about how many mods were installed and current sizes did it? It's supposed ot be there but I can't quite figure out why it isn't. I'm going to assume for the time being that it has something to do with there not being any mods.

 

Out of curiosity, this patch you're making, is it for an existing mod? If so, which one(s)?

 

Under current status, I've got a little bit of text saying "C.A.N.S. is currently running version 0.7.8.0". Other than that, nothing about other mods.

 

The patch I'm going to try to make is for existing mods as I have Beeing Female, soulgem oven 2, Mana Tanks, Deadly Drain, Milk Mod Economy, Player Succubus Quest, Estrus Charus+,  and SexLab Hormones running, and I want them to play nicely. I doubt I'll have anything working though as I'm still very new to scripting, and my creation kit doesn't want me to succeed in making/compiling scripts. But right now, I'm nodding off, and can't do anything productive, so I'm off to bed. Good night (or day, if applicable).

Link to comment

 

 

Loaded in game. No issues, MCM even loads. Just can't do anything with it yet because I've got to throw together a patch, and get some sleep.

Alright good to hear. On the first page, under the current status, it didn't happen to have text about how many mods were installed and current sizes did it? It's supposed ot be there but I can't quite figure out why it isn't. I'm going to assume for the time being that it has something to do with there not being any mods.

 

Out of curiosity, this patch you're making, is it for an existing mod? If so, which one(s)?

 

Under current status, I've got a little bit of text saying "C.A.N.S. is currently running version 0.7.8.0". Other than that, nothing about other mods.

 

The patch I'm going to try to make is for existing mods as I have Beeing Female, soulgem oven 2, Mana Tanks, Deadly Drain, Milk Mod Economy, Player Succubus Quest, Estrus Charus+,  and SexLab Hormones running, and I want them to play nicely. I doubt I'll have anything working though as I'm still very new to scripting, and my creation kit doesn't want me to succeed in making/compiling scripts. But right now, I'm nodding off, and can't do anything productive, so I'm off to bed. Good night (or day, if applicable).

 

 

Awesome, keep me posted, and shoot me a PM if you've got any problems or questions.

Link to comment

So, getting this patch up and running is proving to be a headache. The major roadblock I've got is that the CK will not compile any of my scripts. Is there a way to import it into the CK if I launch the CK from Mod Organizer?

 

Secondly, it may be an obvious answer, but like I said, I'm greener than a lime with scripting. Does the property declaration go into the same script as the "Event OnEffectStart..." portion in the tutorial in your blog?

 

Third, the registration line needs to be done for every individual mod (Beeing Female, soulgem Oven, etc.) so that they each get their own line, correct?

Ex: CANS.RegisterMyMod(zTarget, Beeingfemale, Pregnancy)

      CANS.RegisterMyMod(zTarget, FillHerUp, Cumflation)

      CANS.RegisterMyMod...

Or do I have to build a separate script for each one?

 

Finally, do the Update, Retrieval, and Uninstall snippets go into the main event script?

 

EDIT: Tried to use Skyrim Script Compiler Pro found on Nexus to compile my script. I'm getting a lot of errors that say a lot of things are undefined ("NiOverride is an undefined variable", and various other things like zTarget is an undefined variable, NodeSize is an udefined variable  and the Mod Names for the relevant sections are undefined variables, etc.)

 

Shows how much of a noob I am. At this rate I don't think I can even make this patch as I don't know how and where to define those "variables", or if I even should be messing with them.

 

Link to comment

So, getting this patch up and running is proving to be a headache. The major roadblock I've got is that the CK will not compile any of my scripts. Is there a way to import it into the CK if I launch the CK from Mod Organizer?

 

Secondly, it may be an obvious answer, but like I said, I'm greener than a lime with scripting. Does the property declaration go into the same script as the "Event OnEffectStart..." portion in the tutorial in your blog?

 

Third, the registration line needs to be done for every individual mod (Beeing Female, soulgem Oven, etc.) so that they each get their own line, correct?

Ex: CANS.RegisterMyMod(zTarget, Beeingfemale, Pregnancy)

      CANS.RegisterMyMod(zTarget, FillHerUp, Cumflation)

      CANS.RegisterMyMod...

Or do I have to build a separate script for each one?

 

Finally, do the Update, Retrieval, and Uninstall snippets go into the main event script?

 

EDIT: Tried to use Skyrim Script Compiler Pro found on Nexus to compile my script. I'm getting a lot of errors that say a lot of things are undefined ("NiOverride is an undefined variable", and various other things like zTarget is an undefined variable, NodeSize is an udefined variable  and the Mod Names for the relevant sections are undefined variables, etc.)

 

Shows how much of a noob I am. At this rate I don't think I can even make this patch as I don't know how and where to define those "variables", or if I even should be messing with them.

Unlike every other compiler I know, Papyrus doesn't use the compiled script files but insists on the source files instead when referring to other mods etc.

 

The NiOverride comes from the Racemenu mod and will be hidden inside the BSA file that comes with Racemenu. I recommend you extract the Racemenu.bsa file into the same folder as the rest of the Racemenu mod (easily done from the "Archives" tab of the right hand side of MO and then set the BSA file to hidden from the "File Tree" tab of the Information part of the Racemenu Mod on the left hand side of MO.

 

You'll probably have to do this for additional mods (SkyUI requires you to download their SDK (source) files from their website).

Link to comment

So, getting this patch up and running is proving to be a headache. The major roadblock I've got is that the CK will not compile any of my scripts. Is there a way to import it into the CK if I launch the CK from Mod Organizer?

 

Secondly, it may be an obvious answer, but like I said, I'm greener than a lime with scripting. Does the property declaration go into the same script as the "Event OnEffectStart..." portion in the tutorial in your blog?

 

Third, the registration line needs to be done for every individual mod (Beeing Female, soulgem Oven, etc.) so that they each get their own line, correct?

Ex: CANS.RegisterMyMod(zTarget, Beeingfemale, Pregnancy)

      CANS.RegisterMyMod(zTarget, FillHerUp, Cumflation)

      CANS.RegisterMyMod...

Or do I have to build a separate script for each one?

 

Finally, do the Update, Retrieval, and Uninstall snippets go into the main event script?

 

EDIT: Tried to use Skyrim Script Compiler Pro found on Nexus to compile my script. I'm getting a lot of errors that say a lot of things are undefined ("NiOverride is an undefined variable", and various other things like zTarget is an undefined variable, NodeSize is an udefined variable  and the Mod Names for the relevant sections are undefined variables, etc.)

 

Shows how much of a noob I am. At this rate I don't think I can even make this patch as I don't know how and where to define those "variables", or if I even should be messing with them.

 

Heading through in order: As long as all of the source files are either where you're starting the compiler from or in the data/scripts/source it should compile. Provided the issue is missing source scripts. If the console window turns up any other errors it's important to go and fix those before compiling. 

The property declarations are independent from just about everything, I like to declare them just below the script name (as you'll see in my source files) if you add them through the properties option in the CK they'll end up on the bottom. They need to be not inside an event or function (or state I think, I've had trouble declaring anything new inside states).

There does need to be a separate line for each mod registration yes.

The update and retrieval snippets actually need to replace a part of the original mod's script so that it won't continue updating independently.

The NiOverride error is because of a missing source file, zTarget would need to be defined as follows "Actor zTarget = " and then you'll need a way to cast whichever npc you're affecting (spell target, effect target, the player, etc). Node size is gonna be "Float NodeSize" and then you'll cast values to that throughout the code. the modnames can either be passed as variables or as raw strings, if you're going to use raw strings (just straight type the name) you've got to put it in quotes for it to read it right.

Link to comment

 

So, getting this patch up and running is proving to be a headache. The major roadblock I've got is that the CK will not compile any of my scripts. Is there a way to import it into the CK if I launch the CK from Mod Organizer?

 

Secondly, it may be an obvious answer, but like I said, I'm greener than a lime with scripting. Does the property declaration go into the same script as the "Event OnEffectStart..." portion in the tutorial in your blog?

 

Third, the registration line needs to be done for every individual mod (Beeing Female, soulgem Oven, etc.) so that they each get their own line, correct?

Ex: CANS.RegisterMyMod(zTarget, Beeingfemale, Pregnancy)

      CANS.RegisterMyMod(zTarget, FillHerUp, Cumflation)

      CANS.RegisterMyMod...

Or do I have to build a separate script for each one?

 

Finally, do the Update, Retrieval, and Uninstall snippets go into the main event script?

 

EDIT: Tried to use Skyrim Script Compiler Pro found on Nexus to compile my script. I'm getting a lot of errors that say a lot of things are undefined ("NiOverride is an undefined variable", and various other things like zTarget is an undefined variable, NodeSize is an udefined variable  and the Mod Names for the relevant sections are undefined variables, etc.)

 

Shows how much of a noob I am. At this rate I don't think I can even make this patch as I don't know how and where to define those "variables", or if I even should be messing with them.

 

Heading through in order: As long as all of the source files are either where you're starting the compiler from or in the data/scripts/source it should compile. Provided the issue is missing source scripts. If the console window turns up any other errors it's important to go and fix those before compiling. 

The property declarations are independent from just about everything, I like to declare them just below the script name (as you'll see in my source files) if you add them through the properties option in the CK they'll end up on the bottom. They need to be not inside an event or function (or state I think, I've had trouble declaring anything new inside states).

There does need to be a separate line for each mod registration yes.

The update and retrieval snippets actually need to replace a part of the original mod's script so that it won't continue updating independently.

The NiOverride error is because of a missing source file, zTarget would need to be defined as follows "Actor zTarget = " and then you'll need a way to cast whichever npc you're affecting (spell target, effect target, the player, etc). Node size is gonna be "Float NodeSize" and then you'll cast values to that throughout the code. the modnames can either be passed as variables or as raw strings, if you're going to use raw strings (just straight type the name) you've got to put it in quotes for it to read it right.

 

Thank you, this gets me much closer. As Waxen said, I'll just have to extract the sources from the bsa files. 

 

However, I still get the following error:

 

Starting 1 compile threads for 1 files...
Compiling "CANSReg"...
<unknown>(0,0): unable to locate script CANSReg
No output generated for CANSReg, compilation failed.
 
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on CANSReg
 
I don't think the Creation Kit likes Mod Organizer.
Link to comment

 

Thank you, this gets me much closer. As Waxen said, I'll just have to extract the sources from the bsa files. 

 

 

However, I still get the following error:

 

Starting 1 compile threads for 1 files...
Compiling "CANSReg"...
<unknown>(0,0): unable to locate script CANSReg
No output generated for CANSReg, compilation failed.
 
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on CANSReg
 
I don't think the Creation Kit likes Mod Organizer.

 

 

I've never seen that error. There's only two things I can think of though.

You've got the first line that says "Scriptname CANSReg" right? (it may or may not extend something)

and if you're doing this in the CK editor, try and save the source, under file. It may just not have the psc file saved anywhere yet which could cause the compiler to flip shit.

Link to comment

The papyrus compiler is 64 bit by default. Mod organizer can't handle 64 bit programs currently. See here:http://forum.step-project.com/topic/6214-howto-use-creationkit-from-mo/

 

You may have to change the command somewhat as I believe a newer version of the sdk changed some part of the install folder name.

 

Mod ORganizer shouldn't be running the compiler directly so that won't be the problem. The compiler should be run through the CK (or your coding program of choice if you can run the compiler from there).

Link to comment

So, If I want to register mods that have different properties for the Actor, how would you go about declaring them for the registration script?

 

Lets say Mana Tanks uses "Actor  Property  Target" in it's declarations, so in that script, updates would run as CANS.Breast (Target, "ManaTanks", size)

Would that mean that in my registration script I would have to have it register as CANS.RegisterMyMod(Target, "ManaTanks", Miscellaneous) ?

 

Wouldn't that cause problems with registering mods like Beeing Female which uses the "Actor Property ActorRef" declaration? Or does that not matter, the two different actor declarations aren't important and I'm just overthinking it?

Link to comment

So, If I want to register mods that have different properties for the Actor, how would you go about declaring them for the registration script?

 

Lets say Mana Tanks uses "Actor  Property  Target" in it's declarations, so in that script, updates would run as CANS.Breast (Target, "ManaTanks", size)

Would that mean that in my registration script I would have to have it register as CANS.RegisterMyMod(Target, "ManaTanks", Miscellaneous) ?

 

Wouldn't that cause problems with registering mods like Beeing Female which uses the "Actor Property ActorRef" declaration? Or does that not matter, the two different actor declarations aren't important and I'm just overthinking it?

Yeah you're overthinking it. Whatever the mod is using as a target (Target in mana tanks, ActorRef in Beeing Female) is what you need to use. That's just the argument you use when calling a function. As soon as CANS picks it up it takes that value and casts it to the internal zTarget variable, which is what it uses. The argument you use to call it doesn't matter as long as it's the right type.

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