Arma 3 Dialog Creator

v0.1.0

Lay out display controls visually and export config-ready HPP.

Donate with PayPal

What do you want to make?

Choose the authoring mode first. Dialog UI builds interactive Arma displays with buttons, lists, edits, and panels. HUD / Turret Optics builds sight and overlay resources focused on reticles, status cues, range information, and sensor state.

Canvas

No control selected.

100%

Quick Start

The tool separates layout from behavior. The browser creates the HPP display/control structure; your addon SQF still owns population, validation, multiplayer authority, and gameplay changes.

  1. Choose Dialog UI when the player clicks, types, selects, or confirms something. Choose HUD / Turret Optics when the UI is mostly read-only overlay information.
  2. Set Class, IDD, Namespace key, and IDC start first. These names and numbers are the contract your SQF will use later.
  3. Use the Workflow dropdown when you want a known pattern with sensible defaults. Use the palette when you already know the exact control type.
  4. Place controls visually, then use the inspector for exact coordinates, IDC values, colors, actions, and text/texture paths.
  5. Export the HPP, include it from your addon config, register any functions it calls, and test the result in game.

Tutorial: Background Image

What it means: an RscPicture draws a texture. A static picture normally belongs in controlsBackground with idc = -1 because SQF does not need to read it later.

  1. Select Dialog UI so the export uses a dialog/display structure rather than HUD overlay defaults.
  2. Choose Create Background Image. The wizard creates an RscPicture and marks it as background.
  3. Enter the Arma texture path, for example \myAddon\ui\panel_ca.paa. This is the path the game reads after the addon is packed.
  4. Use Choose preview only for local PNG/JPG/TGA visual checking. The preview does not replace the exported texture path.
  5. Keep Background control enabled unless this picture must be changed at runtime.

Why: static art behind buttons and text should not consume positive IDC values. Keeping it in controlsBackground also makes layer order easier to reason about.

Tutorial: Apply / Cancel Dialog

What it means: the HPP defines the controls; the apply/cancel behavior belongs in SQF. Button action strings should call small registered functions instead of containing large inline scripts.

  1. Create a panel layout first. This gives the dialog a predictable header/body/footer structure.
  2. Add input controls such as edit boxes, listboxes, combos, and checkboxes. These need positive IDC values if SQF will read them.
  3. Add the apply/reset/cancel row. These buttons provide clear commit paths for the user.
  4. Route each button to a function, for example ['apply', _this] call TAG_fnc_dialogAction.
  5. In that function, read every control, validate the values, then apply or discard changes.

Why: a dialog should not mutate gameplay state while the user is still editing fields. Apply is the controlled commit point; Cancel is the safe escape path.

Tutorial: Dropdown With Options

What it means: a dropdown displays labels to the player, but SQF should work from stable data keys. Visible text can change; stored data should not.

  1. Choose Create Dropdown from the workflow menu.
  2. Enter options one per line. Use Display Text=stableData when the user-facing text should differ from the value SQF reads.
  3. Give the combo a positive IDC so the lifecycle SQF can find it with displayCtrl.
  4. Populate rows on onLoad using the generated notes.
  5. When the user applies the dialog, read the selected row data rather than the visible label.

Why: stable data prevents broken behavior when labels are renamed, translated, shortened, or reformatted for display.

Tutorial: Turret Optics HUD

What it means: HUD/optics controls are usually display-only overlays. They need predictable placement and readability over changing camera imagery more than click behavior.

  1. Select HUD / Turret Optics from the landing page.
  2. Add a reticle first because it anchors the rest of the overlay.
  3. Add range, heading, weapon, sensor, and lock-status elements around the reticle.
  4. Use transparent backgrounds unless readability requires a backing plate.
  5. Export as an RscTitles-style resource and test in the target vehicle/turret camera.

Why: optics are viewed over terrain, sky, thermal, and night imagery. Testing only on a blank editor canvas is not enough.

Before Packing

  • Move generated controls into the intended addon HPP include.
  • Confirm base classes exist in the including config.
  • Keep positive IDC values only for controls used by SQF.
  • Register lifecycle functions through CfgFunctions before calling them from events.

Runtime

  • Check load/unload hooks publish and clear uiNamespace display references.
  • Validate MP-sensitive button actions outside the UI layer.
  • Test 16:9, 16:10, 21:9, and a narrow windowed layout.
  • Run static brace/semicolon and duplicate IDC checks before packing.