TLDR: Hardcoding is bad for a modding environment. People should work on what they want to.
Hardcoding is bad:
The trap interface is hardcoded. You can implement a gui interface for the traps, but can’t change the underlying mechanic. One of the things I wanted to do for Crimmor was introduce specific types of thieves tools that would only have a bonus against certain types of traps, for instance glass coated tools for dealing with acid traps and rubberized tools for electrical traps. In official PnP sourcebooks, these types of trap specific tools exist. The problem is that the remove trap action is hardcoded into the game engine, so there was no way to hook into it to make items for specific trap types. I suppose one might argue that having trap specific tools is just too much detail for people, but that is beside the point that I, as a modder, wanted to include trap specific tools, but I couldn’t because I ran into hardcoding. NWN is about being able to set up the world you want, and hardcoding something prevents you from doing that if you want to change something that is hardcoded.
On coding around 2das. I view this is making things easier for new modders and allowing greater compatibility. Many new modders are loathe to touch 2das for fear of breaking stuff, so a self contained system that can just be dropped in is more palatable. Also by avoiding 2das it helps ensure compatibility with other work that would be modifying the same 2das as the one’s people are coding around. For instance if I make a Sword of Awesome with custom special abilities that requires modified 2das to work, then the Sword is specific to my module and a character who got the sword can’t continue to use it in their next adventure. Sure you could drop those 2das in the override to make the Sword of Awesome work in another module, but what happens when that other author modified the same 2da?
Scripting around 2das does mean you need a few extra scripts, but those are so tiny as far as size goes compared to anything else it’s basically a negligible increase in hak size. You are trading a very small increase in module size for builder ease of putting things together.
I particularly try to avoid using tlk files, and when I alter systems I remove tlk references. I do this because the tlk is even more scary than a 2da for modders, the tlk is basically hardcoding as far as most are concerned. In SoZ the trade system uses tlk file references for the descriptions of the trade location. (“The city of Leilon is known for its great apples”). As a result if you wanted to change the descriptions (“Leilon is known for great oranges”) you had to edit the tlk. I changed the system so instead of a script referring to a 2da that then referred to a tlk line, the script references the already existing constants script for the system where possible. This removes the abstraction layers and makes things easier for the modder to modify things since things are in one location, they don’t have to check to see if what they want to change is in the constants, the 2das, or the tlk.
There would also be compatibility issues with tlk editing, for instance a custom tlk would make your work not compatible with Kaedrin’s work, annoying the people who like to play with that.
Uniformity: If you are referring to the master 2das and their associated content, these are structured such that you don’t have to use the gigs of content. All the content is included as appropriate in the package, but things are set up that if you don’t want some of it you just delete the associated folders. So for my tileset package, if you don’t want RWS Citadel but do want everything else, just delete the folders for Citadel. This gets back to the “why doesn’t NWN2 have a CEP” question. We now have a defacto set of master 2das for the major areas people want to modify, creatures, placeables, tiles, and all are set up in a modular fashion. I think the community is better now about making sure our work is 2da compatible/reserved as well.
People should work on what they want:
Modders certainly aren’t doing this for fortune and groupies. If someone wants to make a cooking system, so what? It makes them happy even if I don’t care about cooking systems. If someone thinks the game needs a cooking system and it makes them happy to code one up, go for it! It doesn’t make me happy… until next month when I discover that I really do need that system to make the adventure I want.
I think the “break” language in the original post may be referring to something I said awhile back about trying to break the toolset in various ways to see what would happen. It makes me happy if I can figure out how to do something that I was told “couldn’t be done”. Crimmor came about because a forum poster said an interesting module without combat “couldn’t be done” (I made them be a beta tester for their insolence J ). Adding jumping and the ability to change the wind for trees were likewise “couldn’t be done” things.
By poking at the edges we sometimes manage to extend the tapestry we have to work on. “What would happen if I tried to use a placeable as a tile” became the ability to use tiles as placeables. MokahTGS made her sky islands by using terracoppa to tear up the terrain sheet in unexpected ways. SGK73 used kivinen’s tools to figure out how to take one area’s walkmesh and apply it to another area, resulting in snow drifts, quicksand, and Crimmor’s plot critical Evercarpet magic item.