Skip to content

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

SymphonySymphony Member, Developer Posts: 142
Hello folks, I'm Symphony.

In order to keep things collated, I'm starting category based suggestion/bug discussions. Please use your best judgement to find which discussion best suits your range of items!

This Suggestions Discussion is for Structural Suggestions. In order to preserve the working (for 15 years!) arrangement of NWN's engine, Trent Oster has mentioned (in his live stream) that he does not think it is as good of an idea to change the structure of the game as it would be to change the individual components, but I think there are certainly some concepts that may fall into the realm of "structure" for future considerations.

Structure changes could be the adoption of new file formats (such as the new .shd shader files), the way the game utilizes .ini configuration documents, which aspects of the game are controlled by scripts compared to data, where source text comes from (tlk, nss, 2da, etc.), and how the game handles game resources (preloading haks for multiplayer server character creation, buffering textures, directory layout).

Feel free to post your suggestions below in a hopefully clean and concise manner, and if you have time, try to read the other suggestions so you don't duplicate any requests.
«13456711

Comments

  • AncarionAncarion Member Posts: 155
    Script driven ok/cancel and timed event pop ups, the ability to play bik files any time during a game
  • MadHatterMadHatter Member Posts: 145
    The ability to add custom XML that can trigger scripts a la NWN2 would be a huge boon on the DM side of things.

    We could really modernize the DM Client that way.
  • JediMindTrixJediMindTrix Member Posts: 305
    Multi-thread support.
  • The user and all related content has been deleted.
  • highv_priesthighv_priest Member Posts: 50
    -SQL support(thank you Avlis)

    -Add a module event or even just a script which fires when an effect is removed. Does not need to be able to block it. Just needs effect spellid and the creature object it's running on.

    -Numerous events otherwise lacking standard
    *OnAttemptToCastSpell event to allow advanced spellcasting(such as without an animation) or block spells in special situations.
    *OnAttemptToUseItem event to block an item from being used without requiring the player to actually go through the animation of using it
    *OnAttemptToUseFeat event to block infinite use feats in specific situations
    *OnFeatApplied event to register if a knockdown or otherwise applied feat actually did apply it's effects without requiring a while loop to check for the effect.
    *OnAttemptToUseSkill event to block skill usage in specific scenarios without requiring the animation first or when otherwise hardcoded(IE healing).
    *OnAttack event to allow special effects such as my modified barbarian terrifying rage which rolls a will save when an attack is rolled on the barbarian(maximum of 1 time per round).
    *OnAttemptToToggleMode event to permit special circumstances for attack modes(called shot arm, means no power attack option).
    *OnExamined event to allow special circumstances where when scrying you can see extra information that normally isn't there on creatures.
    *OnApplyDamage event to allow undead to actually heal from all negative damage sources and all flesh golems to actually heal from all electrical damage sources. Current vanilla event doesn't allow modifying the damage and even giving the creature 100% immunity shows 0 damage in the log instead of -healed-.


    -A utility to allow players to print out their build's stats. Currently this is done by 4 nwnx_funcs functions.
    *string NWNXFuncs_GetFeatsGainedAtLevel(object oCreature, int iLevel);
    *string NWNXFuncs_GetSkillRanksGainedAtLevel(object oCreature, int iLevel);
    *string NWNXFuncs_GetSpellsGainedAtLevel(object oCreature, int iSpellLevel, int iLevel);
    *struct levelstats_s NWNXFuncs_GetStatsGainedAtLevel(object oCreature, int iLevel);

    -A method to send any message on any channel and define the sender and receiver. This is primarily used for guild chat(/g) or when people have others blocked so they don't have to see shout or talk from that person either.

    -Literally EVERYTHING from nwnx_sysdata. File control, timestamp reads, ACTUAL REAL CLOCK TIME AND DATE. All of it.

    -Array functionality

    -Allow non-monks to have more speed than 50%, really important one for gameplay. Purple Dragon Knight class vanilla is almost worthless without it. Also just mentioning, but there is a very bad speed bug with monks... It is not scaling correctly and they get ludicrously fast with any amount of speed bonuses outside the norm.

    -Fix Weapon Master's Ki Damage ability to deal maximum weapon damage(but not allow critical hits).
  • zunathzunath Member Posts: 92
    edited November 2017
    My handful of requests:

    - The OnBlocked event only fires when creatures are blocked by doors. If possible, I would like to see this extended to also run when being blocked by placeables. (Example usage: Creature gets blocked by placeable, bashes it to create an entry and continues chasing player)
    - On-screen timing bars. This is something included in NWNX currently but I would like to see it introduced to the base game.
    - Additional event scripts from NWNX included into the base game. OnAttacked is most preferred, but would like to see all additional events included at the module level.
    - All of the NWNX_Chat functionality introduced into the base game.
    - All of the NWNX_Funcs functionality introduced into the base game.

    Basically, put as much of the NWNX features into the core game. :)
    Post edited by zunath on
  • jbaudrandjbaudrand Member Posts: 11
    Thanks symphony, I repost my suggestions here because I think it belongs here.
    1) [MP/DM] Could you add a sort of teamspeak tool directly in the game?
    2) CinematicMovie: the vanilla engine can only read (800*600 or 640*480 don't remember, it was ten years ago) .bik file, will you allow bigger resolution for movie, or do you add mega upscaling filters to avoid little windowed movie?



  • SorenSoren Member, Developer Posts: 48
    edited November 2017
    I'm not sure I understand these categories right, so apologies if this is the wrong topic:

    - The ability to make visual effects only show to a certain target (not necessarily the center of the effect - you could for example implement detect evil by applying a glow effect on evil creatures that only the caster sees.)
    -The ability to set shader effects per area and even dynamically by scripting functions (perhaps by a visual effect with the same features as the above suggestion.)
  • Nova_PyxisNova_Pyxis Member Posts: 8
    Please add the following if possible:

    1) Using the console one can add and modify many things. One thing that was missing though, but which was possible on NWN2, is a console command to add specific feats to a character.

    2) Already mentioned elsewhere but this might be the more appropriate location; Enable Sorcerors/Wizards that have the polymorph spell to also be able to choose the Shifter Prestige Class. This is how it works in the real D&D game and it should be a simple fix.

    Thank you.
  • Taro94Taro94 Member Posts: 125
    edited November 2017
    Here's two ideas from me:

    -Inclusion of portraits in character files, not just their names - this one is not so important, but I think it'd be great if portrait data was included in the character files. This would allow players to see portraits of others even if they haven't downloaded them. I think it would also be valuable seeing how one of the DLCs is a portrait pack: people buying it would probably very much like it if others could see them whether they've bought it or not. I assume the portrait data was not included in original character files due to size concerns, but nowadays the added portrait size should not really make any difference. Of course, in order to maintain backward compatibility, old character file format should also be readable, but I think it's doable.

    -Softcoding hardcoded feats and adding hooks for delivering/receiving damage - this one is essential. While I'm excited for the EE, I was very happy with CPP's softcoded Devastating Critical, because I could finally change it so it better fits my module's balance (it's a well-known fact that Dev Crit is overpowered for many otherwise more or less balanced settings). NWNX support is one thing, but adding support for such things out of the box (which would also make them available in singleplayer) would be very much appreciated.

    If there was something that the community was annoyed with it's the hardcodedness of feats. You know very well that user customization is what made NWN what it is today - please expand that customization.

    Alternatively, if for some reason you're opposed to softcoding these things, at least add support for NWNCX, so that users can do this themselves with custom content.

    Thank you.
  • KarmaKarma Member Posts: 7
    1 - The softcoding of feats is 100% needed. Pick Pocket is often banned on most persistent worlds because it is very hard to regulate it. NWN was all about making and modifying to meet your modules needs and this part is aggravating

    2 - The ability to make permanent stat adjustments via scripting. This way we can use custom subraces without their ability adjustments being affected by the +12 stat bonus cap.
  • zunathzunath Member Posts: 92
    There's a rather obscure bug I'd like to see fixed: If gold is dropped by a player to the ground the OnItemUnAcquired event does not fire. I'd like to see this script event executed when this happens.
  • ShadeWyrmShadeWyrm Member Posts: 3
    Please add soft-coding of all the Character Creation Screens.

    Especially but not limited to Races loading from a HAK if a module has been selected.
  • Unaccounted4Unaccounted4 Member Posts: 2
    edited November 2017
    Well, one things that always irked me about the original Linux version was the lack of movies.

    There is this project, which adds the movie functionality into the Linux version but it was never the easiest thing to get working and looking like it was integrated: https://github.com/nwnlinux/nwmovies

    My request is to have the videos available out of the box on Linux.


    EDIT: Also, proper anti-aliasing!
  • NullMagicNullMagic Member Posts: 5
    I'd like to see the ability to designate Spells.2da lines as being both Hostile and Non-Hostile, so spells can fire differently based on the hostility of the target (The same way that all cure spells can be cast on hostile undead to damage them instead of heal them). Currently only specific spell lines (the cure spells, negative energy ray, a few others) work on both hostile and non-hostile targets natively, all other spells need two lines in the 2da for a Hostile and Non-Hostile version.

    The ability to designate Custom Spell Books for new classes, specifically by being able to point the line in the class.2da to the correct spellbook designated elsewhere (Likely a column in the spells.2da like the existing spellbooks).

    No hardcoded spells or feats. Feats have been pretty much covered but there are some spells that are hardcoded as well. The one that immediately leaps to mind is Detect Undead which consists of a single function that does.... something we don't know what because it's a hardcoded function... Which means we can't ever replicate or alter it (for instance if we wanted to create Detect Life or Detect Automoton or Detect Whatever spells, we can't make them we have neither an example to work from nor the functions needed to do it properly).

    The Quick-cast menu from NWN2 (or similar).

    probably others I can't think of this moment.
  • ValgavValgav Member Posts: 25
    I would love as much of things to be softcoded so with some 2da magic for skills/feats/classes we could get almost vanilla d20 for any setting with just dnd 3.0(or 3.5) as default one.

    Also please allow defining names of things stored in 2da from some other places not only force to hardcode in tlk.
  • TerallisTerallis Member Posts: 5
    Reposting here, as it more belongs in here.

    Something I would absolutely love to have for this Enhanced Edition, that has always frustrated me with NWN Toolset work as a whole, is the ability to EASILY translate AND rotate on ALL axes. It's always a huge pain to fiddle with exact numbers on the Z-axis in regards to translation. Getting it right can take time, depending on the precision of what you're trying to do. Likewise, the ability to rotate on ALL axes would be absolute HEAVEN. Being unable to rotate on anything but the Z-axis right now is soooo painful! Haha! But with that, it can just add an entire new level to making areas look fantastic, without having to create entirely new models just to have a tipped over, wall mounted, etc, version of said object.
  • JediMindTrixJediMindTrix Member Posts: 305
    Please add the scripting ability to tell when the last projectile of a stack has been fired
  • TondenTonden Member Posts: 224
    *

    - - I would really love it if we could have more then just two different height edge tiles

    What I'm talking about is you can have a Terrain that you can raise once at say 5m and have a matching edge tile it. You then can raise that same Terrain again creating a 10m raised area and have a matching edge tile for it as well. However this is the limit, I would love it if you all could raise the limit.

    Sen and MerricksDad has created tilesets that have 4 different heights in one Terrain. So for example their one Terrain has 3m, 6m, 9m, and 12m cliffs. The problem is they can only have two different height edge tiles per Terrain. There for, if they give one to 3m and another to 6m, they now don't have edge tiles for the 9m and 12m cliff tiles.

    Is there any way for you all to fix this to help use Tileset Creators to expand on the Tilesets?

    Could you Please make this happen.

    Thanks for your time


    Tonden Ockay

  • AncarionAncarion Member Posts: 155
    The whole edge tile system is an unfortunate relic from NWN's early isometric days, before the camera was unlocked. In a perfect world, I'd like to see it abandoned altogether, and just allow for a flag to be set on tiles that would designate them as "non-walkable" and/or "non lighted." This way we could make an area's edges look exactly how we want, with variations, placeables, etc. Then, add a boolean parameter in the Area Properties for "render edge tiles" or something like that, defaulted to "true" to maintain backwards compatability.
  • DeltharisDeltharis Member Posts: 124
    edited November 2017
    Figure out a way to allow modyfiyng existing modules without having to share the entire module (which breaks copyright). Which would allow proper modding of OC and expansions

    (Or, allow oficially to share campaign modules, that would work too, though knowing the nature of legal departments I doubt that's an option)
  • JidokwonJidokwon Member Posts: 405
    Please, get rid of the case sensitivity for the debug mode.
  • BalanorBalanor Member Posts: 176
    Please make NWNX and associated plugins available for Windows Servers as soon as possible. Not all servers that rely on NWNX run on Linux....
  • summonFoxsummonFox Member Posts: 3
    https://forums.beamdog.com/discussion/67102/instanced-self-contained-installations/p1?new=1

    So I understand that NWN:EE is moving the Hak/Override/Portrait/Saves/vault/etc folders to the appropriate OS locations, such as in My Documents on Windows, all to be "good citizens", but will it be possible to still have instanced / self contained NWN installations as it is currently done with NWN Diamond?

    What I mean is: Keeping the Hak/Override/Portrait/Saves/vault/etc folders inside the NWN installation directory. Whether by an option when you first install NWN, or as some kind of .ini setting or other solution, to still be a "good citizen" unless dictated otherwise by an "advanced user".

    Why? Because some people like me have multiple installations, each with different haks, overrides, etc.

    Personally I have 4 NWN installations: 3 for the different servers I play on that all require different haks/overrides/etc (There's quite a few haks of the same filename but with differing versions, so conflicts arise...), and 1 for playing whatever singleplayer module I'm playing that month.

    Why is this a problem? Well, if all 4 of those installations I require were all sharing the same content folders in My Documents, then things would explode/implode.

    Sometimes I also run NWN in multiple instances, to dual/multibox, or to be playing with one game while I have the other loaded up in a character creation module to be creating or revising my character build, etc. So support for that too would be nice.
  • ValgavValgav Member Posts: 25
    edited November 2017
    @summonFox Yeas, absolutly. I have three instances, one dev env, one clean and one with all my old stuff from past 15 years. It weights around 60gb. I don't want to keep that stuff on my system partition.
  • BalanorBalanor Member Posts: 176
    I'd also like to request the NWNTX optimization fixes be included in the Beamdogupdated toolset. I'm using the Head Start EE version now and it (like the original toolset) is unable to compile scripts that use a large number of includes/libraries. I've been using NWNTX for years since that can actually compile some of the larger scripts in my module.

    Here is an example error I am receiving now when trying to compile a large script:
    11/24/2017 5:06:29 PM: Error. 'death_ondeath' did not compile.
    x2_i0_spells.nss(644): ERROR: IDENTIFIER LIST FULL
  • ShadowMShadowM Member Posts: 573
    I second this on compiler :)
  • AncarionAncarion Member Posts: 155
    How feasible would it be to add a new camera/character control scheme, where the camera is turned by the middle mouse button (as it is now) and the character turns to always face the camera orientation (yaw)?
    Combined with WASD movement, this would give a control scheme very much like most other third-person games.
  • 1varangian1varangian Member Posts: 367

    Soft code core rules.
    Keep D&D 3.0 as the core, but allow modders to create newer rulesets for modules and PWs. Being able to change rulesets, even if it's hard detailed work, would enable some really interesting takes on the game. (NWN2's "Engines of Ascension" classless PW would be a good example of breaking out of the ruleset box. Something not even remotely possible in NWN1)

    This would be great. Even just being able to alter and balance base classes would go a long way. Things like giving Rogues d8 for HD and changing feat selection and progression for base classes. And using the optional rule of always giving avg fixed HP on level up.
Sign In or Register to comment.