Giter Site home page Giter Site logo

raicuparta / rai-pal Goto Github PK

View Code? Open in Web Editor NEW
357.0 6.0 11.0 117.09 MB

Mod manager for universal game mods

Home Page: https://raicuparta.com/rai-pal

License: GNU General Public License v3.0

HTML 0.12% Rust 55.77% TypeScript 41.84% CSS 1.42% JavaScript 0.13% PowerShell 0.72%
unity modding unreal rust tauri

rai-pal's Introduction

Rai Pal

Raicuparta's VR mods Support on Patreon Donate with PayPal Raicuparta's Youtube Twitter @Raicuparta Mastodon @Raicuparta

rai-pal

Download Rai Pal for Windows

What's this?

A tool that helps you use and make universal game mods. That means mods that aren't made for any specific game, but work across multiple games, usually of the same game engine. Some features:

  • Auto-find installed games from supported providers.
  • Auto-find owned (but not necessarily installed) games from supported providers.
  • Detect relevant information about each game, such as their game engine.
  • Easily install/run the correct version of universal mods.
  • Easily update universal mods.

Automatically finding games

Rai Pal analyzes files on your system to determine which games you own, and which games you have currently installed. There's some guesswork involved in this, especially since Rai Pal tries to give you this information as quickly as possible, without the need to log in with each provider's account. Here is how Rai Pal handles finding games from each provider:

Provider Installed games Owned games Notes
Steam ✅* Owned games based on Steam cache, may show weird stuff. Recreating Steam cache helps.
GOG
Epic
Itch ✅* Does not include games from bundles, unless you add them to your library. There are scripts for adding all games from a bundle to your library, but they're slow and not recommended by the Itch team.
PC Xbox ✅* Only finds installed games marked as moddable (the ones where you can open the game files folder via the Xbox app)

For all other providers, you'll have to manually add the games to Rai Pal using the "add game" button on the installed games tab, or by just dropping the game exe on the Rai Pal window.

Game engine detection

Rai Pal also uses a few different methods for detecting game engines. There's a lot of guesswork here as well. For installed games this is usually pretty straightforward, but for owned games it involves using remote sources, and often going by the game's name. Here is how Rai Pal handles detecting the game engine from each provider:

Provider Engine
(installed games)
Engine version
(installed games)
Engine
(owned games)
Engine version
(owned games)
Steam ⭐ Great guess 👍 Good guess
GOG 👍 Good guess 👍 Good guess
Epic 🤏 Decent guess 🤏 Decent guess
Itch 🤏 Decent guess 🤏 Decent guess
PC Xbox Unity only 👎 Not available 👎 Not available

UEVR

Rai Pal can make it easier to use Praydog's UEVR, a universal VR mod for Unreal Engine games. Here are some of the fun activities Rai Pal can help you with:

  • Find all the Unreal Engine games in your Steam library (even the ones you haven't installed yet).
  • Automatically find installed Unreal Engine games (supports Steam, GOG, and Epic, more to come later).
  • Detect the Unreal Engine version of games you have installed.
  • Download and auto-update UEVR.
  • Launch UEVR for a specific game, so you don't need to select the game process in the UEVR menu.

License

Rai Pal
Copyright (C) 2024  Raicuparta

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

rai-pal's People

Contributors

keton avatar raicuparta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rai-pal's Issues

Steam shows error on game start if update required

Each steam launch command works a bit different:

steam://run auto-installs and auto-updates the game and runs it.
steam://rungameid same as run, but shows a nice popup saying "launching game".
steam://launch errors if the game isn't installed or if there's an update, but it lets you pick a launch option via steam://launch/{appid}/{launch_type}

Game discriminator depends on order, order is kinda random

When reading from appinfo.vdf, the order of executables is different every time. Then it applies the discriminators based on the executables it found already, so this means the order affects which executables get discriminators. Sorting the exes first should fix this.

Download mods from somewhere instead of bundlging them with the app

Need to think how to do this to easily support multiple mod loaders. Should mod loaders still be bundled with the app?

Easiest bight be having a json somewhere with the urls for each mod and some required metadata (version, mod loader, engine, scripting backend, etc).

Would probably need to reupload all supported mods to our own database to make it simpler to manage. But could allow for people to specify their own URLs if they want to.

Publish Linux / Steam Deck version

I've tested a lot of Rai Pal on Linux and have developed it with that in mind since the beginning. I'm focusing on getting all the important features on Windows first, since the vast majority of users will be there. There's a bunch of weird extra stuff that needs to be handled when installing mods on Linux, so even though the app can already be built for Linux, some actions wouldn't work properly.

If you're here because you want to use Rai Pal on Linux (including on Steam Deck), please leave a react / comment so I can gauge interest.

Show anticheat warning

not like detecting anticheat but just saying "if game has anticheat you might die" and a "don't remind me again"

Add NSFW disclaimer in discover tab

Since I have no way of distinguishing them. Could also try to distinguish them and just add a small indicator in the database, like a ! or something

Prevent print dialogue

Might be possible by capturing the ctrl+p shortcut.

I noticed that github.dev does this successfully.

Warn about disabling other mod loaders

This one is a bit annoying since it's not so easy to detect whether a mod loader was installed by Rai Pal or by something else.

Right now Rai Pal just always reinstalls the mod loader when installing each mod, which is silly but makes it simpler. We can probably presume that if the game has all the mod loader files + rai pal has its own mod files in the right place for that game, then that game currently is rai palled. If we detect mod loader files in the game but rai pal doesn't have mod files for that game set up, we can presume it's some other mod loader, and we should warn about it.

Linux: Multiple Steam paths

On Linux, it's probably not that uncommon to find multiple Steam paths. For me specifically it kept finding the flatpak path and prioritizing that one, and ignoring the other one. I should probably only accept a path that has an appinfo.vdf (and whatever other criteria might be good for deciding whether the path is good)

Add more generic "tools" mod loader

Currently UEVR is set up as both a mod loader and a mod in a hacky way. Could make it a generic thing that can be extended with different tool-type mods that launch exes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.