RVGL Launcher

RVGL Launcher is a cross-platform installer, launcher and package manager for RVGL. It's currently available on Windows and GNU/Linux for both 32-bit and 64-bit architectures.

Install tab

[ Game tab | Events tab | Packs tab | Repositories tab | Local tab | Console tab ]

Features

  • Install game and content packs and keep them up-to-date.
  • View list of online events and join them directly.
  • Enable or disable content packs on the fly.
  • Add your own content and repositories.

Download

Prepackaged builds are available below:

Installation

Simply extract the zip file to a new folder, preferably in your Documents folder or some place where you have write access. Then depending on your platform, run rvgl_launcher.exe or rvgl_launcher.py.

Requirements

An internet connection is required. The Windows builds require Windows 7 or above.

Linux

Make sure you get the following dependencies from your package manager.

  • Python 3.8+
  • Python Modules:
    • wxPython
    • requests
    • packaging
  • 7-Zip
  • xdg-utils

Ubuntu

sudo apt install python3-wxgtk4.0 python3-requests python3-packaging p7zip-full xdg-utils

Arch Linux

sudo pacman -S python-wxpython python-requests python-packaging p7zip xdg-utils

General Information

The "rvmm://" URI

RVGL Launcher supports the custom URI scheme rvmm://. When a link starting with this URI scheme is clicked, or typed manually in your browser, it will automatically start the launcher and perform a command.

Before you can use this functionality, the URI must be registered. This is automatically done the first time the launcher is run. If you want to register it again for any reason, use the Help -> Register URI menu option.

The following commands are currently supported:

  • rvmm:///: Run the launcher and do nothing else. If already running, switch the focus to the running launcher window.

  • rvmm://join/<ip-address>: Launch the game and directly connect to the specified IP address. For example, rvmm://join/vas.rv.gl attempts to join a game hosted at vas.rv.gl.

  • rvmm://<download-link>: Download content specified by the download link and install it to the local pack. Automatically downloading and installing content this way is limited to a few whitelisted domains:

    # Re-Volt World
    rvmm://www.revoltworld.net/dl/harvey/?ind=1624368413026&filename=harvey.zip&wpdmdl=28037&refresh=60d461eedf4181624531438
    
    # Re-Volt Zone
    rvmm://www.revoltzone.net/trackfiles/home_bat.zip
    rvmm://www.revoltzone.net/carfiles/fd_s30.zip
    
    # Re-Volt XTG
    rvmm://www.revoltxtg.co.uk/files/Xtr/R/P/pod_zed/pod_zed.zip
    
    # Re-Volt I/O
    rvmm://files.re-volt.io/packs/christmas/2020/grinch.7z
    
    # Duc's RV Site
    rvmm://hajduc.com/downloads/no_repo_tracks_200408.zip
    

Automatic Updates

The launcher updates itself automatically. Updates are checked at each start. When a new version of the launcher is available, it'll be downloaded automatically and installed when you quit the application.

Automatic updates are turned off if the launcher is run from a git repo. So a way to disable checking for updates is to create an empty .git folder in the launcher's folder.

Settings and Files

The launcher keeps everything in its data and config folders. In a standard install, both are tied to the current user account.

  • On Linux, these folders are usually: ~/.local/share/rvmm and ~/.config/rvmm.
  • On Windows, there is a single folder at: C:\Users\<user-name>\AppData\Local\rvmm.

The custom install type allows you to override the data folder location.

Data Folder

Can be opened with File -> Open Data Folder. This folder contains:

  • downloads: Downloaded packages.
  • packs: Installed packages.
  • save: Save games and replays.
  • update: Staging area for updates.

Config Folder

Can be opened with File -> Open Config Folder. This folder contains:

  • logs: Application logs.
  • recipes: Game presets.
  • repos: Downloaded repository files.
  • config.json: Configuration file.

Use File -> Clean to clear downloads and logs.

Show Console

Console messages can be viewed by enabling Help -> Show Console. This adds a Console tab to the UI, where log messages and errors are printed.

Console tab

Installation

Install tab

Install Type

You can decide how you want to install the game, pick the install location or even use an existing game install with the launcher. There are two available install types:

  • Standard: Select this for a clean, new install and let the launcher manage your game data and packages. Game data is placed in the default location in your user directory.

  • Custom: Select this to pick your own install location. This can be either an empty folder (for a new install) or your existing game folder. When pointing to an existing install, your data and save files are automatically carried over to the launcher.

Game Presets

The launcher offers you a couple of presets, or recipes, during the installation. Each preset is a different collection of packages.

  • Original: Includes original assets and original soundtrack. Select this if you want to have the stock game with no mods. You can always add more content packs later.

  • Online: Includes I/O content packs and a community made alternative soundtrack. Select this if you want to play online and join sessions hosted by the I/O community.

  • Basic: Includes original assets and no soundtrack. Only select this if you're low on bandwidth or you plan on adding your own music packs.

  • Custom: Choose your own packs. This takes you to the Packs tab where you can select the packs that make up your game installation.

The installation process can take some time, especially if you selected the Online preset. So, go get some coffee!

For a new install, be sure to enable at least the game_files and rvgl_assets packs. Without these, the game might not function. For an existing install, enable the default pack to use content present in the root game folder.

Once the game is installed, you can easily create your own presets and switch between them. See the Packages page for more information.

Desktop Shortcut

Before installing, you have the option to create a Desktop Shortcut (on Windows) or an App Menu Shortcut (on GNU/Linux).

Updating Your Game

The Information dashboard shows you the number of packages that have updates available. Press the View button to review packages and install updates.

You also have the option to update RVGL alone. To do this, use the Update button next to the RVGL update notification.

Repairing Your Game

In case something went wrong — say, the power went out during installation — and data was left partially installed or corrupted, you have a couple of options under File menu.

  • Repair: Cleans and reinstalls all packages. Cached download files are used when available to save you bandwidth.

  • Clean: Lets you delete unused package files and cached download files to reclaim disk space. Use this if you suspect any of the downloaded packages are corrupt and need to manually trigger a re-download (should almost never happen).

  • Uninstall: Wipes out all game data. Have a fresh start. Cached download files are preserved and will be used in case of a reinstall.

Playing

When the game is successfully installed, the Game tab allows you to choose from available presets, specify launch parameters and — more importantly — launch the game!

Game tab

Preset Selection

Initially, the launcher creates a default preset with the packages you selected during installation. You can edit this preset or add more presets, and they show up in the preset selection list. You can also have a quick look at the packages enabled in the preset.

Launching Game

Once a preset is selected, you can start the game using the Launch RVGL button. The Launcher UI remains minimized during gameplay and restores itself once you close the game.

You won't be able to launch the game during package updates. You should always keep the game closed during the update process.

Launch Parameters

Advanced users can specify launch parameters in the provided text box. Eg., -window 1280 720 -nointro -sload. These parameters are added on top of base parameters required to launch the game. For a full list of supported parameters, see the RVGL docs.

Joining Events

Events tab

Event List

The Events tab lists current and upcoming online events. Events are sourced from Re-Volt I/O and other third-party repositories. You can see the list of available repositories and add more from the Repositories tab.

The date and time of each event is displayed in UTC. Use timeanddate.com if you want to convert it to your local time zone. The launcher also displays a status message in human readable format based on your local time zone.

Double click an event to open the event's page in your default browser.

Event States

Events can be in one of these states:

  • Upcoming: The event hasn't started yet.
  • In Progress: The event is currently being played.
  • Ended: The event has ended.

The launcher has no way as of yet to query the actual state of an event. Event states are guessed based on the listed date and time. An event is counted as In Progress up to 2 hours after the listed time.

Use Update Event Info to refresh the event information. It's automatically refreshed once every 15 minutes.

Package Selection

Each event has its own preset based on packages required by the event. You can customize this preset further and enable any optional packs, such as music or skins. Select an event and use the Select Packs button to edit the event's preset.

Event Lobbies

An event has one or more lobbies. Select an event and then join one of the available lobbies by clicking the Join button. This will launch RVGL with the appropriate preset and connect directly to the event's lobby.

You can attempt to join an event at any time. If the event is not active at the time of joining, the connection will time out.

Packages

Packs tab

Adding Packages

RVGL Launcher utilizes a unique package management system to install and manage your game data. Content is stored in the form of packs, in separate folders that can be enabled or disabled on their own. The system should feel familiar to users of software like Mod Organizer.

The Packs tab lists all available packages. Packages are sourced from Re-Volt I/O and other third-party repositories. You can see the list of available repositories and add more from the Repositories tab.

The initial setup installs and enables those packs defined by the chosen preset, or the packs you selected in case of the Custom preset.

Additional packs can be enabled simply by enabling the checkboxes in the Packs tab. If any of the enabled packages are not installed yet, they'll be marked for install. You can install them with the Install Packages button.

Double click an installed pack to open the pack's folder.

Package States

Packages can be in one of these states:

  • Installed: The package is installed and up-to-date.
  • Update Available: The package has a new version available.
  • Pending Install: The package is enabled but not installed yet.
  • Not Installed: The package is not installed.

Use Update Pack Info to refresh the package information. It's automatically refreshed once every 15 minutes.

Managing Presets

By default, enabling or disabling packages causes your selection to be saved in the default preset. The New Preset button allows you to create a new preset. This will prompt you to select a base preset and type the preset name.

You can then enable or disable packages as usual and your selection is saved in your new preset. To remove a preset, select the preset and press Delete Preset. Note that you cannot delete the default preset.

Packages disabled by all presets can be safely removed. If they were installed previously, they still remain in the filesystem. To clean them up, use the File -> Clean option.

Local Packages

Local content is content that is not part of a repository. This could be content you downloaded or content created by yourself. You can add your own content packs by following these steps:

  • Use File -> Open Data Folder to open the folder containing game data. Content in the root folder belong to the default pack. Additional packages are installed inside the packs sub-folder.
  • Make a new folder inside packs (say, mycontent) and place your content in there. These folders will be recognized by the launcher as local content packs. They can be enabled or disabled like any other pack.
  • Use Update Pack Info to refresh the packages list. It should now display your newly added pack. Use the checkbox beside the pack to enable or disable it.

Edits made through the in-game editor go into a special pack folder called local. If you're creating your own content, you must place the content in packs/local and make sure it's enabled in your preset.

Repositories

Repositories tab

Adding Repositories

Repositories are a collection of packages and events provided by a source, typically a web server. The default repository provides base game data, RVGL packages and I/O content. The launcher downloads an additional set of trusted repositories from GitLab. These are listed in the Repositories tab.

Repositories are created by package maintainers and event hosters. As a user, you can add a repository by pasting the complete URL of the repository into the provided textbox and clicking Add Repository.

A newly added repository is initially disabled. Tick the checkboxes to the left of each repository to enable them. Double a repository to open the url in your browser.

Enabled repositories are not fetched immediately. Use Update Repository Info to refresh repository data. It's automatically refreshed once every 15 minutes.

Repository File

This section is meant for package maintainers and event hosters who want to create their own repositories.

Each repository is a JSON file with the name, version, packages and events data. Upload the JSON file somewhere for other people to access. You must send them the URL (like https://hajduc.com/downloads/repo.json). Players can then add this repository to their launcher. Below is a sample repository file:

{
    "name": "hajduc's Repo",
    "version": "21.0115",
    "packages": {
        "no-repo-trackpack": {
            "description": "Tracks, where your goal is to not fall.",
            "version": "20.0408",
            "checksum": "5842a8398e3e55aa520631825e207b984f6204fe60240a866eb650437f4fadfe",
            "url": "https://hajduc.com/downloads/no_repo_tracks_200408.zip",
            "file": "no_repo_tracks_200408.zip"
        },
        "twc-week1": {
            "description": "Toyeca Winter Cup - Week 1",
            "version": "21.0107",
            "checksum": "aa27b6f2cfdd671680daacb47f19e72aa0e891a392cadf5cfb0d30fc5ba107d6",
            "url": "https://hajduc.com/downloads/2021twc_week1.zip",
            "file": "2021twc_week1.zip"
        },
        "twc-week2": {
            "description": "Toyeca Winter Cup - Week 2",
            "version": "21.0113",
            "checksum": "37d7990ffffc46dd61455e23010923ae737656949f44925e33e4509007043b63",
            "url": "https://hajduc.com/downloads/2021twc_week2.zip",
            "file": "2021twc_week2.zip"
        }
    },
    "events": {
        "event-01": {
            "title": "Fullspeed!",
            "date": "07-02-2021 15:00",
            "url": "https://re-volt.io/events/event-01",
            "hosts": {
                "Max": "192.168.178.1"
            },
            "category": "casual",
            "mode": "race",
            "class": "superpro"
        },
        "event-02": {
            "title": "Pure event",
            "date": "07-02-2021 18:00",
            "url": "https://re-volt.io/events/event-02",
            "hosts": {
                "Max": "192.168.178.20",
                "Wusel": "192.168.178.2"
            },
            "category": "casual",
            "mode": "race",
            "class": "advanced"
        }
    }
}

A repository can contain a packages section, an events section, or both.

Packages Section

url must link directly to the package file. For example, Dropbox links must include ?dl=1. Google Drive links may not be supported. Packages can be provided in zip, 7z or rar formats.

file is the package file name. If it's not provided, the package name is used as the file name, and file type (extension) is deduced from the URL. For example, if the package name is twc-week1 and URL is https://hajduc.com/downloads/2021twc_week1.zip, the downloaded package is saved as twc-week1.zip. The file key is only needed if the URL doesn't contain the file name.

checksum is optional, but it is highly recommended. It must be a SHA-256 hash of the package file. If provided, it's used to verify integrity of the downloaded package.

Repository providers must take responsibility for:

  • The availability of packages.
  • File size (avoid BMP files; compress them to optimal PNGs or JPGs).
  • Cleanliness of the package (only include game files; no unwanted files or malware).
  • Make sure that all included files and folders have lowercase names.

Events Section

date must be provided in UTC and in exactly the same format shown in the example, i.e., DD-MM-YYYY HH:MM. Hours are in 24-hour format, i.e., 19:00 for 7 PM. Use timeanddate.com to convert your time to UTC.

hosts contains the list of people hosting the event and the IP address for joining their game.

category can be any of these:

  • casual
  • competitive
  • special
  • tourney
  • unofficial
  • other

mode can be any of these:

  • race
  • battle-tag
  • last-man-standing
  • volt-ball
  • other

class can be any of these:

  • rookie
  • amateur
  • advanced
  • semi-pro
  • pro
  • superpro
  • other

Local Content

There is a special pack called local which is meant to hold content that do not belong to any other pack. This can be content you downloaded from a website like Re-Volt World or Re-Volt Zone. There is a dedicated Local tab that lets you manage content in this local pack.

Packs tab

Features

You can use the Local tab to:

  • Install content from archives (zip, 7z or rar).
  • View installed content by type (cars, levels, cups, ...).
  • Selectively remove previously installed content.

Adding Content

Drag and drop any supported archive file into the text view at the bottom. This will cause the content to be installed to your local pack. The text view shows you the installation results, including any errors or warnings.

The content is validated before installing to ensure that the correct folder structure is used. Also, filenames are automatically converted to lower case for cross-platform compatibility.

Managing Content

Once you've added some content, you can view files in your local pack filtered by the type of content. This can be cars, levels, cups and so on.

  • Select the content type from the drop-down list to view all content of that type. This can be folders (in case of cars and levels) or files (in case of cups and gfx).
  • Double click on any of the listed content to open that folder.
  • Remove content by selecting it from the list and clicking on Remove Selected. Multiple selections are possible.

About

RVGL Launcher is work-in-progress and actively developed by the RVGL team and members of Re-Volt I/O community. The project is open-source and licensed under GPLv3.

Visit the GitLab Project Page.

Developers: Marv and Huki.
Contributors: vonunwerth.
Bolt Icon by URV.