Currently local variables on PCs aren't saved, requiring ugly workarounds such as having a persistent item in your inventory and storing the local variables meant for the PC on there. Would it be possible to change that and save all local variable with a PC?
I don't know if this was mentioned earlier in this thread but could we change or flex the format of loadingscreens? Like it can show classic tga but also png/gif whatever with the best quality/size ratio.
I would love to add new loadingscreens into my module/server but they take extremely large ammount of data. If I were to add 200 new loadscreens it would take almost 200 mb which is simply not viable for a nwsynced server. Even if most players who are already playing didn't mind. The total MB size of download for new players is something the heavily influences whether the player gives the server a shot or not.
I don't know if this was mentioned earlier in this thread but could we change or flex the format of loadingscreens? Like it can show classic tga but also png/gif whatever with the best quality/size ratio.
I would love to add new loadingscreens into my module/server but they take extremely large ammount of data. If I were to add 200 new loadscreens it would take almost 200 mb which is simply not viable for a nwsynced server. Even if most players who are already playing didn't mind. The total MB size of download for new players is something the heavily influences whether the player gives the server a shot or not.
Loadscreens are defined by a MDL file. You can override that to be any other model with small or large texture applied over it. There's a PW that has animated loadscreens, and another that has them fullscreen. I think you can also use a smaller image and it'll automatically stretch it, but never tried that.
First things first: Thank you for the new 2da options
With the new ruleset.2da, cls_stat_2da and changes to the classes.2da and racialtypes.2da we have a chance to modify the ruleset to match 5e rules. But we're currently held back by the following:
1. Number of Attacks-per-round being coupled to Base-attack-bonus. Ideally we could detach that. It can maybe be done with a new (optional) column in the AttackBonusTable (cls_atk_*.2da - referenced from the classes.2da) At the moment only the attack bonus per level is defined in there. A new column with the number of attacks per level would be ideal.
2. Disable attack penalty on subsequent attacks in one round(ruleset 2da). Currently it's a cumulative -5 , i.e. -5 for the second attack, -10 for the third, etc.
With 1. & 2. we can alter the number of attacks to match level progression of 5e classes. At the very least we'd need 2. We could hack in the Number of attacks with SetbaseAttackBonus() should it be necessary (but a 2da solution is preferable).
4. Change spellcraft spell save bonus in ruleset.2da similar to tumble (TUMBLE_NUM_RANKS_PER_AC_BONUS)
5. Disable int bonus for skill points (ruleset.2da)
6. Hard cap on max skill ranks (ruleset.2da). I'm thinking of setting this to 1 and using skill ranks to simulate 5e proficiencies, i.e. setting it to 1, so the player can only ever purchase one skill rank at max in each skill.
7. Custom Metamagic Feats - But this is probably tied to the existing trello entry of custom spellbooks. This can be used to simulate selecting the level a spell should be cast with by adding 8 metamagic feats each increasing the level by 1-8, e.g. level 5 magic missile, and yes I'm aware this requires re-writing all spell scripts
We would love to gear our project toward 5e after all that is the newest edition which could help to put new players into the NWN community.
Also by being able to have the lower BAB will allow for lower level content to be relevant to higher level players which would be great for PW servers.
I'm all for modifying the ruleset to fit the latest edition of D&D, so long as it can be made flexible to fit the other editions as well. Please give the community the option to change the ruleset as they see fit, be it for 3E, 3.5E or 5E. Thank you for reading, and happy gaming to all.
I would love to see an Ability Score Bonus 2da so we can define what the bonuses are for the ability scores. It would allows those of us who want to go back to Original, AD&D or Basic D&D ability score range bonuses.
Another is to determine the LEVELS all classes get multiple attacks, maybe with an attacks 2da attached to the Classes 2da. Older editions didn't fiddle with degrading attack bonuses. That way you can set if a class even gets them at all regardless of attack bonus, something like this maybe:
ref Fighter_Level NumAttacks
0 1 1
1 2 1
2 3 1
3 4 1
4 5 1
5 6 1
6 7 2
7 8 2
8 9 2
9 10 2
or something like that, an attack table for each class.
Not sure if this has already been asked or not but would it be possible to get a terrain change event or a default script that fires at the moment of terrain change? Might be more convenient than manual triggers all over the place. There must already be something like this, perhaps hard coded, as your characters footstep sounds will change when the terrain changes.
... a terrain change event or a default script that fires at the moment of terrain change? ...
FYI NWNX:EE had just recently added this functionality. Always nice to have stuff baked into core-game, but that's available if you can utilise it.
As far as I know they only added the ability to GetSurfaceMaterial which of course could be used in a trigger but the point was to avoid having to paint triggers every time you wanted to implement something based on terrain/surface. Unless I missed a script somewhere along the way.
It would also be nice if we could finally do something about stopping people from "using" an object, from the radial menu, under certain conditions? IE a chest that is already being used by another player, an object that can only be used by a certain race, etc. I'm not sure why "clicking" an object works but then a player can simply bypass clicking by using the radial menu to "use" the object. Can the radial menu "use" just work like clicking? Are there drawbacks to this that I haven't thought of? Is it a bug that was never fixed? Just seems like the work-arounds for persistent storage and other things shouldn't be necessary. The behavior of the "OnClick" and "OnUsed" events for placeables is a bit strange and confusing.
... a terrain change event or a default script that fires at the moment of terrain change? ...
FYI NWNX:EE had just recently added this functionality. Always nice to have stuff baked into core-game, but that's available if you can utilise it.
As far as I know they only added the ability to GetSurfaceMaterial which of course could be used in a trigger but the point was to avoid having to paint triggers every time you wanted to implement something based on terrain/surface. Unless I missed a script somewhere along the way.
Actually NWNX:EE now has an event fire whenever you change the terrain, exactly what you want. It's a recent change (last week or so)
... a terrain change event or a default script that fires at the moment of terrain change? ...
FYI NWNX:EE had just recently added this functionality. Always nice to have stuff baked into core-game, but that's available if you can utilise it.
As far as I know they only added the ability to GetSurfaceMaterial which of course could be used in a trigger but the point was to avoid having to paint triggers every time you wanted to implement something based on terrain/surface. Unless I missed a script somewhere along the way.
Actually NWNX:EE now has an event fire whenever you change the terrain, exactly what you want. It's a recent change (last week or so)
Oooh. NWN"X". I didn't see the X when I read @WilliamDraco reply. I still don't use NWNX. Glad to know though in case I go that route. It's been a long time since I've messed with it.
@NeverwinterWights You should be able to script it so that only one creature (that includes PCs) can use a placeable at a time. It just involves using a local variable on the placeable that acts as a gatekeeper. Something like -
@NeverwinterWights You should be able to script it so that only one creature (that includes PCs) can use a placeable at a time. It just involves using a local variable on the placeable that acts as a gatekeeper. Something like -
You sure? Is that a variable that the engine recognizes? I've tried every combination of everything I can think of to prevent someone from opening a chest or placeable (that has inventory) and can't figure it out. It works for OnClick but not for OnUsed or OnOpened. More specifically even if no one is using the chest currently I still want to stop someone from using it at all.
Some more suggestions for the ruleset.2da (or wherever it fits)
1. A switch to disable x1.5 STR modifier for two handed weapons - or maybe even set it (in which case 1.0 = disabled)
2. Set the number of domains clerics can choose (2 by default)
3. Unhardcode when rangers and druids get their animal companions or rather: when they get to select the type - as the feat only controls summoning, the selection screen however seems to be hardcoded
4. Alter the point buy system for abilities, with a custom 2da, either
A. Relative costs, e.g. set the price of going 13=>14 costs 1, 14=>15 costs 2
B. Absolute costs, set the price for raising an ability from min attribute value to X.
Both would work, whatever is easier to implement.
5. A custom table for gains ability point gain (Standard is 1 point every 4 levels). It would be nice to be able to set when and how many points players get.
6. Hard cap on ability points, e.g. the players isn't able to put more than 20 points in any given ability.
7. Cap on skill ranks, both
- Hard cap e.g. the players is never able to put more than X points in any given ability.
- Soft cap, depending on total character level (currently lvl+3 by default)
Something like
8. DFDark Suggestion: Set the maximum amount of unspent skill points. A value of 0 would mean that the character has to spend all points on character creation and on level ups. Currently there is no limit and I believe D&D (3.5 at least) doesn't actually allow saving up skill points for later.
Note1: Actually setting this to 0 may cause issues with being unable to level up, in a case where you have 1 unspent skill point left and your class skills are all maxed out. Personally I'd still allow it though, but builders should be aware of this.
Note2: Losing all unspent skill points can be accomplished with NWNX, but that can potentially surprise people.
Extending @symmetric 's list
MaxAllowedUnasignedSkillPoints (similar to what nwn2 had) where you can't level up with crazy amount of skill points to then dump them all into "OP" skills (tumble, spellcraft etc.)
@Ugly_Duck You already can (at least if you are on Windows), you just use the standard Windows shrtcut keys - [CTRL]+C = copy, [CTRL]+X = cut, [CTRL]+V = paste, and [CTRL]+[SHIFT]+V = paste just the text without formatting. Look at this thread for a list of 20 such shortcuts.
When creating a character and in the "Select the Appearance of your character" screen, it would be really nice to be able to be able to zoom in on the character's head with a zoom toggle button, as well as rotate the character with the mouse button.
Request:
Trimesh property nokeyhole - to turn off the ability to look through a certain mesh. This would allow builders to make solid floors, and force important plot-related walls to remain solid vs peeking.
There isn't much that looks worse than keyholing fails, such as floor-sky as you go down a hill, or floor holes adjacent to the character with the default keyhole radius used. Meshes are erased that aren't even in front of the camera.
In addition to the Trimesh property, I'd like to suggest that the keyholing code be reworked so that it first checks if an object is even obscuring to the camera before being holed. For instance, if the mesh is technically between the camera and unit, but isn't within a rectangular pseudo-cone from the unit bounding box to the camera view box, then don't keyhole that mesh. This would prevent the tops of terrain short hills from being clipped near the unit.
Please added another column to racialtypes.2da called subrace (number points to the core race it is part of, example drow race points back to elf (1)) this race is treated as the core race related (racial restrictions, feats like Favored enemy etc...) This will allow all the sub-races of the core races to be added easily and more easily support related to game engine.
Since racialtype.2da is getting mentioned again I'll quote my original suggestion from two years ago. This also includes appropriate functions to get the base race and the actual race, addition to prerequisites (i.e. drow specifically or elf generally), and level adjustment row for custom content creators.
With the modification of racialtypes.2da perhaps it would be useful to add a column for base type so that implementations of new races can refer back to the correct row for things like favored enemy. I'm assuming that it's based on row number. Similarly it would be useful to have a separate function for getting the actual type of the creature as well as the race.
For example GetRacialType(object oCreature) returns the actual row number of the race, while GetCreatureBaseType(object oCreature) might return a row number referenced by a BaseType column in racialtypes.2da from the creature's own racialtypes row number. NWN2 had an implementation where they separated this out into two 2da files, where racialtypes.2da represented the actual base type of the creature and racialsubtypes.2da represented the actual creature race with a reference back to what the original type is. I think a column in the same file that maps the rows to their base row would achieve the same kind of logic.
Adding a similar base type check in the cls_pres_* 2da files for prestige classes would also let ppl flag groups of related races or subraces as fulfilling the requirements.
A final thought on the subject is adding an ECL or LA column to the racialtypes.2da file with an appropriate GetRacialLevelAdjustment(object oCreature) function so it's easier to take into account in custom experience scripts.
LA can be put into the 2da by anyone and then scripted with a few custom functions and implemented a few different ways and I rather go down a scripted version then a engine based way. That just my opinion on L.A. and ECL.
I think most things can be spoofed some way or another, having things wired correctly and standardized at the 2da level is better even if the implementation is through scripting.
Not sure if it has been suggested yet, but working with them I would like to suggest a few things in regards to a few specific .2DAs.
1. Add columns for List (EDIT: this one should probably follow different rules than the ones in cls_feat_*), GrantedOnLevel, and OnMenu to all race_feat_*.2das.
2. Make the MaxLevel column in feat.2da also respect the MinLevelClass column as the MinLevel column does or make a new entry for it.
EDIT: 3. Also add RaceMaxLevel, RaceMinLevel, and LevelRace columns in feat.2da. They should work similar to the above entries listed in 2.
EDIT2: Please alphabetize\sort classes, and please sort all prestige classes below base classes. So that when custom classes are added they're sorted properly.
And last but certainly not least, I would like to reiterate the necessity to unhardcode the level cap. Entries exist all the way to 60 in some .2das, we should be able to at least level till 60 if desired but as many have mentioned openness is better.
Comments
I would love to add new loadingscreens into my module/server but they take extremely large ammount of data. If I were to add 200 new loadscreens it would take almost 200 mb which is simply not viable for a nwsynced server. Even if most players who are already playing didn't mind. The total MB size of download for new players is something the heavily influences whether the player gives the server a shot or not.
Loadscreens are defined by a MDL file. You can override that to be any other model with small or large texture applied over it. There's a PW that has animated loadscreens, and another that has them fullscreen. I think you can also use a smaller image and it'll automatically stretch it, but never tried that.
With the new ruleset.2da, cls_stat_2da and changes to the classes.2da and racialtypes.2da we have a chance to modify the ruleset to match 5e rules. But we're currently held back by the following:
1. Number of Attacks-per-round being coupled to Base-attack-bonus. Ideally we could detach that. It can maybe be done with a new (optional) column in the AttackBonusTable (cls_atk_*.2da - referenced from the classes.2da) At the moment only the attack bonus per level is defined in there. A new column with the number of attacks per level would be ideal.
2. Disable attack penalty on subsequent attacks in one round(ruleset 2da). Currently it's a cumulative -5 , i.e. -5 for the second attack, -10 for the third, etc.
With 1. & 2. we can alter the number of attacks to match level progression of 5e classes. At the very least we'd need 2. We could hack in the Number of attacks with SetbaseAttackBonus() should it be necessary (but a 2da solution is preferable).
3. Disabling wizard specialization restrictions (ruleset.2da)
4. Change spellcraft spell save bonus in ruleset.2da similar to tumble (TUMBLE_NUM_RANKS_PER_AC_BONUS)
5. Disable int bonus for skill points (ruleset.2da)
6. Hard cap on max skill ranks (ruleset.2da). I'm thinking of setting this to 1 and using skill ranks to simulate 5e proficiencies, i.e. setting it to 1, so the player can only ever purchase one skill rank at max in each skill.
7. Custom Metamagic Feats - But this is probably tied to the existing trello entry of custom spellbooks. This can be used to simulate selecting the level a spell should be cast with by adding 8 metamagic feats each increasing the level by 1-8, e.g. level 5 magic missile, and yes I'm aware this requires re-writing all spell scripts
I know that our NWN Dark Sun project really would love to see these changes as well.
https://twitter.com/NwnDarkSun
http://nwndarksun.gamerlaunch.com
We would love to gear our project toward 5e after all that is the newest edition which could help to put new players into the NWN community.
Also by being able to have the lower BAB will allow for lower level content to be relevant to higher level players which would be great for PW servers.
@Beamdog could you please make this happen?
Thanks for your time.
Another is to determine the LEVELS all classes get multiple attacks, maybe with an attacks 2da attached to the Classes 2da. Older editions didn't fiddle with degrading attack bonuses. That way you can set if a class even gets them at all regardless of attack bonus, something like this maybe:
ref Fighter_Level NumAttacks
0 1 1
1 2 1
2 3 1
3 4 1
4 5 1
5 6 1
6 7 2
7 8 2
8 9 2
9 10 2
or something like that, an attack table for each class.
As far as I know they only added the ability to GetSurfaceMaterial which of course could be used in a trigger but the point was to avoid having to paint triggers every time you wanted to implement something based on terrain/surface. Unless I missed a script somewhere along the way.
Actually NWNX:EE now has an event fire whenever you change the terrain, exactly what you want. It's a recent change (last week or so)
Oooh. NWN"X". I didn't see the X when I read @WilliamDraco reply. I still don't use NWNX. Glad to know though in case I go that route. It's been a long time since I've messed with it.
in the OnOpen event of the placeable and
in the OnClosed event.
TR
You sure? Is that a variable that the engine recognizes? I've tried every combination of everything I can think of to prevent someone from opening a chest or placeable (that has inventory) and can't figure it out. It works for OnClick but not for OnUsed or OnOpened. More specifically even if no one is using the chest currently I still want to stop someone from using it at all.
TR
1. A switch to disable x1.5 STR modifier for two handed weapons - or maybe even set it (in which case 1.0 = disabled)
2. Set the number of domains clerics can choose (2 by default)
3. Unhardcode when rangers and druids get their animal companions or rather: when they get to select the type - as the feat only controls summoning, the selection screen however seems to be hardcoded
4. Alter the point buy system for abilities, with a custom 2da, either
A. Relative costs, e.g. set the price of going 13=>14 costs 1, 14=>15 costs 2
B. Absolute costs, set the price for raising an ability from min attribute value to X.
Both would work, whatever is easier to implement.
5. A custom table for gains ability point gain (Standard is 1 point every 4 levels). It would be nice to be able to set when and how many points players get.
6. Hard cap on ability points, e.g. the players isn't able to put more than 20 points in any given ability.
7. Cap on skill ranks, both
- Hard cap e.g. the players is never able to put more than X points in any given ability.
- Soft cap, depending on total character level (currently lvl+3 by default)
Something like
8. DFDark Suggestion: Set the maximum amount of unspent skill points. A value of 0 would mean that the character has to spend all points on character creation and on level ups. Currently there is no limit and I believe D&D (3.5 at least) doesn't actually allow saving up skill points for later.
Note1: Actually setting this to 0 may cause issues with being unable to level up, in a case where you have 1 unspent skill point left and your class skills are all maxed out. Personally I'd still allow it though, but builders should be aware of this.
Note2: Losing all unspent skill points can be accomplished with NWNX, but that can potentially surprise people.
MaxAllowedUnasignedSkillPoints (similar to what nwn2 had) where you can't level up with crazy amount of skill points to then dump them all into "OP" skills (tumble, spellcraft etc.)
TR
JFK
Trimesh property nokeyhole - to turn off the ability to look through a certain mesh. This would allow builders to make solid floors, and force important plot-related walls to remain solid vs peeking.
There isn't much that looks worse than keyholing fails, such as floor-sky as you go down a hill, or floor holes adjacent to the character with the default keyhole radius used. Meshes are erased that aren't even in front of the camera.
In addition to the Trimesh property, I'd like to suggest that the keyholing code be reworked so that it first checks if an object is even obscuring to the camera before being holed. For instance, if the mesh is technically between the camera and unit, but isn't within a rectangular pseudo-cone from the unit bounding box to the camera view box, then don't keyhole that mesh. This would prevent the tops of terrain short hills from being clipped near the unit.
1. Add columns for List (EDIT: this one should probably follow different rules than the ones in cls_feat_*), GrantedOnLevel, and OnMenu to all race_feat_*.2das.
2. Make the MaxLevel column in feat.2da also respect the MinLevelClass column as the MinLevel column does or make a new entry for it.
EDIT: 3. Also add RaceMaxLevel, RaceMinLevel, and LevelRace columns in feat.2da. They should work similar to the above entries listed in 2.
EDIT2: Please alphabetize\sort classes, and please sort all prestige classes below base classes. So that when custom classes are added they're sorted properly.
And last but certainly not least, I would like to reiterate the necessity to unhardcode the level cap. Entries exist all the way to 60 in some .2das, we should be able to at least level till 60 if desired but as many have mentioned openness is better.