...
- The top line must be 2DA V2.0
- You can optionally include a "DEFAULT:" definition for the string that will be put in place of the blank fields (ie those with returned if there is no data to otherwise return. **** returns a blank string still, but if you request via. Get2DAString() an invalid row or an invalid column entry it will return the DEFAULT: value. No Bioware 2da does this (and likely shouldn't) but may be useful for custom 2da files.
- There may be one or more blank lines before the first line that contains characters, which is considered the header line
- The first column header must be blank, and that column is ignored (is usually a human readable number)
- The first column number IDs can be wrong - the game just reads each new line as a new entry (incremented from 0)
- The second and onwards columns must have the header match the in-game reference loaded, the order of columns doesn't matter. Label columns are generally ignored.
- The first column header must be blank, and that column is ignored (is usually a human readable number)
- Further lines are data rows:
- Column data - but not the header name - can be in double quotes - "text here" - to include spaces. The maximum amount of text in quotes can be 256 characters. Whether or not the game understands that one being in quotes very much depends - see individual 2da notes.
- Column data is separated by one or more whitespace characters (tabs, spaces)
- Blank data is classified with 4 stars: ****
- You can quote the stars ("****") or have a blank quoted field which, of course, is blank ("") but any other combination of stars (less, more, or in single quotes) will be returns literally.
...