Repository navigation
Releases
[4.0.7] Critical game launch fix
Fixed
- Minecraft Game Launch Crash (Argument Parsing for Modloaders & Snapshots):
- Resolved a critical game crash on startup occurring when launching modloaders (such as Fabric 26.2, Quilt, or modern manifests) that format rule-based arguments with the
'values'key (plural list of arguments) rather than'value'. - Previously,
safe_get_minecraft_argumentsdiscarded all argument entries missing the singular'value'key, inadvertently stripping the classpath (-cp), JVM arguments, natives directory flags, and game arguments (--username,--gameDir, etc.), which caused Java to immediately exit withClassNotFoundException. - Added support in
safe_get_minecraft_argumentsfor both'value'(string or list) and'values'(list of strings) argument dictionaries, with strict type filtering to ignore malformed entries without crashing. - Added recursive parent inheritance resolution in
safe_inherit_jsonto cleanly handle multi-level inherited version manifests (child->parent->base). - Added comprehensive automated unit tests covering argument parsing, OS-specific rule evaluation, multi-level JSON inheritance, and end-to-end command generation.
- Resolved a critical game crash on startup occurring when launching modloaders (such as Fabric 26.2, Quilt, or modern manifests) that format rule-based arguments with the
Note
To install the launcher, please download:
- NLCSetup.exe (Online installer)
- NLCSetup-offline.exe (Offline Installer)
For Linux, refer to this guide
The other files are there to allow for fast updates for existing users.
[4.0.6] QOL & Bug fixes
Changes:
• Dynamic GUI Zoom:
Added the ability to scale the UI to 100%, 125%, or 150% with live adaptation on 4K & high-DPI screens.
• Official NLC Microsoft Auth:
Native login now uses Mojang-allowlisted application credentials instead of Prism credentials + custom authID support.
• Auto Skin Model Detection:
Uploaded skins automatically detect Classic vs Slim/Alex arms in real time.
• One-Click Updates:
Fixed the "Update" button on update notifications not appearing and automatic startup checks.
• Revamped Log Viewer:
Filter logs by Game/Launcher, search in real time.
• Security Hardened:
Full redaction of credentials and tokens from diagnostic logs to address Quality Checks.
Note
To install the launcher, please download:
- NLCSetup.exe (Online installer)
- NLCSetup-offline.exe (Offline Installer)
For Linux, refer to this guide
The other files are there to allow for fast updates for existing users.
[4.0.5] Bug Fixes
Fixed
- Modpack Folder Navigation:
- Fixed duplicate folder window opening: clicking the "Folder" button or context menu entry inside a modpack now opens only the specific modpack's directory in a single window instead of also opening the parent modpacks directory.
- Modpack Mod Listing & Deletion Isolation:
- Resolved cross-modpack modlist leakage where deleting or disabling the last mod of a modpack abruptly displayed mods from another modpack or
.minecraft/mods. - Empty modpack mods folders are now strictly preserved and display the empty state card ("No mods found") rather than falling back to global
.minecraft/modsor loose matches. - Removed fuzzy UUID substring matching and empty ID collisions in mod directory resolution.
- Resolved cross-modpack modlist leakage where deleting or disabling the last mod of a modpack abruptly displayed mods from another modpack or
- Mod Disable / Rename Persistence:
- Fixed mod toggle persistence on disk: disabling a mod atomically renames
.jarto.jar.disabled(and vice-versa when enabling) with retry handling for transient file locks. - Forwarded explicit
pack_idfrom Slint through Rust to ensure mod toggle and deletion actions always target the active modpack. - Synced file status and names in
modpacks.jsonand linked installations, and rolled back UI state if a file operation fails.
- Fixed mod toggle persistence on disk: disabling a mod atomically renames
- Skin Locker Deletion:
- Fixed skin deletion bugs when deleting the currently active skin or the last preset in the locker.
- Wallpaper Management:
- Fixed clearing and resetting of the equipped wallpaper when deleted from the downloadable or custom wallpaper roster.
- Update Handling:
- Added an update button to the notification toast
- Fixed update check on startup
Added
- Wallpaper Upload Formats:
- Added support for custom wallpaper uploads across all standard image formats (
.png,.jpg,.jpeg,.webp,.bmp). - Added ability to delete/hide downloadable wallpapers without requiring them to be downloaded first.
- Added support for custom wallpaper uploads across all standard image formats (
- Modpack Creation Icon Palette:
- Integrated 35-block texture palette and custom icon selection into the modpack creation view.
- Implemented dynamic upstream version filtering for all loaders (Forge, NeoForge, Fabric, Quilt, Vanilla) to automatically reflect supported Minecraft versions.
Note
To install the launcher please download:
- NLCSetup.exe (Online installer)
- NLCSetup-offline.exe (Offline Installer)
For linux refer to this guide
The other files are there to allow for fast updates for existing users.
[4.0.4] Bug Fixes
Fixed
-
Windows Setup Launch & Permission Resolution (
NyLuna.exe):- Resolved
Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.error when launching the client upon setup completion. - Added automatic removal of NTFS
:Zone.IdentifierAlternate Data Streams (Mark of the Web) from internet-downloaded binaries to prevent Windows Attachment Manager / SmartScreen blocks. - Implemented interactive UAC de-elevation via
explorer.exewhen installer runs with Administrator privileges, ensuringNyLuna.exeexecutes under the interactive user token (Medium Integrity). - Added Windows Defender real-time scanning verification loop to prevent launch failures during file inspection locks.
- Fixed
_copy_with_progressto explicitly grant execute (0o755) and standard read/write permissions rather than copying restrictive PyInstaller temporary attributes viashutil.copystat.
- Resolved
-
PyInstaller Temporary Directory Cleanup (
_MEIxxxxxx):- Eliminated the popup warning dialog
Failed to remove temporary directory: C:\Users\...\AppData\Local\Temp\_MEIxxxxxxon installer exit. - Replaced PIL
Image.opendirect path loading with in-memory byte buffers (io.BytesIO) to guarantee zero open file handles to_MEIPASS\logo.png. - Added explicit Win32 GDI icon handle cleanup (
root.iconbitmap("")) on window closure. - Isolated all subprocess invocations (
powershell,taskkill,tasklist) withcwd=target_dir,stdin=DEVNULL, andclose_fds=Trueto prevent handle inheritance. - Replaced the race-prone 220ms timer with an event-driven
_on_install_completedteardown synchronization callback.
- Eliminated the popup warning dialog
Added
- Windows Single-Instance & Foreground Window Restoration:
- Implemented Win32 named mutex (
Local\NyLuna_SingleInstance_Mutex) in the Slint Rust frontend to restore and bring existing launcher windows to the foreground on duplicate launches on Windows, harmonizing with POSIX domain socket handling on Linux.
- Implemented Win32 named mutex (
- Installer Test Suite:
- Added unit test coverage for executable unblocking (
unblock_file) and cross-integrity process launch dispatching (launch_installed_app) intests/unit/test_web_installer_assets.py.
- Added unit test coverage for executable unblocking (
[4.0.3] Linux CDC Updates and documentation hardening
Added
- In launcher updates for linux with CDC to match windows behavior
- Community & Support Integration:
- Official Discord Support Server integration (
https://discord.gg/2CSGqYz9ms) across all website navigation bars, footers, support guides, and FAQs. - Unified responsive navbar and footer layout across all 12 website documentation and legal pages.
- Official Discord Support Server integration (
Changed
- Process Lifecycle & IPC Hardening:
- Linux agent child processes are now bound via
PR_SET_PDEATHSIG(SIGTERM on parent death), guaranteeing zero orphaned Python daemon processes on window exit. - Single-instance enforcement on Linux now uses POSIX domain sockets (
/tmp/nlc-<uid>.sock). - Hardened asynchronous JSON-RPC IPC reader loop against blocking pipe reads and buffer starvation across platform boundaries.
- Linux agent child processes are now bound via
- Hardware & Memory Detection:
- Replaced Windows-only
GlobalMemoryStatusExwith POSIX/proc/meminfoandsysconf(_SC_PHYS_PAGES)for accurate Linux RAM allocation cards.
- Replaced Windows-only
- Documentation Overhaul:
- Restructured
docs/WIKI.mdandweb/wiki.htmlinto a unified 12-chapter technical and practical player manual. - Consolidated SHA-256 checksums and binary verification guides into the Getting Started page, retiring obsolete standalone download pages.
- Restructured
Fixed
- License Attribution:
- Corrected the Settings screen About section from MIT to the project's official BSD-3-Clause license.
- Wayland & Linux Window Management:
- Fixed duplicate window rendering and taskbar ghosting on KDE Plasma and GNOME Wayland sessions by correctly configuring
StartupWMClass=nlc-ui. - Added native window icon bundling into AppDir root (
/usr/share/icons/hicolor/scalable/apps/nlc.svg).
- Fixed duplicate window rendering and taskbar ghosting on KDE Plasma and GNOME Wayland sessions by correctly configuring
- Cross-Platform OS Integrations:
- Replaced hardcoded
cmd.exe /c startexplorer calls with cross-platformxdg-openon Linux andopenon macOS. - Guarded Windows
winregimports to ensure clean test suite execution on non-Windows environments.
- Replaced hardcoded
Note
Some changes in this change log are related to 4.0.2 and 4.0.1
Note
To install the launcher please download:
- NLCSetup.exe (Online installer)
- NLCSetup-offline.exe (Offline Installer)
For linux refer to this guide
The other files are there to allow for fast updates for existing users.
[4.0.2] Linux fixes
- Fixed missing installation Icons
- Fixed Vanilla launch issue
Note
To install the launcher please download:
- NLCSetup.exe (Online installer)
- NLCSetup-offline.exe (Offline Installer)
For linux refer to this guide
The other files are there to allow for fast updates for existing users.
[4.0.1] Linux Support
- Fixed Linux support
- Updated documentation
- Updated setup guide for Linux: https://web.get-nlc.tech/getting-started.html
[4.0.0] Rust Rewrite & Improvements
Welcome to Ny-Luna 4.0.0! This release marks the biggest evolution of the launcher yet, transitioning from the legacy Tkinter interface to a lightning-fast, pure native Rust experience with an all-new identity, fluid animations, and deep customization.
This major update Includes:
- UI parity changes
- Major rebrand from New Launcher to Ny-Luna
- New Screenshot Gallery
- Many bug fixes Including and not limited to:
- Name reset bug
- Skin Injection not working
- Search hitbox in the modrinth page being inaccurate
- Launcher Freezing on maximise
- Uninstaller not working
This update also comes with
- An updated locker
- A new and optimised cape section instead of a whole cape page
- Dynamic buttons layout
- A new and improved onboarding
(This version has been tested and verified on windows, but haven't been tested on any linux distro as of date!)
Note
To install the launcher please download:
- NLCSetup.exe (Online installer)
- NLCSetup-offline.exe (Offline Installer)
The other files are there to allow for fast updates for existing users.
[3.0.6]
[3.0.5]
Added
- FastCDC Differential Updates: Introduced content-defined chunking (FastCDC with Gear rolling hashing) for Windows executable updates over GitHub Releases. The launcher downloads only missing byte ranges via HTTP
Rangerequests (~5–15 MB) instead of full binaries (~95 MB), regardless of internal offset shifts. - Standalone Binary Replacement: Enhanced
NLCUpdater.exewith--replace-binaryfor atomic staging swaps, backup preservation, and automated application relaunch. - Ed25519 Index Verification: Cryptographic signing and verification for CDC chunk index manifests (
NewLauncher.exe.cdc.json).
Fixed
- Notification Center Update Persistence: Fixed update cards auto-dismissing after 10 seconds; update notifications now remain pinned in the notification drawer until explicitly acted upon or dismissed.
- Toast Manager Parameter Compatibility: Fixed unhandled
TypeErrorexceptions across UI modules by allowinglevelas an alias forkindinToastManager.show().