Clickteam Fusion 2.5 Project File

What is a .mfa file?

A .mfa is the file format used for Clickteam Fusion 2.5 projects. It is a single file that stores images, sounds, events, and anything else the project needs (with a few exceptions), making it easy to store and distribute.

File Structure

These docs use Clickteam named variables such as CString, CChunk, CValue, etc.
All of these types are documented and will have links to their documentations, such as the examples above.

Size Type Name Description
4 ASCII Header File header, always "MFU2"
2 UInt16 Version Version of the format
2 UInt16 Sub-Version Sub-Version of the format
4 UInt32 Editor Version Version of the editor
4 UInt32 Editor Build Build of the editor (Ex. 296)
4 LCID Language The language set in the project, uses a WinAPI structure
... CString Project Name The name of the project
... CString Unknown  
... CString Project Path The last saved file path of the project file
... CPreviewImage Preview Image A small 64x48 image preview of the first frame of the mfa
... CFontBank Font Bank A bank of stored font data
... CSoundBank Sound Bank A bank of stored sound data
... CMusicBank Music Bank A bank of stored music data
... CImageBank Icon Bank A bank of stored icon data
... CImageBank Image Bank A bank of stored image data
... CString Project Name The name of the project, duplicate
... CString Project Author The listed author of the project
... CString Project Description The listed description of the project
... CString Project Copyright The listed copyright of the project
... CString Project Company The listed company of the project
... CString Project Version The listed version of the project
4 Int32 App Width The set width of the window
4 Int32 App Height The set height of the window
4 RGBA App Border Color The set border color of the window
4 UInt32 Display Flags Definitions
4 UInt32 Graphic Flags Definitions
... CString Help File Path The path of the project's Help File
... CString Unknown  
4 Int32 Initial Score The players' initial score
4 Int32 Initial Lives The players' initial lives
4 Int32 Frame Rate The maximum frame rate the application can reach
4 EBuildType Build Type The build type of the project
... CString Target File Path The target output file path of the project
... CString Unknown  
... CString Unknown  
... CString Project About The listed about of the project
4   Unknown  
... CBinaryFiles Binary Files A bank of stored binary files
... CPlayerCtrls Player Controls Player joystick/keyboard controls, "Player" being a Clickteam term
... CMenuBar Menu Bar Data related to the Menu Bar
4 UInt32 MDI Window Menu Index of Window menu for MDI applications
... CMenuImages Menu Images A list of image handles and locations for the Menu Bar
... CGlobalVariables Global Values A list of global value definitions
... CGlobalVariables Global Strings A list of global string definitions
... CGlobalEvents Global Events A structure defining all data relating to global events
4 EGraphicMode Graphic Mode Graphic Modes define how many colors can be used by the application
... CIconHandles Icon Handles A list of Icon Handles with an unknown purpose
... CQualifiers Qualifiers A list of all defined qualifiers in the project
... CExtensions Extensions A list of all defined extensions in the project
... CFrames Frames A list of all defined frames in the project

Flag Definitions

Display Flags

Value Name Description
0x000001 Maximized on boot-up Maximize the application window upon start-up
0x000002 Resize display to fill window size Stretches the viewport to the size of the window
0x000004 Change Resolution Mode Resizes your monitor to the window size when fullscreen
0x000008 Allow user to switch to/from full screen Allows the user to switch between windowed and full screen using the defined keybind in the Menu Bar
0x000010 Heading Enables the window title bar
0x000020 Heading when maximized Enables the window title bar when maximized, disabling this allows for borderless fullscreen
0x000040 Menu bar Enables the menu bar and it's keybinds
0x000080 Menu displayed on boot-up Displays the menu bar above the window on start-up
0x000100 No Minimize box Disables the minimize button on the window title bar
0x000200 No Maximize box Disables the maximize button on the window title bar
0x000400 No Thick frame Disables the ability to resize the window
0x000800 Do not center frame area in window If the viewport is not stretched, instead of centering it in the window, this option places the viewport on the top-left
0x001000 Disable Close button Disables the close button on the window title bar
0x002000 Hidden at start Minimizes the window on start-up
0x004000 Unknown  
0x008000 Keep screen ratio Forces the window size within a certain ratio of the original window's aspect ratio, works in tandem with the Screen ratio tolerance
0x010000 Anti-aliasing when resizing Enables anti-aliasing when the window is sized differently than the original resolution, only usable with Resize display to fill window size
0x020000 Unknown  
0x040000 Right-to-left reading Unknown, similar value exists in object text settings but the Display Flag seems to not effect anything
0x080000 Right-to-left layout Flips the window layout horizontally
0x100000 Unknown  
0x200000 Fit inside (black bars) Keeps the aspect ratio of the original viewport even when resized by inserting bars using the Border Color on either the top/bottom or left/right of the window, only usable with Resize display to fill window size

Graphic Flags

Value Name Description
0x00000001 Multi-samples Allows the application to play multiple samples at once
0x00000002 Machine-independent speed Makes the application skip displaying a frame if the application is not running at the desired frame rate
0x00000004 Play sounds over frames This flag makes it so the application no longer stops samples when switching between frames
0x00000008 Do not mute samples when application loses focus Allows samples to play when the window is out of focus
0x00000010 Do not stop screen saver when input evemt If compiling as a screen saver, this flag makes it so an input will not automatically close the program
0x00000020 Unknown  
0x00000040 Unknown  
0x00000080 Enable Visual Themes Unsure, Clickteam describes it as "Allows visual themes in the application."
0x00000100 V-Sync Runs the application with V-Sync enabled
0x00000200 Run when minimized Allows the application to remain running even when the window is minimized
0x00000400 Run while resizing Allows the application to remain running while the window is being resized by the user
0x00000800 Enable debugger keyboard shortcuts Allows debugger shortcuts to be performed when running the application through the editor
0x00001000 Show Debugger (Disabled) When this flag is enabled, the debugger window will not be visible when running the application through the editor
0x00002000 Do not share data if run as sub-application Disallows the parent application from sharing global values, global strings, player lives, and player scores when running as a sub-application
0x00004000 Display Mode: Direct3D 9 Whether or not the current display mode is Direct3D 9
0x00008000 Display Mode: Direct3D 8 Whether or not the current display mode is Direct3D 8
0x00010000 Unknown  
0x00020000 Unknown  
0x00040000 Unknown  
0x00080000 Unknown  
0x00100000 Unknown  
0x00200000 Ignore "Destroy if too far" option if "Inactivate if too far" is set to No (Disabled) Before build 285.1, "Destroy if too far from frame" had no effect if "Inactivate if too far from window" was set to No. If this flag is enabled, this behavior will not be carried over into newer builds.
0x00400000 Disable IME Disables the Windows Input Method Editor
0x00800000 Reduce CPU usage Unsure what this does, Clickteam describes this as "Allows to reduce the CPU usage when the application is idle. Selecting this option may slightly reduce the performance of the application."
0x01000000 Unknown  
0x02000000 Unknown  
0x04000000 Enable profiling Enables event profiling when running the application through the editor
0x08000000 Start profiling at start of frame (Disabled) When this flag is enabled, profiling will not start at the start of a frame
0x10000000 Display Mode: Direct3D 11 Whether or not the current display mode is Direct3D 11
0x20000000 Premultiplied alpha Premultiplies the alpha of every image with their RGB values on compilation, Clickteam claims this is to fix visual issues with shaders on layers
0x40000000 Optimize events (Disabled) When this flag is enabled, on compilation, events will not combine with each other as an optimization
0x80000000 Record slowest app loops When profiling, this flag makes it so it only records frames (FPS) that are slower than usual, can be used to track down triggered slow downs