Youded-byte / lunar-client-qt

GNU General Public License v3.0
81 stars 7 forks source link

Github all releases GPLv3 Stars Forks CI

Lunar Client Qt

Lunar Client Qt is a lightweight, cross-platform and open sourced launcher for Lunar Client written in C++ using the Qt framework.

alt text

Agents

One of the primary features of this launcher is the ability to easily attach Java premain agents to your game, this allows you to modify the game on launch, which lets you write modifications that won't break when Lunar Client recieves an update.

Here are repositories containing some useful java agents that you might want to use: https://github.com/Nilsen84/lunar-client-agents and https://github.com/Youded-byte/youded-lunar-client-agents. If you're familiar with java bytecode feel free to write your own!

Weave Mods

You are able to use Weave Mods using this launcher. Weave comes bundled in the launcher and you can enable it in the settings. Mod management can be done inside of the launcher. The source code can be found here https://github.com/Weave-MC/Weave-Loader. If you want to use a custom/newer version of Weave, disable the included Weave inside the launcher and add the desired one as agent instead.

Useful command line options

A useful feature of this launcher is the ability to with the click of a button immediately get into lunar client without the hassle of being faced with a launcher interface at every launch. Launch Lunar Client Qt with the --nogui argument and you will be launched into lunar client using the options you have used in the previous launch. It can be added to a shortcut of the program with ease. There are plenty of additional things you can override when launching without gui. You can for example use the --gameVersion 1.8.9 or any other version to play that version instead of the one you last played. With --assetIndex you can override the assetIndex version, if the launcher hasn't been updated in a while but you want to use it anyway and you know what you're doing. --xmsOverride and --xmxOverride override your min and max memory allocation. Useful if one version uses more RAM than the other. Keep in mind that these forced settings will not be saved.

Helper program support

It is common for people to use external programs such as overlays, proxies and clients to enhance their minecraft experience. This launcher includes built-in support to launch such programs alongside lunar client.

Performance Improvements

This launcher is able to launch lunar client very quickly. The ability to use a custom JRE and JVM arguments opens up more possibilities for performance improvements. You can refer to this for advice.

Bugs

Bugs and crashes are bound to happen as changes outside our control happen. If a crash happens it is likely due to old files being left over by lunar. First clear your %userprofile%\.lunarclient\offline\multiver folder to remove old files, then launch your desired version on the official launcher. If your game still does not work, open an issue, stating your game version, forge, fabric or optifine option and add explanation, like copying the error.log and latest.log file. If the error is "Program Not Found", a possible fix is to download and use a custom JRE. A solid choice is GraalVM, but see this for detailed information.

Build instructions

Make sure you have Qt6 or Qt5 and CMake 3.21+ installed.

git clone https://github.com/Youded-byte/lunar-client-qt.git
cd lunar-client-qt
mkdir build && cd build
cmake ..
make

NOTE
If you're on MacOS, you want to start off by installing Qt using Brew: brew install qt@6
You also want to replace the cmake .. command with cmake -DCMAKE_PREFIX_PATH=/usr/local/opt/qt6/ ..
Besides that, follow the same instructions above.