feat: prepare for public release - updated README, added assets, and migration content

- Updated README with banner, navigation, disclaimer, and future features
- Added assets/images directory structure for repository images
- Added JackifyWikiUserGuide.md for wiki content
- Updated installation instructions for 7z archive distribution
- Added comprehensive future planned features section
- Prepared content for GitHub migration and Nexus Mods release
This commit is contained in:
Omni
2025-09-09 14:10:28 +01:00
parent 9f3191f79c
commit af62212b7a
49 changed files with 454 additions and 252 deletions

View File

@@ -1,5 +1,17 @@
# Jackify Changelog
## v0.0.32 - Engine Update and FNV Simplification
**Release Date:** September 8, 2025
### Engine Update
- **jackify-engine v0.3.12**: Fixed file extraction encoding issues
### Improvements
- **FNV Modlists**: Simplified configuration using registry injection instead of launch options
- **Code Cleanup**: Removed special-case launch option handling for FNV
---
## v0.0.31 - Pre-Alpha Polish Update
**Release Date:** September 7, 2025

View File

@@ -1,9 +1,31 @@
![Jackify Banner](assets/images/readme/Jackify_Github_Banner.png)
| [Wiki](https://github.com/Omni-guides/Jackify/wiki) | [Download](https://www.nexusmods.com/site/mods/xxx) | [Wabbajack Discord](https://discord.gg/wabbajack) | [Jackify Issues](https://github.com/Omni-guides/Jackify/issues) | [Legacy Guides](Legacy/) | [Ko-fi](https://ko-fi.com/omni1) |
|:---:|:---:|:---:|:---:|:---:|:---:|
---
# Jackify
A modlist installer and manager for Wabbajack modlists on Linux
A modlist installation and configuration tool for Wabbajack modlists on Linux
Jackify enables seamless installation and configuration of Wabbajack modlists on Linux systems, providing automated Steam shortcut creation and Proton prefix configuration.
### **Repository Migration Notice**
This repository has evolved from the original [Wabbajack-Modlist-Linux](https://github.com/Omni-guides/Wabbajack-Modlist-Linux) guides and bash scripts into **Jackify** - a comprehensive Linux application for Wabbajack modlist management.
**What changed?**
- **From**: Semi-automated bash scripts and step-by-step wiki guides
- **To**: A complete, automated Linux application with GUI and CLI interfaces
- **Why**: To provide a user-friendly application that removes the complexity of Wabbajack and modlist configuration
**Previous Content**: All original guides and scripts are preserved in the `Legacy/` directory. Jackify provides the same functionality with significantly improved automation and user experience.
---
## Introduction
Thank you for your interest in Jackify - the next step, and a giant leap forward from my automated Wabbajack and modlist post-install scripts. So, Jackify - What is it?
Jackify is an almost Linux-native application written in Python, with a GUI produced with PySide6, and a full featured CLI interface if preferred. More info on the "almost" can be found in the full Introduction Wiki page. Currently, there are two main functions that Jackify will perform at this stage of development:
@@ -19,6 +41,16 @@ Jackify is an almost Linux-native application written in Python, with a GUI prod
- Automated Steam Integration: Automatic Steam shortcut creation with complete Proton configuration
- Professional Interface: Both GUI and CLI interfaces with identical features
## Disclaimer
**Jackify is a hobby project in early Alpha development stage. Use at your own risk.**
- **No Warranty**: This software is provided "as is" without any warranty or guarantee of functionality
- **Best Effort Support**: Support is provided on a best-effort basis through community channels
- **System Compatibility**: Functionality on your specific system is not guaranteed
- **Data Safety**: Always backup your important data before using Jackify
- **Alpha Software**: Features may be incomplete, unstable, or change without notice
## Quick Start
### Requirements
@@ -30,8 +62,8 @@ Jackify is an almost Linux-native application written in Python, with a GUI prod
### Installation
```bash
# Download latest release
wget https://github.com/your-repo/jackify/releases/latest/Jackify.AppImage
# Download latest release from Nexus Mods
# Extract the Jackify.AppImage from the 7z archive
chmod +x Jackify.AppImage
./Jackify.AppImage
```
@@ -85,6 +117,17 @@ This project is licensed under the GPLv3 License - see the LICENSE file for deta
## Contributing
At this early stage of development, where basic functionality is the primary focus, I'd prefer to use GitHub Issues to suggest improvements, rather tha PRs. This will likely change in the future.
## Future Planned Features (not guaranteed)
- Continue to expand the supported games list for fully automated configuration
- Add full TTW+Modlist automation for TTW based modlists
- Replace the API Key requirement with a more secure OAuth based approach
- Add support for modding and modlist creation tools via a sister application or module
- Revise the GUI to be more refined
- Dark/Light theme support for the GUI
- Advanced logging and diagnostics - more detailed troubleshooting information
- Automatic dependency resolution - ensure all required tools and libraries are installed
## Support
- Issues: Report bugs and request features via GitHub Issues
- Documentation: See the Wiki for detailed guides
@@ -97,4 +140,4 @@ At this early stage of development, where basic functionality is the primary foc
---
**Jackify** - Bringing Wabbajack modlist management to Linux
**Jackify** - Simplifying Wabbajack modlist installation and configuration on Linux

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

@@ -5,4 +5,4 @@ This package provides both CLI and GUI interfaces for managing
Wabbajack modlists natively on Linux systems.
"""
__version__ = "0.0.31"
__version__ = "0.0.32"

View File

@@ -673,17 +673,17 @@ class ModlistHandler:
# Use canonical logic for all modlists/games
components = self.get_modlist_wine_components(self.game_name, self.game_var_full)
# Detect special games and use vanilla AppID instead of modlist AppID
special_game_type = self.detect_special_game_type(self.modlist_dir)
self.logger.debug(f"Wine components step - modlist_dir='{self.modlist_dir}', special_game_type='{special_game_type}'")
if special_game_type == "fnv":
target_appid = "22380" # Vanilla Fallout New Vegas AppID
self.logger.info("Installing wine components to vanilla FNV compatdata (AppID 22380)")
elif special_game_type == "enderal":
target_appid = "976620" # Enderal: Forgotten Stories Special Edition AppID
self.logger.info("Installing wine components to vanilla Enderal compatdata (AppID 976620)")
else:
target_appid = self.appid # Normal modlist AppID
# DISABLED: Special game wine component routing - now using registry injection approach
# special_game_type = self.detect_special_game_type(self.modlist_dir)
# if special_game_type == "fnv":
# target_appid = "22380" # Vanilla Fallout New Vegas AppID
# elif special_game_type == "enderal":
# target_appid = "976620" # Enderal: Forgotten Stories Special Edition AppID
# else:
# target_appid = self.appid # Normal modlist AppID
# All modlists now use their own AppID for wine components
target_appid = self.appid
if not self.protontricks_handler.install_wine_components(target_appid, self.game_var_full, specific_components=components):
self.logger.error("Failed to install Wine components. Configuration aborted.")

View File

@@ -1718,18 +1718,21 @@ echo Prefix creation complete.
progress_callback("=== Steam Integration ===")
progress_callback(f"{self._get_progress_timestamp()} Creating Steam shortcut with native service")
# Detect special game types early to generate proper launch options
from ..handlers.modlist_handler import ModlistHandler
modlist_handler = ModlistHandler()
special_game_type = modlist_handler.detect_special_game_type(modlist_install_dir)
# DISABLED: Special game launch options - now using registry injection approach
# from ..handlers.modlist_handler import ModlistHandler
# modlist_handler = ModlistHandler()
# special_game_type = modlist_handler.detect_special_game_type(modlist_install_dir)
#
# # Generate complete launch options for special games
# custom_launch_options = None
# if special_game_type in ["fnv", "enderal"]:
# custom_launch_options = self._generate_special_game_launch_options(special_game_type, modlist_install_dir)
# if not custom_launch_options:
# logger.error(f"Failed to generate launch options for {special_game_type.upper()} modlist")
# return False, None, None, None
# Generate complete launch options for special games
# All modlists now use standard shortcut creation without custom launch options
custom_launch_options = None
if special_game_type in ["fnv", "enderal"]:
custom_launch_options = self._generate_special_game_launch_options(special_game_type, modlist_install_dir)
if not custom_launch_options:
logger.error(f"Failed to generate launch options for {special_game_type.upper()} modlist")
return False, None, None, None
try:
# Step 1: Create shortcut with native Steam service (pointing to ModOrganizer.exe initially)
@@ -1803,8 +1806,17 @@ echo Prefix creation complete.
if progress_callback:
progress_callback(f"{self._get_progress_timestamp()} Setup verification completed")
# Get the prefix path
# Step 5: Inject game registry entries for FNV/Enderal modlists
logger.info("Step 5: Injecting game registry entries")
if progress_callback:
progress_callback(f"{self._get_progress_timestamp()} Injecting game registry entries...")
# Get prefix path for registry injection
prefix_path = self.get_prefix_path(appid)
if prefix_path:
self._inject_game_registry_entries(str(prefix_path))
else:
logger.warning("Could not find prefix path for registry injection")
last_timestamp = self._get_progress_timestamp()
logger.info(f" Working workflow completed successfully! AppID: {appid}, Prefix: {prefix_path}")
@@ -2737,3 +2749,138 @@ echo Prefix creation complete.
else:
return None
def _find_steam_game(self, app_id: str, common_names: list) -> Optional[str]:
"""Find a Steam game installation path by AppID and common names"""
import os
from pathlib import Path
# Get Steam libraries from libraryfolders.vdf
steam_config_path = Path.home() / ".steam/steam/config/libraryfolders.vdf"
if not steam_config_path.exists():
return None
steam_libraries = []
try:
with open(steam_config_path, 'r') as f:
content = f.read()
# Parse library paths from VDF
import re
library_matches = re.findall(r'"path"\s+"([^"]+)"', content)
steam_libraries = [Path(path) / "steamapps" / "common" for path in library_matches]
except Exception as e:
logger.warning(f"Failed to parse Steam library folders: {e}")
return None
# Search for game in each library
for library_path in steam_libraries:
if not library_path.exists():
continue
# Check manifest file first (more reliable)
manifest_path = library_path.parent / "appmanifest_{}.acf".format(app_id)
if manifest_path.exists():
try:
with open(manifest_path, 'r') as f:
content = f.read()
install_dir_match = re.search(r'"installdir"\s+"([^"]+)"', content)
if install_dir_match:
game_path = library_path / install_dir_match.group(1)
if game_path.exists():
return str(game_path)
except Exception:
pass
# Fallback: check common folder names
for name in common_names:
game_path = library_path / name
if game_path.exists():
return str(game_path)
return None
def _update_registry_path(self, system_reg_path: str, section_name: str, path_key: str, new_path: str) -> bool:
"""Update a specific path value in Wine registry, preserving other entries"""
if not os.path.exists(system_reg_path):
return False
try:
# Read existing content
with open(system_reg_path, 'r', encoding='utf-8', errors='ignore') as f:
lines = f.readlines()
in_target_section = False
path_updated = False
wine_path = new_path.replace('/', '\\\\')
# Update existing path if found
for i, line in enumerate(lines):
stripped_line = line.strip()
if stripped_line == section_name:
in_target_section = True
elif stripped_line.startswith('[') and in_target_section:
in_target_section = False
elif in_target_section and f'"{path_key}"' in line:
lines[i] = f'"{path_key}"="Z:\\\\{wine_path}\\\\"\n' # Add trailing backslashes
path_updated = True
break
# Add new section if path wasn't updated
if not path_updated:
lines.append(f'\n{section_name}\n')
lines.append(f'"{path_key}"="Z:\\\\{wine_path}\\\\"\n') # Add trailing backslashes
# Write updated content
with open(system_reg_path, 'w', encoding='utf-8') as f:
f.writelines(lines)
return True
except Exception as e:
logger.error(f"Failed to update registry path: {e}")
return False
def _inject_game_registry_entries(self, modlist_compatdata_path: str):
"""Detect and inject FNV/Enderal game paths into modlist's system.reg"""
system_reg_path = os.path.join(modlist_compatdata_path, "pfx", "system.reg")
if not os.path.exists(system_reg_path):
logger.warning("system.reg not found, skipping game path injection")
return
logger.info("Detecting and injecting game registry entries...")
# Game configurations
games_config = {
"22380": { # Fallout New Vegas AppID
"name": "Fallout New Vegas",
"common_names": ["Fallout New Vegas", "FalloutNV"],
"registry_section": "[Software\\\\WOW6432Node\\\\bethesda softworks\\\\falloutnv]",
"path_key": "Installed Path"
},
"976620": { # Enderal Special Edition AppID
"name": "Enderal",
"common_names": ["Enderal: Forgotten Stories (Special Edition)", "Enderal Special Edition", "Enderal"],
"registry_section": "[Software\\\\Wow6432Node\\\\SureAI\\\\Enderal SE]",
"path_key": "installed path"
}
}
# Detect and inject each game
for app_id, config in games_config.items():
game_path = self._find_steam_game(app_id, config["common_names"])
if game_path:
logger.info(f"Detected {config['name']} at: {game_path}")
success = self._update_registry_path(
system_reg_path,
config["registry_section"],
config["path_key"],
game_path
)
if success:
logger.info(f"Updated registry entry for {config['name']}")
else:
logger.warning(f"Failed to update registry entry for {config['name']}")
else:
logger.debug(f"{config['name']} not found in Steam libraries")
logger.info("Game registry injection completed")

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -7,7 +7,7 @@
"targets": {
".NETCoreApp,Version=v8.0": {},
".NETCoreApp,Version=v8.0/linux-x64": {
"jackify-engine/0.3.11": {
"jackify-engine/0.3.12": {
"dependencies": {
"Markdig": "0.40.0",
"Microsoft.Extensions.Configuration.Json": "9.0.1",
@@ -22,16 +22,16 @@
"SixLabors.ImageSharp": "3.1.6",
"System.CommandLine": "2.0.0-beta4.22272.1",
"System.CommandLine.NamingConventionBinder": "2.0.0-beta4.22272.1",
"Wabbajack.CLI.Builder": "0.3.11",
"Wabbajack.Downloaders.Bethesda": "0.3.11",
"Wabbajack.Downloaders.Dispatcher": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Networking.Discord": "0.3.11",
"Wabbajack.Networking.GitHub": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11",
"Wabbajack.Server.Lib": "0.3.11",
"Wabbajack.Services.OSIntegrated": "0.3.11",
"Wabbajack.VFS": "0.3.11",
"Wabbajack.CLI.Builder": "0.3.12",
"Wabbajack.Downloaders.Bethesda": "0.3.12",
"Wabbajack.Downloaders.Dispatcher": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Networking.Discord": "0.3.12",
"Wabbajack.Networking.GitHub": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12",
"Wabbajack.Server.Lib": "0.3.12",
"Wabbajack.Services.OSIntegrated": "0.3.12",
"Wabbajack.VFS": "0.3.12",
"MegaApiClient": "1.0.0.0",
"runtimepack.Microsoft.NETCore.App.Runtime.linux-x64": "8.0.19"
},
@@ -1781,7 +1781,7 @@
}
}
},
"Wabbajack.CLI.Builder/0.3.11": {
"Wabbajack.CLI.Builder/0.3.12": {
"dependencies": {
"Microsoft.Extensions.Configuration.Json": "9.0.1",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
@@ -1791,109 +1791,109 @@
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"System.CommandLine": "2.0.0-beta4.22272.1",
"System.CommandLine.NamingConventionBinder": "2.0.0-beta4.22272.1",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.CLI.Builder.dll": {}
}
},
"Wabbajack.Common/0.3.11": {
"Wabbajack.Common/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"System.Reactive": "6.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Common.dll": {}
}
},
"Wabbajack.Compiler/0.3.11": {
"Wabbajack.Compiler/0.3.12": {
"dependencies": {
"F23.StringSimilarity": "6.0.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Downloaders.Dispatcher": "0.3.11",
"Wabbajack.Installer": "0.3.11",
"Wabbajack.VFS": "0.3.11",
"Wabbajack.Downloaders.Dispatcher": "0.3.12",
"Wabbajack.Installer": "0.3.12",
"Wabbajack.VFS": "0.3.12",
"ini-parser-netstandard": "2.5.2"
},
"runtime": {
"Wabbajack.Compiler.dll": {}
}
},
"Wabbajack.Compression.BSA/0.3.11": {
"Wabbajack.Compression.BSA/0.3.12": {
"dependencies": {
"K4os.Compression.LZ4.Streams": "1.3.8",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"SharpZipLib": "1.4.2",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12"
},
"runtime": {
"Wabbajack.Compression.BSA.dll": {}
}
},
"Wabbajack.Compression.Zip/0.3.11": {
"Wabbajack.Compression.Zip/0.3.12": {
"dependencies": {
"Wabbajack.IO.Async": "0.3.11"
"Wabbajack.IO.Async": "0.3.12"
},
"runtime": {
"Wabbajack.Compression.Zip.dll": {}
}
},
"Wabbajack.Configuration/0.3.11": {
"Wabbajack.Configuration/0.3.12": {
"runtime": {
"Wabbajack.Configuration.dll": {}
}
},
"Wabbajack.Downloaders.Bethesda/0.3.11": {
"Wabbajack.Downloaders.Bethesda/0.3.12": {
"dependencies": {
"LibAES-CTR": "1.1.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"SharpZipLib": "1.4.2",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.BethesdaNet": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.BethesdaNet": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Bethesda.dll": {}
}
},
"Wabbajack.Downloaders.Dispatcher/0.3.11": {
"Wabbajack.Downloaders.Dispatcher/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Downloaders.Bethesda": "0.3.11",
"Wabbajack.Downloaders.GameFile": "0.3.11",
"Wabbajack.Downloaders.GoogleDrive": "0.3.11",
"Wabbajack.Downloaders.Http": "0.3.11",
"Wabbajack.Downloaders.IPS4OAuth2Downloader": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Downloaders.Manual": "0.3.11",
"Wabbajack.Downloaders.MediaFire": "0.3.11",
"Wabbajack.Downloaders.Mega": "0.3.11",
"Wabbajack.Downloaders.ModDB": "0.3.11",
"Wabbajack.Downloaders.Nexus": "0.3.11",
"Wabbajack.Downloaders.VerificationCache": "0.3.11",
"Wabbajack.Downloaders.WabbajackCDN": "0.3.11",
"Wabbajack.Networking.WabbajackClientApi": "0.3.11"
"Wabbajack.Downloaders.Bethesda": "0.3.12",
"Wabbajack.Downloaders.GameFile": "0.3.12",
"Wabbajack.Downloaders.GoogleDrive": "0.3.12",
"Wabbajack.Downloaders.Http": "0.3.12",
"Wabbajack.Downloaders.IPS4OAuth2Downloader": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Downloaders.Manual": "0.3.12",
"Wabbajack.Downloaders.MediaFire": "0.3.12",
"Wabbajack.Downloaders.Mega": "0.3.12",
"Wabbajack.Downloaders.ModDB": "0.3.12",
"Wabbajack.Downloaders.Nexus": "0.3.12",
"Wabbajack.Downloaders.VerificationCache": "0.3.12",
"Wabbajack.Downloaders.WabbajackCDN": "0.3.12",
"Wabbajack.Networking.WabbajackClientApi": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Dispatcher.dll": {}
}
},
"Wabbajack.Downloaders.GameFile/0.3.11": {
"Wabbajack.Downloaders.GameFile/0.3.12": {
"dependencies": {
"GameFinder.StoreHandlers.EADesktop": "4.5.0",
"GameFinder.StoreHandlers.EGS": "4.5.0",
@@ -1903,360 +1903,360 @@
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.VFS": "0.3.11"
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.VFS": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.GameFile.dll": {}
}
},
"Wabbajack.Downloaders.GoogleDrive/0.3.11": {
"Wabbajack.Downloaders.GoogleDrive/0.3.12": {
"dependencies": {
"HtmlAgilityPack": "1.11.72",
"Microsoft.AspNetCore.Http.Extensions": "2.3.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.GoogleDrive.dll": {}
}
},
"Wabbajack.Downloaders.Http/0.3.11": {
"Wabbajack.Downloaders.Http/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.BethesdaNet": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.BethesdaNet": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Http.dll": {}
}
},
"Wabbajack.Downloaders.Interfaces/0.3.11": {
"Wabbajack.Downloaders.Interfaces/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.Compression.Zip": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Compression.Zip": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Interfaces.dll": {}
}
},
"Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.11": {
"Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.12": {
"dependencies": {
"F23.StringSimilarity": "6.0.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.IPS4OAuth2Downloader.dll": {}
}
},
"Wabbajack.Downloaders.Manual/0.3.11": {
"Wabbajack.Downloaders.Manual/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Manual.dll": {}
}
},
"Wabbajack.Downloaders.MediaFire/0.3.11": {
"Wabbajack.Downloaders.MediaFire/0.3.12": {
"dependencies": {
"HtmlAgilityPack": "1.11.72",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.MediaFire.dll": {}
}
},
"Wabbajack.Downloaders.Mega/0.3.11": {
"Wabbajack.Downloaders.Mega/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Mega.dll": {}
}
},
"Wabbajack.Downloaders.ModDB/0.3.11": {
"Wabbajack.Downloaders.ModDB/0.3.12": {
"dependencies": {
"HtmlAgilityPack": "1.11.72",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.ModDB.dll": {}
}
},
"Wabbajack.Downloaders.Nexus/0.3.11": {
"Wabbajack.Downloaders.Nexus/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Networking.NexusApi": "0.3.11",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Networking.NexusApi": "0.3.12",
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Nexus.dll": {}
}
},
"Wabbajack.Downloaders.VerificationCache/0.3.11": {
"Wabbajack.Downloaders.VerificationCache/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Stub.System.Data.SQLite.Core.NetStandard": "1.0.119",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.VerificationCache.dll": {}
}
},
"Wabbajack.Downloaders.WabbajackCDN/0.3.11": {
"Wabbajack.Downloaders.WabbajackCDN/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Microsoft.Toolkit.HighPerformance": "7.1.2",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.RateLimiter": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.RateLimiter": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.WabbajackCDN.dll": {}
}
},
"Wabbajack.DTOs/0.3.11": {
"Wabbajack.DTOs/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.DTOs.dll": {}
}
},
"Wabbajack.FileExtractor/0.3.11": {
"Wabbajack.FileExtractor/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"OMODFramework": "3.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Compression.BSA": "0.3.11",
"Wabbajack.Hashing.PHash": "0.3.11",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Compression.BSA": "0.3.12",
"Wabbajack.Hashing.PHash": "0.3.12",
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.FileExtractor.dll": {}
}
},
"Wabbajack.Hashing.PHash/0.3.11": {
"Wabbajack.Hashing.PHash/0.3.12": {
"dependencies": {
"BCnEncoder.Net.ImageSharp": "1.1.1",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Shipwreck.Phash": "0.5.0",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Paths": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Hashing.PHash.dll": {}
}
},
"Wabbajack.Hashing.xxHash64/0.3.11": {
"Wabbajack.Hashing.xxHash64/0.3.12": {
"dependencies": {
"Wabbajack.Paths": "0.3.11",
"Wabbajack.RateLimiter": "0.3.11"
"Wabbajack.Paths": "0.3.12",
"Wabbajack.RateLimiter": "0.3.12"
},
"runtime": {
"Wabbajack.Hashing.xxHash64.dll": {}
}
},
"Wabbajack.Installer/0.3.11": {
"Wabbajack.Installer/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"Octopus.Octodiff": "2.0.548",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Downloaders.Dispatcher": "0.3.11",
"Wabbajack.Downloaders.GameFile": "0.3.11",
"Wabbajack.FileExtractor": "0.3.11",
"Wabbajack.Networking.WabbajackClientApi": "0.3.11",
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11",
"Wabbajack.VFS": "0.3.11",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Downloaders.Dispatcher": "0.3.12",
"Wabbajack.Downloaders.GameFile": "0.3.12",
"Wabbajack.FileExtractor": "0.3.12",
"Wabbajack.Networking.WabbajackClientApi": "0.3.12",
"Wabbajack.Paths": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12",
"Wabbajack.VFS": "0.3.12",
"ini-parser-netstandard": "2.5.2"
},
"runtime": {
"Wabbajack.Installer.dll": {}
}
},
"Wabbajack.IO.Async/0.3.11": {
"Wabbajack.IO.Async/0.3.12": {
"runtime": {
"Wabbajack.IO.Async.dll": {}
}
},
"Wabbajack.Networking.BethesdaNet/0.3.11": {
"Wabbajack.Networking.BethesdaNet/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.BethesdaNet.dll": {}
}
},
"Wabbajack.Networking.Discord/0.3.11": {
"Wabbajack.Networking.Discord/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.Discord.dll": {}
}
},
"Wabbajack.Networking.GitHub/0.3.11": {
"Wabbajack.Networking.GitHub/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Octokit": "14.0.0",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.GitHub.dll": {}
}
},
"Wabbajack.Networking.Http/0.3.11": {
"Wabbajack.Networking.Http/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Http": "9.0.1",
"Microsoft.Extensions.Logging": "9.0.1",
"Wabbajack.Configuration": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Configuration": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Paths": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.Http.dll": {}
}
},
"Wabbajack.Networking.Http.Interfaces/0.3.11": {
"Wabbajack.Networking.Http.Interfaces/0.3.12": {
"dependencies": {
"Wabbajack.Hashing.xxHash64": "0.3.11"
"Wabbajack.Hashing.xxHash64": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.Http.Interfaces.dll": {}
}
},
"Wabbajack.Networking.NexusApi/0.3.11": {
"Wabbajack.Networking.NexusApi/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Networking.WabbajackClientApi": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Networking.WabbajackClientApi": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.NexusApi.dll": {}
}
},
"Wabbajack.Networking.WabbajackClientApi/0.3.11": {
"Wabbajack.Networking.WabbajackClientApi/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Octokit": "14.0.0",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11",
"Wabbajack.VFS.Interfaces": "0.3.11",
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12",
"Wabbajack.VFS.Interfaces": "0.3.12",
"YamlDotNet": "16.3.0"
},
"runtime": {
"Wabbajack.Networking.WabbajackClientApi.dll": {}
}
},
"Wabbajack.Paths/0.3.11": {
"Wabbajack.Paths/0.3.12": {
"runtime": {
"Wabbajack.Paths.dll": {}
}
},
"Wabbajack.Paths.IO/0.3.11": {
"Wabbajack.Paths.IO/0.3.12": {
"dependencies": {
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths": "0.3.12",
"shortid": "4.0.0"
},
"runtime": {
"Wabbajack.Paths.IO.dll": {}
}
},
"Wabbajack.RateLimiter/0.3.11": {
"Wabbajack.RateLimiter/0.3.12": {
"runtime": {
"Wabbajack.RateLimiter.dll": {}
}
},
"Wabbajack.Server.Lib/0.3.11": {
"Wabbajack.Server.Lib/0.3.12": {
"dependencies": {
"FluentFTP": "52.0.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
@@ -2264,58 +2264,58 @@
"Nettle": "3.0.0",
"Newtonsoft.Json": "13.0.3",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Services.OSIntegrated": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Services.OSIntegrated": "0.3.12"
},
"runtime": {
"Wabbajack.Server.Lib.dll": {}
}
},
"Wabbajack.Services.OSIntegrated/0.3.11": {
"Wabbajack.Services.OSIntegrated/0.3.12": {
"dependencies": {
"DeviceId": "6.8.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Compiler": "0.3.11",
"Wabbajack.Downloaders.Dispatcher": "0.3.11",
"Wabbajack.Installer": "0.3.11",
"Wabbajack.Networking.BethesdaNet": "0.3.11",
"Wabbajack.Networking.Discord": "0.3.11",
"Wabbajack.VFS": "0.3.11"
"Wabbajack.Compiler": "0.3.12",
"Wabbajack.Downloaders.Dispatcher": "0.3.12",
"Wabbajack.Installer": "0.3.12",
"Wabbajack.Networking.BethesdaNet": "0.3.12",
"Wabbajack.Networking.Discord": "0.3.12",
"Wabbajack.VFS": "0.3.12"
},
"runtime": {
"Wabbajack.Services.OSIntegrated.dll": {}
}
},
"Wabbajack.VFS/0.3.11": {
"Wabbajack.VFS/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"SixLabors.ImageSharp": "3.1.6",
"System.Data.SQLite.Core": "1.0.119",
"Wabbajack.Common": "0.3.11",
"Wabbajack.FileExtractor": "0.3.11",
"Wabbajack.Hashing.PHash": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11",
"Wabbajack.VFS.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.FileExtractor": "0.3.12",
"Wabbajack.Hashing.PHash": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Paths": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12",
"Wabbajack.VFS.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.VFS.dll": {}
}
},
"Wabbajack.VFS.Interfaces/0.3.11": {
"Wabbajack.VFS.Interfaces/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.VFS.Interfaces.dll": {}
@@ -2332,7 +2332,7 @@
}
},
"libraries": {
"jackify-engine/0.3.11": {
"jackify-engine/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
@@ -3021,202 +3021,202 @@
"path": "yamldotnet/16.3.0",
"hashPath": "yamldotnet.16.3.0.nupkg.sha512"
},
"Wabbajack.CLI.Builder/0.3.11": {
"Wabbajack.CLI.Builder/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Common/0.3.11": {
"Wabbajack.Common/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Compiler/0.3.11": {
"Wabbajack.Compiler/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Compression.BSA/0.3.11": {
"Wabbajack.Compression.BSA/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Compression.Zip/0.3.11": {
"Wabbajack.Compression.Zip/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Configuration/0.3.11": {
"Wabbajack.Configuration/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Bethesda/0.3.11": {
"Wabbajack.Downloaders.Bethesda/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Dispatcher/0.3.11": {
"Wabbajack.Downloaders.Dispatcher/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.GameFile/0.3.11": {
"Wabbajack.Downloaders.GameFile/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.GoogleDrive/0.3.11": {
"Wabbajack.Downloaders.GoogleDrive/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Http/0.3.11": {
"Wabbajack.Downloaders.Http/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Interfaces/0.3.11": {
"Wabbajack.Downloaders.Interfaces/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.11": {
"Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Manual/0.3.11": {
"Wabbajack.Downloaders.Manual/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.MediaFire/0.3.11": {
"Wabbajack.Downloaders.MediaFire/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Mega/0.3.11": {
"Wabbajack.Downloaders.Mega/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.ModDB/0.3.11": {
"Wabbajack.Downloaders.ModDB/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Nexus/0.3.11": {
"Wabbajack.Downloaders.Nexus/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.VerificationCache/0.3.11": {
"Wabbajack.Downloaders.VerificationCache/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.WabbajackCDN/0.3.11": {
"Wabbajack.Downloaders.WabbajackCDN/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.DTOs/0.3.11": {
"Wabbajack.DTOs/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.FileExtractor/0.3.11": {
"Wabbajack.FileExtractor/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Hashing.PHash/0.3.11": {
"Wabbajack.Hashing.PHash/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Hashing.xxHash64/0.3.11": {
"Wabbajack.Hashing.xxHash64/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Installer/0.3.11": {
"Wabbajack.Installer/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.IO.Async/0.3.11": {
"Wabbajack.IO.Async/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.BethesdaNet/0.3.11": {
"Wabbajack.Networking.BethesdaNet/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.Discord/0.3.11": {
"Wabbajack.Networking.Discord/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.GitHub/0.3.11": {
"Wabbajack.Networking.GitHub/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.Http/0.3.11": {
"Wabbajack.Networking.Http/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.Http.Interfaces/0.3.11": {
"Wabbajack.Networking.Http.Interfaces/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.NexusApi/0.3.11": {
"Wabbajack.Networking.NexusApi/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.WabbajackClientApi/0.3.11": {
"Wabbajack.Networking.WabbajackClientApi/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Paths/0.3.11": {
"Wabbajack.Paths/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Paths.IO/0.3.11": {
"Wabbajack.Paths.IO/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.RateLimiter/0.3.11": {
"Wabbajack.RateLimiter/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Server.Lib/0.3.11": {
"Wabbajack.Server.Lib/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Services.OSIntegrated/0.3.11": {
"Wabbajack.Services.OSIntegrated/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.VFS/0.3.11": {
"Wabbajack.VFS/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.VFS.Interfaces/0.3.11": {
"Wabbajack.VFS.Interfaces/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""

Binary file not shown.