Skip to content

Asset and project management for original games across old Roblox launchers (Novetus, OnlyRetroRobloxHere)

Notifications You must be signed in to change notification settings

real-jame/rbxpack

Repository files navigation

rbxpack

rbxpack is a CLI tool that makes it simple to handle developing and distributing a game across launchers of old Roblox (2006-2012) clients. Supported launchers are Novetus and Only Retro Roblox Here.

Features

Basically, rbxpack does a few different things:

Init project

Run rbxpack init to set up the rbxpack.json config file, containg metadata about the project.

  • ProjectName: A short, (preferably all lowercase alphanumeric) name of the project for internal use (name of the assets folder).
  • FriendlyName: The project name, used in ORRH asset pack metadata.
  • Description: The project description, used in ORRH asset pack metadata and Novetus map metadata.
  • Author: The project author, used in ORRH asset pack metadata.
  • Version: The project version, used in ORRH asset pack metadata.
  • Clients: An array of clients the project works for, used in ORRH asset pack metadata and which clients to link to.
  • ProjectRbxl: The name of the rbxl file. For example, HappyHome.rbxl.
  • Links: An array of objects containing data about launchers to link to:
    • ClientsDir: The directory containing clients in the launcher.1
    • MapsDir: The directory containing maps in the launcher.

Clients array syntax

The Clients config field uses ORRH's syntax:

  • CLIENT: Only enables for CLIENT. For example, 2012L.
  • !CLIENT: Disables for CLIENT. For example, !2012L.
  • *: Enable for all clients.

Link to launchers

rbxpack allows you to develop your game outside of a specific launcher, and even develop your game in multiple launchers simultaneously. Store a project folder containing your game and assets anywhere, and link it to a launcher's clients and maps directories with rbxpack link add. rbxpack will then:

  • Symlink your project folder to the launcher's maps folder
  • For every client listed in the config, rbxpack will symlink your project's assets folder to under the client's content folder, using the project's configured internal name + an identifier suffix. For example, the "bloxparty" project can access assets/grass.png in Roblox Studio with rbxasset://bloxparty-rbxpack/grass.png.

Bundle project for distribution

Running rbxpack build will repack your game and assets for Novetus and ORRH's unique directory structures, writing to build/novetus and build/orrh directories in your project.

  • Rewrites asset URLs and asset file names where necessary
  • Minifies the RBXL file's XML and Lua contents to reduce size (TODO!)
  • Generate ORRH asset pack metadata and Novetus map description metadata
  • Compresses the RBXL to .rbxl.bz2 (for Novetus) and .rbxl.gz (for ORRH)
  • Compresses the generated assets folder to a .zip for distribution

Footnotes

  1. rbxpack is trying to get to the content directory of the client. ORRH stores its actual clients in subfolders of the Clients directory: ./data/clients/CLIENT/Player, unlike Novetus. rbxpack will detect this, so use ORRH's general clients directory and don't worry.npm

About

Asset and project management for original games across old Roblox launchers (Novetus, OnlyRetroRobloxHere)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages