DAI 3.3 // CLIENT AUTHORING

Input, Mouse, Overlays & Data Screens

DAI 3.3 exposes remappable datapack keybinds, raw keyboard state, mouse state, data-driven screens, cursor capture and interactive overlay geometry directly to JSON.

Datapack-authored keybinds

Create data/<namespace>/dai_keybinds/ability.json:

{
  "display_name": "Ability Key",
  "category": "gameplay",
  "default_key": "key.keyboard.g"
}

Read it with keybind_held, keybind_pressed, keybind_released and keybind_exists. Use raw_key_* only when a named/remappable control is intentionally unnecessary.

Mouse state and cursor ownership

mouse_x/y, mouse_delta_x/y and mouse_button_held/pressed/released expose live GUI input. set_cursor_released explicitly hands mouse control between gameplay and authored UI. close_screen performs normal screen cleanup and recaptures gameplay input.

Data-driven screens

Files in data/<namespace>/dai_screens/*.json create complete client screens. Open one with open_data_screen or screen_open, using the namespaced screen ID in action.

{
  "title":"Field Console",
  "width":320,
  "height":220,
  "close_on_escape":true,
  "pause_game":false,
  "widgets":[
    {"type":"label","id":"status","x":16,"y":16,"label":"ONLINE"},
    {"type":"progress","id":"power","x":16,"y":44,"width":180,"height":12,"state":"power","min":0,"max":100},
    {"type":"button","id":"resume","x":16,"y":176,"width":120,"height":20,"label":"RESUME","action":"my_pack:resume"}
  ]
}

Widget families include labels, buttons, text/number inputs, toggles, selectors/tabs/radio, sliders, panels/containers, progress bars and item slots.

Interactive overlays

3.3 adds overlay_text, overlay_button, live position/size/z mutation, interaction toggles, transform locking, screen clamping and overlay_repel_mouse. Conditions can query overlay existence, geometry, transform lock and mouse hit/distance.

In-game Creator actions

open_dai_creator and open_automation_creator open the 3.3 in-game authoring workspaces when enabled by client config. open_dai_menu can open the standard DAI menu shell directly without requiring an existing menu.