-
PS5 Vault v2.4.5 Stable
released this
2026-10-06 05:01:36 +02:00 | 0 commits to main since this releaseDownloads
-
PS5 Vault v2.4.4 Stable
released this
2026-10-06 05:01:43 +02:00 | 0 commits to main since this releaseChangelog
All notable changes to PS5 Vault are documented here.
[2.4.4] — 2026
Bug Fixes
Source folder cleanup buttons showed "Error" after a Move
After moving games the completion screen shows a "Source folder cleanup" section with a Delete button for each parent folder. Clicking it always showed "Error" — the underlying delete function existed but was never wired up to the UI. Now works correctly: clicking Delete removes the empty parent folder and shows the confirmation inline.Scanning an empty folder caused the app to freeze
If you moved all games out of a folder and then scanned it again, the scan bar would spin forever and the UI would appear locked. This happened because the previous scan had cached the game entries in memory — those stale entries appeared in the table briefly, then the scan returned zero results, and the code that dismisses the scan bar only ran when it saw a clean empty state. The scan bar is now always dismissed when the scan returns no games, and any stale rows from the cache are cleared at the same time.Improvements
FTP connection handling
The internal FTP lock used a busy-wait loop that polled every 10ms while waiting for a connection slot. It now uses a proper queue — no CPU spin, and concurrent callers are woken immediately when a slot becomes free.Dead connections in the FTP pool are now detected correctly before being handed to a caller. Previously the liveness check was a no-op (property access that never throws), so closed sockets could be returned and fail silently on first use.
API — all-drives scan
Triggering a scan via the Developer API with"source": "all-drives"previously only scanned the C: drive. It now scans every connected drive, the same as the UI button does.API — browser clients no longer blocked by CORS
The API's CORS preflight was missingX-API-Keyfrom the allowed headers list, which caused browser-based API clients to be rejected before the request was even sent. The allowed headers now include it.Game title sanitization
Backslash characters in game titles were not being stripped when building folder names, which could cause unexpected path behaviour on some transfers. Fixed.
[2.4.0] — 2026
New Features
Copy (fast)
New transfer action that skips SHA-256 hash verification entirely. Ideal for same-drive transfers where re-reading every byte is unnecessary and speed matters more than checksum confirmation.File-level Resume
Interrupted transfers now skip files already fully present at the destination (matching size). Only missing or partial files are re-copied, so a crashed mid-transfer can be restarted without re-sending everything.Free-Space Pre-check
Before starting any local copy, PS5 Vault verifies the destination has sufficient free space (with a 512 MB safety buffer). An error is shown immediately if there is not enough room — no more discovering halfway through a transfer that the drive is full.Show-All Dropdown
All recent paths and FTP configs appear instantly when clicking any path input field — no typing required. Items are filtered by substring as you type. Full keyboard navigation: Arrow keys move the selection, Enter commits, Escape dismisses, Tab moves focus. The dropdown is positioned relative todocument.bodyso it is never clipped inside a scroll container.Porkfolio Layout
New destination layout that produces{dest}/{Game Name} ({version}) {PPSAID}/— the folder naming format expected by the Porkfolio backporting workflow.Improvements
- Dropdown items now use
text-overflow: ellipsisandwhite-space: nowrapso very long paths do not break the dropdown layout maxWidthis capped to the associated input element's width to prevent dropdowns from overflowing the viewport on narrow windowsselectItemcommits the selected value immediately without ablur()timeout — focus remains with the input and the value is available instantlypositionDropdownsets bothwidthandmaxWidthfromgetBoundingClientRectso the dropdown always matches the input precisely
Bug Fixes
- Fixed dropdown appearing wider than its associated input on narrow windows
- Fixed
getFocusedItemhelper being declared but never called — dead code removed - Fixed transfer progress stuck at 0% in some local-to-local copy scenarios when
totalSizewas 0 at transfer start; now falls back to a parallel stat walk with ago-countingprogress event - Fixed
addRecentFtpbeing called with a raw URL string instead of a config object in some code paths
[2.3.0] — 2026
New Features
Library Diff / Compare
Compare two game libraries side-by-side. Pick any second source — a local path, USB drive, or FTP target — and PS5 Vault shows which games exist only in source A, only in source B, or in both. A one-click "Transfer Missing →" button pre-selects all games absent from B and readies them for transfer without any manual picking.Verify Library
Scan your entire library (or a selection) for integrity issues. Each game is checked for folder accessibility, a validparam.json, and a cover icon. Results are sorted with errors first and colour-coded: ✓ OK, ⚠ Warning, ✗ Error, with a badge summary at the top.PS5 Auto-Detect
Click 🔍 Find PS5 inside the FTP modal to scan your local network automatically. PS5 Vault probes all live hosts on your subnet across the three common FTP ports used by etaHEN and compatible payloads. The first result auto-fills the host and port fields — no manual IP hunting required.FTP Storage Info
Click 💾 Storage inside the FTP modal (connection details filled in) to query all known PS5 mount points — internal storage, extended storage, and USB drives — and display available / total space with a usage bar per mount.Card / Grid View
Toggle between the classic table view and a cover-art grid with ⊞ Grid. Each card shows the game's icon, title, and size. Selection, batch operations, and all transfer features work identically in both views. The active view persists across sessions.Speed Sparkline
A live polyline graph appears in the transfer progress panel, plotting the last ~60 speed samples as a rolling window. Gives an at-a-glance view of transfer consistency and throttling without having to watch the numbers.Selective Sub-folder Transfer
Expand any game row before transferring to choose exactly which sub-folders get copied. Useful for transferring just updates or DLC without re-sending the base game data.Soft Delete / Trash Bin
The delete action now moves items to a_ps5vault_trashfolder inside the source directory instead of permanently removing files. Trash entries older than 30 days are auto-purged. Items can be recovered manually from the trash folder at any time.Persistent Column Widths
Drag any column header divider to resize. Widths are saved to local storage and restored on next launch.Per-game Transfer History
Transfer history now records which game was involved in each operation (by title ID). View per-game history to see exactly when and where a title was last transferred.FTP Connection Profiles
Save named FTP connection configurations (host, port, path, credentials, passive mode, buffer size, parallelism, speed limit) and switch between them from a dropdown in the FTP modal.Checksum Database
A persistent checksum store (saved touserData/checksum-db.json) records file hashes after each transfer. On subsequent transfers, files whose checksums already match the destination are skipped, reducing redundant data movement. Records expire after 90 days.Improvements
FTP Transfer Reliability
Retry count increased from 3 to 5 for both downloads and uploads. Both directions now detect mid-transfer disconnects (ECONNRESET, FIN, connection closed) and automatically re-establish the FTP session before retrying, rather than failing the entire operation.API Modal Layout
Fixed the API modal overflowing the viewport on smaller screens. The modal body now scrolls independently within a constrained height, and action buttons remain anchored at the bottom.Bug Fixes
- Fixed FTP transfers failing silently on connection drop mid-file
- Fixed delete button permanently removing files with no recovery path
- Fixed transfer progress panel overflowing on narrow windows
[2.0.0] — 2025
Performance — FTP Size Calculation
The FTP sizing system was rewritten from the ground up. Repeat scans of a cached library are now near-instant, and first-time scans of large libraries are significantly faster.
Two-phase sizing pipeline
Cached and uncached games no longer compete for the same concurrency slot. Phase 1 validates all cached games at up to 12 concurrent connections (one LIST per game). Phase 2 walks only the cache misses, with 4 workers per game instead of 2. Cache hits begin streaming to the UI immediately without waiting for Phase 1 to complete.FTP connection pool
Cache validation previously opened a fresh TCP connection per game, waited for the handshake, did one LIST, then closed it — repeated for every game in the library. A sharedFtpConnectionPoolnow maintains up to 12 persistent connections that are borrowed and returned between games. On WiFi (≈20ms RTT) this saves roughly 800ms for a 50-game library.Event-based worker wake-up
Worker coroutines previously polled every 5ms when the queue was temporarily empty while another worker was mid-LIST. Workers now park on a Promise that is resolved the instant a new directory is pushed to the queue, eliminating the polling delay entirely.Size-only manifest mode
When calculating sizes during a scan,buildFtpManifestnow accepts asizeOnlyflag that skips building the full file-path array. OnlytotalSizeis needed at scan time — the full manifest is only constructed when a transfer actually starts. This removes ~25,000 object allocations (and associated GC pressure) for a typical 50-game library.Workers per game increased: 2 → 4
Each uncached game now uses 4 parallel FTP connections to walk its directory tree instead of 2. For a game with 200 directories at 5ms RTT this halves the walk time from ~500ms to ~250ms.Bug Fixes
Duplicate
get-all-driveshandler — Theget-all-drivesIPC handler was registered twice, crashing the app on the second launch. Duplicate removed.diskCacheDirtyghost variable — A variable that was set in multiple places but never read was fully removed. It had been left behind from a previous refactor.rename-itemmissing try/catch — Filesystem errors during rename (permissions, file in use) were throwing unhandled exceptions through IPC instead of returning a structured{ error }response.rename-itempath-traversal guard — If the new name contained/or\,path.joincould silently escape the parent directory. Names containing path separators are now explicitly rejected, and the resolved new path must share the same parent as the old path.ftp-delete-itemandftp-rename-itemerror handling — These handlers previously returned{ error: "..." }objects on failure, whichawaitresolves successfully — making the error invisible to the caller. Both nowthrowon failure, consistent with how local delete/rename errors are surfaced.scanFtpSourceignoredcalcSizeoption — The IPC handler correctly forwardedopts.calcSize, but the function only destructuredsenderfrom its options object. Size calculation ran unconditionally regardless of the checkbox state. Now properly gated oncalcSize.computeSourceFolderWindows path — The regex stripping\sce_sysfrom source paths only matched the forward-slash variant (/sce_sys). On Windows, paths ending in\sce_syswere not stripped, causing the wrong source folder to be used in transfers.addRecentFtpreceived URL string instead of config object — The function expects{ host, port, path, user }to generate a deduplication key and pre-fill the FTP modal on next use. It was being called with a raw URL string, which stored garbage in the recents list and broke the remembered-FTP-configs feature.Rename path separator on Windows — Building a new path with a hardcoded
'/'separator produced mixed-separator paths (D:\games/New Name) on Windows, breaking filesystem operations. The separator is now detected from the source path.ftpDeleteItemerror silently swallowed in renderer — The renderer awaitedftpDeleteItemwithout checking the return value. Added a belt-and-suspenders error check so FTP delete failures surface to the user.renameItemerror silently swallowed in renderer —renameItemreturns{ error }on failure. The renderer never checked this, so rename failures were invisible. Error is now surfaced.checkConflictsdroppedcustomNameparameter — The preload wrapper forwarded only 3 of 4 arguments. With a custom layout, conflict detection computed the wrong target path, missing real conflicts or flagging false ones.
[1.1.3] — 2024
- Persistent disk cache for FTP folder sizes with single-LIST validation
- Progressive UI streaming — table rows appear as games are found
- Adaptive parallelism — worker count scales with directory density
- Cross-drive move via copy-then-delete (fixes EXDEV errors)
- Correct source folder calculation forwarded through
calcSize - FTP overlap detection and dead code removal
[1.0.0] — 2024
Initial release.
- Scan local drives and USB devices for PS5 games
- Copy and move games with flat, nested, or custom layout
- FTP scan and transfer from PS5 (etaHEN)
- Conflict detection
- Resume interrupted transfers
- Dark / light theme
Downloads
- Dropdown items now use
-
PS5 Vault v2.4.3 Stable
released this
2026-10-06 05:01:49 +02:00 | 0 commits to main since this releaseChangelog
- Fast pass now checks sig?.aborted before writing to cache — partial results from terminated workers are discarded
- Slow pass checks abort both before starting and after the worker returns
calcSingleGameSize now returns 0 immediately if aborted at any point during its execution, rather than accumulating a partial total - FAST_TIMEOUT_MS raised from 10s → 90s — large games (60 GB+) on slow USB HDDs were timing out on every scan and going to the slow pass, which was then vulnerable to the same abort-poison on the next scan
- Cache entries now store the folder's mtime. On next load, if the folder was modified since caching, the entry is discarded and the game is re-sized with fresh data
- Cache TTL reduced from 30 days → 7 days
- If a result is <1 MB for a folder with subdirectories, it logs a warning and retries with a single full-tree worker
Downloads
-
PS5 Vault v2.4.18 Stable
released this
2026-10-06 05:01:06 +02:00 | 0 commits to main since this releaseDownloads
-
PS5 Vault v2.4.17 Stable
released this
2026-10-06 05:01:12 +02:00 | 0 commits to main since this releaseDownloads
-
PS5 Vault v2.4.16 Stable
released this
2026-10-06 05:01:18 +02:00 | 0 commits to main since this releaseDownloads
-
PS5 Vault v2.4.15 Stable
released this
2026-10-06 05:01:24 +02:00 | 0 commits to main since this releaseDownloads
-
PS5 Vault v2.4.14 Stable
released this
2026-10-06 05:01:30 +02:00 | 0 commits to main since this releaseDownloads
-
PS5 Vault v2.4.1 Stable
released this
2026-10-06 05:01:54 +02:00 | 0 commits to main since this releaseChangelog v2.4.1
Fix minor bug when cancelling transfers.
Downloads
-
PS5 Vault v2.4.0 Stable
released this
2026-10-06 05:02:01 +02:00 | 0 commits to main since this release
Organize, transfer, and manage your PS5 game backups — on your PC or straight over FTP to your PS5.
Download latest release · Discord · Support on Ko-fi
What it does
PS5 Vault scans folders for PS5 game backups (PPSA folders), shows you your full library with cover art, sizes, and metadata, then lets you copy or move games wherever you need them — to a USB drive, a different folder layout, or directly to your PS5 over FTP.
Getting started
- Download the portable
.exefrom Releases and run it — no installation needed - Point the Source field at the folder containing your games (or enter your PS5's FTP address)
- Click SCAN
- Tick the games you want, choose a destination and layout, click GO
Press F1 at any time to open the built-in help.
Features
Scanning
- Scan any local folder, USB drive, or network path
- Connect directly to your PS5 over FTP — no need to copy files to your PC first
- Scan All Drives finds games across every connected drive in one click
- Results appear in real time as games are found; you don't wait for the whole scan to finish
- Game sizes, cover art, version, region, and firmware requirement are pulled automatically
- Filter your results by name or by size (under 1 GB, 1–10 GB, 10–30 GB, over 30 GB)
Transfers
-
Copy (with hash verification), Copy (fast) (no hash verification — faster for same-drive transfers), Move, or Create folder only (dry run)
-
File-level Resume: skips files already fully present at the destination, so interrupted transfers pick up where they left off
-
Free-Space Pre-check: destination free space is verified (512 MB buffer) before any local copy starts
-
Choose from eight destination layouts:
Layout Example result etaHEN default dest/etaHEN/games/GameName/itemZFlow default dest/games/GameName/Dump Runner default dest/homebrew/GameName/Game / PPSA dest/GameName/PPSA12345/Game only dest/GameName/PPSA only dest/PPSA12345/Porkfolio dest/GameName (ver) PPSA12345/Custom dest/YourName/ -
Transfer directly from PC to PS5 over FTP, or from PS5 back to PC
-
Live progress bar, speed, ETA, and per-file status during transfers
-
Conflict resolution — choose to skip, rename, or overwrite when a game already exists at the destination
Game management
- Delete or rename games (local or on your PS5 over FTP)
- Batch rename using a pattern like
{name} - Backup - Click any game to see full metadata: content ID, version, SDK version, region, required firmware, folder path
- Click a folder path to open it in Windows Explorer
- Soft Delete / Trash Bin: deleted games move to
_ps5vault_trashinside the source directory and are auto-purged after 30 days
History and export
- Transfer History (Menu) — persistent log of every copy and move with dates, sizes, and results
- Export History CSV (Menu) — save your history as a spreadsheet
- Export / Import JSON — back up or restore your full scan results and settings
FTP extras
- Test Connection button in the FTP config — confirms your PS5 is reachable and shows latency before you start
- Speed limit option — cap upload speed so your PS5 stays usable while a transfer runs
- Passive mode toggle for networks with strict firewalls
- Recent FTP connections saved and autocompleted
- Show-All Dropdown: click any path or host field to instantly see all recent paths and FTP configs — no typing required
Library features
- Card / Grid View: toggle between the table and a cover-art grid with ⊞ Grid; persists across sessions
- Library Diff / Compare: compare two game libraries side-by-side; one-click "Transfer Missing →" pre-selects games absent from the second library
- Verify Library: integrity check — folder accessible, valid
param.json, cover icon present; results sorted errors-first with colour-coded badges - Checksum Database: persistent SHA-256 store (
userData/checksum-db.json); files already matching the destination are skipped; records expire after 90 days - Selective Sub-folder Transfer: expand a game row before transferring to choose exactly which sub-folders are copied
- Persistent Column Widths: drag column headers to resize; widths saved to localStorage
- Per-game Transfer History: audit log per title ID for every copy, move, or upload
- FTP Connection Profiles: save and switch between named FTP configurations
- Speed Sparkline: live polyline graph of the last ~60 speed samples in the transfer progress panel
Developer API
PS5 Vault runs a local REST API so other apps on your PC can read your library or trigger scans and transfers programmatically.
Find your API key and the full endpoint reference under Menu → ⚙ Developer API.
Base URL: http://127.0.0.1:3731/api/v1 Auth: X-API-Key: <your key> GET /library — your full game list GET /library/:ppsa — single game by ID GET /library/:ppsa/icon — cover art (PNG) POST /scan — trigger a scan GET /scan/status — scan progress POST /transfer — trigger a transfer GET /transfer/status — transfer progress GET /events — live SSE stream GET /status — app statusThe server only listens on
127.0.0.1— it is not reachable from other devices on your network.Other
- Dark and light theme (click Made by Nookie to toggle)
- Hover over any cover art for a large preview
- Keyboard shortcuts: Ctrl+A select all · Ctrl+R rescan · F1 help · Esc close modal
- Auto-update check on launch with one-click install
Changelog
All notable changes to PS5 Vault are documented here.
[2.4.0] — 2026
New Features
Copy (fast)
New transfer action that skips SHA-256 hash verification entirely. Ideal for same-drive transfers where re-reading every byte is unnecessary and speed matters more than checksum confirmation.File-level Resume
Interrupted transfers now skip files already fully present at the destination (matching size). Only missing or partial files are re-copied, so a crashed mid-transfer can be restarted without re-sending everything.Free-Space Pre-check
Before starting any local copy, PS5 Vault verifies the destination has sufficient free space (with a 512 MB safety buffer). An error is shown immediately if there is not enough room — no more discovering halfway through a transfer that the drive is full.Show-All Dropdown
All recent paths and FTP configs appear instantly when clicking any path input field — no typing required. Items are filtered by substring as you type. Full keyboard navigation: Arrow keys move the selection, Enter commits, Escape dismisses, Tab moves focus. The dropdown is positioned relative todocument.bodyso it is never clipped inside a scroll container.Porkfolio Layout
New destination layout that produces{dest}/{Game Name} ({version}) {PPSAID}/— the folder naming format expected by the Porkfolio backporting workflow.Improvements
- Dropdown items now use
text-overflow: ellipsisandwhite-space: nowrapso very long paths do not break the dropdown layout maxWidthis capped to the associated input element's width to prevent dropdowns from overflowing the viewport on narrow windowsselectItemcommits the selected value immediately without ablur()timeout — focus remains with the input and the value is available instantlypositionDropdownsets bothwidthandmaxWidthfromgetBoundingClientRectso the dropdown always matches the input precisely
Bug Fixes
- Fixed dropdown appearing wider than its associated input on narrow windows
- Fixed
getFocusedItemhelper being declared but never called — dead code removed - Fixed transfer progress stuck at 0% in some local-to-local copy scenarios when
totalSizewas 0 at transfer start; now falls back to a parallel stat walk with ago-countingprogress event - Fixed
addRecentFtpbeing called with a raw URL string instead of a config object in some code paths
[2.3.0] — 2026
New Features
Library Diff / Compare
Compare two game libraries side-by-side. Pick any second source — a local path, USB drive, or FTP target — and PS5 Vault shows which games exist only in source A, only in source B, or in both. A one-click "Transfer Missing →" button pre-selects all games absent from B and readies them for transfer without any manual picking.Verify Library
Scan your entire library (or a selection) for integrity issues. Each game is checked for folder accessibility, a validparam.json, and a cover icon. Results are sorted with errors first and colour-coded: ✓ OK, ⚠ Warning, ✗ Error, with a badge summary at the top.PS5 Auto-Detect
Click 🔍 Find PS5 inside the FTP modal to scan your local network automatically. PS5 Vault probes all live hosts on your subnet across the three common FTP ports used by etaHEN and compatible payloads. The first result auto-fills the host and port fields — no manual IP hunting required.FTP Storage Info
Click 💾 Storage inside the FTP modal (connection details filled in) to query all known PS5 mount points — internal storage, extended storage, and USB drives — and display available / total space with a usage bar per mount.Card / Grid View
Toggle between the classic table view and a cover-art grid with ⊞ Grid. Each card shows the game's icon, title, and size. Selection, batch operations, and all transfer features work identically in both views. The active view persists across sessions.Speed Sparkline
A live polyline graph appears in the transfer progress panel, plotting the last ~60 speed samples as a rolling window. Gives an at-a-glance view of transfer consistency and throttling without having to watch the numbers.Selective Sub-folder Transfer
Expand any game row before transferring to choose exactly which sub-folders get copied. Useful for transferring just updates or DLC without re-sending the base game data.Soft Delete / Trash Bin
The delete action now moves items to a_ps5vault_trashfolder inside the source directory instead of permanently removing files. Trash entries older than 30 days are auto-purged. Items can be recovered manually from the trash folder at any time.Persistent Column Widths
Drag any column header divider to resize. Widths are saved to local storage and restored on next launch.Per-game Transfer History
Transfer history now records which game was involved in each operation (by title ID). View per-game history to see exactly when and where a title was last transferred.FTP Connection Profiles
Save named FTP connection configurations (host, port, path, credentials, passive mode, buffer size, parallelism, speed limit) and switch between them from a dropdown in the FTP modal.Checksum Database
A persistent checksum store (saved touserData/checksum-db.json) records file hashes after each transfer. On subsequent transfers, files whose checksums already match the destination are skipped, reducing redundant data movement. Records expire after 90 days.Improvements
FTP Transfer Reliability
Retry count increased from 3 to 5 for both downloads and uploads. Both directions now detect mid-transfer disconnects (ECONNRESET, FIN, connection closed) and automatically re-establish the FTP session before retrying, rather than failing the entire operation.API Modal Layout
Fixed the API modal overflowing the viewport on smaller screens. The modal body now scrolls independently within a constrained height, and action buttons remain anchored at the bottom.Bug Fixes
- Fixed FTP transfers failing silently on connection drop mid-file
- Fixed delete button permanently removing files with no recovery path
- Fixed transfer progress panel overflowing on narrow windows
Downloads
- Download the portable
mirror of
https://github.com/NookieAI/PS5-Vault.git
synced 2026-10-06 09:00:33 +02:00