Custom Content Plausibility
Xzanos
Member Posts: 11
So I just have a few ideas that i have been thinking about for creating an extremely freeform leveling system, but I'm not sure if everything that i have in mind is actually possible. So let me just ask a few questions.
1. can you modify existing classes in the classes.2da (such as HD, and what tables they use for AB, Feats, Skills, exc...
2. can you duplicate existing classes in the classes.2da
3. can you remove existing classes in the classes.2da
3. can you swap/add spells from class to class in the spells.2da
4. can you swap/add feats from class to class in the cls_feat_*.2da
I'm hoping to create a single class that has as much to choose from as possible when the player gains a level. Something similar to maybe combining the fighter and wizard classes together and expanding what spells are normally available to sorc/wiz in the spells.2da. to include all base class spells.
1. can you modify existing classes in the classes.2da (such as HD, and what tables they use for AB, Feats, Skills, exc...
2. can you duplicate existing classes in the classes.2da
3. can you remove existing classes in the classes.2da
3. can you swap/add spells from class to class in the spells.2da
4. can you swap/add feats from class to class in the cls_feat_*.2da
I'm hoping to create a single class that has as much to choose from as possible when the player gains a level. Something similar to maybe combining the fighter and wizard classes together and expanding what spells are normally available to sorc/wiz in the spells.2da. to include all base class spells.
0
Comments
Some other things are also hardcoded such as the movement speed behavior of monk.
Welcome aboard and keep asking those question. One thing my professors at University always mentioned about programming (which modding is a part of) is hours of planning saves weeks of programming. Learn the system and what it can do and you won't waste time with something which cannot be done or implement it in away which will take even longer later (some of which applies Beamdog themselves commented on).
Shadooow is correct the spells are coded. Even though you see the spells as displayed in the file you posted they cannot be altered by any new classes. If you notice there are now spell casting prestige classes in the game. This is a limitation in the engine. The work around has been by adding feats (epic spells, and the way classes such as assassin has added spells). On the Trello board there is a request to fix spellbooks in order to add spells which is listed as a project being looked into/worked on. It is not implemented.
The most efficient work around is NWNX (badly documented and not user friendly) which is a tool that alters the game code as a script injector. This will allow new spell casting classes. Less pretty, more user friendly is the route the PRC took which does have an active community that answers questions and will help get you started.
Links:
Beamdog's Trello Board:
Roadmap... https://trello.com/b/K0C0i8wF/neverwinter-nights-enhanced-edition
Input......... https://trello.com/b/Lb79bbgy/neverwinter-nights-input
Thank you for taking time out of you day to do this as an example. From what I see in the screenshot its seems you were at least able to add the spells to the file so that they are indeed learn able by the player and will show up in the players spell book to be memorized.
Have you tested the off class spells to see if they function?
I'm completely brand new to what is required to implement this into a module after editing the needed files so I apologize for not jumping right in to it myself.
Could you expand a bit more on "Spells are not hardcoded, the UI for spellbooks in the game are hardcoded to specific row numbers in classes.2da, you can add and remove spells to a spellcasting class as you like."
what do you mean exactly by the UI for spellbooks? does this refer to the known spells list above or the spell list that you have to choose from when you level up? Also you stated that its hardcoded to a number of rows in classes.2da meaning that you cant add rows? or that you just need to increase that number to the number of rows needed.
Thank you for all the help so far.
What I said means you can have a spellcasting class but you must modify either bard, cleric, druid, ranger, wizard, or sorcerer. Try to make barbarian into a spellcaster, it doesn't work, try to make a brand new class into a spellcaster, it doesn't work. That's fine because you can achieve your single class by modifying an existing spellcasting class and disabling the others.
The screenshot also shows fighter attack bonus, monk saves, and barbarian hp. It does not show fighter feats and rogue skills but I did add those too.
You can set the existing classes to 0 on the column "PlayerClass" of classes.2da and it will remove classes from selection, so your intuition is correct. This screenshot shows I quickly disabled all but 3 classes.
If you do it like that then what you asked can be achieved. The boring part is as I said above with the cls_feat_*.2da files, you'll need to open them up and copy/paste their content to the cls_feat_*.2da file for the class you're using. Then reset the row numbers, remove duplicates, and so on.
Don't get daunted by modding, because a lot of it is quite simple and not as mysterious and complicated as people make it seem.
So now that I have been researching and thinking about the concept, thank you again for all your help thus far, I think I may have one other question that you hopefully have dealt with in the past.
In the spirit of the class, it seems sorcerer has the better "spell per day" casting system with just a set # per day per lvl rather than the memorization system from the wizard.
Is it possible to allow sorcerers to learn spells from scrolls the way wizards do?
Because it is hard coded, you can rename the class, add in new spells, remove spells, even make some feats to make the class itself behave differently, but the way the spell casting itself functions that is not possible without the extra tools I mentioned in my post.
It is not possible, the "learn" option on spells will only show up for wizard. Last I remember you can alter the spgn and spkn tables for some things, so if you want the class to know more spells or have more spells per day look at those 2da's. Beyond that then you need to get into more complicated things than 2da editing just to try and mimic the same functionality.
Work arounds for that always get clumsy and receive a lot of criticism so ask yourself if you want to go down that path or if you just want to let sorcerer know more spells.
For learning scrolls there is currently an issue where the game freezes when you try to learn scrolls on a non wizard.
So wait for a couple of updates and hotfixes for them to fix things and then you should have everything you wanted without any work around.