As of October 3rd, 2021, the hosting of the client files was taken down and there are no plans to set up new mirrors of the client. V.0.3.X and lower no longer work if the client was not downloaded before, and V.0.4.0 and newer will require you to find the client archive yourself.
Nexus LU (LEGO Universe) Launcher is a custom, cross-platform user interface for installing and launching LEGO Universe for community-run LEGO Universe servers.
For all platforms, a LEGO Universe client archive is required. Instructions on how to get one are not provided.
Download and extract Nexus-LU-Launcher-Windows-x64.zip
from the releases and run the executable.
Compatibility for Windows 8.1 and older is not guaranteed.
Download and extract Nexus-LU-Launcher-macOS-x64.zip
from the releases and run the application.
macOS 10.15 or newer is required.
Linux releases are provided under the releases, but the Flatpak is recommended. It includes WINE and creates a desktop entry for launching.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install io.thenexusavenger.Nexus-LU-Launcher
There is an optional patch named "Steam One-Click" as of version 2.2.0. It will attempt to:
A manual restart of Steam (such as changing from desktop to game mode) is required for the controller layout prompt to appear, or Nexus LU Launcher must already be added to Steam. Turning off fullscreen is also done after the first launch of the client due to the settings file not being there. Consider doing the first launch in desktop mode, and then switch to game mode.
No artwork is currently provided for the launcher, and uninstalling the patch will have no effect.
The goals of the launcher is the following:
The following aren't current goals of the launcher, but could be made at some point:
By default, Nexus LU Launcher will download files to a directory named
.nlul
in your user directory. This can be changed in the "Settings" tab.
Nexus LEGO Universe Launcher requires .NET 8.0 to be installed
since it allows packaging as single files without the requirement of
decompressing files. After cloning the repository with the submodules,
building can be done with the dotnet build
:
dotnet build
or dotnet publish
command:
dotnet publish
For creating the distributables in, there is a Python script that builds the launcher releases for win-x64, osx-x64, and linux-x64:
python publish.py
cd bin/ # The ZIP files of the distributables will be in bin/ of the repository.
Each release needs to be created for their platform.
glibc
on the system will become the minimum
version of glibc
the release will work on. If you have Docker, python3 publish-docker.py
will perform a build with RedHat UBI8 (uses glibc
2.28).Patches can be added and will be approved in pull requests if there is a proper justification to have them. They can including finishing incomplete features on the client, like guilds, or components that allow the client to work, like alternative communication mods.
As of version 2.2.0, patches can be added to the client using ZIP archives. There are 4 requirements:
patch.json
file exists in the top level of the archive.boot.cfg
is included, make sure the server name and address are correct.When using "Send To" > "Compressed (zipped) folder" on a folder, it will make it so only that folder is the top-level item of the archive. For example:
MyBadPatch.zip
|-MyBadPatch <--When the zip is opened, you will see "MyBadPatch" instead of "res" [!]
|---res
|-----myfile1.something
|-----myfile2.something
|---patch.json <--patch.json is not at the top level [!]
Instead, use "Send To" > "Compressed (zipped) folder" on the patch files directly (NOT the parent folder of them).
MyGoodPatch.zip
|-res <--When the zip is opened, you will see "res" and "patch.json"
|---myfile1.something
|---myfile2.something
|-patch.json <--patch.json is at the top level
patch.json
A patch.json
file is required in the archive. It can contain the following:
name
(required) - Dictionary of names for the locales the user may have.description
(required) - Dictionary of descriptions for the locales the
user may have.requirements
(optional) - Optional list of requirements the client must
meet to install. Supported options include:
packed-client
- Requires that the client must be packed.unpacked-client
- Requires that the client must be unpacked.LEGO Universe supports en_US
, de_DE
, and en_GB
locales. If a locale is
not provided, a placeholder text will be used.
This is an example patch.json
with all supported locales and requiring an
unpacked client.
{
"name": {
"en_US": "My Cool Patch",
"de_DE": "My Cool Patch, But German",
"en_GB": "My Cool Patch, But British"
},
"description": {
"en_US": "My description.",
"de_DE": "My description, but German.",
"en_GB": "My description, but British."
},
"requirements": [
"unpacked-client"
]
}
This is the minimum recommended patch.json
. It has no requirements.
{
"name": {
"en_US": "My Cool Patch"
},
"description": {
"en_US": "My description."
}
}
boot.cfg
Patches can include boot.cfg
, but it will not replace the stored copy.
Because this file is managed, instead of using the file directly, SERVERNAME
and AUTHSERVERIP
from the file will be added as a server list entry.
Updating addresses for a given name with an updated patch is supported as
well. Make sure to make SERVERNAME
(likely) unique, and avoid the default
Overbuild Universe (US)
.
LEGOⓇ is a trademark of the LEGO Group. The LEGO Group is not affiliated with this project, has not endorsed or authorized its operation, and is not liable for any safety issues in relation to its operation.