Bug: High M2DA ID ranges might work in the toolset, but not in game

From Dragon Age Toolset Wiki
Revision as of 00:02, 16 January 2010 by ThebigMuh (Talk | contribs) (Created page with '*'''Version found:''' 1.01 *'''Status:''' Open == Description == === Synopsis === High values for the ID field in various M2DA tables will appear to work correctly while test...')

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  • Version found: 1.01
  • Status: Open

Description

Synopsis

High values for the ID field in various M2DA tables will appear to work correctly while testing in the toolset, but will cause various issues in the game, like missing meshes. The limit for when an ID is "low enough" to work changes depending on the M2DA being used.

Details

Dragon Age allows to extend the built-in data tables through the M2DA process. A new .gda file is created with the same name as the original, plus an extra suffix, and it contains the data for the additional table rows. To facilitate merging this data with the native 2DA files, a unique ID must be chosen for the additional rows. If two M2DAs with identical IDs get merged, they will overwrite each other.

The valid range for this ID is at least 1 - 2 billion (2^31), with 0 - 1000000 reserved for Bioware's own use. Therefore, picking a random high number should ensure that no two addons ever have ID collisions.

The bug now appears to be, that depending on the tables that get M2DA'd, only very low ID values work correctly in game. They appear to be working as expected in the toolset, but as soon as the mod is tested, issues surface.

Example:

Extending materialrules.gda, materialtypes.gda and ts_material.gda seems to work fine in the toolset and in game as well, values at least as high as 80000000 work perfectly well. Extending armor_massive_variation.gda does NOT work as expected. picking 1500 as ID, for example, will work in the toolset, but as soon as an armor using this variation is equipped in game, the body mesh will disappear, leaving only floating hands, feet and a head.

Using a file named "armor_massive_variation_ar.gda" with the contents:

ID Label MODELTYPE MODELVARIATION ICONNAME DefaultMaterial SoundMatType
141 Knight Champion Armor rob arc h 2 13

will work, while:

ID Label MODELTYPE MODELVARIATION ICONNAME DefaultMaterial SoundMatType
1412 Knight Champion Armor rob arc h 2 13

will not work and produce the behaviour described above.

Table Listing

This is a list of all .gda files that can be M2DA'd and whether they show this problem, and at which ranges:

Name Appears to work? (y/n) Highest tested working ID
areadata.gda Y 80141200
armor_massive_variation.gda N 141
item_sets.gda Y 80141200
materialrules.gda Y 80141200
materialtypes.gda Y 80141200
screenshake.gda Y 80141200
ts_material.gda Y 80141200

Workarounds

Only known workaround right now is to use a very very low ID, most likely in the range reserved for Bioware. This is NOT A LONG TERM OPTION, as addon collisions WILL happen.