Web Transfer
Web Transfer turns your device into a temporary web server so you can move games, saves, and other files over Wi-Fi from any browser on your computer — no cable required.
Opening Web Transfer
Section titled “Opening Web Transfer”From the Library, tap the ⋯ menu and choose Web Transfer. Every time you open it, Sakura starts a fresh server with a new random 6-digit PIN.
Connecting from Your Computer
Section titled “Connecting from Your Computer”Once the server starts, the popup shows:
On your computer’s browser, open {URL} and enter this PIN {PIN}
Along with a reminder: “Keep this window open during transfers. The device must stay on the same Wi-Fi as your computer.”
Open that URL in any browser on a computer on the same network, and enter the PIN to connect. If the server fails to start, you’ll see an error with a Retry button.
What You Can Browse
Section titled “What You Can Browse”The browser exposes four roots:
- Games — where you import new games; also readable/writable
- Saves — read/write, though importing a save here always goes through the structured Saves tab (see below), not a raw file drop
- Backups — read and delete only
- Documents — your device’s general Documents folder
Importing Games (Files Tab)
Section titled “Importing Games (Files Tab)”Drag and drop a file anywhere in the Files tab to upload it. Dropping onto the Games root shows an extra hint that archives can be imported automatically.
When you drop an archive onto the Games root, a chooser asks “How should ‘{name}’ be transferred?” with three choices:
- Extract here & send (recommended) — your computer extracts the archive in the browser and streams the extracted files to the device, so the device only ever needs disk space for the extracted game (not the archive too). Not offered for
.exefiles. - Send archive as-is — the archive is uploaded whole and the device extracts it, so the device needs space for both the archive and the extracted result. This is the default (and only) option for
.exeinstallers. - Upload as a plain file — no import happens; the file is just stored as-is.
Password-protected archives prompt for the password in the browser: ”‘{name}’ is password-protected. Enter the archive password:”. Any single top-level wrapper folder in the archive is stripped automatically before it’s sent, so you don’t end up with a doubly-nested game folder.
Once on the device, import follows the same detection pipeline as an in-app import (see Importing Games) — the same “not a game” message applies: “This doesn’t look like an ONScripter game (no 0.txt / nscript.dat / arc.nsa / script.file found).” The best icon candidate is applied automatically; there’s no Customize step for web imports.
Importing .exe Installers
Section titled “Importing .exe Installers”- Recognized NSIS, Inno Setup, and self-extracting installers are imported normally.
- A CAB self-extracting
.exeshows: “This .exe is a CAB self-extracting archive, which iOS can’t unpack. Extract it on a computer and repack the game as zip or 7z.” - An
.exewith no detectable archive payload shows: “No archive payload found in this file. Extract it on a computer and repack the game as zip or 7z (or upload it as a plain file from the Files tab).”
Plain Uploads and the Import Queue
Section titled “Plain Uploads and the Import Queue”Plain file uploads run up to 3 at a time, are resumable, and auto-retry up to 3 times (showing “Reconnecting…” if the connection drops mid-upload).
Game imports, however, are queued and run one at a time — a queued import shows “Queued — waiting for the current import”, and the active one shows “Importing…”. Plain uploads and downloads aren’t affected by this queue and stay concurrent.
If the device runs out of space mid-transfer, you’ll see “Out of disk space”: “The device ran out of disk space while transferring ‘{name}’. The transfer was stopped and its temporary files were removed — free up space and try again.”
iCloud placeholder files not yet downloaded to the device show a ”☁ not downloaded” badge with a “☁️ Download” action.
Saves Tab
Section titled “Saves Tab”The Saves tab lists your games so you can pick one and manage its saves remotely:
- Per-save actions: Backup (confirms “Backup completed.”), Delete, and download/export.
- ↑ Import save uploads a save file for the selected game, confirming with a “Save imported” toast. See Importing Saves for the accepted file types.
Save Folders Panel
Section titled “Save Folders Panel”Each row shows the folder name (with a ☁ prefix for iCloud folders) and a summary like “{saves} saves · {games} games”. From here you can:
- Create a new folder, choosing Storage location: “Local (this device)” or “iCloud”.
- Rename a folder.
- Link save folder to relink which folder a game uses.
See Global Saves for more on how save folders and links work.
Disconnecting and Reconnecting
Section titled “Disconnecting and Reconnecting”If the device sleeps or the app is backgrounded, the browser shows: “Device sleeping or app in background — reconnecting…”. If the connection is fully lost, you’ll see “Disconnected”: “Connection to the device was lost. Make sure the app is open on the device — this page will reconnect automatically.”
Closing the Web Transfer popup on the device is the only way to stop the server — this cleans up any staging files and triggers a final library rescan.
Troubleshooting
Section titled “Troubleshooting”For connection or transfer issues not covered here, see Import Problems and Storage.