Table of Contents

Enum DataModelType

Namespace
LlamaLogic.Packages.Models.Data
Assembly
LlamaLogic.Packages.dll

A type of data within a data resource

public enum DataModelType

Fields

BOOL = 0

A bool expressed with an entire byte (0 is false, any other value is true)

CHAR8 = 1

A single ASCII character

FLOAT = 10

A float

FLOAT2 = 15

You might think it's a double, but nope: two floats

FLOAT3 = 16

An obvious trend is developing, for this is three floats

FLOAT4 = 17

(You know when, every once in a while, there's a great trilogy and someone messes it up?) Here are your four floats

HASHEDSTRING8 = 12

An int offset to a null-terminated ASCII string and its accompanying Fnv32 hash

INT16 = 4

A short

INT32 = 6

An int

INT64 = 8

A long

INT8 = 2

An sbyte

LOCKEY = 20

A four-byte key used to uniquely identify localized strings in The Sims 4 (typically the Fnv32 hash of the string in its original language)

OBJECT = 13

An int offset to an object

RESOURCEKEY = 19

A ResourceKey laid out by FullInstance, then Type, then Group

STRING8 = 11

An int offset to a null-terminated ASCII string

TABLESETREFERENCE = 18

It's not just about good manners from "How to Serve and Not Be Served", it's really about this ulong

Seriously, though, why have these when we already have UINT64, you ask?

you’re right that table set refs are just uint64s, but it is important to distinguish them because they mean different things. int64s are just literal numbers, table set refs are tuning IDs. so, when the game loads these, it knows that uint64 is just a number, so leave it alone, whereas a table set ref is tuning, so it needs to look that tuning up and use it as the value there rather than the number itself
— frankk, August 16, 2024 in Lot 51's Discord
UINT16 = 5

A ushort

UINT32 = 7

A uint

UINT64 = 9

A ulong

UINT8 = 3

A byte

UNDEFINED = 22

?

VARIANT = 21

An int offset to an object accompanied by a uint type hash

VECTOR = 14

An int offset to an array of objects and a uint that is its size