rndtreas.2da

This file defines what items are generated when a creature uses an item of filename RNDTRE0#.ITM, where # is the row number of RNDTREAS.2DA to use. RNDTRE0#.ITM is replaced by the generated item. Therefore, this works like a random treasure table.

The first column of RNDTREAS.2DA specifies the name of the row, currently a simple generic name. The rest of the 19 columns have headers 2, 3, 4, 5, ..., 18, 19, 20. The column used is specified by a roll of a D20, with rolls of 1 replacing RNDTRE0#.ITM with no item. Note that this is different from RNDEQUIP.2DA, RNDSCROL.2DA, and RNDWEP.2DA, which have an extra column labelled 1, but similar to RNDMAGIC.2DA. Only 20 columns in total are supported, else the 2da file will fail to work entirely. When this happens, all RNDTRE0#.ITMs are replaced by erroneous invisible items that cannot be removed.

The BG2:ToB version of RNDTREAS.2DA is shown below. In essence, RNDTREAS.2DA works exactly the same as RNDEQUIP.2DA, so see RNDEQUIP.2DA for an example of how RNDTREAS.2DA works. However, RNDTREAS.2DA can be directly referenced by RNDEQUIP.2DA without actually having RNDTRE0#.ITM as a resource. For example, an entry in RNDEQUIP.2DA that reads RNDTRE05, and a D20 roll of 6 will replace RNDTRE0#.ITM with AMUL12.

In BG2:ToB we have:
2DA V1.0
*
           2        3        4        5        6        7      8        9       10       11       12       13       14       15       16       17       18       19       20
POOR       MISC19   004      SCRL75   001      001      001    001      001     001      001      001      001      001      001      002      002      003      003      MISC16
AVERAGE    RNDMAG01 MISC23   AMUL05   MISC17   015      012    SCRL75   008     006      003      001      001      007      009      RNDSCR01 MISC18   MISC22   AMUL06   RNDMAG01
WELL_OFF   RNDMAG01 RNDMAG01 AMUL08   MISC20   034      AMUL09 RNDSCR01 008     009      RING11   023      RNDSCR01 RING14   MISC26   MISC25   057      MISC27   MISC28   RNDMAG01
WEALTHY    RNDMAG02 RNDMAG01 MISC37   MISC35   RING16   AMUL07 RNDSCR02 047     038      029      AMUL09   RING10   RING15   RNDSCR02 RING13   RING17   MISC34   RNDMAG01 RNDMAG02
RICH       RNDMAG02 RNDMAG02 RNDMAG01 RNDMAG01 AMUL12   AMUL13 AMUL10   MISC29  MISC21   073      MISC24   RNDSCR03 MISC34   MISC38   RNDSCR03 RNDMAG01 RNDMAG01 RNDMAG02 RNDMAG02

RNDTREAS.2DA is supposed to support 9 functional rows of random treasure (from rndtre01.itm up to rndtre09.itm).
However, because of lax or missing range checks it is possible to extend the list quite a bit beyond the nine entries. The engine seems to use the ASCII code of the last filename character. After 9 there would be :, ;, <, =, >, ?, @, followed by A to Z. While characters like : or ? are difficult to use because of their special meaning on filesystems, you can still use A to Z, which results in additional 26 random treasures (from rndtre0a.itm up to rndtre0z.itm). The entries between 9 and A can simply be filled with empty dummy entries.

If RNDTRE0#.ITM references a non-existant or an ignored row number (or if #=0 under any circumstances), then RNDTRE0#.ITM is replaced by an erroneous invisible item that cannot be removed. Note that the replacing item is NOT RNDTRE0#.ITM itself, in this case. This blank item can likely be altered by setting the default 2da entry to a valid item.

Items that can be referenced:
Items that cannot be referenced: Since RNDTREAS.2DA can reference RNDMAGIC.2DA, RNDSCROL.2DA, and RNDWEP.2DA but not RNDEQUIP.2DA, this 2da file is the second to the top of the random treasure table hierarchy.