Skip to content

Suggestions Thread: Structural (file formats, references, "hardcodedness", configuration)

1567810

Comments

  • SagilSagil Member Posts: 6
    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?
  • ShadooowShadooow Member Posts: 402
    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.
  • SherincallSherincall Member Posts: 387
    Shadooow wrote: »
    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.
  • symmetricsymmetric Member Posts: 57
    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).



    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









  • TondenTonden Member Posts: 224
    edited August 2019
    Yes @symmetric

    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.
  • Prince_RaymondPrince_Raymond Member Posts: 443
    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.
  • JBobbJBobb Member Posts: 29
    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.
  • NeverwinterWightsNeverwinterWights Member Posts: 339
    edited September 2019
    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.
  • WilliamDracoWilliamDraco Member Posts: 175
    ... 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.

  • NeverwinterWightsNeverwinterWights Member Posts: 339
    edited September 2019
    ... 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.
  • NeverwinterWightsNeverwinterWights Member Posts: 339
    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.
  • SherincallSherincall Member Posts: 387
    ... 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)
  • NeverwinterWightsNeverwinterWights Member Posts: 339
    Sherincall wrote: »
    ... 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.
  • TarotRedhandTarotRedhand Member Posts: 1,481
    edited September 2019
    @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 -
    if(GetLocalInt(OBJECT_SELF, "iBeingUsed"))
        return;
    else
        SetLocalInt(OBJECT_SELF, "iBeingUsed", TRUE);
    

    in the OnOpen event of the placeable and
        SetLocalInt(OBJECT_SELF, "iBeingUsed", FALSE);
    

    in the OnClosed event.

    TR
  • NeverwinterWightsNeverwinterWights Member Posts: 339
    edited September 2019
    @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 -
    if(GetLocalInt(OBJECT_SELF, "iBeingUsed"))
        return;
    else
        SetLocalInt(OBJECT_SELF, "iBeingUsed", TRUE);
    

    in the OnOpen event of the placeable and
        SetLocalInt(OBJECT_SELF, "iBeingUsed", FALSE);
    

    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.
  • TarotRedhandTarotRedhand Member Posts: 1,481
    @NeverwinterWights pm me so we don't hijack this thread.

    TR
  • symmetricsymmetric Member Posts: 57
    edited December 2019
    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
    max_ranks_class = min(hard_cap, lvl + soft_cap)
    max_ranks_cross = min(hard_cap, floor((lvl + soft_cap)/2))
    


    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.
    Post edited by symmetric on
  • DFDarkDFDark Member Posts: 32
    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.)
  • SagilSagil Member Posts: 6
    edited December 2019
    Deleted (except that I can only edit, not delete).
    Post edited by Sagil on
  • Ugly_DuckUgly_Duck Member Posts: 183
    Here is a suggestion for ya: make it possible to "copy and paste" into the conversation editor. This would save so much time and trouble. PLEASE!!!
  • TarotRedhandTarotRedhand Member Posts: 1,481
    @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.

    TR
  • Ugly_DuckUgly_Duck Member Posts: 183
    TarotRedhand, you rock! I had no idea that was even possible. Thanks a bunch dude!
  • Match451Match451 Member Posts: 54
    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.
  • JFKJFK Member Posts: 214
    You can rotate the character model using the arrow keys already.

    JFK
  • FreshLemonBunFreshLemonBun Member Posts: 909
    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.

  • ShadowMShadowM Member Posts: 573
    edited February 2020
    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.
  • FreshLemonBunFreshLemonBun Member Posts: 909
    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.
  • Ɲ????Ʀ????Ɲ????Ʀ???? Member Posts: 29
    edited May 2020
    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.
    Post edited by Ɲ????Ʀ???? on
Sign In or Register to comment.