Command line

Windows · macOS · Android · home

Every common task, once per shell. Paste them as they are — they already name this server.

Before you start

  • Windows PowerShell 5.1 (the one built into Windows) has an alias named curl that is not curl. Type curl.exe there, or use the PowerShell blocks. PowerShell 7 has no such alias.
  • cmd.exe on Windows 10 1803 and later ships real curl and certutil. Inside a .bat file, double the percent sign in for variables (%%v); typed at the prompt, use one (%v).
  • bash and zsh blocks use jq for JSON. Where a shell has no JSON parser at all, use the .txt endpoints, which return one plain line.
  • Always follow redirects for files: curl -L. Downloads and offsets files are 302s to storage.

The live version

bash / zsh / macOS

curl -fsS https://rbxoffsets.com/api/v1/windows/version | jq -r '.displayVersion + "  " + .version'
curl -fsS https://rbxoffsets.com/api/v1/windows/version.txt

PowerShell 5.1 and 7

$live = Invoke-RestMethod "https://rbxoffsets.com/api/v1/windows/version"
"$($live.displayVersion)  $($live.version)"

cmd.exe (.bat file)

for /f "delims=" %%v in ('curl -fsS https://rbxoffsets.com/api/v1/windows/version.txt') do set RBX_VERSION=%%v
echo Live: %RBX_VERSION%

The upcoming version

bash / zsh / macOS

curl -fsS https://rbxoffsets.com/api/v1/windows/upcoming | jq -r '.upcoming.displayVersion // "no upcoming build"'

PowerShell 5.1 and 7

$next = (Invoke-RestMethod "https://rbxoffsets.com/api/v1/windows/upcoming").upcoming
if ($next) { "Upcoming: $($next.displayVersion)  offsets: $($next.offsets.tiers -join ', ')" } else { "No upcoming build" }

cmd.exe (.bat file)

set RBX_NEXT=
for /f "delims=" %%v in ('curl -fsS https://rbxoffsets.com/api/v1/windows/upcoming.txt') do set RBX_NEXT=%%v
if defined RBX_NEXT (echo Upcoming: %RBX_NEXT%) else (echo No upcoming build)

Download the client and check its hash

bash / zsh (Linux)

meta=$(curl -fsS https://rbxoffsets.com/api/v1/windows/files/latest)
curl -fL -o RobloxApp.zip https://rbxoffsets.com/download/windows/latest
echo "$(jq -r .sha256 <<<"$meta")  RobloxApp.zip" | sha256sum -c -

macOS

meta=$(curl -fsS https://rbxoffsets.com/api/v1/macos/files/latest)
curl -fL -o RobloxPlayer.zip https://rbxoffsets.com/download/macos/latest
echo "$(jq -r .sha256 <<<"$meta")  RobloxPlayer.zip" | shasum -a 256 -c -

PowerShell 5.1 and 7

$ProgressPreference = 'SilentlyContinue'   # 5.1's progress bar makes large downloads very slow
$file = Invoke-RestMethod "https://rbxoffsets.com/api/v1/windows/files/latest"
Invoke-WebRequest "https://rbxoffsets.com/download/windows/latest" -OutFile RobloxApp.zip -UseBasicParsing
if ((Get-FileHash RobloxApp.zip -Algorithm SHA256).Hash -ne $file.sha256) { throw 'sha256 mismatch' }

cmd.exe

curl -fL -o RobloxApp.zip https://rbxoffsets.com/download/windows/latest
certutil -hashfile RobloxApp.zip SHA256
rem compare with the sha256 in: curl -s https://rbxoffsets.com/api/v1/windows/files/latest

Offsets — whichever tier is served

bash / zsh / macOS

curl -fsSL -o offsets.hpp https://rbxoffsets.com/api/v1/windows/offsets/latest/hpp
curl -fsSI https://rbxoffsets.com/api/v1/windows/offsets/latest/hpp | grep -i x-offsets-tier

PowerShell 5.1 and 7

Invoke-WebRequest "https://rbxoffsets.com/api/v1/windows/offsets/latest/hpp" -OutFile offsets.hpp -UseBasicParsing

cmd.exe

curl -fsSL -o offsets.hpp https://rbxoffsets.com/api/v1/windows/offsets/latest/hpp

Offsets — verified only, or fail

For a client that must never run against an unverified dump. A missing verified set is a 404, and each block below stops rather than substituting.

bash / zsh / macOS

v=$(curl -fsS https://rbxoffsets.com/api/v1/windows/version.txt)
curl -fsSL -o offsets.hpp "https://rbxoffsets.com/api/v1/windows/offsets/$v/hpp?tier=verified" \
  || { echo "no verified offsets for $v" >&2; exit 1; }

PowerShell 5.1

$v = (Invoke-RestMethod "https://rbxoffsets.com/api/v1/windows/version").version
try {
  Invoke-WebRequest "https://rbxoffsets.com/api/v1/windows/offsets/$v/hpp?tier=verified" -OutFile offsets.hpp -UseBasicParsing
} catch {
  throw "No verified offsets for $v"
}

PowerShell 7

$v = (Invoke-RestMethod "https://rbxoffsets.com/api/v1/windows/version").version
$r = Invoke-WebRequest "https://rbxoffsets.com/api/v1/windows/offsets/$v/hpp?tier=verified" -OutFile offsets.hpp -SkipHttpErrorCheck -PassThru
if ($r.StatusCode -ne 200) { throw "No verified offsets for $v" }

cmd.exe (.bat file)

for /f "delims=" %%v in ('curl -fsS https://rbxoffsets.com/api/v1/windows/version.txt') do set RBX_VERSION=%%v
curl -fsSL -o offsets.hpp "https://rbxoffsets.com/api/v1/windows/offsets/%RBX_VERSION%/hpp?tier=verified"
if errorlevel 1 (echo No verified offsets for %RBX_VERSION% & exit /b 1)

Wait for the upcoming build to go live

bash / zsh / macOS

next=$(curl -fsS https://rbxoffsets.com/api/v1/windows/upcoming.txt)
[ -z "$next" ] && { echo "nothing upcoming"; exit 0; }
until [ "$(curl -fsS https://rbxoffsets.com/api/v1/windows/version.txt)" = "$next" ]; do sleep 300; done
echo "$next is live"

PowerShell 5.1 and 7

$next = (Invoke-RestMethod "https://rbxoffsets.com/api/v1/windows/upcoming").upcoming.version
if (-not $next) { "nothing upcoming"; return }
while ((Invoke-RestMethod "https://rbxoffsets.com/api/v1/windows/version").version -ne $next) { Start-Sleep -Seconds 300 }
"$next is live"

cmd.exe (.bat file)

set RBX_NEXT=
for /f "delims=" %%v in ('curl -fsS https://rbxoffsets.com/api/v1/windows/upcoming.txt') do set RBX_NEXT=%%v
if not defined RBX_NEXT (echo nothing upcoming & exit /b 0)
:wait
for /f "delims=" %%v in ('curl -fsS https://rbxoffsets.com/api/v1/windows/version.txt') do set RBX_LIVE=%%v
if not "%RBX_LIVE%"=="%RBX_NEXT%" (timeout /t 300 /nobreak >nul & goto wait)
echo %RBX_NEXT% is live

Every platform at a glance

bash / zsh / macOS

curl -fsS https://rbxoffsets.com/api/v1/platforms \
  | jq -r '.platforms[] | [.label, .displayVersion, (.upcoming.displayVersion // "-"), (.offsets.liveBestTier // "-")] | @tsv'

PowerShell 5.1 and 7

(Invoke-RestMethod "https://rbxoffsets.com/api/v1/platforms").platforms |
  Select-Object label, displayVersion, @{n='upcoming';e={$_.upcoming.displayVersion}}, @{n='offsets';e={$_.offsets.liveBestTier}} |
  Format-Table

Git Bash and WSL

Both are bash: the bash blocks work unchanged. In Git Bash, jq is not installed by default — winget install jqlang.jq — or use the .txt endpoints.

Publishing offsets from the command line is operator work and has its own page. Keeping offsets in a repository is covered in Git and CI.