Documentation ¶
Overview ¶
Package rbxbin implements various routines and types to install or bootstrap a Roblox Binary.
Index ¶
Constants ¶
const AppSettings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" +
"<Settings>\r\n" +
" <ContentFolder>content</ContentFolder>\r\n" +
" <BaseUrl>http://www.roblox.com</BaseUrl>\r\n" +
"</Settings>\r\n"
Contains necessary application settings required for Roblox to run.
const DefaultRenderer = "D3D11"
DefaultRenderer is used as the default renderer when no explicit named renderer argument has been given.
Variables ¶
var ( ErrNoMirrorFound = errors.New("no accessible deploy mirror found") // As of 2024-02-03: // setup-cfly.rbxcdn.com = roblox-setup.cachefly.net // setup.rbxcdn.com = setup-ns1.rbxcdn.com = setup-ak.rbxcdn.com // setup-hw.rbxcdn.com = setup-ll.rbxcdn.com = does not exist Mirrors = []Mirror{ DefaultMirror, Mirror("https://roblox-setup.cachefly.net"), Mirror("https://s3.amazonaws.com/setup.roblox.com"), } )
var ( ErrInvalidPkgManifest = errors.New("package manifest is invalid") ErrUnhandledPkgManifestVer = errors.New("unhandled package manifest version") )
var ErrBadChannel = errors.New("deployment channel is invalid or unauthorized")
ErrBadChannel indicates if the mentioned deployment channel does not exist or out of permission scope for the current authenticated user.
var ErrInvalidRenderer = errors.New("invalid renderer given")
var PlayerDirectories = PackageDirectories{
"content-avatar.zip": "content/avatar",
"content-sky.zip": "content/sky",
"content-sounds.zip": "content/sounds",
"content-textures2.zip": "content/textures",
"content-platform-fonts.zip": "PlatformContent/pc/fonts",
"WebView2.zip": ".",
"content-configs.zip": "content/configs",
"content-terrain.zip": "PlatformContent/pc/terrain",
"shaders.zip": "shaders",
"WebView2RuntimeInstaller.zip": "WebView2RuntimeInstaller",
"extracontent-textures.zip": "ExtraContent/textures",
"ssl.zip": "ssl",
"content-fonts.zip": "content/fonts",
"content-models.zip": "content/models",
"content-textures3.zip": "PlatformContent/pc/textures",
"extracontent-luapackages.zip": "ExtraContent/LuaPackages",
"extracontent-translations.zip": "ExtraContent/translations",
"extracontent-models.zip": "ExtraContent/models",
"RobloxApp.zip": ".",
"extracontent-places.zip": "ExtraContent/places",
}
var StudioDirectories = PackageDirectories{
"extracontent-scripts.zip": "ExtraContent/scripts",
"extracontent-luapackages.zip": "ExtraContent/LuaPackages",
"LibrariesQt5.zip": ".",
"Plugins.zip": "Plugins",
"StudioFonts.zip": "StudioFonts",
"content-sounds.zip": "content/sounds",
"content-textures2.zip": "content/textures",
"content-platform-fonts.zip": "PlatformContent/pc/fonts",
"WebView2.zip": ".",
"content-models.zip": "content/models",
"content-api-docs.zip": "content/api_docs",
"extracontent-models.zip": "ExtraContent/models",
"content-studio_svg_textures.zip": "content/studio_svg_textures",
"Qml.zip": "Qml",
"content-avatar.zip": "content/avatar",
"content-configs.zip": "content/configs",
"content-sky.zip": "content/sky",
"WebView2RuntimeInstaller.zip": "WebView2RuntimeInstaller",
"ApplicationConfig.zip": "ApplicationConfig",
"content-textures3.zip": "PlatformContent/pc/textures",
"BuiltInPlugins.zip": "BuiltInPlugins",
"redist.zip": ".",
"shaders.zip": "shaders",
"ssl.zip": "ssl",
"extracontent-textures.zip": "ExtraContent/textures",
"content-qt_translations.zip": "content/qt_translations",
"extracontent-translations.zip": "ExtraContent/translations",
"content-terrain.zip": "PlatformContent/pc/terrain",
"BuiltInStandalonePlugins.zip": "BuiltInStandalonePlugins",
"RobloxStudio.zip": ".",
"Libraries.zip": ".",
"content-fonts.zip": "content/fonts",
}
Functions ¶
func ValidRenderer ¶
ValidRenderer determines if the named renderer is part of the available supported Roblox renderer backends, used in SetRenderer.
func WriteAppSettings ¶
WriteAppSettings writes AppSettings to a AppSettings.xml file in a binary's deployment directory.
Types ¶
type Deployment ¶
type Deployment struct { Type clientsettings.BinaryType Channel string GUID string }
Deployment is a representation of a Binary's deployment or version.
Channel can either be a given channel, or empty - in which Roblox will consider the 'default' channel.
In all things related to the Roblox API, the default channel is empty, or 'live'/'LIVE' on clientsettings. On the Client/Studio, the default channel is (or can be) 'production'. This behavior is undocumented, so it is reccomended to simply provide an empty string for the channel.
func GetDeployment ¶
func GetDeployment(bt clientsettings.BinaryType, channel string) (Deployment, error)
FetchDeployment returns the latest deployment information for the given Roblox binary type with the given deployment channel.
type FFlags ¶
type FFlags map[string]interface{}
FFlags is Roblox's Fast Flags implemented in map form.
func (FFlags) Apply ¶
Apply creates and compiles the FFlags file and directory in the named versionDir.
func (FFlags) SetRenderer ¶
SetRenderer sets the named renderer to the FFlags, by disabling all other unused renderers.
type Job ¶
Job represents a deployment build.
func ParseJobs ¶
ParseJobs is a wrapper that returns a list of deployments, parsed from the stream of bytes.
See rbxdhist.Lex for more information.
type Mirror ¶
type Mirror string
Mirror represents a Roblox deployment mirror.
const DefaultMirror Mirror = "https://setup.rbxcdn.com"
DefaultMirror is the default deployment mirror that can be used in situations where mirror fallbacks are undesired.
func GetMirror ¶
Mirror returns an available deployment mirror from Mirrors.
Deployment mirrors may go down, or be blocked by ISPs.
func (Mirror) GetPackages ¶
func (m Mirror) GetPackages(d Deployment) ([]Package, error)
PackageManifest returns a list of packages for the named deployment.
func (Mirror) PackageURL ¶
func (m Mirror) PackageURL(d Deployment, pkg string) string
Package returns a URL to a package given a package name and a Deployment, relative to the mirror.
type Package ¶
Package is a representation of a Binary package.
func ParsePackages ¶
ParsePackages returns a list of packages parsed from the named package manifest.
type PackageDirectories ¶
PackageDirectories is a map of where binary deployment packages should go.
func BinaryDirectories ¶
func BinaryDirectories(bt clientsettings.BinaryType) PackageDirectories
BinaryDirectories retrieves the PackageDirectories for the given binary.