{"name":"CT EXTENSION","title":"CT EXTENSION","type":"topic","url":"https://community.bistudio.com/wiki/CT_EXTENSION","revid":379124,"updated":"2026-10-09T12:45:53Z","aliases":[],"markdown":"Arma 3 v2.20\n\n### Introduction\n\n> [!WARNING]\n> This is a experimental feature currently available for testing on Development-Branch. It is not yet decided whether this will become available in Stable branch. Please provide Feedback on the [Arma Discord](https://discord.gg/arma)'s #dev_rc_branch channel.\n\nExtension controls are controlled and rendered by Extensions. The constant *type* property for these controls usually is `CT_EXTENSION`.\nAll inputs to the control are forwarded to the Extension. And the Extension will render the UI into a prepared texture that will then be displayed.\n\n#### Related commands & functions\n\n- Commands: General\n- Commands: UI Eventhandlers\n\n#### Related User Interface Eventhandlers\n\n- Events: General\n\n### Alphabetical Order\n\n> [!NOTE]\n> TokenNames common to most controls, such as x, y, w, h, text, idc... can be found **here**.\n\n> [!WARNING]\n> Not all of the listed attributes might have an effect nor might the list be complete. All attributes were gathered with [this](https://github.com/7erra/BIKI.VR/blob/master/fnc/generateCTPage.sqf) config crawler.\n\n```cpp\n#define CT_EXTENSION 107\n```\n\n#### C\n\n##### colorBackground\n\n**Type:** Array\n\n**Description:** Color of the background (The backing texture gets cleared to this color before the Extension's OnDraw). If the UI is not created (Extension not found, or doesn't offer the uiClass), this color fills the whole control.\n\n```cpp\ncolorBackground[] = {0,0,0,0};\n```\n\n#### E\n\n##### extension\n\n**Type:** String\n\n**Description:** Name of the Extension that provides this UI Control.\n\n```cpp\nextension = \"RVExtensionTest\";\n```\n\n#### T\n\n##### tileH\n\n**Type:** Number, String\n\n**Description:** Height of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the Eden Editor. Uses GUI Coordinates.\n\nNumber example:\n\n```cpp\ntileH = 1;\n```\n\nString example:\n\n```cpp\ntileH = \"4 / (32 * pixelH)\";\n```\n\n##### tileW\n\n**Type:** Number, String\n\n**Description:** Width of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the Eden Editor. Uses GUI Coordinates.\n\nNumber example:\n\n```cpp\ntileW = 1;\n```\n\nString example:\n\n```cpp\ntileW = \"8 / (32 * pixelW)\";\n```\n\n#### U\n\n##### uiClass\n\n**Type:** String\n\n**Description:** \"Classname\" of the UI, gets passed to the Extension, the Extension has to interpret it and choose what UI to display (If the Extension offers multiple UI Elements).\n\n```cpp\nuiClass = \"TestUI_123\";\n```\n\n### Default Classes\n\n> [!NOTE]\n> **Arma 3:** **AddOns:** Classes need to be initialised first with `class SomeClass;`\n>\n> ---\n>\n> **Missions:** Since Arma 3 v2.02 one can use `import SomeClass;` to initialise a class (see the import keyword).\n>\n> In older versions, use `\"Default\" call BIS_fnc_exportGUIBaseClasses;` and paste the result into the description.ext.\n\n#### RscExtension\n\nBaseline RscExtension example\n\n```cpp\nclass RscExtension\n{\n    type = CT_EXTENSION; // 107\n    idc = -1;\n    deletable = 0;\n    style = 0;\n    colorBackground[] = {0,0,0,0};\n    x = 0;\n    y = 0;\n    w = 0.3;\n    h = 0.3;\n    extension = \"ExtensionNameHere\";\n    uiClass = \"ClassNameHere\";\n};\n```\n\n#### RscWebBrowser\n\nWeb Browser sample, utilizing https://github.com/arma3/RVExtensionImGui/blob/main/dllmain.cpp#L76\n\n```cpp\nclass RscExtension\n{\n    type = CT_EXTENSION; // 107\n    idc = -1;\n    deletable = 0;\n    style = 0;\n    colorBackground[] = {0,0,0,0};\n    x = 0;\n    y = 0;\n    w = 0.3;\n    h = 0.3;\n    extension = \"RVExtensionTest\";\n    uiClass = \"webbrowser_https://arma3.com/\";\n};\n```","sections":[{"heading":null,"level":1,"markdown":"Arma 3 v2.20"},{"heading":"Introduction","level":3,"markdown":"> [!WARNING]\n> This is a experimental feature currently available for testing on Development-Branch. It is not yet decided whether this will become available in Stable branch. Please provide Feedback on the [Arma Discord](https://discord.gg/arma)'s #dev_rc_branch channel.\n\nExtension controls are controlled and rendered by Extensions. The constant *type* property for these controls usually is `CT_EXTENSION`.\nAll inputs to the control are forwarded to the Extension. And the Extension will render the UI into a prepared texture that will then be displayed."},{"heading":"Related commands & functions","level":4,"markdown":"- Commands: General\n- Commands: UI Eventhandlers"},{"heading":"Related User Interface Eventhandlers","level":4,"markdown":"- Events: General"},{"heading":"Alphabetical Order","level":3,"markdown":"> [!NOTE]\n> TokenNames common to most controls, such as x, y, w, h, text, idc... can be found **here**.\n\n> [!WARNING]\n> Not all of the listed attributes might have an effect nor might the list be complete. All attributes were gathered with [this](https://github.com/7erra/BIKI.VR/blob/master/fnc/generateCTPage.sqf) config crawler.\n\n```cpp\n#define CT_EXTENSION 107\n```"},{"heading":"C","level":4,"markdown":""},{"heading":"colorBackground","level":5,"markdown":"**Type:** Array\n\n**Description:** Color of the background (The backing texture gets cleared to this color before the Extension's OnDraw). If the UI is not created (Extension not found, or doesn't offer the uiClass), this color fills the whole control.\n\n```cpp\ncolorBackground[] = {0,0,0,0};\n```"},{"heading":"E","level":4,"markdown":""},{"heading":"extension","level":5,"markdown":"**Type:** String\n\n**Description:** Name of the Extension that provides this UI Control.\n\n```cpp\nextension = \"RVExtensionTest\";\n```"},{"heading":"T","level":4,"markdown":""},{"heading":"tileH","level":5,"markdown":"**Type:** Number, String\n\n**Description:** Height of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the Eden Editor. Uses GUI Coordinates.\n\nNumber example:\n\n```cpp\ntileH = 1;\n```\n\nString example:\n\n```cpp\ntileH = \"4 / (32 * pixelH)\";\n```"},{"heading":"tileW","level":5,"markdown":"**Type:** Number, String\n\n**Description:** Width of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the Eden Editor. Uses GUI Coordinates.\n\nNumber example:\n\n```cpp\ntileW = 1;\n```\n\nString example:\n\n```cpp\ntileW = \"8 / (32 * pixelW)\";\n```"},{"heading":"U","level":4,"markdown":""},{"heading":"uiClass","level":5,"markdown":"**Type:** String\n\n**Description:** \"Classname\" of the UI, gets passed to the Extension, the Extension has to interpret it and choose what UI to display (If the Extension offers multiple UI Elements).\n\n```cpp\nuiClass = \"TestUI_123\";\n```"},{"heading":"Default Classes","level":3,"markdown":"> [!NOTE]\n> **Arma 3:** **AddOns:** Classes need to be initialised first with `class SomeClass;`\n>\n> ---\n>\n> **Missions:** Since Arma 3 v2.02 one can use `import SomeClass;` to initialise a class (see the import keyword).\n>\n> In older versions, use `\"Default\" call BIS_fnc_exportGUIBaseClasses;` and paste the result into the description.ext."},{"heading":"RscExtension","level":4,"markdown":"Baseline RscExtension example\n\n```cpp\nclass RscExtension\n{\n    type = CT_EXTENSION; // 107\n    idc = -1;\n    deletable = 0;\n    style = 0;\n    colorBackground[] = {0,0,0,0};\n    x = 0;\n    y = 0;\n    w = 0.3;\n    h = 0.3;\n    extension = \"ExtensionNameHere\";\n    uiClass = \"ClassNameHere\";\n};\n```"},{"heading":"RscWebBrowser","level":4,"markdown":"Web Browser sample, utilizing https://github.com/arma3/RVExtensionImGui/blob/main/dllmain.cpp#L76\n\n```cpp\nclass RscExtension\n{\n    type = CT_EXTENSION; // 107\n    idc = -1;\n    deletable = 0;\n    style = 0;\n    colorBackground[] = {0,0,0,0};\n    x = 0;\n    y = 0;\n    w = 0.3;\n    h = 0.3;\n    extension = \"RVExtensionTest\";\n    uiClass = \"webbrowser_https://arma3.com/\";\n};\n```"}],"categories":["Control Types","Introduced with Arma 3 version 2.20"],"groups":["GUI"]}