Author: Engima
Author Website:

Version: 1.06

Short description: A script editor for SQF scripts.

Date: 2020-11-14 13:08

Comments: (2)


TypeSqf Editor


The TypeSqf editor is a developer's tool for scripting in Arma 3. Besides using it to write SQF code with syntax highlighting and auto completion, it analyzes your syntax in real time, alerting you if something is erroneous or suspicious.

Object Oriented Scripting
The editor comes with an optional extended functionality for SQF syntax, called SQX. In a convenient way, and with as many similarities to SQF as possible, SQX enables object oriented scripting (classes) and adds type handling. Classes may contain a constructor, fields, properties and methods. It works because the .sqx files are compiled into corresponding .sqf files before executed by Arma 3.

The CPack Service
The CPack Service is a service for sharing content with other script editors as well as to organize your own code. In short a CPack is a content bundle (a .zip file) that you upload and label with a name and a version number. Then they are very easy for anyone to download and include in any mission.

The TypeSqf Editor is a script editor for Arma 3. The most important features are:
• Syntax Highlighting
• Syntax Checking
• Auto Completion
• Object Oriented Scripting (SQX Syntax)
• Share And Download Community Made Content (The CPack Service)

Installation / Usage:
Unzip the four files and put them anywhere on your Windows PC.
2. Execute the file TypeSqf.exe.

Armaholic note:
.exe files can harm your PC! Before running this you should make sure you understand the risks!
Armaholic and its staff can never be held responsible when this file causes any damages, disruption in services or anything else in any way! Downloading and installing this file is totally at your own risk!
We have run anti-virus tools on the included files and found no issues but this is no guarantee!

Media: has its own Youtube channel where we will cover the Community made releases.
Subscribe to the Youtube channel

Feedback and error reports:
I will gladly receive any feedback. Please tell me good things, bad things, errors, whishes etc. Please use the forum thread linked below for comments, but email all error reports to .

Changelog: (27-10-2020 - updated as it happens, displayed in news once every week)
-It is now possible to rename files and folders in the project tree view.
-Fixed: Addressed some stability issues (thanks Josef!).
-Minor fixes and improvements.

-Added support for all script commands up until Arma 3 version 2.00 (ScriptCommands.xml).
-Fixed: General stability issues in CPack manager.
-Fixed: Settings file not updated with new project when a new project is opened.
-SQX: Updated the SQF/SQX analyzer and compiler to version 1.06.
-SQX: Fixed: Analyze of multiple class inheritence levels sometimes resulted in faulty error messages.

-Improved the syntax highlighting.
-Fixed: Editor crasching when analyzing files that do not belong to current project.
-Fixed: Intellisense sometimes contained multiple identical private variables.
-SQX: Fixed: Analyzer does not forget about file content in files that are being removed.

-Added menu item "Rebuild project" to perform a full reset, reanalyze and build of the project.
-Added support for all script commands up until Arma 3 version 1.98 (into ScriptCommands.xml).
-Made the project root node expanded from start when opening a project.
-General improvements.
-SQF: Now possible to use "#" instead of "select" when selecting from a list (allowed in Arma 3 since version 1.82).
-SQF: Now possible to have empty string literals in params.
-SQX: Refactor of SQF/SQX analyzer and compiler (speeded up the build times a lot).
-SQX: Now possible to declare typed variables on a single assignement line (private Scalar _number = 0).
-SQX: Now possible to declare typed variables using new SQX keyword 'var' (var _number = 0).

-Added intellisense when using keyword "override" in a sub class.
-Updated analyzer and SQX compiler to version 1.03.
-SQX: Fixed: Strange behavior regarding negation symbol (e.g. "return -1;").
-SQX: Fixed: No warning when sub class tries to override a method that does not exist in base class.
-Fixed: Help menu link to SQX forum not working.

-Added support for all script commands up until Arma 3 version 1.96 (into ScriptCommands.xml).
-Added status bar that shows replaced occurrences on the replace dialog (thanks Josef!).

-Updated analyzer and SQX compiler to version 1.01.
-Fixed: Crasch when performing search and replace in text selection (thanks Josef!)
-SQX: Added checks for when a sub class is missing call to explicit base constructor.

Added search and replace functionality. (Big thanks to Josef!)

-Added support for all script commands up until Arma 3 version 1.96 (into ScriptCommands.xml).
-Updated dependency to .NET to 4.6.2.

-Separated the analyzer window and the SQX build result window into two tabs in the editor (big thanks to Josef!).
-Fixed: protected methods were not possible to collapse and expand.
-Minor improvements and fixes.
-SQX: Fixed serious issue when referencing properties in class inheritance with more than two levels.
-SQX: Minor improvements and fixes.

-Added feature to create and deploy a PBO file directly from the TypeSqf editor to Arma's Missions or MPMissions (or a custom) folder.
-Added support for all script commands up until Arma 3 version 1.94 (into ScriptCommands.xml).
-Updated the file templates so that all methods now include parameters in the method header.
-Minor fixes and improvements.
-SQX: Added true inheritance.
-SQX: Class properties can now be protected (and not only public like earlier), and have a protected setter.
-SQX: Class methods can now be protected (and not only public or private like earlier).
-SQX: Added the "return" statement.
-SQX: Extended the method log tool to include return values (and not only calls like earlier).
-SQX: Updated color themes - Go to Tools and reset the color themes for the changes to take effect.
-SQX: Minor fixes and improvements.

Minor GUI fixes.
SQX: Added settings option to enable logging of all method calls in the RPT log file.
SQX: Made it possible to reference private setters on private static properties from within class.

-Minor GUI fixes.
-SQX: Fixed: Unwanted semicolons sometimes appeared during compilation.
-SQX: Fixed: Sometimes the dot (.) had not highest precedence during compile.
-SQX: Various fixes and improvements.

-Fixed: Parameters declared with "params" no longer generate a warning of not being used.
-Minor fixes and improvements.
-SQX: Made it possible to compile the current open file instead of the whole project.
-SQX: Interface method declarations now require complete parameter list, e.g. "method String GetName("_unit" as Object);"
-SQX: Class method declarations now allow alternative syntax for explicitly specified parameters, e.g. "public method Scalar GetAge("_unit" as Object) { ... };"
-SQX: Added parameter check in calls to interface methods.

-SQX: Fixed: Interfaces returning custom types not recognized as implemented in interfaced classes.

-SQX: Fixed: Type names no longer case sensitive.
-SQX: Fixed: Parameters (params) with default value got wrong type.
-Added all script commands for Arma 3 version 1.84 to ScriptCommands.xml.

Version 0.61
-SQX: Added parameter check in calls to constructors (if first command in constructor is "params")

Added parameter check in calls to functions (if first command in function is "params").
SQX: Added parameter check in calls to methods (if first command in method is "params").
SQX: Added support for static fields in classes.
SQX: Added support for static properties in classes.
SQX: Fixed: Some Operators compiled incorrectly (e.g. the lookup operators >> and /).
SQX: Fixed: Compiler adds faulty semicolons at end of array elements.

-Added all script commands in Arma 3 version 1.72.
-It is now possible for CPack authors to add a line to the top of description.ext.
-Fixed: Crasch if the CPack installer tries to write to a file that is open by another process.
-Fixed: Stability issues.
-SQX: Analyzer improvements

Version 0.58
-Project file is now saved automatically when starting a new project or opening an existing mission.
-Added video "TypeSqf Features Part 4 - The CPack Console".
-Fixed: No code completion on lines with the alternative variable declaration syntax.
-SQX: Fixed: Compiled files (.sqx.sqf) is not removed when a CPack is removed.
-SQX: Analyzer improvements.
-SQX: Fixed: Compiler sometimes not starting.

-Added menu item "Videos" with links to tutorial videos.
-Analyzer improvements.
-SQX: Analyzer improvements.

-Enabled support for alternative variable declaration syntax. Like { private _myVar = 10; }.
-Analyzer improvements.
-SQX: Syntax Highlighting improvements.
-SQX: Analyzer improvements

-New and better installer (uninstall the old version before installing this).
-Variables declared in mission.sqm now included in editor (mission.sqm must not be binarized).
-Items in the file explorer now gets selected on right click.
-SQX: Minor analyzer improvements.

-Added all script commands in Arma 3 version 1.72.
-Revealed SQX content (it was previously "beta content").
-SQX: Added enums.
-SQX: Added code completion for static methods.
-SQX: Added code completion for custom types (classes and interfaces).
-SQX: Minor fixes in the analyzer.

-Fixed: Error when updating CPacks and files need to be overwritten.
-Fixed: Improved checks for declared, non declared, used and not used variables.
-SQX: Added static methods.
-SQX: Made it possible to specify type on iteration variable in a forEach statement. Like "{ hint _x } forEach as String;".
-SQX: Made it possible to specify type on iteration variable in a count statement. Like "_count = { _x.IsActive } count as MyClass;".
-SQX: Fixed: Analyzer do not recognize interface types for method return values.
-SQX: Fixed: Minor issues in analyzer.

-Logical operators 'and' and 'or' now supports alternative syntax with signature "Boolean and Code".
-Fixed: Files installed by CPack dependencies are not added to project file explorer.
-Fixed: Error when installing CPacks with dependencies to same package but different version.
-Fixed: Minor issues and improvements in analyzer.
-SQX: Added interfaces.
-SQX: Changed name of data type Number to Scalar (the same name as in SQF).
-SQX: Added interface templates (you will need to reset templates for them to regenerate).

-Added all script commands in Arma 3 version 1.70.
-Analyzer can now handle commands following a preprocessor #include on the first line.
-SQX: Fixed: Minor bugs in the SQX analyzer.

-Added all script commands in Arma 3 version 1.68.
-Significant CPU and memory performance optimizations.
-Change the default value for setting "Enable foldigs" to false (it may cause lags - use it if it is worth it).
-Added syntax highlighting for .sqm files.
-Analyzer improvements and bugfixes.
-SQX: Fixed: Analyzer reporting all kinds of errors if compiled file (.sqx.sqf) is added to the project.

-Added syntax highlighting for .ext and .cpp files.
-Separated syntax highlighting for .sqx and .sqf files.
-Fixed: Missing Warnings about unsaved files when closing separate tabs.
-Fixed: Stability issues (CTD when saving files without having a project).
-SQX: Fixed: Keyword 'classNull' compiled incorrectly

-Added possibility to change tab settings (community wish-list).
-Added warning about unsaved files on application exit.
-Settings, Templates and Themes are now located in the Application Data folder ({user}\AppData\Roaming).
-Fixed: The file template "Working Tank Class" did not work.
-Fixed: Stability issues.
-SQX: Fixed: Some bugs in the SQX compiler.

-Added color theme "Default Dark" (community wish-list).
-Added possibility to customize color themes (community with-list).
-Added possibility to add predefined and customized variables to file templates (community wish-list).
-Added template for Description.ext.
-Fixed: When closing a tab, the previously opened tab should be activated.
-Fixed: Stability issues.
-SQX: Compiler fixes and improvements.

-Files associated with TypeSqf can now be opened in TypeSqf when double clicked in the File Explorer (community wish-list).
-Checked all script commands and corrected erroneous signatures for a lot of them.
-Added description, syntax, parameter names and parameter types in auto completion for all script commands (thanks to Josef).
-All script commands with signatures and description are now in an XML file (ScriptCommands.xml) and read when editor starts.
-Fixed: Files created by TypeSqf sometimes end up in erroneous locations.
-Fixed: Stability issues.
-SQX: Compile errors and warnings are now being displayed during compile.
-SQX: Fixed: A lot of bugs in the compiler.
-SQX: Fixed: Not allowed to "spawn" methods.

-Any type of text formatted file may now be opened in the TypeSqf Editor (but only .sqf and .sqx files are being syntax checked).
-Added automatic foldings for functions.
-Added manual foldings. Write "// #region [SomeName]" on start line and "// #endregion" on end line (like in SQX but in line comment).
-Added context menu options "Expand Sub nodes" and "Collapse Sub Nodes" in project view (community wish-list).
-Added menu option File->Close project (community wish-list).
-Fixed: Menu item File->Exit always disabled.
-Fixed: Functions and classes declared in other files not recognized on project startup (broke in 0.44).
-SQX: Added automatic foldings for namespaces, classes, constructors and methods.
-SQX: Added manual foldings. Write "#region [RegionName]" on start line and "#endregion" on end line

-Added customizable code template files (community wish-list).
-Added possibility to open files using drag and drop from file explorer (community wish-list).
-Minor improvements in code analyzer.
-Minor GUI fixes.
-Fixed: Stability issues.
-Fixed: File tab sometimes not opening when double clicking a node in the project tree.
-Fixed: Files that do not belong to project are analyzed as belonging to project.
-SQX: Fixed: Syntax Highlighting failed if identifiers contains underscores.
-SQX: Fixed: Types for null literals (objNull, grpNull, ...) were not handled correctly by the analyzer.

-Added possibility to mark a CPack as "Beta version", which allows a way for testing CPacks before publishing.
-Added parameter -beta in CPack Console so that users can install unpublished CPacks if they want to.
-Added parameter -version in CPack Console for command "update" (only existed for command Install).
-Added command "Exit" to CPack Console.
-Fixed: Stability issues.
-Fixed: CPack dependencies are no longer updated to latest version by default.
-Fixed: TypeSqf hangs when CPack Console is open and switching programs in Windows.
-SQX: Added code completion to variable _self.
-SQX: Improved Code Analyzer's error reporting.

-Project file structure is now updated when installing, updating and removing CPacks.
-Fixed: Stability issues - crasches when handling project items in the file sturcture.

-Stability improvements.
-Added more information about script commands in auto completion.
-Functions starting with "BIS_fnc_" no longer generates any warnings.
-SQX: Fixed: Compiler output line numbers sometimes did not match original user input.
-SQX: Added menu alternative Build->Clean.
-SQX: Improved syntax highlighting for class members.

-Code analyzer for current open file now reacts properly to changes in the project tree.
-Fixed: Stability issues.
-SQX: Added support for namespaces.
-SQX: Improved color scheme for syntax highlighting.
-SQX: Improved auto completion.

-Improved 'Find in all files'.
-Fixed: Stability issues.
-Fixed: Command 'params' could not have default values.
-SQX: Methods can now be private.
-SQX: Properties can now have private setters.
-SQX: Methods and properties can now have explicit return types.
-SQX: Added link to the SQX API Reference.
-SQX: Made it possible to add classNull as default value to variables of custom types declared with command 'params'.

-Added Options dialog (Tools->Options...).
-Added possibility to enable or disable auto completion.
-Added possibility to enable or disable Beta content (type handling and classes for object oriented scripting).
-Project view is now initially empty - preventing crasch when adding a file to a non project.
-Added extended syntax (.sqx-files) that allow for object oriented scripting.
-Added all script commands until Arma 3 version 1.66.
-Added missing script command 'append'.

- Fixed: File explorer sometimes mixing up files.
- Fixed: Auto completion does not recognize private variables declared in script command params.
- Fixed: Auto completion active in comments.

- Added auto completion.
- Fixed: Script command params did not declare variables.

- Added search option "Find in all files".

- Added all script commands until Arma 3 version 1.64.

Forum topic:
- BI forums

Enable javascript to be able to download from Armaholic please!

Tags: Editor,   Program,   Script,   Syntax,   Tools