Track the evolution of EasyExtract. Every version, feature, and fix.
Yo, V2.8.5 is live. This isn't a massive core rewrite like the last one, but it saves you from your own bad decisions. We focused on stability and making sure the app doesn't choke when you run out of space.
Previously, if you tried to extract a huge package on a full drive, the app would just try its best and then crash or error out mid-way. That's trash UX.
DiskSpaceHelper in UnityPackageExtractionService. Before we even touch a file, we calculate if you actually have enough space.MainWindow will slap you with a proper error message before you waste your time.Required > Available, we stop. Simple.x64 and x86 configurations to the solution. Just keeping the build pipeline clean and ready for whatever hardware you throw at it.logo-flat.ico. Modern, flat, clean.Real talk: We are cooking heavily in the background. While this update is small, we are working on a massive ecosystem upgrade. The website is currently getting a total overhaul to match the quality of the tools. We are building something huge, so stay tuned.
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/V2.8.4...V2.8.5
Yo, V2.8.4 is live. We didn't just fix bugs, we tore the architecture apart and put it back together the right way. Why? Because the old codebase was getting too messy and I have zero patience for maintaining unoptimized code.
We ripped the entire logic out of the Desktop App and shoved it into a dedicated library (EasyExtract.Core).
Before, the scanner just said "Eh, might be a virus, go ahead". That's trash.
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/V2.8.3...V2.8.4
V2.8.3 - The Native Comeback (Done Right) & Linux Love
Yo, V2.8.3 is live. We did a 180° turn on the engine room... again. If you've been following the changelogs, you know we tried native .NET extraction before and ditched it for SharpZipLib. Well, turns out SharpZipLib started causing more headaches than it solved (RIP Illegal rep dist code).
So we went back to Native .NET 9, but this time we actually cooked. The implementation is fully rewritten, optimized, and way better than our first attempt.
.NET 9 System.Formats.Tar & System.IO.Compression.
CancellationToken support all the way down. If you click "Cancel" now, the extraction stops immediately. No more waiting for the current file to finish.X11PlatformOptions for our Linux users.SafeDateTimeOffsetConverter that makes the JSON parsing bulletproof. No more data loss.CodePagesEncodingProvider to the startup logic. If you have ancient .zip files from 2005 using Windows-1252 encoding, they will finally extract correctly without broken Umlauts.NotInstalledException from Velopack that was annoying us in the logs when running in a dev environment.Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/V2.8.2...V2.8.3
Yo, V2.8.2 is here. This is a massive one. We finally killed the legacy update system (rest in piss) and replaced it with Velopack. This means actual, robust auto-updates that don't suck. Also, because some of you keep downloading .zip files containing Unity packages instead of .unitypackage files, we added support for that too.
UpdateService was spaghetti trash, so we nuked it. We integrated Velopack.
Setup.exe for Windows. No more manual extracting like it's 2010..zip file that contains a .unitypackage directly into the app.
DetectPackageFormat to figure out if you're feeding us a gzip tar or a zip.ResolveFromZip handles the extraction and cleanup automatically.CleanupTemporaryDirectory after we're done. No clutter left behind.UpdateService, UpdatePhase, UpdateManifest). Thousands of lines of dead code gone. The app is lighter and cleaner.View Platform Installation Docs
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/main%40%7B1day%7D...main
Yo, V2.0.8.1 is live. We completely overhauled the error handling because the old system was basically trash. If things go south now, you get proper feedback instead of a silent crash. We also finally check if your drive is full before trying to write files.
ErrorDialogService and ErrorDialogWindow. If the app crashes or throws an error, you now get a clean window. You can copy error details or open the logs directly. Way better for debugging, trust me.DiskSpaceHelper. Before writing files (in UnityPackageExtractionService or AppSettingsService), we check if there is actual space left. If your SSD is full, we tell you via a clean IOException instead of just dying completely lost.ServiceUnavailable and HttpRequestException properly. If the service is down, you'll know why.LoggingService now has granular control for webhooks. We don't spam everything blindly anymore; we can decide what's important via forwardToWebhook. Less spam, more value.ERR-Test) we used for debugging. Code is clean again.View Platform Installation Docs
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/main%40%7B1day%7D...main
Yo, V2.0.8.0 is live. We completely reworked the format handling. Bro, if you had issues with weird files before, it is fixed now. Realtalk, we now check much better what you are trying to extract and we do not crash anymore just because your file is trash.
DetectPackageFormat. Before, it was just wild guessing, now we know what is up. We built a UnityPackageFormatDetector for this so the code does not look like a mess.InvalidDataException), the security scan does not crash the whole process anymore. We just skip the file with a warning and the UI shows you that. That's it..unitypackage or invalid TAR files, we catch that. We tell you exactly why your file is garbage instead of just crashing. We put some proper logging in there.ExtractedPackageModel logic to JsonDocument. It is more performant and maintainable. The old iterative stuff was terrible, now it runs clean.ResolveMacHomeDirectory). No duplicate code, everything clean.View Platform Installation Docs
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/main%40%7B1day%7D...main
This update refines the error handling pipeline to improve debugging efficiency.
We have restructured how version information is passed during logging events. By moving the version identifier from the webhook payload directly into the log entries, we ensure cleaner message formatting while maintaining precise context for tracking bugs across specific builds.
Changes:
HakuWebhookClient payload to sanitize the webhook output.LoggingService.Async entries. This ensures every log is traceable to its specific build version, speeding up the debugging process.Recommended Update for all users to ensure consistent log reporting.
Yo, v2.0.7.8 is here. We added some memory to this thing. We are now tracking what you extract so you do not get lost in your own files. Also, we fixed the file locking issues that were crashing downloads on busy systems.
ExtractedPackageModel. The app now tracks the file name, extraction path, and date of your extracted packages. Was broken before.ExtractedPackageModel serialization. We replaced the generic approach with explicit property handling. It is cleaner and safer now.View Platform Installation Docs
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/V2.0.7.7...V2.0.7.8
Yo, we cooked. Version 2.0.7.7 is out and it is actually huge. We replaced the entire compression engine under the hood because the standard .NET one was annoying us. Also, we bumped the limits to numbers you will probably never reach, but if you do, we got you covered.
GZipStream and System.Formats.Tar out of the window. We are now using SharpZipLib for everything (GZipInputStream & TarInputStream). This means better stability, better UTF-8 support, and fewer crashes with weird archive formats.SafeWindowStateConverter and JsonStringEnumConverter. Your settings and window states should stop acting weird now.TryGetAssetPaths. We now use _normalizedOutputDirectory to make sure your files actually land where they are supposed to land.View Platform Installation Docs
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/v2.0.7.6...v2.0.7.7
The "Clean Up Your Shit" Update
Last time everything was new and shiny, this time we cleaned up the backend trash. You might not see anything new visually, but under the hood, it's burning way less now. Yeah, that's the move.
We threw out the entire old DiscordWebhookNotifier. That thing was legacy garbage and unprofessional. Instead, everything runs via HakuWebhookClient now.
FeedbackService is chilling now. We simplified the logic and handed off payload processing to HakuWebhookClient. Less spaghetti code.Changelog written by AI
The Cross-Platform Revolution Update
Realtalk, this is the biggest update yet. While many features were present in the legacy version, the massive upgrade here is that we completely rewrote the app using Avalonia.
What does this mean? It means the entire tool—including all the features you know—is now fully Cross-Platform. Whether you are on Windows, Linux, or macOS, you now get the exact same robust experience.
We didn't just port it; we added serious security features, a complete UI overhaul, and logic-driven extraction improvements.
.obj) and play audio (.wav, .mp3, .ogg, .flac) inside the app.Strings.resx for future multi-language support.NAudio.Vorbis and AssimpNet.Changelog written with ai, for better readability.
HyperlinkButton for website so more users see the web version
Mostly just Refactoring
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/main%40%7B1day%7D...main
Changelog written with ai, for better readability.
🎉 Intelligent Logging, Enhanced Stability, and a Refined User Experience!
This update introduces a revamped logging engine, more robust asynchronous processing, and significant UI enhancements to make your workflow even more secure and efficient.
🔧 Detailed Logger Configuration:
🛡️ Integrated Hashing Utilities:
⚡ Enhanced Asynchronicity & Performance:
async/await, improving application responsiveness and preventing deadlocks.ConfigureAwait to ensure better UI synchronization.🧠 Intelligent Logging & Error Handling:
🔒 Enhanced Extraction Security:
🖥️ UI Improvements & Code Cleanup:
📦 Updated Dependencies:
DiscordRichPresence, MaterialDesignThemes, Serilog, and SkiaSharp to their latest versions.Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/main%40%7B1day%7D...main
🎉 Refinements, Robustness, and User-Friendly Enhancements!
This update focuses on fine-tuning functionality, enhancing stability, and providing delightful new features to streamline your workflow even further.
🔧 Smarter File Handling:
🎶 Integrated Sound Effects:
📁 Customizable Output Path:
📐 Persistent Window Preferences:
🔔 Enhanced Notification System:
🚑 Robust Error Handling:
🖥️ UI & Initialization Optimizations:
🧹 Codebase Clean-Up:
📦 Dependency Updates:
LastExtractedPath feature has been replaced with DefaultOutputPath.Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/V2.0.6.7...V2.0.6.8
🎉 A major UI overhaul and enhanced user experience!
This update brings a completely redesigned interface that's cleaner, more intuitive, and more responsive. I've streamlined many parts of the app and introduced several exciting new features to make your workflow smoother than ever.
Brand New User Interface:
Completely redesigned UI structure across all views for improved clarity, consistency, and accessibility.
🎨 Dynamic UI Enhancements:
🔎 Improved Search & Queue Management:
📈 Enhanced Extraction Progress:
✨ Fun UI Customization ("UwU Mode"):
🛠️ Stability and Performance:
✅ Important Fixes:
🗑️ Simplified Navigation & UI:
📦 Updated Dependencies:
This release focuses primarily on providing you with a more intuitive and user-friendly experience. Note:
BetterExtraction view for greater ease of use.Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/V2.0.6.6...main
EasyExtract - Version 2.0.6.6
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/main%40%7B1day%7D...main
EasyExtract - Version 2.0.6.5
DpiDecorator for sharper, consistent UIDashboard.xaml (dynamic background color, refined layout, placeholders for future customization)Dashboard.xamlBetterLogger made static, XAML elements reorganized)MaterialDesignThemes, Serilog, Fody, etc.) to latest stable versionsFull Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/main%40%7B1day%7D...main
EasyExtract - Version 2.0.6.4
Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/V2.0.6.3...V2.0.6.4
EasyExtract - Version 2.0.6.3
MessageBox for visually appealing and informative error notifications, improving the user experience.Full Changelog: https://github.com/HakuSystems/EasyExtractUnitypackage/compare/V2.0.6.2...V2.0.6.3
.cs files. The UI will notify the user with a warning if any suspicious links are found.Supported File Extensions: The following file extensions are now supported:
.cs.txt.json.shaderThese files are displayed as code images in the UI, enhancing the visual presentation of text and code files.
ModifiedTime and CreatedTime properties to SearchEverythingModel. UI components now display these timestamps, improving file identification and selection.
GetFileDateTime method for extracting file timestamps.SearchEverything user control for enabling/disabling creation date filtering.
UpdateHandler.cs, including IsUpToDate, Update, DownloadAssetAsync, and others.
DownloadAssetAsync method to append a version tag to downloaded asset filenames.
ConfigHelper instantiation from instance-level to static.
Extraction.xaml.cs. Moved ExtractedFiles class and Importance enum to their own files for better code organization and readability.MoveFileIfExists to catch IO, unauthorized access, and general exceptions. Improved logging for better issue diagnosis.InitializeLogger and streamlined log folder creation. Logs now roll daily.WPF-UI and WPF-UI.Tray to version 4.0.0-rc.2 to include the latest fixes and improvements.SystemThemeWatcher.Watch(this) to the dashboard load, ensuring dynamic adaptation to system theme changes.IntroLogoAnimation to control the display of the animated logo at startup. Updated related UI elements and initialized the new config helper.ChangeUnitypackageDetailsString method from ExtractionHelper.cs.BetterLogger to use a single log file and added a lock for thread safety.History.xaml, SearchEverything.xaml, Dashboard.xaml, and BetterSettings.xaml.Bug Fix: Invalid Path Syntax in Unity Package Extraction
Issue:
Users encountered an error stating "The file name, directory name, or volume label syntax is incorrect" when attempting to extract Unity packages.
Fix Implemented:
.mat00 to .mat).These changes ensure that the extraction process handles paths correctly and prevents the mentioned error.
- The broken Updater has been fixed in this version.
- A Context menu has been added, allowing for faster extraction by right-clicking on an .unitypackage file. Please note that this feature requires running the application as an Administrator.
- Additional checks have been implemented to ensure that users have the necessary folders in order to address any potential issues.
- The settings page has been refactored to improve its appearance and user-friendliness.
- EasyExtractUnitypackage now includes a custom Background Setting. Users can now change the background image and adjust its opacity.
Improvements:
Logging:
Configuration:
Cleanup:
Refactor:
Miscellaneous:
Enhanced UI, Customization, and Logging
New Features:
Improvements:
Logging:
Bug Fixes:
Update MainWindow layout and add new Dashboard:
Add new user controls and navigation view:
Update user interface and enhance functionality in various components:
Update UI elements and improve code structure:
Add new settings panel and UI interactions:
Add Discord presence and configuration updates:
Add todo comments and remove unused event handler:
Improve discord rpc management and UI interactions:
Update Discord RPC messages and add History feature:
Refactor code style and remove unused imports:
Update title change feature in Settings:
Add theme selection and adjust related UI colors:
Extend content into title bar in Dashboard:
Add SearchEverything functionality and updates to UI:
Implement extraction queue and addition features:
Add extraction process indicators and improve validations:
Refactor Extraction.xaml.cs and update Extraction.xaml:
Implement Unitypackage extraction process:
Refactor code and implement improved extraction process:
Improve extraction functionality, add Clear History button:
Update Unitypackage extraction process and library:
Refactor Extraction.xaml to introduce TabControl:
Add extracted and ignored unitypackages count:
Refactor Extraction UI and Improve Null-Safety:
IgnoredUnitypackages grid and status badges.Improve UI flow on extraction completion:
Added extraction management feature to Extraction.xaml:
Update font family and package versions:
Remove unnecessary namespace in App.xaml:
Add 'ExtractedCategoryStructure' setting and improve History visibility:
Add ExtractionHelper and improve unitypackage extraction process:
Add extracted Unity packages list:
Add tooltip to Category Structure toggle switch:
Changed Extraction Helper and Handler from static to instantiable classes:
Refactor private variables naming in Extraction.xaml.cs:
Refactor Extraction.xaml.cs to use async and await:
Refactor extraction file validation:
Implement search and deletion for unitypackage files:
UpdateExtractedFiles method asynchronous.Implement deletion and ignoring of selected Unitypackages:
Refactor delete and ignore button logic in Extraction.xaml.cs:
Removed ExtractedFileHandler.cs:
Updated ConfigHelper Methods to Async:
Refactored Extraction Class:
Refactored Extraction UI Code:
to ObservableCollection for better UI updates.
Improved methods for filtering unitypackages and handling ignored packages.
Updated Extraction Functionality:
Updated UserControls and ExtractionHandler:
Removed Windows Notifications from Settings:
Added Extraction History and Calculated Total Extracted Files:
Updated Ignored Package Reason, Background Styling, Extraction Logic, and Discord Presence Updates:
Updated History.xaml.cs:
Updated Extraction UserControls:
Added LiveCharts to Extraction UI:
Updated Extraction User Interface:
Refactor Extraction Page UI:
Updated Dashboard UI Layout:
Added UpdateHandler and Updated UI elements:
Improved UpdateHandler class:
Refactor UpdateHandler in EasyExtract:
Updated UpdateHandler logic in Dashboard.xaml.cs:
Refactor Update Check Code in Dashboard.xaml.cs:
Updated EasyExtract App:
Updated Project Configuration and Dependencies:
V2.0.5.4 EasyExtractUnitypackage is a Software to get files out of a .unitypackage without importing them into unity.
Removed:
- UPDATER AND VIDEO PLAYER
Reason for that is, a temporary fix for the app. in order to work properly please download the latest version on discord or in here
(This version doesnt check for updates, so be aware on discord when i post an update.)
This software downloads a DLL and A video at start, consider putting it in a separate folder!