mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-20 17:41:37 +00:00
64 lines
3.2 KiB
Markdown
64 lines
3.2 KiB
Markdown
# Prism 0.1
|
|
|
|
Prism is a standalone Roblox developer tool derived from Rojo. It retains Rojo project-file and sync-protocol compatibility while adding a trusted, local automation path for a connected Prism Studio plugin.
|
|
|
|
Prism 0.1 currently supports:
|
|
|
|
- `prism serve [PROJECT]`
|
|
- `prism exec SCRIPT.lua`
|
|
- `prism inspect TARGET`
|
|
- `prism plugin install`
|
|
- `prism plugin list`
|
|
- `prism --help` and `prism --version`
|
|
|
|
It does not currently provide selection, camera control, focus, screenshots, search, play/stop control, snapshots or diffs, preview/watch automation, profiling automation, or playtesting automation.
|
|
|
|
## Build and installation
|
|
|
|
Install Rust 1.88 or newer, initialize the repository submodules, and install the pinned tools with Rokit:
|
|
|
|
```text
|
|
git submodule update --init --recursive
|
|
rokit install
|
|
cargo build --locked
|
|
```
|
|
|
|
The primary development binary is `target/debug/prism` (`target\debug\prism.exe` on Windows). Build an optimized binary with `cargo build --release --locked`; it is written to `target/release/prism` or `target\release\prism.exe`.
|
|
|
|
Install the bundled Studio plugin after building:
|
|
|
|
```text
|
|
cargo run --bin prism -- plugin install
|
|
```
|
|
|
|
Prism writes `PrismManagedPlugin.rbxm` to Roblox Studio's local Plugins directory and prints the exact path. Use `prism plugin list` to inspect likely Prism and Rojo-like local plugin files. Marketplace-installed copies must be disabled separately through Studio if they conflict.
|
|
|
|
## Serving a project
|
|
|
|
Pass a Rojo-compatible project file or directory explicitly:
|
|
|
|
```text
|
|
prism serve default.project.json
|
|
```
|
|
|
|
With no path, Prism checks only the current directory. It prefers `default.project.json`; otherwise it uses the sole `*.project.json` file. It errors when no candidate exists or when several candidates exist, listing multiple candidates in deterministic order. It does not search parent or descendant directories.
|
|
|
|
## Trusted local automation
|
|
|
|
Start `prism serve`, open Roblox Studio with the Prism plugin installed, connect the plugin, and then invoke trusted local commands from another terminal:
|
|
|
|
```text
|
|
prism exec script.lua
|
|
prism inspect Workspace
|
|
prism inspect Workspace.Map --depth 2 --properties --json
|
|
```
|
|
|
|
`prism exec` runs the supplied Luau as trusted code inside the connected Studio edit session. It can mutate the open place. Run it only against a local server and only with scripts you have reviewed and trust. The serve and automation APIs are not a sandbox and should not be exposed to untrusted networks or users.
|
|
|
|
`prism inspect` reads a bounded typed view of a DataModel path through the connected plugin. The Studio plugin is required for both commands, and automation is available only in Studio edit mode.
|
|
|
|
## Compatibility and attribution
|
|
|
|
Prism keeps Rojo-compatible `.project.json` formats, the `/api/rojo` compatibility route, existing sync routes, exec job routes such as `/api/exec/jobs`, the packaged `Rojo` model root, and compatibility-sensitive Studio IDs. The Rust package remains named `rojo`, and its public library remains `librojo`; `prism` is the primary executable and `rojo` is retained as a compatibility executable.
|
|
|
|
Prism is derived from Rojo and retains its Mozilla Public License 2.0 attribution and licensing. See `LICENSE.txt` and the upstream history in `CHANGELOG.md`.
|