๐Ÿ“ฆ Distribute Roblox games as standalone executables -- No existing client necessary. ๐Ÿšง

Related tags

Command-line Packer
Overview

๐Ÿ“ฆ Packer

Distribute Roblox games as standalone executables.

๐Ÿšง Packer is still being worked on. Among many other things, Windows is not currently supported. See below for details. ๐Ÿšง

Packer Demonstration Packer Example. Skips downloading client to speed up video.

About

Packer enables the distribution of Roblox experiences as standalone applications, allowing users without a prior installation of Roblox to play any Roblox experience.

At its core, a Packer application is just a custom client bootstrapper that downloads the latest Roblox client into the directory of the launcher. Games distributed with Packer aren't actually standalone, and they still use the Roblox client under the hood. However, the client is entirely portable and leaves no significant traces on the host machine. Unlike Roblox's default bootstrapper, Packer creates no new protocols or other lasting artefacts.

What's TODO

This project is in the works!

  • Windows support still needs to be added. Packer was developed on a Macbook, and I still need to pull everything down on my Windows desktop to work on. Soontm!

  • Proper authentication flows. This is a big one, and I need to take special care to ensure everything is safe. The most likely scenario is that special authentication processes will not be included in this public repository and will only be distributed privately. Currently, Packer won't run if there isn't existing Roblox authentication in the environment.

  • Some kind of CLI or website to aid in creating Packer-compatible projects.

License

Licensed under either of

at your option.

Prior Art

  • Roblox Studio Mod Manager - A massive source of inspiration in designing the client bootstrapper. Much of the download-related code is borrowed from and inspired by Max's Mod Manager.
You might also like...
A BASIC language interpreter. Does not conform to existing standards. Mostly a toy.
A BASIC language interpreter. Does not conform to existing standards. Mostly a toy.

JW-Basic A toy language that is somewhat like QBasic. Features: Graphics: 160x96 (255 colors & transparent) Text: 32x16 (4x5 font) Character set: ASCI

A standalone Command Line Interface debugging tool for The Witcher 3 written in Rust
A standalone Command Line Interface debugging tool for The Witcher 3 written in Rust

A standalone Command Line Interface debugging tool for The Witcher 3 written in Rust. This tool is intended for Witcher 3 modders who make mainly scri

A standalone code editor with syntax highlighting and themes.
A standalone code editor with syntax highlighting and themes.

CodeEditor A standalone code (and text) editor for people like me who write their own user interfaces utilizing crates like pixels. CodeEditor renders

A standalone Luau script runner ๐ŸŒ™

Lune ๐ŸŒ™ A standalone Luau script runner ๐Ÿš€ Use the ergonomics and readability of Luau for your shell scripts ๐Ÿš€ โš™๏ธ Installation The preferred way of i

Standalone analytics provider and realtime dashboard designed for self-hosting.
Standalone analytics provider and realtime dashboard designed for self-hosting.

Stats Stats is a high-performance, standalone analytics provider designed for self-hosting, enabling the collection and viewing of event data from web

A diff-based data management language to implement unlimited undo, auto-save for games, and cloud-apps which needs to retain every change.

Docchi is a diff-based data management language to implement unlimited undo, auto-save for games, and cloud-apps which needs to save very often. User'

TMM is a Linux native game modding tool. it allows to install and depoly mods for Linux native and wine games.

Tux Mod Manager TMM is a Linux native mod manager made with the Tauri toolkit. It can install, load, remove and deploy mods for both Linux native and

Open-source compiler for the Papyrus scripting language of Bethesda games.

Open Papyrus Compiler This project is still WORK IN PROGRESS. If you have any feature requests, head over to the Issues tab and describe your needs. Y

Calculate a player's skill level using Elo, DWZ, Ingo, TrueSkill, Glicko and Glicko-2 algorithms known from their usage in chess and online games.

skillratings Skillratings allows you to calculate the player's skill instantly in 1v1 matches or after tournaments/rating periods with a list of resul

Comments
  • Setup local WebSocket server to send status changes to the WebView

    Setup local WebSocket server to send status changes to the WebView

    The underlying WebView library, Wry, doesn't allow Rust to send messages to JS directly. Currently, my solution is to poll for status changes via the custom protocol. It'd be nice to stop doing this and set up a proper WS channel for message passing.

    enhancement 
    opened by grilme99 1
  • Download verification with AWS MD5 ETag header

    Download verification with AWS MD5 ETag header

    AWS S3 provides an ETag header that contains an MD5 hash of the downloaded file. While this isn't really the intended use of the ETag header, it's something we can use to verify the authenticity of a file (thanks, @jmkd3v).

    See: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html

    An ETag header isn't guaranteed to exist, but in the case of Roblox, one is always provided.

    enhancement 
    opened by grilme99 0
  • Windows support

    Windows support

    Everything required for Windows support:

    • [ ] Implement Windows ClientDownloader (https://github.dev/grilme99/Packer/blob/fdb6b913949d498c73bbf9c6f458de1f31902c9f/crates/client_bootstrapper/src/downloader/platform_impl/windows.rs#L30)
    • [ ] Implement get_root_directory for Windows (https://github.dev/grilme99/Packer/blob/fdb6b913949d498c73bbf9c6f458de1f31902c9f/src/util.rs#L17)
    • [ ] Remove coupling to MacOS in async_runtime (https://github.dev/grilme99/Packer/blob/fdb6b913949d498c73bbf9c6f458de1f31902c9f/crates/client_bootstrapper/src/async_runtime.rs#L69)
    • [ ] Remove coupling to MacOS in gamejoin (https://github.dev/grilme99/Packer/blob/fdb6b913949d498c73bbf9c6f458de1f31902c9f/crates/client_bootstrapper/src/gamejoin.rs#L41)
    • [ ] Support retreiving cookies from the authentication WebView, once that is implemented.
    enhancement 
    opened by grilme99 0
Owner
Brooke Rhodes
Software engineer working on games, systems, and tools. Worked on games totalling 6B+ play sessions and 20M+ MAU.
Brooke Rhodes
Simple, safe way to store and distribute tensors

Safetensors Ruby ?? Simple, safe way to store and distribute tensors Supports Torch.rb and Numo Installation Add this line to your applicationโ€™s Gemfi

Andrew Kane 7 Feb 27, 2024
An eye that keeps track of your Roblox status and shares it with others

Roblox presence for Discord with only one native standalone executable that relies on zero external dependencies, and doesn't need to be installed.

null 7 Dec 25, 2022
A lightning fast networking solution for roblox.

Zap Zap is a blazingly fast networking solution for Roblox. Features Zap packs data into buffers with no overhead. The same data can be sent using a f

null 18 Dec 31, 2023
A small unix and windows lib to search for executables in PATH folders.

A small unix and windows lib to search for executables in path folders.

Robiot 2 Dec 25, 2021
A cargo subcommand for checking and applying updates to installed executables

cargo-update A cargo subcommand for checking and applying updates to installed executables Documentation Manpage Installation Firstly, ensure you have

ะฝะฐะฑ 827 Jan 4, 2023
Executables on Disk? Bleh ๐Ÿคฎ

Executables on Disk? Preposterous! Saving executables to disk is like telling EDRs that "Hey! Take a look at this thing I just fetched from the Intern

whokilleddb 87 Dec 18, 2022
๐Ÿข Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands

Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.

Ellie Huxtable 4.6k Jan 1, 2023
A curated list of replacements for existing software written in Rust

Awesome Alternatives in Rust A curated list of replacements for existing software written in Rust. If you want to contribute, please read CONTRIBUTING

Takayuki Maeda 2.7k Jan 8, 2023
Rust TUI library - Clipping region is a set of min/max x/y values applied to the existing region

TinyBit Clipping region is a set of min/max x/y values applied to the existing region A TUI lib This is not yet production ready T O D O TODO: bugs: T

Togglebit 13 May 3, 2022
A user-friendly re-implementation of existing hex tools in Rust

Hex A project to create alternate (and more user friendly) versions of existing hex tools. The project can be installed as a extension to the github-c

Sohom Datta 6 Sep 27, 2022