Skip to content

API limitations

  • No mouse move / key injection from scripts. Movement can be steered per tick from on_create_move (see CreateMove), including queued jumps and prioritized visible/silent aim.
  • Use on_event plus aqua.events.listen for game events (see game events). Player fields include isLocalPlayer for local filtering; separate local-event callbacks are intentionally omitted.
  • Sound files resolve against the script folder first, then the shared snd folder; there is no way to enumerate your OWN folder (aqua.sound.list only sees the shared one)
  • No sandboxed script-folder file I/O API yet. Note this does not mean scripts cannot read files: luaL_openlibs runs and the sandbox only strips ffi/require, so io and os are available with no FFI needed. What is missing is a path-checked helper.
  • No auto UI for Scripts.<name>.* config keys
  • Drawing is 2D only: shapes, text and images (no 3D models or custom shaders)
  • Inventory pictures load in the background (may miss a few frames) and share space with the LOADOUT tab; the least recently used are dropped first
  • Schema writes are not exposed (read-only dynamic fields)