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.