The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
The ROOM format is used to store object layout data in Tropical Freeze.
|
This file format needs more research Still a lot of unknown values and a lot of things that aren't known about how objects interact with each other.
|
Format
Type
|
Count
|
Name
|
Notes
|
Form Descriptor
|
1
|
ROOM Form Descriptor
|
Data type is ROOM
|
Header
|
1
|
Header
|
|
Layer
|
Varying
|
Layers
|
Each layer is under its own form. Unsure if the format has a layer count anywhere.
|
Type
|
Count
|
Name
|
Notes
|
Chunk Descriptor
|
1
|
Room Header Descriptor
|
Data type is RMHD
|
u16
|
1
|
Unknown
|
Always 3?
|
Performance Groups
Type
|
Count
|
Name
|
Notes
|
Chunk Descriptor
|
1
|
Performance Groups Descriptor
|
Data type is PGRP
|
u16
|
1
|
Performance Group Count
|
|
Performance Group
|
Performance Group Count
|
Performance Groups
|
|
Performance Group
Type
|
Count
|
Name
|
Notes
|
u32
|
1
|
Name Length
|
|
char
|
Name Length
|
Performance Group Name
|
Not zero-terminated
|
GUID
|
1
|
PerformanceGroupController Instance GUID
|
|
bool
|
1
|
Unknown
|
|
u16
|
1
|
Layer Count
|
|
GUID
|
Layer Count
|
Layer GUIDs
|
|
Generated Object Map
Generated Object
Type
|
Count
|
Name
|
Notes
|
GUID
|
1
|
Generated Object ID
|
|
GUID
|
1
|
Layer ID
|
This is the ID of the layer that contains the above generated object
|
Load Unit
Type
|
Count
|
Name
|
Notes
|
Form Descriptor
|
1
|
Load Unit Descriptor
|
Data type is LUNT
|
Chunk Descriptor
|
1
|
Load Unit Header Descriptor
|
Data type is LUHD
|
u32
|
1
|
Name Length
|
|
char
|
Name Length
|
Load Unit Name
|
For some reason these seem to generally have really short names (sometimes a single character).
|
GUID
|
1
|
Unknown
|
Probably the GUID for this load unit
|
u16
|
1
|
Unknown
|
|
Chunk Descriptor
|
1
|
Load Unit Resources Descriptor
|
Data type is LRES
|
u32
|
1
|
Resource Count
|
|
GUID
|
Resource Count
|
Load Unit Resources Array
|
Likely a list of all resources that are used by this load unit.
|
Chunk Descriptor
|
1
|
Load Unit Layers Descriptor
|
Data type is LLYR
|
u32
|
1
|
Layer Count
|
|
GUID
|
Layer Count
|
Load Unit Layers Array
|
Likely a list of all layers that are part of this load unit. (Note that it seems layers can be included in multiple load units.)
|
Layer
Type
|
Count
|
Name
|
Notes
|
Form Descriptor
|
1
|
Layer Form Descriptor
|
Data type is LAYR
|
Chunk Descriptor
|
1
|
Layer Header Descriptor
|
Data type is LHED
|
u32
|
1
|
Name Length
|
|
char
|
Name Length
|
Layer Name
|
|
GUID
|
1
|
Layer ID
|
|
u32
|
1
|
Unknown
|
|
GUID
|
1
|
Unknown
|
|
bool
|
1
|
Unknown
|
|
Form Descriptor
|
1
|
Generated Script Object Descriptor
|
Data type is GSRP .
|
Generated Game Object
|
Varies
|
Generated Game Objects
|
Unsure if there is a generated object count.
|
Form Descriptor
|
1
|
Script Object Descriptor
|
Data type is SRIP
|
Game Object Component
|
Varies
|
Components
|
Unsure if there is a layer component count.
|
Generated Game Object
Game Object Component
Type
|
Count
|
Name
|
Notes
|
Chunk Descriptor
|
1
|
Component Descriptor
|
Data type is COMP
|
u32
|
1
|
Component Type
|
This appears to be a hash of the component name.
|
GUID
|
1
|
Instance ID
|
|
u32
|
1
|
Name Length
|
|
char
|
Name Length
|
Instance Name
|
|
The remaining data seems to have two structures; one that's used by most objects and one that's specific to GameObject components.
Regular structure:
Type
|
Count
|
Name
|
Notes
|
u16
|
1
|
Connection Count
|
|
Connection
|
Connection Count
|
Connection Array
|
These establish links to other components to allow them to interact
|
u32
|
1
|
Property Count
|
|
Property
|
Property Count
|
Object Properties
|
|
GameObject structure:
Type
|
Count
|
Name
|
Notes
|
u32
|
1
|
Sub-Component Count
|
|
Sub-Component
|
Sub-Component Count
|
Sub-Component Array
|
Seems to describe other script components that are children of this one.
|
bool
|
1
|
Unknown
|
This is likely the Active flag that appears on every object in the previous games.
|
vector3
|
1
|
Position
|
|
vector3
|
1
|
Rotation
|
Euler XYZ angles in degrees (presumably in ZYX order like the previous games).
|
vector3
|
1
|
Scale
|
|
Connection
Type
|
Count
|
Name
|
Notes
|
char
|
4
|
Event
|
Event that causes the connection to trigger. (These are what were called States in the previous games.)
|
char
|
4
|
Action
|
Action that the connected object should execute when the connection triggers. (These are what were called Messages in the previous games.)
|
GUID
|
1
|
Target Instance ID
|
Instance ID of the target object.
|
u32
|
1
|
Unknown
|
|
Property
Type
|
Count
|
Name
|
Notes
|
u32
|
1
|
Property ID
|
32-bit hash of the property name.
|
u16
|
1
|
Property Size
|
|
|
|
Property Data
|
Varies depending on the type of the property (which is hardcoded depending on the property ID).
|
Sub-Component
This structure is used to define sub-components that are attached to GameObject components.
Type
|
Count
|
Name
|
Notes
|
char
|
4
|
Type
|
Usually COMP , but sometimes other things like IL00 . Not sure what it means.
|
GUID
|
1
|
Component ID
|
|
bool
|
1
|
Unknown
|
Might be an Active/Enabled flag.
|
Component Types
ID
|
Component
|
0x749749F1
|
GameObject
|
0x4EC5FA3A
|
FakePlayerControls
|
0x57153AA4
|
StaticCollision
|
0x41956904
|
RenderWorld
|
0xB4361E7B
|
ActorCollision
|
0x2BE8BC19
|
LightStatic
|
0x9EE5541D
|
LightDynamic
|
0xCD098F70
|
Effect
|
0x8FE0BFC9
|
Relay
|
0xA7DB53C1
|
Counter
|
0xADA85938
|
SeaLion
|
0xAAEBA313
|
WarusKing
|
0x05DD288E
|
Switch
|
0x9E8A4940
|
Timer
|
0xD616EE8B
|
ControllerAction
|
0xD898656D
|
Waypoint
|
0xF0240D23
|
PathControl
|
0x4FE57689
|
CameraHint
|
0x97E65DDD
|
TouchableTrigger
|
0x1A4117AB
|
Toucher
|
0xC49D730E
|
TriggerLogic
|
0xD47974E4
|
FiniteStateMachine
|
0x1349E5AC
|
CustomInterpolation
|
0xC1F64515
|
CameraTarget
|
0xDE522669
|
Generator
|
0x1383F6D6
|
GeneratorDeleter
|
0x2C4F2D31
|
SplineMotion
|
0x1223437C
|
Creature
|
0x21C57D2B
|
DynamicActorCollision
|
0xDF31EC16
|
Render
|
0xAE921C3B
|
Player
|
0x81A242A0
|
DirectionalIrradianceMap
|
0xBDE4AB05
|
TakeDamage
|
0x5453C979
|
MasterSlave
|
0x07E3137F
|
TraceObject
|
0x046FAD23
|
TimerSequence
|
0x3175DF36
|
ApplyDamage
|
0x65E2349B
|
RelayRandom
|
0xABBCFC6A
|
RelayConditional
|
0xEA30E0B1
|
SpawnPoint
|
0x1FB9AF22
|
ActorKeyframe
|
0xCB6D9ACE
|
PlayerProxy
|
0x6FB22081
|
BarrelCannon
|
0xF4567AD7
|
RumbleEffect
|
0x10EA9EC8
|
ObjectFollow
|
0x481EA5AF
|
Pickup
|
0xBC9A60AE
|
CameraManager
|
0xDB38B3FB
|
GroundPoundDetector
|
0xBE82DEF3
|
Projectile
|
0x43C0D52A
|
ClingPathControl
|
0xB85D6790
|
ColorModifier
|
0x021C14B0
|
Explosion
|
0x16702F15
|
ReloadSetLoader
|
0x660FC7C1
|
Checkpoint
|
0x8C2CCFAC
|
PlayerRespawn
|
0xC0281AE7
|
ImpulseDriver
|
0xD4538C9B
|
Bouncer
|
0x06E89BE7
|
Health
|
0xE0AFAF06
|
PlayerActionHint
|
0x1A90271D
|
Grabbable
|
0x3C23783B
|
GrabThrow
|
0x9373FEC0
|
Respawn
|
0xAF565E69
|
SwingRope
|
0xC7B43DA6
|
ActorInteraction
|
0xC9ED6454
|
WindWaker
|
0x78D8893A
|
CameraTargetPlayer
|
0xA86E6401
|
PoiObject
|
0xFDD83489
|
Sound
|
0xCCAD4BD9
|
PerformanceGroupController
|
0x502506D6
|
TouchSet
|
0x88603CF7
|
MineCartProxy
|
0xE1E1C49C
|
WaterVolume
|
0x6C5D597D
|
NearVisible
|
0x3449A5DF
|
Swimmer
|
0x591D8F55
|
CharacterPrimitivesCollision
|
0x90D8D3CE
|
RenderMethodResolver
|
0xBD4CFA2F
|
TriggerForce
|
0x3150D2F6
|
FuseBomb
|
0xAF3A06F2
|
PathControlZipline
|
0xD32870DF
|
PolarBear
|
0x2131C235
|
GroupSpawn
|
0x2751EBF2
|
AnimationGridController
|
0x18B96D29
|
TimerAnimationGridParamProvider
|
0xB9F9F04C
|
ActionDetector
|
0x343A47F7
|
CameraShaker
|
0x06159C2D
|
RespawnBalloon
|
0x7E6063C8
|
PlayerActor
|
0x91F22DCF
|
Tippy
|
0x89F426F2
|
CinematicCameraShot
|
0x1EB2749F
|
ConveyorModifier
|
0x73AECD92
|
FogVolume
|
0x845E492A
|
Retronome
|
0x23C5DFF4
|
WaterRenderVolume
|
0x55F80CCE
|
CinematicSkipHandler
|
0xAB5C5D7B
|
BonusRoom
|
0x3A3A6FAD
|
TireBounce
|
0x9D25FE2D
|
BeatUpHandler
|
0x9FC07D01
|
Owl
|
0xA42F7AB9
|
GrabbableGenerator
|
0xF34EDD1F
|
InventoryItem
|
0x18C0AD0F
|
EndGame
|
0xEBE92100
|
RocketBarrelProxy
|
0xB7ADA3EC
|
BurningBranch
|
0x59AB515E
|
HotCoals
|
0xE21D45CB
|
BarrelBalloon
|
0x6302BBB3
|
UVTransform
|
0x5FEF037B
|
Baboon
|
0x25899782
|
MusicData
|
0x1AC8C8FD
|
MusicStateController
|
0x47A60DC3
|
MusicSystemTransport
|
0x5CF17BFE
|
AdapterManager
|
0xCA08C6A4
|
WaterRenderDecal
|
0x7F6D1CBA
|
RelayAutoFire
|
0x3DAAF68B
|
BaboonManager
|
0xD745DC42
|
GraphicalTransition
|
0x0FA3899C
|
RetronomeDriver
|
0x57E54B9D
|
EndLevel
|
0x6780941E
|
SuperCombinedAbilityEmitter
|
0xB8B6A22E
|
SuperCombinedAbilityResponder
|
0x0AF8D63C
|
MapPlayer
|
0x8CB5BF7D
|
MapPathControl
|
0xEBE0DAEE
|
WaterCurrentVolume
|
0xA7D1C922
|
CausticVolume
|
0x35D8F3F0
|
PufferFish
|
0xBA796FEF
|
Playlist
|
0xC2F2282A
|
WindWakerImpulser
|
0xE03DD39F
|
MapNode
|
0x55AAB5F1
|
RambiCrate
|
0x24D9D323
|
AudioEffect
|
0xF7602744
|
DSP
|
0x160E9AF9
|
RoomSettings
|
0x5746A908
|
DynamicActorControl
|
0x59276E0E
|
HUDAnchor
|
0xF442A668
|
TimeKeyframe
|
0xB6040870
|
RelayProbabilityGameMode
|
0xF3847DE3
|
FlyingPickupEffect
|
0x212BCDF5
|
SimpleShadow
|
0x655C5175
|
AudioBusController
|
0xF6751A5D
|
PlayerKeyframe
|
0xC04DAF13
|
BreathMonitor
|
0x4C7B9FC8
|
DirectionalIrradianceProbes
|
0x0BE7FC29
|
SurfaceControl
|
0xB6EC1A51
|
SimpleSound
|
0xD2CAC9A5
|
LightGroupProxy
|
0xDFD2A23A
|
DialogPanel
|
0xBCCB1B30
|
MinecartPathManager
|
0xD856F6B9
|
Imposter
|
0xBD040603
|
LevelDarkener
|
0xA72A9926
|
RenderGroup
|
0x3258FD44
|
RenderToFlash
|
0x3ABCFF68
|
SkinSwap
|
0xC532AD25
|
ScreenCaptureToFlash
|
0xB152AD59
|
PlayerSound
|
0xBFF963D2
|
StreamedMovie
|
0x7DCAF170
|
BloomEffect
|
0x1243C3E3
|
ProjectedSimpleShadowReceiver
|
0x5368FF52
|
ShopData
|
0xA04F0C68
|
ShopInstance
|
0x5B0C954B
|
UICameraSelector
|
0x7CC0B7BF
|
Squawks
|
0xB177FA02
|
SquawksProxy
|
0x4C53A836
|
UnitController
|
0x008E3AF5
|
FlashTextureSwapper
|
0xF5D80D1A
|
Extras
|
0xBB449D71
|
ExtrasType
|
0xA98F9015
|
ExtrasCategory
|
0xEE0D6FD4
|
DynamicLoadManager
|
0xFDDB58A1
|
MapManagerProxy
|
0xA32E718F
|
Achievement
|
0x62913993
|
AudioBusMixer
|
0xADCD416E
|
Credits
|
0xA4E4FE1D
|
HUDFadeDetector
|
0xAF9DEA76
|
ProductionFrontEndProxy
|