# Fighter Factory Studio - Reference Documentation

For problems and bug report, go to VirtuallTek Game Studio web site. For doubts related to some specific engine, go to their own web pages or community forums.

# Change History

## Version 3.7.3

- Updated Qt on all platforms (including Qt4 and Qt5 variants) and removed DirectX 11 dependency on Windows;
- Updated Dark and Light styles to use HiDPI images;
- Added two new iconsets (Flat-Dark and Flat-Light) and a new Colorset (Monokai by Jesuszilla);
- Made changes to avoid multiple consecutive error dialogs while using the "Test in engine" function;
- Fixed the program crashing after closing a tab (when multiple tabs are open);
- Fixed the crash happening after Applying settings and closing Options window;
- Fixed a crash that may happen in rare conditions while editing sprites/sounds and auto save is running;
- Fixed multiple random crashes happening while editing sprites and sounds;
- Fixed a typo in the message displayed while trying to run two engine instances at same time;
- Fixed a bug where after editing a sprite, navigating to another and choosing to discard the changes, the selection slider moves one more position;
- Fixed the option 'Switch to the frame's sprite' resetting upon applying settings;
- Fixed a crash when trying to cancel adding new sounds by closing the "Add" dialog;
- Fixed icons not showing for Quick search functionality;
- Fixed auto save progress notification not going away for text files;
- Fixed file modification watcher not working after the file has been saved;
- Fixed the file tab not updating correctly after saving the file;
- Fixed a bug in the colors list in Options where using keyboard to change the selection doesn't update the color state;
- Fixed a bug in quick search on non-text editors (jumping to the next element while opening or closing the search box);
- Fixed a bug where replacing a sound/sprite from 'Import from another Project' doesn't count and the interface isn't updated;
- Some toggle states are saved properly now (contact boxes, guides, ruler, axes);
- Added support for using the Numpad Enter key for quick search;
- Added the ability to move the cursor position on Sound editor to start playing from that sample;
- Implemented sample range selection on Sound editor;
- Implemented some basic Sound editing functions (Remove selected, Fill silence, Fade in, Fade out, Cut, Copy and Paste);
- Implemented some Audio editing tools (Move selected and resize samples);
- Implemented the Pause function on Sound editor.

### M.U.G.E.N.

- Fixed the crash that happens while switching from/to var list mode on States editor;
- Fixed the crash happening sometimes when you type in an out of bounds var index;
- Fixed a crash while opening a project that contains both mugenversion tied to Win/DOS M.U.G.E.N and localcoord;
- Fixed a bug in the animation creation feature of the Throw Creator;
- Added support for opening files with any extension in Commands and States editors;
- Fixed the Emulator crashing if some State has more than 128 trigger lines;
- Fixed a bug preventing some old SFF v1 files from opening;
- Added VictoryQuote to the SCtrls template list.

## Version 3.7.2.1

- Fixed the undo limit not properly applying for some files, disabling undo at all (unable to save too).

## Version 3.7.2

- Fixed the bug that prevents the program from opening on some machines.

### M.U.G.E.N.

- Added trigger and sctrl documentation popup while holding Ctrl and clicking on code editors.

## Version 3.7.1

- Fixed code folding indent for some file types (like M.U.G.E.N Storyboard and Animations).

### M.U.G.E.N.

- Fixed window not clipping correclty on BGs editor;
- Fixed many bugs related to Storyboard and the Emulator;
- Improved the engine directory detection for the Emulator;
- Updated syntax database to better support Storyboard (only Backgrounds starting with "BG" are supported);
- Changed BGDef selection on BGs editor to be items in the Backgrounds menu instead of tabs (virtual files);
- Added support to Storyboard BGs on Backgrounds editor.

## Version 3.7.0

- Texture Upload Method will reset to Delayed (some systems are having issues with Multi-threaded mode, the previous default);
- Improved texture uploading (reduced memory usage for delayed mode and fixed some random crashes/freeze that may occur in multi-threaded mode);
- Fixed Tab focus order;
- Fixed color customization in options going empty after changing something in a fresh install;
- Added two options as a workaround to the text tabulation issue on DPI settings not multiple of 100% ("Convert Tab to Spaces while opening" and "Convert Spaces to Tab while saving"), as avoiding Tab and only using Spaces fix the issue;
- Added debugging support (emulator, a MUGENext internal build);

### M.U.G.E.N.

- Improved PCX and SFF decoding to better handle corrupted files (avoiding crash and freeze on some cases);
- Fixed window parameter for hires stages;
- Fixed Offset Viewer and Throw Creator not taking the frame's offset into account;
- Added detection of WinMugen Plus select screen (may not work in all cases because sometimes is impossible to tell);
- Added support for properly drawing parallax on Native painter rendering mode;
- Added debugging support (external debugger grabbing data from M.U.G.E.N's process memory).
- Added support for rendering in the Emulator for "Export to HTML" function (supports exporting stages too).

## Version 3.6.3

- Fixed color settings not being properly updated while applying changes;
- Made text editor background/foreground colors customizable;
- Increased maximum zoom level for Image editor to 32.
- Implemented some security measures to avoid data corruption of binary files if something goes wrong during save;
- Implemented a tooltip for tabs to display the full path of the file/project.
- Implemented Edit / Code / 'Auto-indent selection' and 'Auto-format selection' functions for code formatting;
- Implemented Project / 'Welcome screen' to show the first screen with recent projects as a tab;
- Added the complete file path to the history menu;
- Added an option to edit the history (remove items) from the Welcome screen;
- Added support for OGG/FLAC/MP3 (open/import) and OGG/FLAC (save/export);
- Increased maximum pen size from 24 to 128 and remap slots from 12 to 32 in the Image editor;
- Moved tool options in the image editor to a toolbar at the top of the canvas area (will move to the main toolbar later);
- Fixed the bug that makes impossible to manually go to a frame with time = 0 in Animations editor;
- Fixed current line in full text mode changing to the first frame when you go to the [Begin Action] line in Animations editor;
- Fixed "Import from another Project" functions reporting twice the ammount of items imported;
- Fixed "Import animations from another Project" function not properly renaming if you do so;
- Added options to choose the texture upload method (Options / Graphics). This may help avoiding issues with bad OpenGL drivers.

### M.U.G.E.N.

- Fixed search & replace for CMD and AIR text mode;
- Fixed .def not being saved for testing in M.U.G.E.N. if used as cns, st, ...

## Version 3.6.2

- Fixed window size restoration on macOS;
- Fixed some weird bugs on Animation editor after manually editing the Begin Action number in full text mode;
- Fixed current line not being set to current frame while switching from graphic to text mode on Animations editor;
- Fixed the autosave interval (in minutes as intended now);
- Fixed some random freeze/crashes while editing text (affects any text-based editor);
- Fixed some typos in the sound editor (sprite instead of sound);
- Fixed delete sound group (was keeping the first of the group and removing the next from the group's last one);
- Fixed the "Import" function for Sprites and Sounds freezing if there's a syntax error in the .ffe file;
- Fixed program crashing if you use zoom fit on a very small sprite;
- Improved support for 32-bit images.

### M.U.G.E.N.

- Fixed flip on Throw Creator not flipping axis too;
- Fixed workspace not updating after changing screen resolution on Throw Creator and Offset Viewer;
- Fixed P1 and P2 frames and added an option to limit bind on Throw Creator;
- Fixed angle on Animations editor (now counterclockwise);
- Fixed an issue where incorrect image size calculation makes M.U.G.E.N. use more memory for sprites (fixed on next time SFF is saved);

## Version 3.6.1

- Fixed the file modification watcher showing twice and prompting the user at every external change, even if there's already a prompt active;
- Fixed a bug where incorrect indexing causes code to me moved to the wrong animation;
- Fixed the crop after option on the add sprites function;
- Fixed Zoom Fit function for graphic editors;
- Fixed program freezing on DirectX rendering mode (dead-locking on slower machines).

### M.U.G.E.N.

- Fixed camera movement (up/down) on BGs editor;
- Fixed the sprite Export function for SprMake2;
- Fixed default width/xscale values for new Parallax elements;
- Fixed sprite not showing properly on BGs editor after undo/redo and BG type changes;

## Version 3.6.0

- Image editor no longer asks to discard changes after saving and navigating to another sprite.
- Added contiguous option to Magic Wand.
- Increased maximum Zoom level.
- An active search no longer moves cursor position while going to another editor.
- Changed format for exporting config from options to include everything in a single file.
- Welcome dialog don't show if the program finds an existing configuration.
- Improved search & replace functions to use the advanced search functionality.
- Added support to captures on regular expression replace mode (%1, %2, ...).
- Fixed some crashes while applying settings.
- Fixed selection mask not moving alongside pixels on image editor.
- Fixed a bug that might cause sprites to be incorrectly linked.
- Made changes on Sprite explorer(thumbnails) to be more generic, so now it's not exclusive to Animations editor.
- Sprite explorer can be used on Image editor to insert sprites as individual layers.
- Implemented a Play function for Image editor, so it hides all layers and then on, one at a time.
- Implemented Save layers as individual sprites (the layer's name defines the sprite identifier).
- Made a lot of changes on all presets and iconsets for the new features (including moving OnionSkin to Animations panel, which makes more sense).
- Updated the Reference Documentation (scripting documentation is on the way).

### M.U.G.E.N.

- Fixed some crashes while editing commands.
- Fixed some crashes while trying to edit a FightFX Project.
- Fixed Issues showing twice for virtual files like Animations on stages and BGs (stuff from .def).
- Updated syntax highlight for stages, storyboard, system.def and fight.def.
- Implemented complete BGs support (work for Stages, Motif and Storyboard).
- Implemented Controllers panel to edit BG controllers.
- Implemented Stage panel to edit Stage specific options (affecting BG preview).

## Version 3.5.7

- Fixes many crashes on DirectX rendering mode.
- Fix Ultimate preset errors.
- Adds a volume control in Sound editor (for playback).
- Fixed an infinite loop while closing a Project (DirectX rendering mode).
- Fixed random crashes caused by very small textures (like in Winane AI template).
- Fixed many memory leaks.
- Project loaded from script (like Winane AI template) has code navigation list enabled now.
- Added "Zoom / Fit to screen" function to adjust the zoom level to best fit the contents on workspace area (a button is available on toolbars too).
- Implemented zoom support for sounds editor.
- Implemented a tick based timeline (60Hz) on sounds editor.
- Improved waveform rendering (min/max sampling).
- Added waveform color for customization in Options (if you use custom colors you may need to check this anyway).
- Added an optional package that install Archive extensions (RAR/ZIP support). This will allow you to open a Project from these archives using "Project / Open from archive" function. Backups will be made in ZIP archives too instead of sub folders.
- Fixed a crash when applying changes to animation code while playing at same time.
- Fixed relative path handling on archives.
- Fixed modification status in animation text mode window.
- Fixed checkbox icon not showing on menus.
- Fixed program freezing temporarily after opening/switching projects.
- Saving sprite changes in image editor also adjusts axis if canvas size was increased.
- Implemented Save as UTF-8 functions (This saves the current file like regular Save using UTF-8 encoding. Only use this if all characters are being displayed correctly in text editor, otherwise you must select the right encoding first, reload then save as UTF-8).
- Implemented Encoding menu under Edit (This is another way of changing the encoding, instead of clicking in the status bar which is not so obvious).
- Implemented find animation for OnionSkin.

### M.U.G.E.N.

## Version 3.5.6

- Fixed many crashes while closing a project.
- Fixed scripting system (so templates on Project/New menu will work again).
- Made demanding tasks heavily multi-threaded, so you'll see massive performance gains on newer hardware.
- Implemented asyncronous task support (async and auto save implemented).
- Improved cache systems.
- Improved the way files are handled (now you can open multiple files in any editor).
- Fixed frame skipping while navigating between frames using the slider.
- Implemented "Contiguous" option for Paint bucket on Image editor (when disabled paints all pixels with the same color).
- Implemented Magic Wand tool on Image editor.
- Exposed more classes to the scripting system (documentation will be updates later).

### M.U.G.E.N.

- Fixed crashes while closing/resetting .cmd file in the commands editor.
- Fixed Throw Creator (code fixed by O Ilusionista).
- Optimized code parsing (opening and reparse after big changes should be a lot faster now).
- Improved the way it handles non-8bit images on SFF v1.
- Fixed Import sprites from anorther project (second and third palette options not working as intended).

## Version 3.5.4

- Zoom on code editors applied to "Edit animations too".
- Export sprites/sounds crashes if used while in another editor.
- String replace crashes if it changes some comments.
- Random crash while editng code.
- Fixed some bugs in OnionSkin.
- Pasting a RGBA image on Indexed canvas tries to preserve transparency.
- Added option to allow color slot redistribution on Advanced Palette Editor.
- Better renderer selection (Native painting is activated if neither OpenGL 2.0 or DirectX 9 support is available).
- Code list updates itself when some value changes.
- Tree list state is preserved when switching between editors.
- Texture cache is resetted on Native painting mode, saving lots of memory.
- Fixed the zoom on animation editor after closing all tabs.
- Fixed some crashes while editing animations.

### M.U.G.E.N.

- Fixed "Run in engine" when .def is used as CNS too.
- Fixed the crash when switching from definitions editor right after some change was made.
- Implemented the variable usage list/log.

## Version 3.5.3

- Added support to OpenGL ES.
- Some palette functions won't work.
- Advanced search freezes on empty string.
- Added support to native paint engine.
- Crash when removing the line of the code selected in the left panel's list.
- Cursor going to the end of the line while editing animation name.
- Added support to external files by relative path on save as and run in engine functions.
- Implemented an auto update function.
- Crash when commenting the line of the code selected in the left panel's list.
- Optimized some stuff.
- Tools -> Options -> Image -> Center of zoom: unable to set value "Center of workspace".
- Crash trying to open a palette or image on Advanced palettes editor while no Project is open.
- Clicking a selected contact box tries to select another one underneath.
- Remember what you're doing on each project tabs while switching between them.
- Crash after editing an sprite using multiple layers and going to another one.
- Sound cuts off on linux and macOS.
- Fixed zoom on code editors.
- Can't save colorset.

### M.U.G.E.N.

- PalFX, Offset viewer and Throw creator crashes if no sprite and/or animation file is open.
- Crash while choosing an animation in offset viewer or throw creator.
- Improved system screen support.
- CLSN default stops showing after first non-default.
- Inability to add an mugen engine with a name other than "mugen.exe".
- Fixed loop when duration of first or last frame is 1 tick.
- "New Animation with all" in AIR editor has the add dialog pop up twice after switching back from text mode.

## Version 3.5.2

- Fixed the crashe when you attempt to close a project when nothing's open (the button is usually greyed out, but becomes available if you open the options menu and hit apply).
- Fixed copy and paste on sprites.
- Issues list now updates itself after things get fixed.
- Fixed the crash when closing a file after removing a state.
- Fixed the crash while editing code snippets.
- Fixed syntax error underlining comments too.
- Fixed case sensivity on file extensions on Linux by an option to disable native dialogs.
- Fixed panel's background color.
- Fixed DPI Settings on Linux.
- Fixed tabulation on code editor.
- Fixed the problems with unicode file paths.
- Fixed some bugs in the frame interpolation while playing animation.
- Fixed file navigation when the file isn't saved.
- Fixed the crash after changing shortcuts in Options window.
- Fixed the case where "Run in engine" crashes if you click OK faster than it selects one item.
- Improved panel size management.
- Issues list moved to a better place on bottom.
- Advanced search implemented on bottom.
- Engine output added to bottom.
- "Project -> Open single file" implemented.
- Support for closing any file (closes the editor on last file).
- Support for opening any number of files (all editors are tabbed).
- Improved code tree management.
- Welcome windows implemented to easy setup Fighter Factory on first use.

### M.U.G.E.N.

- Fixed M.U.G.E.N. setups defined in the Options menu don't appear to get written to a saved config file.
- Fixed SFF handling on "non-char" projects.
- SFF save function not blocking anymore.
- Syntax fixed for fonts.
- Added the empty template for new projects.
- Implemented the Lazy syntax fix as custom search & replace.
- Added support for nil expressions (-1).

## Version 3.5.1

- Added Windows XP support on the x86 version.
- Crash when selecting an item in the left, then switching to another editor.
- Crash with backup on load activated.
- Many crashes on Sprites and palettes editor (includes all sort of bugs like Import, Insert, New file, almost all functions).
- Errors window not jumping to the right tab.
- Crash after closing tabs and switch to Animations editor.
- Window size goes outside screen boundaries in low resolution screens.
- Can't save sprites on thumbnails panel.
- Add sprites by file name using the same group for all images.
- Added support for navigation using organizer.
- Fixed a bug when black colors get painted in some part of 24bit images.
- Optimized the wave rendering.
- Fixed all possible cases that can lead to crash after closing tabs and switching to another editor.
- Fixed the bug that files get deleted when opened from engine sub directories and tested in the same installation.
- By fixing the previous bug, added support to run a project in-place.
- Added more options for conflict resolution on Import from another project.
- Unlocked palette organizer.
- Added the 'Detect group/index from file name' option in Palettes and Sounds editors too.
- When opening 24/32bit images in the Advanced palettes editor, it asks if you want an optimized palette for it.

### M.U.G.E.N.

- Fixed a bug when animation code gets reparsed, CLSNs before the first animation (if they exists) are set to the first frame.
- Crash after closing all tabs in Cns/St editor.
- Error on [State xyz]
- Not loading def that has point character before extension.
- Some files not being copied to ffs_x temporary folder.

## Version 3.5.0

- Split on modules with support for multiple engines.
- Project file explorer (will be essential for full game development).
- OpenGL is mandatory, but a software rasterizer alternative is available too.
- Updated to latest version of Qt framework.
- Hybrid parser/syntax highlighter (smarter, faster and more reliable).
- Multi-threaded (long tasks are split across all available CPU cores).
- Import from another project can import from any supported engine too, and has collision resolution.
- Backup function restore files by replacing them and reloading, instead of just loading the backup on memory without changes in the original files.
- 'Project -> Save' improved. Saves all modified files and call save as for those who lives on memory only as expected, on all projects of the same 'group'.
- 'Project -> Save as' improved. Saves all files of the current 'project group' to a new folder (copy them in its current state to a new folder). Eg.: open a character, make a copy of it on another folder to create a new one based on the first. We can even make a full copy of a default engine installation to make a full game.
- 'Project -> Run in engine' improved. All bugs solved, faster than before, and on a full game 'project group' runs on the game itself.
- Undo, redo, cut, copy, paste, find and replace available in all editors. You can even undo complex things like changes on sprites.
- Zoom available on code editor too.
- Built-in image editor inside sprites editor.
- Import replace sprites with same group/number.
- Ability to resize one or more sprites outside image editor (you can scale all sprites with hit box adjustment/scaling in one batch).
- Default background is set based on localcoord.
- Contact Box drawing always use the same type as current ones (default or not), or non-default if there's none.
- Better support for frame interpolation, including timeline controls.
- Onion Skin on animations changed from sprite to animation/frame.
- Complete support for high DPI displays.
- Palette generation and 'Adapt image to palette' with better support for alpha channel (can produce anti-aliased 8bit sprites).
- Animated GIF generation works even with non-8bit sprites (adapts to 8bit).
- Better interface preset system (adjusts to available space and scales nicely).
- Drag and drop support on the Organizer.
- Sound file viewer on sounds editor (basic editing functionality will be added over time).
- Added fold all/unfold all for code editors.
- Improved 'Export to HTML function' (tries to detect AI commands to uncheck them).

### M.U.G.E.N.

- Parser groups allowed code by file type.
- Added A1 transparency shortcut in Animations editor.
- Added full support for frame interpolation.
- Improved offset viewer and throw creator.
- Fixed PCX decoding (solves some issues on portraits in SFF v1).