rojo/PRISM.md
2026-07-20 23:13:17 +02:00

3.2 KiB

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:

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:

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:

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:

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.