-
-
Notifications
You must be signed in to change notification settings - Fork 39
Home
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.
If you are new to Ultrahand, start here:
-
Install Ultrahand — Download the latest
sdout.zipfrom the Releases page and extract it to the root of your SD card. This is the easiest way to get up and running. -
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. -
Browse overlays and packages — Use the D-Pad left/right to switch between the Overlays and Packages tabs. Press
Ato launch an overlay or run a package command. -
Write your own packages — Place a
package.inifile in/switch/.packages/<YOUR_PACKAGE_NAME>/. See the Package Reference for the full package format.
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.inistate 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
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 — Basic package examples included in this repository
- Ultrahand Packages — Community-maintained packages
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.

