Skip to content

OutOfBears/rbx-configs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚧 rbx-configs 🔧

Version License Stars Forks Watchers Issues Pull Requests Last Commit


rbx-configs is a lightweight CLI for downloading, editing, and publishing Roblox Universe Configs (feature flags/experiments) via the official Universe Configs Web API. It helps teams keep configs in version control, batch-update flags safely, and manage drafts.

✨ Features

  • Download: Export all universe configs to a local JSON file.
  • Upload: Read a local JSON and update only changed flags.
  • Draft control: Discard or publish staged changes.

📦 Installation

If the crate is published to crates.io, you can install with:

cargo install rbx-configs

You need Rust (stable) and Cargo.

  • From source (in this repo):
cargo build --release
# Binary at target/release/rbx-configs

🔐 Authentication

rbx-configs calls Roblox APIs that require the .ROBLOSECURITY cookie.

  • Preferred: if RBX_COOKIE is not set, rbx-configs will attempt to read your Roblox cookie via the rbx_cookie helper.
  • Fallback: set the RBX_COOKIE environment variable to your cookie value.

Windows PowerShell example:

$env:RBX_COOKIE = "<your .ROBLOSECURITY value>"

🚀 Usage

All commands require a universe id (-u, --universe-id). You may also specify a file path (-f, --file) which defaults to config.json.

Place -u and -f before the subcommand (e.g., download, upload, draft).

📥 Download configs

Export the current universe configs to a local file.

rbx-configs -u 123456 -f config.json download

Output file format:

{
  "FeatureA": {
    "description": "Enables feature A",
    "value": true
  },
  "ExperimentBucket": {
    "description": "Bucket size",
    "value": 10
  }
}

📤 Upload configs

Read a local JSON and apply only changes (new or updated flags). Existing flags with identical values are ignored.

rbx-configs -u 123456 -f config.json upload

🗂️ Manage drafts

Discard or publish staged changes explicitly.

# Discard staged changes
rbx-configs -u 123456 draft discard

# Publish staged changes
rbx-configs -u 123456 draft publish

🧩 Configuration file schema

The local JSON uses a simple map keyed by flag name:

  • description: optional string
  • value: any valid JSON value (string, number, boolean, or array)

Example with nested value:

{
  "CompositeFlag": {
    "description": "A array JSON payload",
    "value": ["1", "2", "3", "4", "..."]
  }
}

🔧 Logging & environment

  • Set RUST_LOG to control verbosity (defaults to rbx_config=debug in debug builds, rbx_config=info in release):
RUST_LOG=rbx_config=debug rbx-configs -u 123456 download
  • Optional: a .env file is loaded if present for RBX_COOKIE or other environment variables.

🧰 Troubleshooting

  • 403 Forbidden / CSRF errors: Ensure RBX_COOKIE is valid and not expired; try re‑setting it.
  • Rate limit: The client backs off automatically; you may need to wait.
  • Invalid config JSON: rbx-configs will log parse errors—verify your file conforms to the schema above.

💖 Contribution

rbx-configs was developed by @Bear

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

CLI tooling for Roblox Configs

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors