nitai/projects

rblxtool

Simple on the outside, deep underneath. Most of it needs no Roblox account: profile anyone, search the whole catalogue and creator store, trace the friend chain linking two players, and extract real geometry, clothing templates and audio in formats you can open in Blender or upload again. Sign in and it will also buy someone's entire outfit for you, price shown up front.

Rust2026
0accounts needed for most of it
0.6 sto pull a full profile
endlessfree item hunting
OBJreal geometry, not screenshots
101source files
21433lines of code

Download

Screenshots

Every place in Pet Simulator 99 - including the Trading Plaza - and all 278 live servers with join links
Every place in Pet Simulator 99 - including the Trading Plaza - and all 278 live servers with join links
A player lookup: seven live counters, then everything they are wearing and every group they are in
A player lookup: seven live counters, then everything they are wearing and every group they are in
A live outfit plan: head 0.95 and width 0.75 read off the target, every item priced, and the exact Robux total before anything is bought
A live outfit plan: head 0.95 and width 0.75 read off the target, every item priced, and the exact Robux total before anything is bought
Shedletsky to a random player in 0.8s and 4 requests - the chain laid out as a line, only the people around it drawn
Shedletsky to a random player in 0.8s and 4 requests - the chain laid out as a line, only the people around it drawn
The overview: request counters, what the tool does, session state, and one box that takes any Roblox link
The overview: request counters, what the tool does, session state, and one box that takes any Roblox link
Catalogue search as a dense table - thumbnail, creator, asset id, whether it is actually buyable, price
Catalogue search as a dense table - thumbnail, creator, asset id, whether it is actually buyable, price
The group scanner mid run: 1,257 ids checked at 41 a second, 450 ownerless groups found
The group scanner mid run: 1,257 ids checked at 41 a second, 450 ownerless groups found
An export report: parts, triangles, vertices and the file it wrote
An export report: parts, triangles, vertices and the file it wrote
2,000 free proxies downloaded, 225 verified against Roblox, the fastest 40 kept and in rotation
2,000 free proxies downloaded, 225 verified against Roblox, the fastest 40 kept and in rotation

The interface

It reads like a data dashboard rather than a set of cards. Navigation is a narrow left rail split into open to anyone and needs an account, so it is obvious what works signed out before you click anything. The type is Noto Sans, and the palette is near black with a neon violet accent, the density is deliberately tight, and every figure on screen is set in a monospaced face so columns of numbers line up.

Every page follows the same shape: a title with its actions on the right, a row of live counters, then real tables. Rows are 21 to 30 pixels, zebra striped, with numeric columns right aligned and long names ellipsised rather than wrapped. Counters animate up to their value, disabled buttons say why they are disabled when you hover them, and the status bar stays up for as long as a job is running instead of fading out and leaving you guessing.

The connection map keeps its own canvas: node circles scale with how connected someone is, avatars only draw once you have zoomed in far enough to see them, scrolling zooms toward the cursor, and there are explicit zoom, fit and re-settle controls.

Games, hidden places and servers

Search a game by name, or paste any link, place id or universe id. Then it lists every place that game owns - not just the one with a play button. Blox Fruits comes back with its Second Sea, Third Sea, Dungeons and every event place; Pet Simulator 99 comes back with the Trading Plaza, the Pro Trading Plaza, Tech World, Void World and a place the developers called TESTING. Each one has a join button and its exact place id.

Measured honestly: server player lists need a signed in session, and even then Roblox only reveals about five players per server - on one game that was 215 of 839 players across 42 servers, roughly a quarter, and the sample barely changes between reads. The search reports that coverage instead of claiming someone is not there. It finds people who fall inside the visible sample; it cannot see the rest.

Working out who someone is

Four tools that all answer the same kind of question: who is this, and who are they connected to.

Signed out, Roblox rate limits friends, avatar and inventory lookups hard - a full comparison can take minutes. Signed in, or through a proxy pool, it is quick.

Copy anyone's look

Point it at a player and it works out every item they are wearing, checks what you already own, prices the rest, and tells you the exact total before anything happens.

This spends real Robux. The cost is shown up front, nothing is bought until you press the confirm button, and there is an optional spending cap.

Verified on a real account. Buying works end to end (a free collectible bought, then correctly reported as already owned on a second run). Copying lava_strike13 reproduced all six scale values exactly - height 1.05, width 0.75, head 0.95, depth 0.88, proportion 1.0, body type 0.2 - and the profile picture pose landed with their emote on the headshot. copy save then copy restore put the original ten items and default scales back.

Simple on the outside

There is no settings maze. The first screen asks what you want to do in plain words and every job runs on sensible defaults, so worker counts, search budgets and batch sizes never appear. All of that power is still there, exposed through the command line build for anyone who wants to drive it precisely.

There is also a single box that takes any Roblox link or id — a profile, an item, a bundle, a group — and works out what it is and where to send you.

Finding how two players are linked

The old search walked outward from one name only, one request at a time, and gave up after 400 accounts - which is barely past the first hop. It could not find a friend of a friend of a friend.

It now searches from both names at once and stops the moment the two sides meet. That is the whole trick: finding a six hop chain one-directionally means opening something like 505 accounts, while meeting in the middle costs about 2 × 503. Twenty-four friend lists are fetched at a time, whichever side is currently smaller gets expanded next, and there is no cap on how many accounts it will open - just a time budget you set.

Fast, and it does not stop

No account needed

What comes out of the extractor

A whole avatar now comes out exactly as Roblox renders it. Roblox will hand a signed in account the assembled avatar - every body part, accessory, layered garment and face texture already in its right place - so that is what an avatar export uses. Hand-assembling parts from their individual meshes could never get the attachment maths perfectly right; this sidesteps it. A test avatar came out as 16 parts and 9,953 triangles, feet on the floor at y=0, hair sitting on the head, arms at ±1.5 studs. Without an account it falls back to the old per-item assembly and says so.

An export is one file: meshes, materials and textures packed into a single glTF binary (.glb), which Blender, Studio, Unity, Godot and Windows' own 3D viewer all open directly.

Where the walls actually are

Measured, not guessed:

Everything here reads public endpoints or your own account. Exporting an asset does not give you the right to republish it - that is on you.

Needs an account

Sign in with a session cookie, or with username, password and 2FA. Accounts are kept in an AES-256-GCM vault keyed with Argon2id.

Proxies and rate limits

Paste a list on the Accounts page - host:port, user:pass@host:port, host:port:user:pass, or a http://, socks4:// or socks5:// url - or press Download free list and it pulls ~2,000 from ProxyScrape in one go.

Free proxies are mostly dead, so there is a Test them pass: every candidate gets a real TLS request to Roblox through it, not just a TCP connect, because plenty of them accept a tunnel and then relay nothing. A recent run: 2,000 downloaded, 225 answered Roblox, fastest 40 kept, in about a minute. Whatever survives is saved, put straight into rotation and reloaded next launch.

Underneath, the limiter reads Roblox's own x-ratelimit-limit headers and retunes each host's bucket to the quota it was actually granted rather than guessing. When a job is waiting out a backoff the status bar says which host and for how long, instead of looking frozen.

One codebase, two builds

The interface is drawn by the program itself with egui, so there is no GTK, Qt or web view anywhere and it looks identical on every platform. Pick which build you want at compile time:

The download below is the graphical build for Windows and the command line build for Linux. macOS builds from the same source with a plain cargo build --release.

Stopping things, and per proxy limits

Stop actually stops. Every job now hands back its task handle, and Stop cancels the token and aborts the task, including the hundreds of sub-tasks a proxy test or a group scan spawns. Measured: a running scan at 12 requests, Stop pressed at 13, still 13 fifteen seconds later.

Rate limits are counted per proxy, not globally. One proxy getting throttled used to slow everything down, which was the whole point of having a pool. Each request now pins a specific proxy before it is sent, and the token bucket is keyed on host + proxy, so forty proxies means forty independent quotas. Connection reuse is turned off while proxies are on, otherwise a pooled connection would quietly egress through a different proxy than the one that was billed.

Source

Browse the whole tree in the reader below, or take the archive above.

Open source browser