Skip to content

1.1.1

Choose a tag to compare

@github-actions github-actions released this 13 Jun 20:43
v1.1.1
2cf8f66

A launcher-sync, old-version, and reliability update - import instances from other launchers, smoother navigation, sounds and language files restored on legacy Minecraft versions, and a wide round of launch, security,
and install fixes.

✨ What's new

Sync instances from other launchers

A new Sync panel scans for instances from Prism Launcher, MultiMC, Modrinth, ATLauncher, CurseForge, and GDLauncher. Each can be Linked (launched in place from its original folder, so mods stay in sync) or
Imported (copied into Refract as an independent instance). Sources are grouped and color-coded.

Smooth page transitions

Navigating between pages now animates with a horizontal slide and soft blur on spring easing, instead of snapping.

Sounds & language files on old versions

Pre-1.7 / legacy versions don't read assets from the modern hashed object store, so they used to launch with no sounds, no language files, and missing menu icons. Refract now materializes the legacy/virtual asset tree
on install (and mirrors it into the instance's resources/ folder for pre-1.6).

Bug fixes

  • NeoForge / Forge wouldn't launch. A custom Java path pointing at a JDK folder (not java.exe) failed with ENOENT - now resolved to the correct executable (and whitespace-trimmed). Auto-detection picked the
    newest Java instead of the closest match - now prefers the closest Java at or above the requirement. An incomplete install used to crash with Unknown module: cpw.mods.securejarhandler - Refract now checks the
    loader's module files first and asks you to repair instead.
  • Duplicate libraries broke older Forge. Vanilla and loader copies of shared libraries (ASM, log4j) both landed on the classpath at different versions; they're now de-duplicated by Maven coordinate, with the
    loader's version winning.
  • Empty window after enabling the renderer sandbox. The preload loaded a helper package with a runtime require() that sandboxed preloads can't make, so window.api never initialized and the app looked wiped.
    The preload now bundles its dependencies - sandbox stays on, data loads normally.
  • Stop / "already running" broke after a restart. Running games are now tracked by persisted PID, so liveness detection and Stop survive reopening the launcher.
  • Streak rolled over at the wrong time. The 🔥 daily streak now rolls at your local midnight instead of UTC.
  • Custom JVM args with spaces. Quoted values like -Dfoo="bar baz" are no longer split incorrectly.
  • Some downloads failed on mirrors. Now follows 303/307/308 redirects and resolves relative Location URLs.
  • Sync panel & localization. Works in all builds, fully translated to Ukrainian, correct accent styling.
  • Linked-instance content now writes to that instance's own game folder; installs can be cancelled per-instance.
Security & hardening

The renderer now runs sandboxed. World, screenshot, and asset file operations reject path-traversal names, production builds no longer open DevTools, and untrusted HTML is stripped through an inert parser.


Full Changelog: v1.1.0...v1.1.1