Skip to content
ppkantorski edited this page Apr 22, 2026 · 37 revisions

Ultrahand Overlay Wiki

Ultrahand Overlay is a fully scriptable overlay menu ecosystem for the Nintendo Switch. Running as a system overlay accessible via hotkey from any game, it provides a powerful INI-based command language for managing files, configurations, and system settings — without ever suspending your game.

Ultrahand is a full drop-in replacement for Tesla Menu, so every existing Tesla overlay (.ovl) works without modification.


Getting Started

If you are new to Ultrahand, start here:

  1. Install Ultrahand — Download the latest sdout.zip from the Releases page and extract it to the root of your SD card. This is the easiest way to get up and running.

  2. Open the overlay — Launch any game, then press ZL+ZR+DDOWN (or your configured combo) to bring up Ultrahand. You can also swipe inward ~1.5 cm from the left edge of the screen.

  3. Browse overlays and packages — Use the D-Pad left/right to switch between the Overlays and Packages tabs. Press A to launch an overlay or run a package command.

  4. Write your own packages — Place a package.ini file in /switch/.packages/<YOUR_PACKAGE_NAME>/. See the Package Reference for the full package format.


Wiki Pages

Everything you need to create and configure Ultrahand packages:

  • Package file structure and folder layout
  • Package header fields (title, version, color, etc.)
  • Tab and page definitions
  • Boot and exit hooks (boot_package.ini, exit_package.ini)
  • Per-package language translations
  • The config.ini state file
  • Complete annotated example package

The complete scripting reference for package authors:

  • All filesystem commands (copy, move, delete, download, unzip, hex edit, and more)
  • INI and JSON editing commands
  • System commands (reboot, shutdown, volume, backlight)
  • UI and display commands (notify, set-footer, refresh, table, open)
  • Command modes (toggle, trackbar, option, slot, forwarder, table, and more)
  • Flow control (try:, on:/off:, erista:/mariko:)
  • Source functions (list_source, file_source, json_file_source, etc.)
  • Placeholder variables and symbol glyphs

Key Concepts

Packages are self-contained script bundles stored in /switch/.packages/<NAME>/. Each package has a package.ini that defines its sections (menu entries) and the commands those entries run.

Overlays are .ovl binaries stored in /switch/.overlays/. Ultrahand can launch, manage, and assign hotkeys to any package or overlay without modification.

The command language is a custom INI-based scripting system (UltraScript). Commands are listed one per line under a section header. Ultrahand interprets them sequentially on a background thread, so you can hide the overlay during long operations.

Placeholder variables — wrapped in {...} — are resolved at runtime and can carry device info, current values, INI/JSON data, math expressions, and more.


Examples and Community Packages


Contributing

Contributions and suggestions from the community are welcome. To report a bug, request a feature, or submit a pull request, visit the GitHub repository. You can also reach out on GBATemp.

Notice: Documentation is currently a work-in-progress. For clean examples, look at some of the more well-crafted Ultrahand Packages out there for guidance.

Clone this wiki locally