The Sims™ Technical Aspects

CARR Resource Format

The following information is not based on any proprietary knowledge or restricted documentation—it was entirely derived from observation, experiment, and public information, thus it may be inaccurate or incomplete.

CARR resources store most of the info regarding careers. They can be found in the Careers.iff file or work.iff file, depending upon the game version. Once decoded, they can be used to create these career tables.

Career layout
Offset Value
0 0x00000000
4 0x00000000
8 'RRAC'
12 Career Info
var Job level 1
var Job level 2
var . . .
var Job level N

CARR resources start with a 12-byte 'signature' consisting of two words of zero followed by a word containing "CARR" as a little-endian integer.

Now comes the fun part. Most of the information is stored as either strings or fields. A string is a null-terminated text string with the added caveat that it is padded with 0xA3 to a two-byte boundary (relative to the start of the CARR Resource). A field is a numeric value that has been bit-packed according to a rather intricate field encoding algorithm with field widths (not including sign) of 5, 10, 20, and 31 bits.

The career data begins with a few items applying to the entire career track:

Career Info
Type Value
Byte Compression code
String Career name
Field Number of job levels

The first byte is a compression code; see the description of the field encoding algorithm for details. It always contains the value one.

The career name is the description of the career as a whole; for example, "Business."

The number of job levels is always ten. This may be a game restriction. It would be an interesting experiment to create a CARR resource with more (or fewer) than ten jobs and see what happens.

Each level has the following data.

Job Info
Type Value
Field Friends required
Field Cooking skill required (times 100)
Field Mechanical skill required (times 100)
Field Charisma required (times 100)
Field Body skill required (times 100)
Field Logic skill required (times 100)
Field Creativity skill required (times 100)
Field unknown #1 (always zero)
Field unknown #2 (always zero)
Field unknown #3 (always zero)
Field Hunger decay
Field Comfort decay
Field Hygiene decay
Field Bladder decay
Field Energy decay
Field Fun decay
Field Social decay
Field Salary
Field Start time in hours (0 = midnight)
Field End time in hours (0 = midnight)
Field Car type
String Job name (e.g. "Mailroom Clerk")
String Male uniform mesh
String Female uniform mesh, if different
String Uniform skin
String unknown (always null)

The values for friends, cooking, mechanical, charisma, body, logic, and creativity are the level that must be achieved before promotion to this job is possible. The scaling of the skill requirements by 100 suggests that the game tracks the character's attainments scaled up by the same amount.

The unknown field values could be room for expansion, or perhaps they were requirements that were eliminated before the game was released.

The decay values are signed numbers between -13 and 4. They represent how much the corresponding motive is affected by being at work. The dynamic range of the motive values is unknown as this is written, but since most values are very small in absolute value, it suggests that the decay is per-hour rather than per-shift.

Some decay values are positive, particularly the social value for high-level jobs in the political track (reflecting that they do a lot of socializing on the job), but most of the values are small and negative. There's one real anomaly in the values and is probably a bug in the game: the energy decay for the Security Consultant job in the Hacker career track is positive.

Code Car Code Car
0Coupe 6Bentley
1Jeep 7Junker
2Cruiser 8Limo
3Sedan 9Truck
4SUV 10Circus
5Town car 11Clown car

The car type is a code for the car used to pick up and drop off for that job. The table at right is reasonably accurate, but someone who is more knowledgeable about cars may wish to tweak the exact names.

Some, like the police cruiser and the military jeep, are only used in a single career track. Others appear in most (if not all) career tracks (at some point, everybody wants to travel in a Limo).

The male and female meshes are the mesh(es) to apply when in work clothes. The female mesh is present only if it is different from the male mesh, otherwise it is null.

The meshes can have substitutions applied to them. The known substitutions are $g (gender), which substitutes `m' for males and `f' for females, $b (body), which substitutes `fat', `fit', or `skn' depending upon the body type, and $c (color), which substitutes `drk', `lgt', or `med' depending upon the skin color.

The uniform skin is the bitmap to use to color the body uniform mesh. (If there is more than one mesh in the uniform, such as a hat, that mesh identifies the skin to use.) It can have the same substitutions as the mesh names.

The unknown string may be to allow a female skin to be specified separately from the male skin, but the $g substitution may have eliminated the need for it.

Reminder: This information is not based on any proprietary knowledge or restricted documentation—it was entirely derived from observation, experiment, and public information, thus it may be inaccurate or incomplete.

Valid XHTML 1.1! Valid CSS!
Copyright © 2001-2008 Dave Baum and Greg Noel. All rights reserved.
The Sims™ is a trademark of Maxis and Electronic Arts.
This page was last modified Tuesday, 27-May-2003 08:11:35 UTC.
Made on a Mac