Fjord Launcher Documentation

repository·develop·Indexed 18 days ago

https://github.com/unmojang/fjordlauncher

A soft fork of Prism Launcher that adds support for alternative authentication servers such as Drasl, Ely.by, and Blessing Skin. Documentation covers installation across multiple platforms (Nix, Windows via Scoop, macOS via Homebrew, Flatpak, Arch Linux, and Gentoo), configuration of the Java-based launcher component, and setup for authlib-injector compatible authentication servers.

Tokens
5K
Snippets
18
Records
27
Agent score
63%

What's inside Fjord Launcher

  1. Fjord Launcher Package Variants

    develop

    The Nix packaging provides two distinct package types:

    • fjordlauncher: The preferred build. It is a wrapped package containing everything necessary to run both the launcher and Minecraft.
    • fjordlauncher-unwrapped: A minimal build intended for advanced users who need to customize the launcher's runtime environment manually.
  2. Use the launcher component for Minecraft launches

    develop

    The launcher component is a Java-based tool designed to launch Minecraft. It operates by waiting for a launch script via stdin. The process remains idle until it receives a specific command, allowing users to attach profilers or other tools before the actual launch begins.

    Workflow:

    1. Start the launcher process.
    2. Feed the launch script (containing mod, mainClass, param, windowTitle, etc.) into stdin.
    3. The process proceeds with the launch once it receives the launcher command.
    4. To terminate the process without launching, send the abort command.

    Launcher Types:

    • standard: Supports any Minecraft version.
    • legacy: Intended for Minecraft versions < 1.6 (deprecated). Enables custom window icons and titles.

    Example Launch Script Format:

    mod <mod_name>
    mainClass <class_name>
    param <key>
    param <value>
    ...
    windowTitle <title>
    windowParams <width>x<height>
    userName <username>
    sessionId <session_id>
    launcher <standard|legacy>
    mod legacyjavafixer-1.0
    mainClass net.minecraft.launchwrapper.Launch
    param --username
    param CENSORED
    param --version
    param Prism Launcher
    param --gameDir
    param /home/peterix/minecraft/FTB/17ForgeTest/minecraft
    param --assetsDir
    param /home/peterix/minecraft/mmc5/assets
    param --assetIndex
    param 1.7.10
    param --uuid
    param CENSORED
    param --accessToken
    param CENSORED
    param --userProperties
    param {}
    param --userType
    param mojang
    param --tweakClass
    param cpw.mods.fml.common.launcher.FMLTweaker
    windowTitle Prism Launcher: 172ForgeTest
    windowParams 854x480
    userName CENSORED
    sessionId token:CENSORED:CENSORED
    launcher standard
  3. Install Fjord Launcher via Flatpak

    develop

    Flatpaks are available for both x86_64 and aarch64 architectures. You can install using a .flatpakref file or via the command line:

    flatpak install --user https://unmojang.github.io/unmojang-flatpak/org.unmojang.FjordLauncher.flatpakref
  4. Install Fjord Launcher on macOS

    develop

    You can install Fjord Launcher on macOS using Homebrew (recommended) or by downloading manual builds.

    Run the following commands in your terminal:

    brew tap unmojang/homebrew-unmojang
    brew install --cask fjordlauncher

    Manual Installation

    Download macOS builds from the releases section.

  5. Use public authlib-injector compatible auth servers

    develop

    Fjord Launcher supports authentication servers compatible with authlib-injector. If you are using a public auth server, you will need its specific API URL for configuration.

    Special Note for Ely.by: If you have 2FA enabled on your Ely.by account, you must append your 2FA code to the end of your password during login using the format password:code.

  6. Install Fjord Launcher without Flakes (Directly)

    develop

    For systems not using Flakes, you can use fetchTarball to import the development branch directly into your configuration.

    { pkgs, ... }:
    {
      environment.systemPackages = [
        (import (
          builtins.fetchTarball "https://github.com/FjordLauncher/FjordLauncher/archive/develop.tar.gz"
        )).packages.${pkgs.system}.fjordlauncher
      ];
    }
  7. Install Fjord Launcher without Flakes (Overlay)

    develop

    To ensure Fjord uses your system's libraries on non-flake systems, add the Fjord Launcher overlay via fetchTarball to your nixpkgs.overlays.

    { pkgs, ... }:
    {
      nixpkgs.overlays = [
        (import (
          builtins.fetchTarball "https://github.com/FjordLauncher/FjordLauncher/archive/develop.tar.gz"
        )).overlays.default
      ];
    
      environment.systemPackages = [ pkgs.fjordlauncher ];
    }
  8. Configure Cachix substitutors for Fjord Launcher

    develop

    To avoid rebuilding Fjord Launcher from source when using development or release builds, add the Cachix bucket to your Nix configuration. This allows you to download pre-built binaries from https://unmojang.cachix.org.

    Alternatively, you can use the --accept-flake-config flag with nix commands to temporarily enable the substitutor.

    {
      nix.settings = {
        trusted-substituters = [ "https://unmojang.cachix.org" ];
    
        trusted-public-keys = [
          "unmojang.cachix.org-1:OfHnbBNduZ6Smx9oNbLFbYyvOWSoxb2uPcnXPj4EDQY="
        ];
      };
    }
  9. Install Fjord Launcher via Nix Flakes (Overlay)

    develop

    Instead of using the packages output, you can add the Fjord Launcher overlay to your nixpkgs instance. This ensures Fjord is built using your system's specific package versions.

    Warning: Using an overlay may result in binaries that differ from the official packages output, which means you will not be able to use the Cachix binary cache.

    {
      inputs = {
        nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    
        fjordlauncher = {
          url = "github:unmojang/FjordLauncher";
    
          # Optional: Override the nixpkgs input of fjordlauncher to use the same revision as the rest of your flake
          # inputs.nixpkgs.follows = "nixpkgs";
        };
      };
    
      outputs =
        { nixpkgs, fjordlauncher, ... }:
        {
          nixosConfigurations.foo = nixpkgs.lib.nixosSystem {
            modules = [
              ./configuration.nix
    
              (
                { pkgs, ... }: 
                {
                  nixpkgs.overlays = [ fjordlauncher.overlays.default ];
    
                  environment.systemPackages = [ pkgs.fjordlauncher ];
                }
              )
            ];
          };
        };
    }