Now I know just enough about scripting in NWN to really jack some stuff up '>. That said I want to learn how to do this. so do will I need to make a new scripts for each list?
Nope. You should be able to add them to the spawn_cfg_group script as new switch statements.
For example to make it easy, lets say I want to have 3 different waypoints. One would randomly spawn a creatures from a list of CR1 creatures. The second will randomly spawn one creature from a list of CR2 creatures. Then the third would randomly spawn CR3 creatures. Would I need to make 3 scripts? If so is there a naming system I need to follow? What script would I need to tie them into?
Since each waypoint only has a creature of a single set of CR there is no need to scale them. You could create non-scaled groups with a basic case statement. Example:
if (sTemplate == "examplecr1")
{
switch(d4(1))
{
case 1: sRetTemplate = "resref1"; break;
case 2: sRetTemplate = "resref2"; break;
case 3: sRetTemplate = "resref3"; break;
case 4: sRetTemplate = "resref4"; break;
}
}
if (sTemplate == "examplecr2")
{
switch(d4(1))
{
case 1: sRetTemplate = "resref5"; break;
case 2: sRetTemplate = "resref6"; break;
case 3: sRetTemplate = "resref7"; break;
case 4: sRetTemplate = "resref8"; break;
}
}
if (sTemplate == "examplecr3")
{
switch(Random(4)+1)
{
case 1: sRetTemplate = "resref9"; break;
case 2: sRetTemplate = "resref10"; break;
case 3: sRetTemplate = "resref11"; break;
case 4: sRetTemplate = "resref12"; break;
}
}
Oh and it looks like I would have to make lists that follow the dice system d4, d6, d8, d10, d12, d20, and d100. Right?
Not at all. That is just how I did it for those examples. You could use the Random() function as well. I put an example in the previous script paste.
Ah I just seen you used d2 and d3. So I am guessing that you just put d in front of the number of creatures in your list and it could be any number of creatures?
There are several d functions. Like d2, d3, d4, d6, d8, d10, d12, d20, d100... they're convenient but they don't cover every number. Random() should be used instead if you don't have an exact match. Honestly you could just use Random(), I use the d4(1) instead of Random(4)+1 just for my own convenience.
I used to use the ASG spawn system but I want to do more then it will allow at this point and the NESS system sounds like it could do just about anything. Which is why I would like to learn how to use it.
It does quite a bit. There is a little program that is a big help. It's called the Spawn Waypoint Generator. Very useful.
Ok so what does the case numbers stand for in spawn_cfg_group ? I am asking because I see that you can have a set of case numbers for each group like say outside, cave, dungeon, cities, and so on.
You might want to look up some information on the switch/case statements. HERE is a link to the lexicon for some help. It's easier to look at the non-scaled example. That is just one switch. The 'Switch' is a d20 in that example. A random number selected between 1 and 20. The 'Case' is what number comes up. So if it randomly selects a 4 it will select the resref 'eagle'.
The scaled encounters are a little more tricky. It's actually several switch/case statements nested inside of one another. The first switch is nCR, which is called earlier in the spawn_cfg_group script as the avg party level I think. So for a 5th level character it would be five. Then each separate case of nCR, or each CR group for those who speak english and not matrix code, has its own switch case statement like the non-scaled one where it just picks one from a group based on a random number.
In all two checks are made. One to determine party level, and then once it has party level it picks from a random list inside of that CR.
You can set sTemplate, or the string that determines what list is used, to any valid string. I use descriptive ones that are easy to remember. Like 'catacombs_easy', or 'oldedenday', or even 'cannibal_01'.
Hope I made that clear.