Overview
RPM is a package manager built for ROBLOX. It aims to encourage developers to share their code and helps other developers find and learn about existing code.
It comes in the form of a plugin which can be found and installed from the following URL. Roblox Package Manager - Roblox
I would encourage everybody to install it because I am certain you’ll find it very useful eventually.
Current Features
- Download & install packages from GitHub repositories.
- Require and use packages with ease.
- Create packages with dependencies and many other features.
- License your code to other developers.
- View installed packages.
- View documentation for installed packages.
How it works
Packages are required by their name which makes it very quick and easy to reference them in your script. When you download or require a package RPM automatically initializes itself in the current place.
https://i.gyazo.com/02cd988e1103767160c1535df247c7ca.mp4
Packages can also rely on other packages. RPM handles this too, it will install the package and anything that it depends on when you download it. This means that code can be reused, speeding up development time and ensuring the wheel is continuously reinvented.
Planned features
- Download & install packages from Roblox models.
- Discover packages created by others with ease.
- Tools to help create a package on Roblox.
- Basic packages pre-installed eg. custom events.
- Configuration system (with UI) for packages.
Existing Packages
I have created a few packages on GitHub as a quick showcase of the plugin.
Creating a package
It’s very easy to create a package, just upload your files to GitHub and create a package.lua file
return {
Name = "",
Version = "0.0",
Description = "",
Author = {
Name = "",
UserId = 0,
GitHub = "",
},
License = "",
Main = "",
Dependencies = {
["Name"] = "githubUrl"
},
Repository = "",
Platform = {
Client = true,
Server = true,
},
}
Once you’ve done this, share the URL and users will be able to install your package into their roblox games.
Footnote
I am actively working on some other features but haven’t mentioned them because I am not sure how they will be implemented. Packages could potentially have the same name which creates issues when handling dependencies, any suggestions on a solution are welcomed. Version control is another issue, looking into solving this as well.
I’ll provide better documentation at a later stage.
As per usual feedback is always welcomed.