From CloudModding TWW Wiki

ActorDat.bin, found at res/ActorDat, holds the data that determines what an enemy drops when it is killed. Each enemy has at least one entry within the file, but some enemies have multiple entries. The reason for this is unclear, but it may be due to changes in what an enemy drops over course of the game.

File Header

This format seems to be based on the DZR and DZS format, as the header is constructed of the number of chunks present in the file (3) followed by the chunk headers themselves.

//0x28/40dec bytes long

/*0x00*/ const int NumChunks = 3;

/*0x04*/ const string ACFNMagic = "ACFN";
/*0x08*/ int NumACFNEntries;
/*0x0C*/ int ACFNDataOffset;

/*0x10*/ const string ACNAMagic = "ACNA";
/*0x14*/ int NumEnemies;
/*0x18*/ int NameDataOffset;

/*0x1C*/ const string ACDSMagic = "ACDS";
/*0x20*/ int NumDropEntries;
/*0x24*/ int DropDataOffset;

ACFN

ACFN appears to store the names of each field within the actual drop data, stored in the ACDS chunk. It is simply an array of NumACFNEntries integers that contain an offset, from the start of the file, to a string.

ACFN Entry

//4 bytes long

/*0x00*/ int StringOffset;

/*0xStringOffset*/ string DropDataFieldName;

ACNA

ACNA is very similar in structure to ACFN, but this time the integers in the array point to strings containing enemy actor names.

ACNA Entry

//4 bytes long

/*0x00*/ int StringOffset;

/*0xStringOffset*/ string EnemyActorName;

ACDS

ACDS holds the actual drop data. It begins with an "ARG" field of unknown purpose, then goes into the single drop item IDs. After these, there is a byte with a value between 0 and 100 that determines the chance of an item ball spawning, with 0 being a 0% chance and 100 being a 100% chance. The remaining bytes in the entry are the items that the item ball will contain.

ACDS Entry

//0x1A/26dec bytes long

/*0x00*/ byte Arg;

/*0x01*/ byte[] ItemIDs = new byte[16];

/*0x11*/ byte ItemBallAppearChance;

/*0x12*/ byte[] ItemBallIDs = new byte[8];

See Also