Files
workspace-detector/README.md
T
2025-09-23 22:03:01 -04:00

98 lines
3.0 KiB
Markdown

# workspace-detector
<img width="324" height="219" alt="image" src="https://github.com/user-attachments/assets/2dc775c7-bc2b-486c-b6d0-b482f182d472" />
A command-line tool for analyzing Roblox .rbxm(x) model files to identify workspaces and detect hidden places embedded within them.
## Overview
This tool works to detect Roblox workspaces within .rbxm(x) model files, which could potentially contain stolen/lost places. It runs on the [Lune](https://github.com/lune-org/lune) runtime environment.
## Project Structure
- `detector.luau`: Main entrypoint
- `lib/cli.luau`: CLI argument parsing and usage
- `lib/core.luau`: Core detection logic (workspace scanning, file analysis)
- `lib/fileproc.luau`: File and directory processing
- `tests/`: Test models for validation
- `containsworkspace/`: Models that should be detected as containing workspaces
- `doesntcontainworkspace/`: Models that should NOT be detected as containing workspaces
- `zlibCompressed/`: Models compressed with zlib
- `binaryFiles/`: Binary or extensionless test files
## Installation
### Prerequisites
[Install the Lune runtime using rokit](https://lune-org.github.io/docs/getting-started/1-installation/)
### Setup
Clone or download this repository and ensure all required libraries are installed:
```bash
git clone https://github.com/filoxen/workspace-detector.git
cd workspace-detector
rokit install
```
## Usage
### Basic Usage
```bash
lune run detector path/to/your/model.rbxm(x)
```
### Options
#### Directory scan (recursive):
```bash
lune run detector.lua --directory /path/to/your/directory/with/models
```
#### Output list of files containing workspaces:
```bash
lune run detector.lua --output /path/to/your/output/file.txt
```
#### Process non-extensioned files (i.e no filetype extension / differing extension from .rbxm)
```bash
lune run detector.lua --force-binary-read /path/to/your/model.variantfile
```
#### Print all instance names while scanning:
```bash
lune run detector.lua --print-instance-names /path/to/your/model.rbxm
```
#### Decompress zlib-compressed files before scanning:
```bash
lune run detector.lua --zlib-decompress /path/to/your/model.rbxm
```
## Limitations
- Requires valid .rbxm files (corrupted/invalid/different versioned files may cause errors)
## Contributing
Contributions are welcome. Please ensure new features include documentation.
## License
Copyright (C) 2025 Filoxen Labs
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.