OneLauncher
An enhanced launcher for both
LOTRO and
DDO with many features including an addons manager for plugins, skins, and music.
Features
- Multiple accounts support
- Password saving
- Plugins, skins, and music manager
- External scripting support for addons
- Auto WINE setup for Linux
- Multiple clients support
- more
Installation
The easiest way to get OneLauncher is with a
compiled release. It can also be run with Python Poetry or Nix.
System Requirements
Windows
Windows 10 (1809 or later) or Windows 11 is required. These are what
Qt6 supports.
Linux
Most people should just need to
install WINE. Review the rest of these requirements if you have trouble after that.
Command Line Usage
All settings can be overridden from the command line. This is especially useful for making custom shortcuts. For example, loading the LOTRO preview client in French could be done with
--game lotro_preview --locale fr.
Code:
OneLauncher 2.0
Usage: onelauncher [OPTIONS] COMMAND [ARGS]...
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version Print version and exit. │
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it or customize the installation. │
│ --help -h Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Program Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --default-locale TEXT The default language for games and UI. │
│ --always-use-default-locale-for-ui --no-always-use-default-locale-for-ui Use default language for UI regardless of game language │
│ --games-sorting-mode [priority|last_played|alphabetical] Order to show games in UI │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Game Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --game GAME_TYPE_OR_ID Which game to load. (lotro, lotro_preview, ddo, ddo_preview, or a game config ID) │
│ --game-directory DIRECTORY The game's install directory │
│ --locale TEXT Language used for game │
│ --client-type [WIN64|WIN32|WIN32Legacy] Which version of the game client to use │
│ --high-res-enabled --no-high-res-enabled If the high resolution game files should be used │
│ --standard-game-launcher-filename TEXT The name of the standard game launcher executable. Ex. LotroLauncher.exe │
│ --patch-client-filename TEXT Name of the dll used for game patching. Ex. patchclient.dll │
│ --game-settings-directory DIRECTORY Custom game settings directory. This is where user preferences, screenshots, and │
│ addons are stored. │
│ --newsfeed TEXT URL of the feed (RSS, ATOM, ect) to show in the launcher │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Game Account Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --username TEXT Login username │
│ --display-name TEXT Name shown instead of account name │
│ --last-used-world-name TEXT World last logged into. Will be the default at next login │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Game Addons Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --startup-script FILE Python scripts run before game launch. Paths are relative to the game's documents config directory │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Game WINE Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --builtin-prefix-enabled --no-builtin-prefix-enabled If WINE should be automatically managed │
│ --user-wine-executable-path FILE Path to the WINE executable to use when WINE isn't automatically managed │
│ --user-prefix-path DIRECTORY Path to the WINE prefix to use when WINE isn't automatically managed │
│ --wine-debug-level TEXT WINE debug level to use │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Contributing
See
CONTRIBUTING.md
Information For Addon Developers
Getting Your Addon in OneLauncher
I follow the RSS feed on
LotroInterface and will add any addons that look to be in the correct format. Compendium files are
not required.
You can open an issue or email me if your addon still needs to be added.
Archive Format
- Addons must be uploaded as a zip!
- Archive should have a descriptive name (i.e. not "skin" or "plugin")
- It's okay but not recommended if the archive has no root folder, multiple root folders, or includes part of the path to the data folder like "ui/skins" or "Plugins".
Compendium Files
Compendium files should be placed inside the top-level directory of your addon, and their names follow the format:
{NAME}.{plugin/skin/music}compendium
An example is
Example Plugin.plugincompendium
The contents of compendium files follow the format:
Code:
<{Plugin/Skin/Music}Config>
<Id>{LOTRO INTERFACE ID}</Id>
<Name>{NAME}</Name>
<Description>{DESCRIPTION}</Description>
<Version>{VERSION}</Version>
<Author>{AUTHOR}</Author>
<InfoUrl>http://www.lotrointerface.com/downloads/info{LOTRO INTERFACE ID}</InfoUrl>
<DownloadUrl>http://www.lotrointerface.com/downloads/download{LOTRO INTERFACE ID}</DownloadUrl>
<!--Descriptors only needed for plugins-->
<Descriptors>
<descriptor>{AUTHOR}\{NAME}.plugin</descriptor>
<!--More descriptors can be added if more plugins are part of the main plugin. This is a representation of the paths to all the .plugin files.-->
</Descriptors>
<!--Dependencies can be added for any type of addon. The dependency doesn't have to be of the same addon type as what is dependent on it-->
<Dependencies>
<dependency>{INTERFACE ID OF DEPENDENCY}</dependency>
<!--Any amount of dependencies are fine-->
</Dependencies>
<!--An addon can request permission to run a Python script at every game launch.-->
<StartupScript>{PATH TO PYTHON SCRIPT IN SAME FORMAT AS DESCRIPTORS}</StartupScript>
</{Plugin/Skin/Music}Config>
An example is:
Code:
<PluginConfig>
<Id>314159</Id>
<Name>Example Plugin</Name>
<Description>Does example things</Description>
<Version>4.0.4</Version>
<Author>June Stepp</Author>
<InfoUrl>http://www.lotrointerface.com/downloads/info314159</InfoUrl>
<DownloadUrl>http://www.lotrointerface.com/downloads/download314159</DownloadUrl>
<Descriptors>
<descriptor>JuneStepp\Example.plugin</descriptor>
<descriptor>JuneStepp\Another Example.plugin</descriptor>
</Descriptors>
<Dependencies>
<dependency>0</dependency>
<dependency>367</dependency>
</Dependencies>
<StartupScript>JuneStepp\example.py</StartupScript>
</PluginConfig>
There is a
vscode extension by @lunarwtr that can lint compendium and other related files. It includes
XML schemas you can manually reference as well.
Patches
Patches must follow the same format as the addon that is being patched. The most common issue is leaving out folders farther up the tree from what is changed.
Here is a list of possible issues to keep in mind when making a patch:
Make sure patch…
- Follows the exact same folder structure as the addon being patched.
- Doesn't edit the compendium file of the addon being patched.
- Is installed after what is being patched.
- Has clear name.
Collections
Collections of addons can be made by listing the addons you would like in the collection as dependencies of your addon. See the
Compendium Files section for how to add dependencies to your addon.
Dependencies
Dependencies will be installed automatically after your addon. See the
Compendium Files section for how to add dependencies to your addon. Turbine Utilities uses ID
0.
Startup Scripts
Startup scripts are Python scripts that will be run before every game launch. When installing an addon with a startup script, the user will be prompted for permission for the script to run and shown the contents of the script. Addons should anticipate and handle the user not giving permission. See the
Compendium Files section for how to add a startup script to your addon.
Builtin Variables
These are pre-set variables that you can access in your startup script.
- __file__: The string path to your startup script.
- __game_dir__: The string path to the current game directory.
- __game_config_dir__: The string path to the current game settings folder. This is normally "The Lord of the Rings Online" or "Dungeons and Dragons Online" in the user's documents folder, but it can be configured differently.
Custom Clients
OneLauncher Banner Image
Game banner images are displayed above the newsfeed in OneLauncher and are normally expected to be 300x136 pixels. Images following the path
{Game Directory}/{Locale Resources Folder}/banner.png will replace the default banner for that game and locale. If there is no image for a user's selected locale, the default image will be shown. An example path is
C://Program Files/Standing Stone Games/Lord of The Rings Online/en/banner.png.
License
GPLv3+ License. Copyright 2019-2024 - June Stepp.
See the
LICENSE file for details.
The
Font Awesome font is licensed under the
SIL Open Font License.
The
Material Design Icons font is licensed under the
Apache License Version 2.0.
The Lord of the Rings Online is a trademark of Middle-earth Enterprises.
Dungeons & Dragons Online is a trademark of Wizards of the Coast LLC.
The Lord of the Rings Online and Dungeons & Dragons Online games and logos are owned by Standing Stone Games LLC. I am not affiliated with Standing Stone Games LLC, Middle-earth Enterprises, or Wizards of the Coast LLC in any way.