Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Test Subject
Original Poster
#1 Old 20th May 2014 at 10:04 PM
Default The PDAT structure, and some other interesting things
Hi everybody

Well there have been a long time, I havn't posted here, I've some informations, and two existential questions. Let's start with informations.

In the PDAT structure (also known as SDSC, format type: 0xAACE2EFB), at offset 0x166, there is a 16 bits long bitfield:
  • bit 0 to 3: the current university year (b0 1st year, b1 second...)
  • bit 4: the current semester (0 : 1 semester in current year, 1 second semester in current year)
  • bit 5: sim is in try period
  • bit 6: sim got his/her diploma
  • bit 7: sim is currently away (in course or exam)
  • bits 8 to 11: unknown (bit 8 and 9 seems to always be 0, bit 10 & 11 are variables, could be the number time the student have been in course).
  • bit 12: sim has abandonned studies
  • bit 13: sim has been fired from university
  • bit 14 & 15: unknown

In SREL structure (format type: 0xCC364C2A) when the number of dwords is 10 the two last DWORD are attraction and Best Friend forever flags:

Attraction is used to compute the chemistry: Consider two sims: A & B: the chemistry displayed by the game is the average of the attraction value of the relation of A with B and the attraction value of the relation of B with A:
  • from -50 to -1: no chemistry
  • from 0 to 34: small chemistry
  • from 35 to 90: medium chemistry
  • > 90 : strong chemitry

Best Friend Forever: is a bool value.

The BNFO structure (Format ; 0x104F6A6E) contains data relatives to OFB, it is located in the same subhood package as the corresponding DESC structure with the same instance number, it is present only if the lot is a community lot owned by a PC sim, or a residential lot with a home buisness in it. I've an idea of it whole structure:

Offset 0x0000 DWORD BNFO
Offset 0x0004 DWORD buisness class
Offset 0x0008 DWORD best class reached
Offset 0x000C 12 BYTE: unknown
Offset 0x0018 DWORD Count client records
For each client
WORD Sim instance
DWORD Unknwon (may be a score)
DWORD ObjectCount
For ObjectCount
DWORD Object Guid : purchased ?
DWORD AnotherCount
For AnotherCount
DWORD unknown (seems to always be 0)
DWORD unknwon (could be purchased items)
DWORD unknown (could be dropped items)
INT32 Client stars
DWORD EmployeeCount
for each empoyee
WORD employee instance
DWORD unknown
DWORD salary
DWORD Count2
DWORD unknown
For Count2 : looks like the expense/revenue tab data for the buisness
72 BYTES (at offset 0x30 there is the revenues, and at 0x38 the expenses).

In the SCOR struct of pets, you will find their learned behaviours. for human sims, it seems to hold some data relative to best friends (I've no idea of what is it), and buisness reward.

I've also some information to decode some items in the structure 0x4E474248, like Hobby membership, Grave, LTA superpower, various dance items, toddler skills..., let me know if you're interested.

The first question is about death causes, the PDAT structure indicate dead sims, but for now, all my experiments to discover death causes or just the ghost color have turn to failures. I've tried to scan the PERS structure, check grave, and I'm Dead Tokens but found nothing interesting, the only thing I've been able to find is that the ghost flag (offset 0x94 of the PDAT structure) is 1 for dead sims and 31 for dead sims whose ghosts have spawned at least one time.

The second question is about the end of the PDAT structure:
At offset 0x1E4 there is a count WORD then count WORD which are going by pair, first WORD of the pair matches always a sim instance, and second seems to always be 0 (I'm not sure), does anybody have an idea of what this list stands for?
Advertisement
Site Helper
#2 Old 21st May 2014 at 1:40 AM
You might want to consider adding this to the existing structure definition in the wiki.
Test Subject
Original Poster
#3 Old 21st May 2014 at 6:37 PM
That was in my plans, but I don't know how I should proceed. Edit the article or start a discussion?
Site Helper
#4 Old 21st May 2014 at 10:43 PM
Edit the article and add any new information. I don't see any need for a discussion.
Test Subject
Original Poster
#5 Old 22nd May 2014 at 7:27 PM
I've updated PDAT, SREL and LOT articles.
e3 d3 Ne2 Nd2 Nb3 Ng3
retired moderator
#6 Old 18th Jan 2024 at 11:30 AM
Further to the information by @int21h I have found how to assign sims to a task in the owned business they are employed at in the BNFO. In SimPE if you browse to a character, there is a drop down box under business which gives an assignment, but this just sets the correct attributes in the sim description, and not in the BNFO.

So you need to set the corresponding DWORD in the BNFO which is the last 'unknown' one here:
Quote:
Offset 0x0000 DWORD BNFO
Offset 0x0004 DWORD buisness class
Offset 0x0008 DWORD best class reached
Offset 0x000C 12 BYTE: unknown
Offset 0x0018 DWORD Count client records
For each client
WORD Sim instance
DWORD Unknwon (may be a score)
DWORD ObjectCount
For ObjectCount
DWORD Object Guid : purchased ?
DWORD AnotherCount
For AnotherCount
DWORD unknown (seems to always be 0)
DWORD unknwon (could be purchased items)
DWORD unknown (could be dropped items)
INT32 Client stars
DWORD EmployeeCount
for each empoyee
WORD employee instance
DWORD unknown
DWORD salary
DWORD Count2
DWORD unknown>>> This sets the Assignment
For Count2 : looks like the expense/revenue tab data for the buisness
72 BYTES (at offset 0x30 there is the revenues, and at 0x38 the expenses).


So far I've managed to ascertain:
Assignment-
01 Unassigned
03 Cashier
04 Tidy up
05 Restock
06 Sales

So set the DWORD after salary to the correct flag, commit then change the dropdown in the description info to match, and next time you visit the lot, the employee is assigned to their task correctly.
Screenshots
Inventor
#7 Old 19th Jan 2024 at 12:03 PM
It's odd that the numbers would be different in these two contexts. You could make a small mod that pushes interactions on "Controller - Business - Employee Jobs" instantly without animations, and do it reliably in the game. It seems to directly write only to person data. It's possible that the data is then also transferred to this structure. If I have my employee push onto a cash register, which pushes onto the controller, she turns into a cashier when I next visit the lot.
Back to top