A third-party launcher for your favourite MMO
Bolt, as well as the other Linux community projects, is being discussed at 7orm's Discord server. If you want to talk about development or need help getting set up, that's the place to go.
For Linux/Steamdeck users, Bolt is available on the following package managers:
com.adamcake.Bolt
bolt-launcher
Others should see the "releases" section on the right.
If you just want to get Bolt installed then you don't need to build it from source! See the "Installing" section.
But if you do want to build from source, the first thing you should know is that Bolt is based on Chromium Embedded Framework (CEF), so to build it, you'll first need either to build or download a binary distribution of CEF.
Clone this repository with submodules:
git clone --recurse-submodules https://github.com/Adamcake/Bolt.git
If you accidentally cloned without submodules (no modules
directory), you can checkout submodules like so:
git submodule update --init --recursive
Place your entire CEF binary distribution folder inside the cef
directory with the name "dist", or create a symbolic link with the same effect.
If building on Linux, the following are required:
libX11-devel
or libx11-dev
on most package managers)libxcb-devel
or libxcb1-dev
on most package managers)libarchive-devel
or libarchive-dev
on most package managers)luajit-devel
or luajit-dev
on most package managers) (OPTIONAL - only needed if you want to build the plugin library)OPTIONAL: build the frontend. Bolt's html frontend is already committed to this repo in app/dist
, so building it yourself isn't necessary. If you want to build it from source anyway then see app/README.md for full details on how this build system works, but here's the short version:
cd app/
npm install -g bun
(needs root access on Linux)bun install
bun run build
cd ..
Now you can start building. Open a command window or terminal in the root directory of this repository, then follow the build instructions for your platform.
If building with GCC, you need version 13.1 or later. If building with Clang, you need version 14 or later.
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
-D BOLT_LUAJIT_INCLUDE_DIR=/usr/include/luajit-2.1
OR -D BOLT_SKIP_LIBRARIES=1
depending on whether you want to build the plugin library-G Ninja
for much faster buildscmake --build build
cmake --install build --prefix build
build
directory, this needs to be done between changing and running the program every time--prefix
is not specified, Bolt will be installed to /usr/local, requiring root privilegesAfter that, the helper script ./build/bolt.sh
can be used to launch Bolt from its staging location.
Lastly, here are some optional settings which may be useful if you're integrating with another build system:
-D BOLT_META_NAME=
: the application's metadata name; default is "BoltLauncher"-D BOLT_CEF_INSTALLDIR=
: the directory (after the install prefix) where the binaries will be installed; default is "opt"-D BOLT_BINDIR=
: the directory (after the install prefix) where the bolt
binary will be installed; default is "usr/local/bin"-D BOLT_LIBDIR=
: the directory (after the install prefix) where bolt's libraries, if any, will be installed; default is "usr/local/lib"-D BOLT_SHAREDIR=
: the directory (after the install prefix) where metadata will be installed; default is "usr/local/share"-D BOLT_CEF_INCLUDEPATH=
: the absolute path to the location CONTAINING CEF's "include" directory (but not to the include directory itself); default is the value of CEF_ROOT-D BOLT_LIBCEF_DIRECTORY=
: the absolute path to a directory containing a pre-installed copy of libcef.so for linking against. if set, the directory containing libcef.so in CEF_ROOT will not be installed, and will therefore be unused. if unset, libcef.so will be found in the Debug or Release directory of CEF_ROOT.-D BOLT_CEF_RESOURCEDIR_OVERRIDE=
: the absolute path to a pre-installed CEF resource directory. if set, the path will be hardcoded into the application as a string, and the "Resources" directory from CEF_ROOT will not be installed, and will therefore be unused.-D BOLT_CEF_DLLWRAPPER=
: the absolute path to a .a
file which will be used instead of compiling libcef_dll_wrapper out of CEF_ROOT-D BOLT_SKIP_RPATH=1
: instead of setting bolt's runpath to $ORIGIN, it won't be set at all - useful only if you're intending to set it yourselfWindows builds have only been tested using Visual Studio 2022 (a.k.a. Visual Studio 17) in Release mode, per recommendations by chromium/cef. Other configurations may work but have not been tested.
cmake -S . -B build -G "Visual Studio 17" -D CMAKE_BUILD_TYPE=Release
-D BOLT_CEF_INSTALLDIR=[your filepath]
to specify the install location when running the final command. Must be an absolute path. The default is C:\bolt-launcher\
.-D BOLT_LUAJIT_DIR=path/to/luajit/src/
, where the path is the location of lua51.dll and the various lua headers, or -D BOLT_SKIP_LIBRARIES=1
-A Win32
for 32-bit targetscmake --build build --config Release
cmake --install build/
Run bolt.exe from the install location.
Not yet supported
When doing the initial cmake setup step, the following options exist which you may find useful. These are to be used for local development only.
-D BOLT_HTML_DIR=/some/directory
: the location of the launcher's internal webpage content, $PWD/app/dist
by default (note: must be an ABSOLUTE path)-D BOLT_DEV_SHOW_DEVTOOLS=1
: enables chromium developer tools for the launcher-D BOLT_DEV_LAUNCHER_DIRECTORY=1
: instead of embedding the contents of BOLT_HTML_DIR into the output executable, the files will be served from disk at runtime; on supported platforms the launcher will automatically reload the page when those files are changed-D BOLT_SKIP_LIBRARIES=1
when building.openssl1.1-devel
or something similar.java-17-openjdk
& java-17-openjdk-devel
.export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-17.0.9.0.9-3.fc39.x86_64"
There's not much to say here except that I have fairly high standards, so don't give me code that's messy or unfinished. Use a development environment that supports editorconfig before starting work. If committing to the frontend UI then see app/README.md, especially the Linting & Formatting section, for some UI-specific guidelines. Follow the general etiquette of git, i.e. commit messages 50 characters maximum, all changes in a commit must be relevant to the commit, and all commits in a PR must be relevant to the PR.
Icons - Kia
Flatpak integration - @nmlynch94
Most of the UI - @smithcol11
Bolt is an unofficial third-party project and is not in any way affiliated with any of the games or companies it interacts with. Said games and companies are not responsible for any problems with Bolt nor any damage caused by using Bolt.
Bolt is NOT a game client. It simply downloads and runs unmodified game clients. Bolt has absolutely no ability to modify or automate gameplay.