# Sims 3:Catalog Resource

From SimsWiki

Modding Reference by Category
Sims 3 :DBPF | File Types | RCOL(Scene) | Catalog Resource | String Table | Key Table | TS3 Programmer's Reference

## Overview

The following resource types are used for catalog entries.

Type ID | Tag | Name
--- | --- | ---
0x0418FE2A | CFEN | Catalog Fence
0x049CA4CD | CSTR | Catalog Stairs
0x04AC5D93 | CPRX | Catalog Proxy Product
0x04B30669 | CTTL | Catalog Terrain Geometry Brush
0x04C58103 | CRAL | Catalog Railing
0x04ED4BB2 | CTPT | Catalog Terrain Paint Brush
0x04F3CC01 | CFIR | Catalog Fireplace
0x060B390C | CWAT | Catalog Terrain Water Brush
0x0A36F07A | CCFP | Catalog Fountains and Pools
0x316C78F2 | CFND | Catalog Foundation
0x319E4F1D | OBJD | Catalog Object
0x515CA4CD | CWAL | Catalog Wall/Floor Pattern
0x9151E6BC | CWST | Catalog Wall Style
0x91EDBD3E | CRST | Catalog Roof Style
0xF1EDBD86 | CRMT | Catalog Roof Pattern

## Format

### Common

This block appears in all Catalog Resources. The name and description GUIDs can be looked up in the STBL.

    DWORD Version		// Earliest seen is 0x0000000C
    QWORD Name GUID		// Key into STBL for localised value to display
    QWORD Desc GUID		// Key into STBL for localised value to display
    7BITSTR			// "Internal" Catalog Name
    7BITSTR			// "Internal" Catalog Description
    FLOAT price
    FLOAT NicenessMultiplier	// always 1.0
    FLOAT CrapScore		// binary zeros
    BYTE (BuildBuyProductStatusFlags)
    QWORD IID of PNG icon	// When not zero, this is the catalogue thumbnail;
    			// otherwise image is found by IID matching (see below)
    BYTE //0x00
    FLOAT EnvironmentScore
    DWORD FireType //0=DoesNotBurn,1=Chars,2=AshPile
    BYTE IsStealable //boolean
    BYTE IsReposessable //boolean
    DWORD UISortIndex
    --if Version >= 0x0000000D
    	BYTE isPlaceableOnRoof //boolean
    	--if Version >= 0x0000000E
    		BYTE isVisibleInWorldbuilder //boolean
    		--if Version >= 0x0000000F
    			DWORD ProductName //hashed

#### Common Flags

BuildBuyProductStatusFlags
Flag | Description
--- | ---
0x00000001 | ShowInCatalog
0x00000002 | ProductForTesting
0x00000004 | ProductInDevelopment
0x00000008 | ShippingProduct
0x00000010 | DebugProduct
0x00000020 | ObjProductMadeUsingNewEntryScheme

#### Thumbnail

There are two ways of finding the thumbnails for a catalogue resource, depending on if IID of PNG icon is zero or not. The Resource Type is always one of three values (representing small, medium or large). Medium is the type of small plus 1; large is the type of small plus 2. There can be multiple thumbnails, differing only in their group, representing the different default appearances for the catalogue resource.

When non-zero

  Thumbnail Types
  0x2E75C764, 0x2E75C765, 0x2E75C766

The IID of the thumbnail is IID of PNG icon.

When zero
  The thumbnail resource type type depends on the catalogue resource type:

  Catalogue Type[4] | Thumbnail Types
  --- | ---
  Object Proxy Product Terrain Geometry Brush Terrain Water Brush Foundation[1] Roof Style Roof Pattern | 0x0580A2B4, 0x0580A2B5, 0x0580A2B6
  Fence | 0x2653E3C8, 0x2653E3C9, 0x2653E3CA
  Stairs | 0x5DE9DBA0, 0x5DE9DBA1, 0x5DE9DBA2
  Railing | 0x2D4284F0, 0x2D4284F1, 0x2D4284F2
  Terrain Paint Brush | 0x05B1B524, 0x05B1B525, 0x05B1B526
  Fireplace[2] | 0x05B17698, 0x05B17699, 0x05B1769A
  Wall/Floor Pattern[3] | 0x0589DC44, 0x0589DC45, 0x0589DC46

  The IID of the thumbnail is the IID of the catalog resource.

  Notes
    [1] I'm not sure this has been verified. (PLJ: seems to work...)
    [2] s3oc shows the thumbnail for the first OBJD rather than this.
    [3] For all catalogue resources apart from Wall/Floor Pattern, a thumb with a Resource Group of zero is acceptable; for Wall/Floor Patterns, however, a non-zero Resource Group is needed.
    [4] Walls do not have thumbnails.

### Material List

ObjectMaterialList

This section is only present in Objects, Fences (EP1+), Railings (EP1+) and Wall/Floor Patterns; it differs slightly for Wall/Floor Patterns, as annotated below.

#### Purpose

This is a list of all preset color options that a Catalog Resource has. Each preset has different settings for patterns used and colors applied. They are listed in the order that they appear in game. You can safely delete them. (The screen shot shows how they are presented in s3pe.)

#### Format

    DWORD Count1
    --repetition Count1 Material:
    	BYTE type
    	if (type != 1) DWORD
    	DWORD offset		// from here to after TGI Block List
    	WORD
    	DWORD tgi offset	// see Sims 3:Key table
    	DWORD tgi size		// see Sims 3:Key table
    	--insert Material Block
    	--insert TGI Block List	// see Sims 3:Key table
    	DWORD ID
    	--if Wall/Floor Style:
    		DWORD Category //varies on type(wall or floor)
    		DWORD GroupName // hashed
    		DWORD GroupSort

##### Common Values

Not all values are present in all catalog resources.

Name | Value
--- | ---
Material Type | 0x01 1
Unknown 1 |
Unknown 2 |
Unknown 3 | Order thumbs are shown in catalog 3
Unknown 42 | Category Flag
Unknown 52 |
Unknown 62 |

###### Notes

1. Walls - Changing to 0x00 - Entire wall disappears from catalog with all presets
2. Present for Walls/Floors
3. Values must be non-zero and unique. Changing the value does not re-order them in catalog but walls will show the thumb/catalog in new order but does not move the actual wall preset order.

#### Material Block

This block holds the variables used in the complate to render a texture. TGI Block List indexes refer to the TGI Block List following this Material Block.

    BYTE index     // TGI Block List entry for Complate XML to which these variables should be applied
    Complate String Name
    Complate String Pattern
    DWORD count1
    --repetition count1 Complate Variable List:
    	Complate String variableName
    	BYTE   typecode
    	--insert data for typecode	// see below
    DWORD count2
    --repeat(count2)
    	Material Block		// sub-blocks used for pattern definitions

##### Complate Variables

Complate variables are referenced by the same strings as they are in the Complate XML. All the standard complate elements are indexed via the string table so are not typically included as a literal string.

To read the string

1. First read a byte(A).
2. If A & 0x80 != 0, it is a literal string, otherwise it is an index into the string table.
3. If A & 0x40 == 0, The index will be (A), or the length will be (B&0x7F).
4. If A & 0x40 != 0, read a second byte(B). The index will be (A+B), or the length will be (B).

ex. in C#

    static string ReadString(BinaryReader br)
    {
    	int a = br.ReadByte();
    	if (a == 0) return string.Empty;
    	if ((a & 0x80) != 0)
    	{
                   return Encoding.ASCII.GetString(br.ReadBytes((a & 0x40) != 0 ? br.ReadByte() : a & 0x3F));
    	}
    	if ((a & 0x40) != 0) a = (a & 0x3F) + br.ReadByte();
    	return StringDb[a];
    }

##### Typecodes

Typecode | Data | Comments
--- | --- | ---
0x01 | (Complate String) | Complate Variable name
0x02 | (BYTE)(BYTE)(BYTE)(BYTE) | ARGB color
0x03 | (BYTE) | TGI Block List entry
0x04 | (FLOAT) | float
0x05 | (FLOAT)(FLOAT) | Vector2
0x06 | (FLOAT)(FLOAT)(FLOAT) | Vector3
0x07 | (BYTE) | Boolean

### Brush Common

The basis for the brush type catalog resources

#### Format

    DWORD Version
    --Insert CommonBlock
    DWORD NormalOperation
    DWORD OppositeOperation

    //ProfileTexture PNG TGI
    DWORD Type
    DWORD Group
    QWORD Instance

    DWORD Orientation
    FLOAT BrushWidth
    FLOAT BrushStrength
    BYTE  BaseTextureValue
    FLOAT WiggleAmount

#### Brush Operations

Id | Description
--- | ---
0x00000000 | None
0x00000001 | Raise
0x00000002 | Lower
0x00000003 | Smoothen
0x00000004 | Level
0x00000005 | AddPaint
0x00000006 | ErasePaint
0x00000007 | AddWater

#### Brush Orientations

Id | Description
--- | ---
0x00000000 | Fixed
0x00000001 | AlignWithMouseMoveDirection
0x00000002 | RandomWiggle

Modding Reference by Category
Sims 3 :DBPF | File Types | RCOL(Scene) | Catalog Resource | String Table | Key Table | TS3 Programmer's Reference

Retrieved from "http://simswiki.info/index.php?title=Sims_3:Catalog_Resource&oldid=55708"

##### Personal tools

- Log in

##### game select

- Sims 2
- Sims 3
- Sims 4
- Sims Medieval

##### Toolbox

- What links here
- Related changes
- Special pages
- Printable version
- Permanent link