Canvas
No control selected.
Lay out display controls visually and export config-ready HPP.
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.
No control selected.
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.
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.
RscPicture and marks it as background.\myAddon\ui\panel_ca.paa. This is the path the game reads after the addon is packed.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.
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.
['apply', _this] call TAG_fnc_dialogAction.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.
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.
Display Text=stableData when the user-facing text should differ from the value SQF reads.displayCtrl.onLoad using the generated notes.Why: stable data prevents broken behavior when labels are renamed, translated, shortened, or reformatted for display.
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.
Why: optics are viewed over terrain, sky, thermal, and night imagery. Testing only on a blank editor canvas is not enough.