CFrame

What is a CFrame?

CFrame is a format used to store a frame and it's objects, layers, transitions, etc.

Structure

Size Type Name Description
4 UInt32 Handle The frame's handle
... CString Name The frame's name
4 Int32 Width The width of the frame
4 Int32 Height The height of the frame
4 RGBA Background Color The background color of the frame
4 UInt32 Flags Definitions
4 UInt32 Max Object Count The maximum amount of object instances that can exist at any one time
... CString Password The frame's password
...   Unknown Starts with a size (excluding itself), go ahead and skip it
4 Int32 Editor X The frame's X panned position in the editor
4 Int32 Editor Y The frame's Y panned position in the editor
... LOGPALETTE Palette A palette used for 256 color mode, uses a WinAPI structure, although please note, Version is omitted here and Count is 4 bytes
4 Int32 Icon Handle The handle of the preview image in the Icon Bank
4 Int32 Editor Layer The frame's currently selected layer index in the editor
... CLayers Layers The frame's layers
1 Boolean Has Fade In Whether or not this frame has a Fade In transition, if false then the next variable does not exist
... CTransition Fade In The Fade In Transition, only exists if Has Fade In is true
1 Boolean Has Fade Out Whether or not this frame has a Fade Out transition, if false then the next variable does not exist
... CTransition Fade Out The Fade Out Transition, only exists if Has Fade Out is true
... CObjectInfos Object Infos An array of object definitions in this frame
... CObjectFolders Object Folders An array of object folders in this frame
... CObjectInstances Object Instances An array of object instances in this frame
... CFrameEvents Frame Events A structure defining all data relating to frame events
... CChunk Frame Chunks A list of frame chunks, the end is indicated by a chunk with an ID of 0

Flag Definitions

Flags

Value Name Description
0x0001 Grab desktop at start Sets the background of the frame to a snapshot of the desktop, mainly used for screensavers
0x0002 Keep display from previous frame Sets the background of the frame to the display left by the previous frame
0x0004 Handle background collisions even out of window The collisions with the background will be handled regardless of the distance from the camera
0x0008 Display frame title in window caption Displays the frame's name in the title of the window
0x0010 Resize to screen size at start Sets the frame size to the size of the current monitor's resolution upon being loaded
0x0020 Force Load On Call option for all objects (Force) Forces Load On Call to be enabled on all objects in this frame
0x0040 No display surface Disables the display surface completely to save memory, meant to be used in applications where only Windows controls are used (like buttons, checkmarks, edit boxes, and list boxes)
0x0080 Screen saver setup frame Sets this frame as the frame to be ran when the user is configuring the screen saver
0x0100 Timer-based movements Uses delta-time for the movement and animation speed of objects, detaching them from the framerate
0x0200 Unknown Seemingly unused
0x0400 Exclude global events Excludes global events from running in this frame, this is inverted in the UI as "Include global events"
0x0800 Unknown Seemingly unused
0x1000 Don't include at build time Removes the frame data from the application when built
0x2000 Direct3D: don't erase background if the frame has an effect Allows the frame effect to use the previous display, for example for motion blur effects
0x4000 Unknown Seemingly unused
0x8000 Force Load On Call option for all objects (Ignore) Forces Load On Call to be disabled on all objects in this frame