Back in the IGN days, there was a list of 2DA reserved ranges that various members of the Community posted their chosen “wishlist” of reserved space for their projects - the CEP, CSP, CTP, etc.
Now that CEP 2 and CEP 3 are both actively being developed again, along with Project Q, and with the changes incorporated into the base game 2DA files by Beamdog (the Ossian reserved ranges), it might be time to do something similar.
I propose we open the discussion here, solidify some agreements, then codify them on the wiki. Any takers?
To get the ball rolling, I propose the following reserved space for Project Q v4:
appearance.2da (30000 - 31999)
tailmodel.2da (30000 - 31999)
placeables.2da (30000 - 34999)
portraits.2da (30000 - 39999) - to allow for creatures, PC, and placeable portraits
Maybe while we’re at it, we can fill in some of the 2DA ranges taken in tileset/door related 2DAs by the CTP, Zwerkules, Six, etc.
It would be great if both CEP authors can chime in too. I posted CEP ranges on the wiki when I did 2.67 but I’m not sure if those ranges are still valid.
The reserved ranges for CEP 2 are as shown in the 2da files for CEP 2.68. Also shown there is our understanding of the ranges reserved for official purposes, users, and projects like PRC. I’m sure we can be flexible about ranges we have merely reserved but not used.
These are essentially the TAD ranges, as modified by 2.67. There’s one exception, which I need to look up.
Evidently our info on PRC is out-of-date. There are already conflicts which they are working around, but maybe they’d like to join in, too.
P.S. There appears to be no simple way to request access to the wiki. The front page says ask on Discord, but the link is to a Vault page of links, which leads to general NWN discussions, as far as I can see.
So, nwsync can only handle files up to 15mb in size. This means that the high 2DA ranges I initially proposed for Qv4 could bump up against this limit if, for example, someone merged Qv4 with CEP. Thus, to be safe, its best if I trim down the reserved ranges for Qv4 to more realistic numbers and slot the ranges into lower positions in the 2DA files.
Now that I’ve had a chance to go through the old Qv3.1 2DA files and clear out the lines for items I’ve already removed, I’m left with 968 placeables and 481 creatures. Since there is still more pruning to do (placeables mainly), followed by a few small addons, I’ve determined the following:
For creatures: I’m looking to set aside 1000 rows each in appearance.2da, tailmodel.2da, and portraits.2da
For placeables: I’m looking to set aside 1500 rows each in placeables.2da and portraits.2da.
Realistically, I can probably trim door reservations down to 250 rows each in genericdoors.2da and doortypes.2da.
So, proposal 3 for Qv4 reserved ranges:
appearance.2da (1000): reserve rows 4000-4999
placeables.2da (2000): reserve rows 6000-8000
portraits.2da (3000): reserve rows 4000-7000
tailmodels.2da (1000): reserve rows 10000-10999
I’m going to pencil these into the table on the Wiki so everyone with an interest with this can see how it all fits together.
EDIT - The entry for doortypes.2da (on the wiki) now lists all known reserved ranges (and tbh looks to be quite messy).
Will do - that’s why I want as many eyes on this as we can get. I wish BD hadn’t marked all the lines in the 2das as “user” - it makes it hard to distinguish what the original user lines are/were. Maybe I need to load up 1.69 and see what Bioware originally had tagged as User lines?
EDIT - Scratch that. 1.69 reserved range won’t help. I’m just going to go back to my original plan for Qv4 and use lines what BD listed in their 2das. That’s probably the safest bet and will save me a headache in the future. While it would be nice to accommodate nwsync, I don’t think it’s feasible given the 15 mb limitation (which is only a concern with appearance.2da).
EDIT 2: At the risk of becoming a pita…
Proposed final Qv4 2da ranges:
appearance.2da (1000): reserve rows 15100-16099
doortypes.2da (500): reserve rows 5200-5699
genericdoors.2da (500): reserve rows 3200-3699
placeables.2da (2000): reserve rows 30000-31999
portraits.2da (3000): reserve rows 16000-18999
tailmodels.2da (1000): reserve rows 10000-10999
All ranges are below ranges called out in the core game 2DA files and the CEP reserved ranges, so they should be safe.
Again, I’ve updated the wiki so the whole array can be seen. Note, not all 2das are listed yet. I started with the ones pertinent to Qv4.
Looking back through old Discord conversations with Bill Harper from Beamdog/Ossian, those “USER_RESERVED” ranges in the Beamdog EE 2DA files were put in by Ossian to mark off the 2DA ranges used by CEP, Project Q, and other projects so that Ossian didn’t overwrite them when developing content for ToM and when DoD was redone. Ossian wanted ranges that wouldn’t conflict with any existing content since the assets were going to be ported to the core game. Unfortunately, there were a few minor clashes in one or two 2DAs.
Following Ossian’s lead, I’m definitely doing the right thing in choosing higher unused ranges for Qv4. Can’t guaranteed compatibity with everything but can certainly avoid stepping on CEP, CSP, CTP, etc. and whatever projects may be using those lower User ranges called out by Ossian.
Just chiming in to register my strong support for this, and my (upcoming) commitment to helping out as I can. I’m still struggling with all the “to dos” needed to set up my new indie business, but continuing development of my modules is definitely on that list. It’ll have to wait a bit for when my author career is more or less launched and has at least a little momentum, though, which should be by sometime this summer at the latest.
The “custom content” architecture I hacked together a dozen years ago to merge CEP with Q and a few other packages was a Frankenstein’s monster that’s become a nightmare to maintain. I’d love to re-do it. So if there’s a commitment from the community to put the thought and effort into creating an effective framework for mod authors to do that, I’m in.