Author Topic: Subclasses and subraces.  (Read 759 times)

Legacy_Nick The Noodle

  • Sr. Member
  • ****
  • Posts: 318
  • Karma: +0/-0
Subclasses and subraces.
« on: September 09, 2014, 02:28:26 pm »


               

I would like to create my own subraces and subclasses.  Is there a simple way to do this, given that I have next to none useful programming skills?


 


I have the module for creating Drow from Elves, Witches Wake, Commche's Supernatural Subrace System, and Shayan's Subrace Engine.


However, I'm not quite happy with those, and would like to create my own.


 


For example, I would like to include an Urban Elf option, with further ability modifiers of +2 charisma, -2 wisdom, shortsword instead of longsword, favoured class: Bard, only +1 to listen and spot, but an additional +1 appraise and lore.


 


I would like to see specialist wizards more specialist.  For example, I would like to see specialists have two spell lists.  The first would equate to that of a sorceror.  The wizard would automatically know his specialist schools spells, and these spells would be can be cast as per the first list.  The second list would be that as a bard.  These are for the spells from other schools, which are learned by using scrolls. This means specialist wizard will be well versed in their own school of magic, but have spells no higher than level 6 in the others.


 


I would also delete bonus feat slots of standard wizards and give them different bonuses instead.  For example, an Enchanter would include all charisma based skills as class skills, and gain the bardsong ability.  A conjurer would summon creatures as a cleric with the animal domain.  The Diviner would gain the lore bonus of a bard, and have access to all skills, and 8+int skills per level.  This is probably best as a Poirot class, since this PC would know everything, but would rely on Captain Hastings to actually do anything!


 


I would like to create Clerics with skills and spells based upon my own Pantheon.


I would love to create all sorts of subclasses.  I don't particularly care how powerful/weak they are, since they are for my benefit only, at least at first.  


 


As you can see, I have plenty of ambition and ideas with zero ability.  Can anyone help? 



               
               

               
            

Legacy_BelowTheBelt

  • Hero Member
  • *****
  • Posts: 699
  • Karma: +0/-0
Subclasses and subraces.
« Reply #1 on: September 12, 2014, 02:33:22 am »


               

I'd offer a suggestion that in just staring out, keep things simple.


 


Take a single subrace, say from Shayan's, since that one is widely known.  Pull out or identify each of the scripts and functions that affect that subrace:  its core ability changes, item-based abilities, appearance changes, etc...


 


Then, start modifying it.  Change 'Drow' to 'Urban Elf' and modify each of the abilities, etc... to suit you.  That will get you 90% of the way there and teach you how the system fits together to create a subrace.   What's left is anything custom that you want your new subrace to do that is not included in that existing base subrace.  Even then, there may be another subrace within Shayan's that has a similar ability that you can work into your new one.


 


Once you go through that a time or two, you'll start to get a hang of it.


 


Now for some of your ideas that reconfigure how a class works, I think you're getting into areas where you need to have the NWNx extender to be able to have more control over adding and removing feats and spell slots.



               
               

               
            

Legacy_Nick The Noodle

  • Sr. Member
  • ****
  • Posts: 318
  • Karma: +0/-0
Subclasses and subraces.
« Reply #2 on: September 12, 2014, 05:05:46 pm »


               


I'd offer a suggestion that in just staring out, keep things simple.


 


Take a single subrace, say from Shayan's, since that one is widely known.  Pull out or identify each of the scripts and functions that affect that subrace:  its core ability changes, item-based abilities, appearance changes, etc...


 


Then, start modifying it.  Change 'Drow' to 'Urban Elf' and modify each of the abilities, etc... to suit you.  That will get you 90% of the way there and teach you how the system fits together to create a subrace.   What's left is anything custom that you want your new subrace to do that is not included in that existing base subrace.  Even then, there may be another subrace within Shayan's that has a similar ability that you can work into your new one.


 


Once you go through that a time or two, you'll start to get a hang of it.


 


Now for some of your ideas that reconfigure how a class works, I think you're getting into areas where you need to have the NWNx extender to be able to have more control over adding and removing feats and spell slots.




Thank you for your reply.


 


However, I was hoping that someone had done all the hard work in creating a format where you can simply add a race or class.


 


For example, I was thinking of a Guardsman class, based on the Fighter.


I was thinking that it would have a good will instead of a good fortitude save.


It would have to be lawful.


It has additional skills in 4+int, plus additional options of spot, listen, search and intimidate skill choices.


Its bonus feats as a fighter would deleted.


At level 1, it would get +1 concentration per level (to resist taunts).


At Level 2, it would get weapon focus in halberd.


At level 4, it would get the alertness feat.


At level 6 it would get weapon focus in halberd.


At level 8 it would gain the still mind ability as a monk etc etc.


 


Other fighter types could be gladiators, exotic weapon specialists, mercenaries etc.


 


However, it sounds that a simple solution does not exist. 


               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Subclasses and subraces.
« Reply #3 on: September 12, 2014, 05:54:21 pm »


               

Carcerian want to do something like this because AFAIK there is no subrace system that would allowed this. And Shayan, as much as is still used is very outdated (there are much better alternatives in technology now)



               
               

               
            

Legacy_Nick The Noodle

  • Sr. Member
  • ****
  • Posts: 318
  • Karma: +0/-0
Subclasses and subraces.
« Reply #4 on: September 13, 2014, 08:46:39 pm »


               


Carcerian want to do something like this because AFAIK there is no subrace system that would allowed this. And Shayan, as much as is still used is very outdated (there are much better alternatives in technology now)




If you could expand on this I would greatly appreciate it.


               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Subclasses and subraces.
« Reply #5 on: September 14, 2014, 01:37:17 am »


               


If you could expand on this I would greatly appreciate it.




Shayan uses Leto, in this time outdated techique how to modify feats, abilities, etc. - this technique requires to boot player from game and often fails, while newer plugins for NWNX (nwnx_funcs) can do this on the fly without need to boot player at all.


               
               

               
            

Legacy_Nick The Noodle

  • Sr. Member
  • ****
  • Posts: 318
  • Karma: +0/-0
Subclasses and subraces.
« Reply #6 on: September 14, 2014, 09:20:15 pm »


               


Shayan uses Leto, in this time outdated techique how to modify feats, abilities, etc. - this technique requires to boot player from game and often fails, while newer plugins for NWNX (nwnx_funcs) can do this on the fly without need to boot player at all.




Thank you for replying.


 


Does anyone know how to open a module to see its coding, eg drow subrace for elves, so that I can see how it works?


               
               

               
            

Legacy_HipMaestro

  • Hero Member
  • *****
  • Posts: 2849
  • Karma: +0/-0
Subclasses and subraces.
« Reply #7 on: September 14, 2014, 11:01:35 pm »


               


Thank you for replying.


 


Does anyone know how to open a module to see its coding, eg drow subrace for elves, so that I can see how it works?




It's not in the module.  Races are defined in the 2das and the associated scripts and functions.  There are several of those that are needed to control custom races.  A few examples would be racialtypes.2da, race_feat_*.2da, appearance.2da, classes.2da and most likely others depending on how far you want to customize. You could get a rough idea of the extent of changes needed by DLing haks/overrides for modules that use custom races.  PRC modules with their associated custom resources would probably be a good starting point.



               
               

               
            

Legacy_BelowTheBelt

  • Hero Member
  • *****
  • Posts: 699
  • Karma: +0/-0
Subclasses and subraces.
« Reply #8 on: September 15, 2014, 04:23:23 am »


               

Do you have a demo module with the subrace system working?  If so, you open it in the Toolset as with any module.  You can click on the "Scripts" section in the left-hand box to expand a list and see the custom scripts that the module is using.  Double click on a script to open an individual script.


               
               

               
            

Legacy_Nick The Noodle

  • Sr. Member
  • ****
  • Posts: 318
  • Karma: +0/-0
Subclasses and subraces.
« Reply #9 on: September 15, 2014, 07:08:49 pm »


               


It's not in the module.  Races are defined in the 2das and the associated scripts and functions.  There are several of those that are needed to control custom races.  A few examples would be racialtypes.2da, race_feat_*.2da, appearance.2da, classes.2da and most likely others depending on how far you want to customize. You could get a rough idea of the extent of changes needed by DLing haks/overrides for modules that use custom races.  PRC modules with their associated custom resources would probably be a good starting point.




Thanks for the reply.


 




Do you have a demo module with the subrace system working?  If so, you open it in the Toolset as with any module.  You can click on the "Scripts" section in the left-hand box to expand a list and see the custom scripts that the module is using.  Double click on a script to open an individual script.




Thanks for replying.  How do I open it in the toolset?


               
               

               
            

Legacy_Nick The Noodle

  • Sr. Member
  • ****
  • Posts: 318
  • Karma: +0/-0
Subclasses and subraces.
« Reply #10 on: September 15, 2014, 07:14:57 pm »


               

Ignore the above.  I just realized where the toolset was.


However, I think the coding is well beyond my ability.


 


Thanks anyway to all who replied.



               
               

               
            

Legacy_BelowTheBelt

  • Hero Member
  • *****
  • Posts: 699
  • Karma: +0/-0
Subclasses and subraces.
« Reply #11 on: September 15, 2014, 09:26:48 pm »


               


Ignore the above.  I just realized where the toolset was.


However, I think the coding is well beyond my ability.


 


Thanks anyway to all who replied.




 


Nonsense.  I started with zero scripting ability.  Nada.  None.  It's not possible to have less ability than I did.  What's more, I think that describes many of the builders here.  


 


Then I jumped in and started playing with it.  Like you, I had something I wanted to accomplish.  Nothing makes you learn something faster than having a need to do something.  Get in there and use tutorials to get a sense of the toolset.  Get introduced to simple scripts.  Make mistakes and pull your hair out, then post the code here and people will show you where you went wrong.


 


NWScript is 'relatively' easy to learn.  The functions are largely plain language and the requirements for script language are pretty minimal.  Even a person with a complete lack of understanding of scripting can learn it enough in a short amount of time.


 


I'm nowhere near a champion for scripting, but I'm comfortable writing code now and looking back, I'm glad I did it.  It was worth the effort.


               
               

               
            

Legacy_Nick The Noodle

  • Sr. Member
  • ****
  • Posts: 318
  • Karma: +0/-0
Subclasses and subraces.
« Reply #12 on: September 16, 2014, 12:42:06 am »


               


Nonsense.  I started with zero scripting ability.  Nada.  None.  It's not possible to have less ability than I did.  What's more, I think that describes many of the builders here.  


 


Then I jumped in and started playing with it.  Like you, I had something I wanted to accomplish.  Nothing makes you learn something faster than having a need to do something.  Get in there and use tutorials to get a sense of the toolset.  Get introduced to simple scripts.  Make mistakes and pull your hair out, then post the code here and people will show you where you went wrong.


 


NWScript is 'relatively' easy to learn.  The functions are largely plain language and the requirements for script language are pretty minimal.  Even a person with a complete lack of understanding of scripting can learn it enough in a short amount of time.


 


I'm nowhere near a champion for scripting, but I'm comfortable writing code now and looking back, I'm glad I did it.  It was worth the effort.




I think you over estimate my IQ.


 


For example I opened Shayan's Subrace Engine in the toolset.  Under subrace 5 in the scripts, it clearly states the Githzerai have +6 dexterity, -2 intelligence and +2 wisdom.  However, upon generating the race, only +2 dexterity is given? I cannot understand why that would be the case?


 


I also tried to create an Urban Elf.  It didn't break the module, but I'm obviously missing enough brain cells to fail to achieve my ambitions. Such is life.



               
               

               
            

Legacy_BelowTheBelt

  • Hero Member
  • *****
  • Posts: 699
  • Karma: +0/-0
Subclasses and subraces.
« Reply #13 on: September 16, 2014, 03:47:47 pm »


               

I don't use Shayan's but it's  possible that the subrace uses the inherent bonuses for its base race to get the +6 dex, for example.  If Gith use elf as a base race, elves naturally get +2 dex, -2 con.  So, a Gith would need +4 dex additionally to get a +6 total.  Not sure if this is how it is intended to be read.  If Gith don't have any CON penalty, (as elves do), then the subrace script would also have to add +2 to the CON (plus the intelligence and wisdom bonuses).


 


Another possibility is that what is stated in the description is not what is implemented in the code.


 


Do a search in your module for the "effectabilityincrease" command.


1)  Open the module in the Toolset


2)  Open a script (any script)


3)  Click on the 'Find In Files' icon on the top row of icons (it looks like a magnifying glass in front of a tan file folder - it it NOT the 'find in text' icon right next to it)


4)  Type "effectabilityincrease" in the 'Find What' field


5)  Click the "Find In All Files in the Module" radio button. This will make the search go beyond just the file you have open


6)  Click 'OK'


 


In the bottom third of the screen, a list will appear of all the scripts and each line within those scripts that use that command.  By clicking on each one, it will either open up the script or take you to the line within it.


 


From there, you can scroll around to find where the Gith subrace is handled and look at what ability changes are given.  They're probably all together.  Each subrace is probably given ability changes in the same file, so by scrolling up and down in that file, you can see, as far a abilities go, how they differ. 


 


What's more, you can change the subrace abilities by altering the code.


 


You'll see a command such as this:


EffectAbilityIncrease(ABILITY_STRENGTH, 1);


 


This gives the recipient +1 strength.  Change that to any number between 1-10 and it will change the system.    


 


Also, you can repeat the above for "EffectAbilityDecrease", which is used to apply penalties to abilities, though you'll probably see it as you look at the increases.


 


Lastly, once you save the changes and exit the script screen, you'll likely need to BUILD your module (i.e. have the engine recompile all the scripts) before you save it.  Otherwise, your changes likely won't take effect.  This is as simple as hitting the Build option on the top row of your module (File, Edit, View, Environment, Build...).  Select Build Module.  Wait a few minutes.  Then, Save As your module to a new filename (don't save it over your original module).


 


Play your module and enjoy your modifications.



               
               

               
            

Legacy_Nick The Noodle

  • Sr. Member
  • ****
  • Posts: 318
  • Karma: +0/-0
Subclasses and subraces.
« Reply #14 on: September 16, 2014, 06:42:05 pm »


               


I don't use Shayan's but it's  possible that the subrace uses the inherent bonuses for its base race to get the +6 dex, for example.  If Gith use elf as a base race, elves naturally get +2 dex, -2 con.  So, a Gith would need +4 dex additionally to get a +6 total.  Not sure if this is how it is intended to be read.  If Gith don't have any CON penalty, (as elves do), then the subrace script would also have to add +2 to the CON (plus the intelligence and wisdom bonuses).


 


Another possibility is that what is stated in the description is not what is implemented in the code.


 


Do a search in your module for the "effectabilityincrease" command.


1)  Open the module in the Toolset


2)  Open a script (any script)


3)  Click on the 'Find In Files' icon on the top row of icons (it looks like a magnifying glass in front of a tan file folder - it it NOT the 'find in text' icon right next to it)


4)  Type "effectabilityincrease" in the 'Find What' field


5)  Click the "Find In All Files in the Module" radio button. This will make the search go beyond just the file you have open


6)  Click 'OK'


 


In the bottom third of the screen, a list will appear of all the scripts and each line within those scripts that use that command.  By clicking on each one, it will either open up the script or take you to the line within it.


 


From there, you can scroll around to find where the Gith subrace is handled and look at what ability changes are given.  They're probably all together.  Each subrace is probably given ability changes in the same file, so by scrolling up and down in that file, you can see, as far a abilities go, how they differ. 


 


What's more, you can change the subrace abilities by altering the code.


 


You'll see a command such as this:


EffectAbilityIncrease(ABILITY_STRENGTH, 1);


 


This gives the recipient +1 strength.  Change that to any number between 1-10 and it will change the system.    


 


Also, you can repeat the above for "EffectAbilityDecrease", which is used to apply penalties to abilities, though you'll probably see it as you look at the increases.


 


Lastly, once you save the changes and exit the script screen, you'll likely need to BUILD your module (i.e. have the engine recompile all the scripts) before you save it.  Otherwise, your changes likely won't take effect.  This is as simple as hitting the Build option on the top row of your module (File, Edit, View, Environment, Build...).  Select Build Module.  Wait a few minutes.  Then, Save As your module to a new filename (don't save it over your original module).


 


Play your module and enjoy your modifications.




Thanks for replying.  My PC is not well at the moment and having backed up my PC will reinstall everything afresh shortly.  Now sounds the perfect time to make mistakes.