GitHub Setup & Deployment
Your workflow has two separate git concerns:
- Local source versioning —
rb save,rb restoreto checkpoint and roll back your work - Deployment — pushing
script.obf.luato a GitHub repo so users can load it with a singleloadstring
These are independent. Your source never needs to be on GitHub at all.
Part 1: Deploy your script with rb deploy
Create a release GitHub account or repo
If you're deploying a script publicly, use a separate GitHub account from your main — this keeps your identity separate from the script. See Alt Accounts for why this matters.
- Create a free GitHub account (or use an existing alt)
- Create a new public empty repo — name it something like
my-script-release - Don't add any files — leave it completely empty
Create a Personal Access Token
- Log into the GitHub account you'll use for deployment
- Go to Settings → Developer settings → Personal access tokens → Tokens (classic)
- Click Generate new token (classic)
- Give it a name (e.g. "rb deploy")
- Check the
reposcope (full repo access) - Click Generate token — copy it immediately (you won't see it again)
Configure your project
In your project root, your rb init scaffold created .rb-deploy.example. Copy it:
copy .rb-deploy.example .rb-deploy
Open .rb-deploy and fill in your values:
GITHUB_TOKEN=ghp_your_token_here
GITHUB_REPO=yourname/my-script-release
GITHUB_FILE=script.obf.lua
GITHUB_BRANCH=main
.rb-deploy is already in .gitignore — it will never be committed.
Deploy
rb deploy
Output:
✓ Deployed yourname/my-script-release/script.obf.lua
Loadstring URL:
loadstring(game:HttpGet("https://raw.githubusercontent.com/yourname/my-script-release/main/script.obf.lua"))()
Copy the loadstring and paste it into your executor. Every time you run rb deploy, the same URL updates — your users don't need a new link.
Deploy on every build
rb build && rb deploy
Or add it to your release workflow:
rb build— compile and obfuscaterb deploy— push to GitHub, get loadstring URL back
Part 2: Local version control with git
Your source project is a git repo (created automatically by rb init). Use it to checkpoint stable versions and roll back when something breaks.
Saving a checkpoint
rb save "working aimbot"
rb save "added ESP"
rb save "before refactor"
This runs git add -A && git commit with your message. Make a save whenever something is working — before you start changing it.
Viewing history
rb history
Shows recent commits:
7a6cfe0 working aimbot
4bce6bf added ESP
79d0687 initial scaffold
Reverting to a stable version
If you break something and can't fix it:
rb restore 7a6cfe0
Checks out that commit. Your source files go back to exactly how they were at that point. Then rebuild:
rb build --no-obfuscate
To go back to the latest version:
rb restore main
Checking what changed
Standard git commands work in your project:
git diff -- see uncommitted changes
git log --oneline -- full history
git status -- what files changed
Keeping source private
If you don't want your source on GitHub at all, that's fine — the local git repo is just for your own version history. You only push script.obf.lua to GitHub via rb deploy. Nobody can see your source from the release repo.
If you want source backup, use a private GitHub repo and push with:
git remote add origin https://github.com/yourname/my-script-source.git
git push -u origin main
The release repo (the one rb deploy pushes to) should always be separate.
Complete workflow
rb init my-script 1. scaffold project
cd my-script
-- edit src/ files --
rb watch 2. auto-rebuild while developing
rb save "feature X done" 3. checkpoint when stable
rb build 4. full obfuscated build
rb deploy 5. push to GitHub → get loadstring URL
If something breaks after step 3:
rb history see commits
rb restore <hash> go back to stable