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.
[ 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 atvas.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.
Installation
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
andrvgl_assets
packs. Without these, the game might not function. For an existing install, enable thedefault
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!
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
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
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 thedefault
pack. Additional packages are installed inside thepacks
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 inpacks/local
and make sure it's enabled in your preset.
Repositories
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.
Features
You can use the Local
tab to:
- Install content from archives (
zip
,7z
orrar
). - 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.