Camera and input functions expose engine state, but input ownership is shared with chat, menus, aiming systems and overlays.

Active camera

Historical APIs use BigWorld.camera() to read the active camera and BigWorld.camera(cameraObject) to replace it. Reading is usually safer than replacing.

Camera space and projection

cameraSpaceID

Historically gets or sets the space rendered by the camera. Verify whether the current client exposes it as a function, property or wrapper.

projection()

Provides projection state in older references. Use the current GUI or camera utilities when they already provide screen conversion.

Matrix providers

Camera matrices and providers can support world-to-screen logic, attachment and tracking, but remain tied to native lifetime.

Keyboard state

BigWorld.isKeyDown(key), keyToString and stringToKey appear in the historical client API. Polling key state does not tell you whether the game currently wants that key for chat or another modal UI.

def should_handle_hotkey():
    if is_chat_active() or is_modal_view_open():
        return False
    return BigWorld.isKeyDown(HOTKEY)

Cursor ownership

Older references include setCursor, dcursor and event-sink functions. Modern WoT UI frameworks often wrap cursor visibility and input capture. Prefer their ownership APIs rather than directly forcing engine cursor state.

Input rules

  • Do not trigger hotkeys while chat or text input is active.
  • Do not assume the current camera remains the same after a mode transition.
  • Release cursor and input ownership when an overlay closes.
  • A transparent fullscreen view can still block mouse input.
  • Use lifecycle events rather than continuously polling everything each frame.