Skip to content

Releases: deeppacketdev-hub/onyx-launcher

v1.1.9

Choose a tag to compare

@deeppacketdev-hub deeppacketdev-hub released this 19 Jun 15:09
546ea5f

Release v1.1.9 🚀

This release introduces a full Instance Migration & Content Transfer Wizard, an automatic Mod Dependency Resolver, major performance optimizations across the entire app, and an expanded Java settings experience per instance.


🌟 What's New

🔄 Instance Migration & Content Transfer Wizard

  • Step-by-step Migration Wizard: A brand-new 3-step wizard lets you upgrade an instance to a new Minecraft version or transfer content (mods, shaders, resource packs, worlds) to another existing instance — all guided and automatic.
  • Smart Mod Scanning: The migration engine scans every mod file, computes its SHA1 hash, and performs bulk identification via the Modrinth API to find compatible versions for the target game version.
  • Phase-Based Progress: Migration runs through clearly tracked phases — scanning → identifying → reviewing → creating instance → downloading updated mods → copying shaders & resource packs → finalizing — with real-time progress and cute Minecraft-themed status messages.
  • Mod Status per File: Each scanned mod gets a clear status: Available (updated version found), Up to Date (already compatible), Not Found (unknown mod), No Compatible Version, Manual Download Required (CurseForge restriction), or Copy (file copy fallback).
  • Migration History: Instances now store which version they were migrated from, preserving lineage for future reference.
  • 60+ new localization strings added for the full migration UI across all 6 supported languages.

🔗 Automatic Mod Dependency Resolution

  • Recursive Dependency Resolver: When installing a mod from Modrinth, the app now automatically scans the full dependency tree and detects any required libraries not yet present in the instance.
  • Dependency Install Dialog: If missing dependencies are found, a clear prompt appears listing them, with "Download All" or "Main Only" options — preventing broken mod setups entirely.
  • Bulk Hash-Based Mod Lookup: Added two new Modrinth API integrations — bulk identification by SHA1 hash and bulk update lookup by target game version — powering both dependency resolution and the migration engine.

☕ Per-Instance Java Version Selection

  • Java Version Picker: A new dropdown in Instance Settings lets you pin a specific Java version (Auto, Java 8, Java 17, Java 21) per instance without needing to enter a full custom path.
  • Expanded Java Section: The Java settings area now has a clear two-part layout — version picker at the top and an optional custom path field below — with descriptive labels for each.

⚡ Performance & Architecture

🖥️ Lazy Tab Rendering & Theme Freeze

  • Lazy Tab Loading: The main content area now defers view construction until a tab is first selected, then keeps it alive in memory. This eliminates the UI stutter when switching to Skins, Screenshots, Worlds, or News for the first time.
  • Theme Observation Freeze: Inactive tabs now receive a frozen, static theme instead of the live observable one, preventing hidden views from re-rendering on every theme change and significantly reducing background CPU usage.

🎨 Dynamic Background GPU Optimization

  • 80% Rendering Cost Reduction: Dynamic backgrounds now render at 20% resolution on a small canvas, then scale up with a GPU blur. This dramatically cuts Canvas drawing and GPU load across all background styles (Aurora, Floating Orbs, Mesh Gradient, Waves).
  • Style-Aware Blur: Each background style applies a dynamically computed blur radius for optimal visual quality at minimum cost.

📥 Download Speed & Efficiency

  • Size-First File Skip: The download engine now checks file size first to skip already-downloaded files, avoiding expensive SHA1 computations for assets that are already present and correct.
  • Progress Throttling: Download progress updates are batched and pushed to the UI at most every 100ms, preventing unnecessary redraws during high-frequency concurrent downloads.

📋 Game Log Batching

  • Log Flush Throttle: Game process log lines are now collected in a buffer and flushed to the log view every 150ms (~6 FPS), instead of triggering a full UI update per line. This eliminates log-induced jank during heavy Forge/mod loading.
  • Cancellable Launch: The entire launch sequence can now be cooperatively cancelled at any point — stopping the game also cancels any in-progress download or installation step cleanly.

💾 Debounced Config Saving

  • Config saves are now debounced with a 300ms delay and written on a background thread, keeping the main thread fully unblocked even when sliders or toggles are changed rapidly.

🖼️ In-Memory Image Caching

  • Version artwork and custom instance icons are now cached in memory as NSImage objects, preventing redundant disk reads that previously occurred every time a view was re-evaluated.
  • Added artwork support for Minecraft 26.2 (Chaos Cubed).

🗄️ Automatic Mod Metadata Sync

  • Each time the Mod Browser opens, the app now automatically reconciles stored mod metadata (Modrinth & CurseForge) with the actual files on disk, removing stale entries for mods the user manually deleted.

🛠️ UI Refinements

🃏 Instance Card — Running State Redesign

  • The running-state card now matches the proportions of a normal instance card, with a dedicated icon area and info area.
  • Hover-to-Stop: Hovering over a running card reveals a stop overlay on the icon area — click it to stop the game or cancel the download. The old "Cancel Download" button has been removed.
  • Download Progress: The file counter now appears as a compact dot + monospaced number beneath the progress bar.

🔘 Consistent Button Interactions

  • Introduced a unified button style system (OnyxCardButtonStyle, ListRowButtonStyle, SnappyButtonStyle, SidebarButtonStyle) applied consistently across cards, mod rows, screenshot cards, account switcher, and the custom theme editor.
  • All interactive rows previously using raw tap gestures have been migrated to proper Button components with correct hit testing, accessibility support, and press feedback.

📰 News — New Category Filters

  • Added three new news filter tabs: Minecraft Live, Realms, and Marketplace — each with unique accent colors (Crimson, Gold, Teal) and smart content matching.

🎨 Theme Engine Overhaul

  • Theme colors and color scheme are now stored as explicit properties updated by a dedicated method, making theme changes predictable and preventing spurious redraws across the app.
  • The system no longer reapplies the AppKit appearance if it hasn't actually changed, reducing unnecessary system-level updates.
  • Custom theme gradient backgrounds are now handled independently from the theme palette, fixing transparency issues in the window background.

🔧 Forge/NeoForge — Cooperative Cancellation

  • The Forge/NeoForge installer subprocess now properly responds to task cancellation: if the launch is stopped, the installer process is immediately terminated and the error is handled cleanly without leaving zombie processes.

⚙️ Settings Slider Fixes

  • The animation speed and RAM sliders in Global Settings now save only when the user releases the slider, not on every drag event — preventing config writes and live reloads mid-drag.
  • Directory size calculations in Settings are now performed entirely on a background thread, keeping the UI responsive.
  • The Custom Theme Editor now uses local state during editing and commits changes only on confirm, preventing visual flicker mid-edit.

🛠 Configuration Updates

  • Version Bump: Updated to 1.1.9.
  • Instance Model: Instance now conforms to Equatable for cleaner change detection throughout the app.

v1.1.8

Choose a tag to compare

@deeppacketdev-hub deeppacketdev-hub released this 09 Jun 10:56
7dc15d9

v1.1.8
Onyx Release v1.1.8 🚀

We are excited to present a major update to Onyx! This release introduces a fully immersive game launch experience, implements robust network traffic governors for modpack installations, and brings a beautiful, interactive release notes previewer directly into the launcher's update workflow.

What's New ✨

Interactive Release Notes Viewer: Added a "What's new?" link to the update banner that opens a sleek, scrollable modal window. This modal fetches the release changelog directly from the GitHub API in real time and renders native, beautifully styled Markdown with support for copy-paste selection.
Launch Status UI & "Cute" Log Ticker: Redesigned the instance launch flow with premium visuals. While Minecraft is starting, the instance card now displays a dynamic spinning logo, a pulsing background glow, and a scrolling status ticker showing funny, localized Minecraft tasks (e.g., "Dusting off the redstone...", "Teaching villagers fair trades...").
UI & Design Adjustments 🎨

Unified Animated Close Buttons: Refactored and generalized the launcher's custom AnimatedCloseButton. Both the update banner and the release notes sheet now feature unified interactive close crosses with physics-based spring animations and a smooth 90° hover rotation.
Instance Card Redesign: Rewrote the InstanceCardView layout to seamlessly transition from idle states to the active launch screen, keeping the interface feeling cohesive and alive.
Under the Hood & Optimization ⚙️

Modpack Download Concurrency Throttling: Optimized the ModpackInstaller by implementing a concurrent queue governor that limits mod downloads to a maximum of 6 parallel tasks. This prevents socket timeouts, rate limits, and network connection drops on both Modrinth (.mrpack) and CurseForge (.zip) installations.
Strict Concurrency & Race-Condition Guarding: Integrated active task cancellation (fetchNotesTask) into the UpdateService to ensure overlapping update checks or banner dismissals immediately cancel active HTTP requests and never corrupt UI states.
HTML Sanitizer for Fallbacks: Implemented a robust HTML tag stripper that processes raw appcast descriptions (e.g., converting
tags to newlines,

  • to bullets, and decoding HTML entities) to keep release notes readable even when offline or rate-limited by GitHub.
    Multi-Language Translation: Fully localized the new update prompts into English, Ukrainian, German, Spanish, French, and Polish.

    Thank you for using Onyx! If you encounter any issues or have feedback, please let us know in the Issues section.

  • v1.1.7

    Choose a tag to compare

    @deeppacketdev-hub deeppacketdev-hub released this 05 Jun 08:01
    ccedf83

    Release v1.1.7 🚀

    This release introduces an interactive 3D Skin Preview using SceneKit, implements a complete installation engine for CurseForge & Modrinth Modpacks, and optimizes skin catalog loading performance.


    🌟 What's New

    👤 Interactive 3D Skin Preview

    • SceneKit Renderer: Added a native, fully interactive 3D skin viewer in the skin browser (SkinBrowserPanel.swift). You can now drag to rotate and inspect skins from any angle.
    • Smart UV Mapping: Supports classic 64x32 legacy formats as well as modern 64x64 textures (including Slim/Alex and Steve models).
    • Layer Support: Renders outer clothing layers (hats, jackets, sleeves, and pants) for pixel-perfect visualization.

    📦 Complete Modpack Installation Engine

    • Modpack Installer: Created a brand-new helper engine (ModpackInstaller.swift) supporting Modrinth .mrpack files and CurseForge .zip modpacks.
    • CurseForge API Integration: Automated resolution and concurrent download of modpack dependencies with fallback to ForgeCDN.
    • Overrides & Permissions: Added seamless handling of modpack overrides, directory cloning, and automatic POSIX permission verification.
    • UI Integration: Connected download flows inside the mod browser UI (ModBrowserView.swift).

    ⚡ Improvements & Refactoring

    🚀 Startup Time Optimization

    • Offline-First Catalog: Simplified SkinManager.swift to load skin names directly from the local names pool. This removes unnecessary GitHub network calls on application launch, preventing boot delays and enabling complete offline access.

    🛠 Configuration Updates

    • Version Bump: Upgraded marketing version to 1.1.7 (Build 20) in project.yml and project.pbxproj.

    v1.1.6

    Choose a tag to compare

    @deeppacketdev-hub deeppacketdev-hub released this 04 Jun 17:30
    65f7e59

    Onyx Release v1.1.6 🚀

    We are excited to bring you a fresh update to Onyx! This release focuses on refining the user interface, improving custom themes, and laying down robust localization support.

    What's New ✨

    • Dashed Add-Instance Card: We replaced the full-screen empty state with a dynamically integrated dashed placeholder card in the main grid, making creating new instances faster and more intuitive.
    • Enhanced Screenshots Empty State: The screenshots gallery empty state has been completely redesigned with a keyboard shortcut hint (F2), modern camera iconography, and a new quick-action button to Open screenshots folder.

    UI & Design Adjustments 🎨

    • Extended Theme Engine: We've introduced cardSurface and sidebarBackground settings to our theme model. Custom themes can now have distinct panel colors and glassmorphic sidebar backgrounds.
    • Sidebar Groups: Sidebar navigation items are now structured and separated into logical groups: Main and System sections.
    • Java Settings Polish: Added a sleek, icon-only trash button for deleting Java configurations, featuring a smooth red hover animation.

    Under the Hood & Localization ⚙️

    • Sparkle Updates: Corrected the appcast feed URL in Info.plist to point to the official deeppacketdev-hub/onyx-launcher repository.
    • Full Localization Support: Refactored translation pipelines in the World and Screenshot galleries. Hardcoded strings have been fully replaced with dynamic localization keys for English, Ukrainian, German, Spanish, and French.

    Thank you for using Onyx! Feel free to report any bugs or suggest new features in the Issues section.

    v.1.1.5

    Choose a tag to compare

    @deeppacketdev-hub deeppacketdev-hub released this 03 Jun 12:06
    7508fbf

    Onyx Launcher v1.1.5 🚀

    Welcome to the first official release of Onyx Launcher!

    Onyx is a premium, lightning-fast, and native macOS launcher for Minecraft, built from the ground up to deliver a clean and modern desktop experience.

    Key Features of this Release:

    • 📦 Curated Mod Browser: Integrated search and installation of mods, resource packs, shaders, and datapacks directly from Modrinth and CurseForge.
    • 🛡️ Smart Compatibility Filters: Automatically filters out incompatible mod versions based on your instance configuration (Minecraft version & mod loader).
    • ☕ Automated Java Manager: Automatically detects your CPU architecture (Intel vs. Apple Silicon M-series) and downloads the correct JDK version for your game.
    • 🎮 Discord Rich Presence: Share your live playing status, instance name, and active playtime directly on Discord.
    • ⚡ Multi-Loader Support: One-click install for Fabric, Forge, NeoForge, and Quilt.
    • 🎨 Premium Native Design: Crafted to feel like a native macOS app with custom UI themes, smooth animations, and optimized resource usage.

    How to Install:

    1. Download Onyx.1.1.4.pkg below.
    2. Double-click the file and follow the standard macOS installation wizard steps.

    Tip

    If macOS Gatekeeper blocks the installation (due to the ad-hoc local signature), simply right-click the .pkg file in Finder, choose Open, and confirm the launch.