Synchronize games from other platforms into your Steam library

Overview

BoilR

Description

This little tool will synchronize games from other platforms into your Steam library, using the Steam Shortcuts feature. The goal is that you do not have to leave your Steam library to launch games from other launchers/stores.

Features

  • Download art from SteamGridDB
  • Legendary integration
  • Epic Games Store integration
  • Itch.io integration
  • Origin integration (currently only windows, linux comming soon)
  • GOG integration
  • Cross Platform (Linux & Windows)
  • UI For configuration
  • Small (~1.5mb on disk)
  • Lightweight (~2mb ram)
  • Fast synchronization (~30ms)
  • Fast art download (as fast as your internet will take you)
  • UPlay integration
  • Lutris integration
  • XBox/Microsoft Store integration
  • Scheduling of synchronization
  • Steam Deck support (should work, but need to test when I get one)

Beta

This tool is still in beta, there are still lots of things to do, but the things that are there work. Feel free to submit issues and pull requests.

Getting started

  • Download the latest release from the releases page.
  • Choose the UI version or the cli version (if in doubt pick the UI version)
  • Place it in a folder of your choice.
  • Run the executable.
  • Restart Steam to see your new shortcuts.

Getting art for your shortcuts

  • Get a SteamGridDB API key
  • For the CLI version, Write it in the config.toml file (see how in the config section).
  • for the Ui version , copy it into the auth key input.
  • Run the executable again

Configuration

The tool reads its configuration from a config.toml file. You can either manually edit this file or use the UI version to changing these configurations.

Here is a simple example of how to write the config file:

[steamgrid_db]
auth_key="your steamgrid db auth key"

And here is a full example of all configuration options:

[epic_games]
enabled=true #On windows this is default true, on linux default false
location="C:\\ProgramData\\Epic\\EpicGamesLauncher\\Data\\Manifests" #If this value is not defined, the tool will try to find it automatically (only windows). If it can't find it, it will fail and tell you.
create_symlinks = true #Only for Linux, To get around a bug in steam where paths can not contain spaces, BoilR creates symlinks in ~/.boilr/link and uses those. 

[legendary]
enabled=false #On windows this is default false, on linux default true
executable="legendary" #If this value is not defined, "legendary" will be used, it is assumed to be on the path.

[itch]
enabled=false #Default false
location="C:\\Users\\user\\AppData\\Roaming\\itch" #If this value is not defined, "%APPDATA%itch" will be used on windows, and HOME/.config/itch on linux.
create_symlinks = true #Only for Linux, To get around a bug in steam where paths can not contain spaces, BoilR creates symlinks in ~/.boilr/link and uses those. 

[origin]
enabled=false #Default false
location="C:\\ProgramData\\Origin" #If this value is not defined, "%PROGRAMGDATA%origin" will be used on windows, and HOME/Games/origin/drive_c/ProgramData/Origin/ on linux.

[gog]
enabled=false #Default false
location="C:\\ProgramData\\GOG.com\\Galaxy" #The location of GOG Galaxy will default to this value if not defined on windows and "~/Games/gog-galaxy/drive_c/ProgramData/GOG.com/Galaxy" on linux.
create_symlinks = true #Only for Linux, To get around a bug in steam where paths can not contain spaces, BoilR creates symlinks in ~/.boilr/link and uses those. 
wine_c_drive="/home/username/Games/gog-galaxy/drive_c" #Only for Linux, Is mandatory on linux. 

[steam]
location="C:\\Program Files (x86)\\Steam\\" #If this value is not defined, the tool will try to find it automatically. If it can't find it, it will fail and tell you.

[steamgrid_db]
enabled = true #If false, the whole download of custom art will be skipped.
auth_key="<your steamgrid db auth key>" #This value is mandatory if you have steamgrid_db enabled.

Tips for Linux

If you are on linux, and want to use one of the launchers that is not available natively, here are a few ways that you can make them work.

GOG

  • Install Lutris
  • Install GOG thourgh Lutris here
  • Set the path to GOG in the config.toml (or through the ui)
  • Run BoilR
  • Remember to pick which version of Proton you want to use for a game, before the first time you play it.

Epic

I recommend you just use Legendary. But if you really want to use EGS you can:

  • Install Lutris
  • Install EGS thourgh Lutris here
  • Set the path to EGS in the config.toml (or through the ui)
  • Run BoilR
  • Remember to pick which version of Proton you want to use for a game, before the first time you play it.

Origin

Currently BoilR can't setup shortcuts to Origin because Origin uses a special link to open games. But I know of a workaround, it is just going to take a bit to make (basicly let Boiler take that url as input and let it call origin with proton settings and the url). This section will be updated when it is ready. Untill then you can still play origin games thourgh Lutris here

License

This project is dual license MIT or Apache 2.0 , it is up to you. In short, you can do what you want with this project, but if in doubt read the license files.

Issues
  • Searching for game images does not complete

    Searching for game images does not complete

    Firstly thanks for creating such a great application

    Using GUI version and it never seems to complete. If I click on the GUI once it begins it locks up

    Found 5 user(s) Found 69 shortcuts for user: C:\Program Files (x86)\Steam\userdata\311838003 Error getting shortcuts from platform: Legendary The system cannot find the file specified. (os error 2) Found 40 game(s) for platform Origin Found 1 game(s) for platform Gog Saved 69 shortcuts Finished synchronizing games in: 43.2475ms Found 69 shortcuts for user: C:\Program Files (x86)\Steam\userdata\53868787 Error getting shortcuts from platform: Legendary The system cannot find the file specified. (os error 2) Found 40 game(s) for platform Origin Found 1 game(s) for platform Gog Saved 69 shortcuts Finished synchronizing games in: 11.0708ms Found 74 shortcuts for user: C:\Program Files (x86)\Steam\userdata\60957330 Error getting shortcuts from platform: Legendary The system cannot find the file specified. (os error 2) Found 40 game(s) for platform Origin Found 1 game(s) for platform Gog Saved 74 shortcuts Finished synchronizing games in: 9.6156ms Found 69 shortcuts for user: C:\Program Files (x86)\Steam\userdata\81110563 Error getting shortcuts from platform: Legendary The system cannot find the file specified. (os error 2) Found 40 game(s) for platform Origin Found 1 game(s) for platform Gog Saved 69 shortcuts Finished synchronizing games in: 10.7668ms Found 69 shortcuts for user: C:\Program Files (x86)\Steam\userdata\ac Error getting shortcuts from platform: Legendary The system cannot find the file specified. (os error 2) Found 40 game(s) for platform Origin Found 1 game(s) for platform Gog Saved 69 shortcuts Finished synchronizing games in: 11.8046ms Checking for game images Searching for AMAZONS Searching for HITMAN 2 Standard Searching for Metro Exodus Enhanced Edition Searching for A Total War Saga: TROY Searching for Ticket to Ride Searching for Sam's Story Enhanced Edition Searching for HITMAN 2 Expansion Searching for Sid Meier's Civilization VI Searching for HITMAN 1 GOTY Upgrade Searching for Carcassonne Searching for AMAZONS Searching for HITMAN 2 Standard Searching for Metro Exodus Enhanced Edition Searching for A Total War Saga: TROY Searching for Ticket to Ride Searching for Sam's Story Enhanced Edition Searching for HITMAN 2 Expansion Searching for Sid Meier's Civilization VI Searching for HITMAN 1 GOTY Upgrade Searching for Carcassonne Searching for Total War: Attila Searching for Apex (Origin) Searching for GTA V Rage Searching for Escape from Tarkov Searching for HITMAN 3 Searching for AMAZONS Searching for HITMAN 2 Standard Searching for Metro Exodus Enhanced Edition Searching for A Total War Saga: TROY Searching for Ticket to Ride Searching for AMAZONS Searching for HITMAN 2 Standard Searching for Metro Exodus Enhanced Edition Searching for A Total War Saga: TROY Searching for Ticket to Ride Searching for Sam's Story Enhanced Edition Searching for HITMAN 2 Expansion Searching for Sid Meier's Civilization VI Searching for HITMAN 1 GOTY Upgrade Searching for Carcassonne Searching for AMAZONS Searching for HITMAN 2 Standard Searching for Metro Exodus Enhanced Edition Searching for A Total War Saga: TROY Searching for Ticket to Ride Searching for Sam's Story Enhanced Edition Searching for HITMAN 2 Expansion Searching for Sid Meier's Civilization VI Searching for HITMAN 1 GOTY Upgrade Searching for Carcassonne

    opened by deltoran0 2
  • GOG Galaxy

    GOG Galaxy

    Make an integration to GoG Galaxy

    Two possible ways:

    1. Look at uninstallers in the registry database
    2. look at default install folders and parse the GoG database for those folders
    plugin 
    opened by PhilipK 0
  • Make url calls in parallel

    Make url calls in parallel

    Downloading and searching can be done in parallel (since they are async), but it should be done in batches to not spam SteamGridDB.

    enhancement 
    opened by PhilipK 0
  • Automatic catagory assigning

    Automatic catagory assigning

    Not sure if this would even be possible, but it could be very useful to put "epic games" in a steam library catagory named "epic" automagically!

    opened by SjorsMaster 4
  • 'No images needed' but no game art in Steam

    'No images needed' but no game art in Steam

    hey! thanks for building this, i'm getting 'no images needed' and no images in the steam, is there anything i need to change? the games definitely exist on steamgriddb (eg snowrunner, hades, & battlefield v)

    Found 1 user(s)
    Found 5 shortcuts for user: C:\Program Files (x86)\Steam\userdata\{redacted idk if it's sensitive}
    Found 4 game(s) for platform EGS
    Found 1 game(s) for platform Origin
    Saved 5 shortcuts
    Finished synchronizing games in: 1.4165ms
    Checking for game images
    No images needed```
    opened by arussellsaw 2
  • Microsoft / Xbox integration

    Microsoft / Xbox integration

    This might not even be possible, but it is worth a shot.

    plugin 
    opened by PhilipK 0
  • Customize art preferences for SteamGridDB

    Customize art preferences for SteamGridDB

    Set up a section in the configuration file (and the UI) that lets users select preferences for which images to download. This could include image types, sizes and so on.

    opened by PhilipK 0
  • Show progress in the UI

    Show progress in the UI

    Show synchronization progress in the UI

    enhancement 
    opened by PhilipK 0
  • Make origin integration work with proton

    Make origin integration work with proton

    Currently the Origin integration simply sets the "launch" parameter to the origin launch url. To make this work on linux, it needs to call proton give it the origin exe and then give that the url instead.

    enhancement 
    opened by PhilipK 0
  • Lutris integration

    Lutris integration

    null

    opened by PhilipK 0
  • Battle Net integration

    Battle Net integration

    null

    plugin 
    opened by PhilipK 0
  • UPlay integration

    UPlay integration

    null

    plugin 
    opened by PhilipK 0
Releases(v.0.7.3)
Owner
Philip Kristoffersen
I make tools and games
Philip Kristoffersen
An ergonomic physics API for bevy games.

Heron An ergonomic physics API for 2d and 3d bevy games. (powered by rapier) How it looks like fn main() { App::build() .add_plugins(DefaultPlug

Jonathan Cornaz 105 Nov 24, 2021
A frontend to Assets purchased on Epic Games Store

Epic-Asset-Manager A frontend to Assets purchased on Epic Games Store Current Screenshot Install Arch Linux Use the AUR package Build flatpak meson _b

Acheta Games 66 Nov 26, 2021
A single-threaded polling-based Rust async executor suitable for use in games, embedded systems or WASM.

simple async local executor An Enlightware® software. Overview A single-threaded polling-based executor suitable for use in games, embedded systems or

Enlightware GmbH 9 Nov 23, 2021
A framework for making games using Macroquad.

Omegaquad A framework for making games using Macroquad. After writing maybe 5 games and finding myself always going to the previous project to copy-pa

null 10 Nov 10, 2021
A simple camera for properly displaying tile-based low resolution pixel perfect 2D games in bevy.

Bevy Tiled Camera A simple camera for properly displaying low resolution pixel perfect 2D games in bevy. The camera will adjust the viewport to scale

sark 1 Nov 22, 2021
A plugin for Egui integration into Bevy

bevy_egui This crate provides a Egui integration for the Bevy game engine. Features: Desktop and web (bevy_webgl2) platforms support Clipboard (web su

Vladyslav Batyrenko 170 Nov 29, 2021
A CLI tool to manage your godot-rust projects

ftw A CLI tool to manage your godot-rust project! Table of contents General Information Setup Usage Contact General Information This is a tool to help

Michael Angelo Calimlim 60 Nov 14, 2021
rpg-cli —your filesystem as a dungeon!

rpg-cli is a bare-bones JRPG-inspired terminal game written in Rust. It can work as an alternative to cd where you randomly encounter enemies as you change directories.

Facundo Olano 1.1k Nov 27, 2021
A puzzle game where you eat your own tail to win!

taileater taileater is a puzzle game available for free here: https://szunami.itch.io/taileater This project is built using Rust and Bevy. Assets were

null 18 Nov 14, 2021
The Big Cheese a webapp wherein you can share recipes with your friends.

The Big Cheese The Big Cheese a webapp wherein you can share recipes with your friends. Contributing Contributions are what make the open source commu

null 2 Nov 5, 2021
💤 Put your Minecraft server to rest when idle.

?? Put your Minecraft server to rest when idle.

Tim Visée 167 Nov 23, 2021
A Rust wrapper and bindings of Allegro 5 game programming library

RustAllegro A thin Rust wrapper of Allegro 5. Game loop example extern crate allegro; extern crate allegro_font; use allegro::*; use allegro_font::*;

null 68 Nov 24, 2021
High performance Rust ECS library

Legion aims to be a feature rich high performance Entity component system (ECS) library for Rust game projects with minimal boilerplate. Getting Start

Amethyst Engine 1.2k Nov 25, 2021
Rust library to create a Good Game Easily

ggez What is this? ggez is a Rust library to create a Good Game Easily. The current version is 0.6.0-rc0. This is a RELEASE CANDIDATE version, which m

null 3.1k Nov 27, 2021
Rust bindings for libtcod 1.6.3 (the Doryen library/roguelike toolkit)

Warning: Not Maintained This project is no longer actively developed or maintained. Please accept our apologies. Open pull requests may still get merg

Tomas Sedovic 224 Nov 24, 2021
A dependency-free chess engine library built to run anywhere.

♔chess-engine♚ A dependency-free chess engine library built to run anywhere. Demo | Docs | Contact Me Written in Rust ?? ?? Why write a Chess engine?

adam mcdaniel 311 Nov 28, 2021
Scion is a tiny 2D game library built on top of wgpu, winit and legion.

Scion is a 2D game library made in rust. Please note that this project is in its first milestones and is subject to change according to convience need

Jérémy Thulliez 74 Nov 22, 2021
Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)

webview A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUIs. Also, there are Rust bindings, Python bindings, Ni

webview 9.1k Nov 22, 2021
Atomic Physics Library

Iridium Atomic Physics Library Attempt at making a atomic database. Uses Nubase2020, ENSDF for decay chains, atomic masses, and half-lives. Nubase2020

J.A Sory 10 Nov 18, 2021