Skip to main content
Get RbxGenie up and running with the daemon, plugin, and your first tool call.

Prerequisites

  • Node.js 18+ installed
  • Roblox Studio installed
  • A Roblox place open in Studio

Step 1: Install and Start the Daemon

The daemon is a Node.js server that manages communication between AI agents and the Roblox Studio plugin.
1

Clone the repository

git clone https://github.com/nnaridz/RbxGenie.git
cd RbxGenie
2

Install dependencies

npm install
3

Start the daemon in development mode

npm run dev
The daemon will start on http://127.0.0.1:7766.
Keep this terminal window open. The daemon must be running for RbxGenie to work.
You should see output indicating the server is listening on port 7766.

Step 2: Install the Plugin

The plugin connects Roblox Studio to the daemon.
Run this single command to bundle and install the plugin:
npm run bundle:install
This will:
  1. Bundle all Lua files into a single plugin file
  2. Copy it to %LOCALAPPDATA%\Roblox\Plugins\RbxGenie.lua
You must restart Roblox Studio if it was already open when you installed the plugin.

Step 3: Open Roblox Studio

1

Restart Roblox Studio

Close and reopen Roblox Studio if it was running during plugin installation.
2

Open the RbxGenie widget

You should see a RbxGenie button in the plugins toolbar. Click it to open the dock widget.
The status indicator will turn green once the plugin successfully connects to the daemon.
3

Verify connection

Check that:
  • The daemon is running in your terminal
  • The RbxGenie widget shows a green status indicator
  • No error messages appear in the Roblox Studio output window

Step 4: Make Your First Tool Call

Test the connection by calling a simple tool via the HTTP API.
curl http://127.0.0.1:7766/tool/get_place_info
You should receive a JSON response with your place information:
{
  "ok": true,
  "id": "abc-123",
  "result": {
    "placeId": 123456789,
    "gameId": 987654321,
    "placeName": "My Game",
    "placeVersion": 42,
    "creatorId": 111222333
  }
}

Try More Tools

Now that everything is working, try these common operations:
curl -X POST http://127.0.0.1:7766/tool/create_object \
  -H "Content-Type: application/json" \
  -d '{"path": "Workspace", "className": "Part"}'
Check your Workspace in Roblox Studio - a new Part should appear!
curl -X POST http://127.0.0.1:7766/tool/get_file_tree \
  -H "Content-Type: application/json" \
  -d '{"path": "Workspace", "depth": 2}'
Returns the instance hierarchy under Workspace.
curl -X POST http://127.0.0.1:7766/tool/execute_luau \
  -H "Content-Type: application/json" \
  -d '{"code": "print('Hello from RbxGenie!') return workspace:GetChildren()"}'
Runs code in Studio edit mode and captures the output.
curl -X POST http://127.0.0.1:7766/tool/set_property \
  -H "Content-Type: application/json" \
  -d '{"path": "Workspace.Baseplate", "property": "Transparency", "value": 0.5}'
Makes the Baseplate semi-transparent. Press Ctrl+Z in Studio to undo!

Test Undo Support

All operations are wrapped in ChangeHistoryService for full undo support:
  1. Make a change using any tool (e.g., create a part)
  2. Press Ctrl+Z in Roblox Studio
  3. The change will be undone
  4. Press Ctrl+Y to redo
Changes are grouped into logical operations, so a single undo will revert an entire tool call.

Next Steps

MCP Setup

Connect Claude Desktop to use RbxGenie with AI

Explore Tools

Browse all 46 available tools

Architecture

Learn how RbxGenie works under the hood

Examples

See practical examples of common workflows

Troubleshooting

  • Verify the daemon is running on port 7766
  • Check for errors in the daemon terminal
  • Ensure no firewall is blocking localhost connections
  • Try restarting both the daemon and Roblox Studio
Commands automatically timeout after 2 minutes. If you’re seeing timeouts:
  • Check the Roblox Studio output window for Lua errors
  • Ensure the plugin widget is open and visible
  • Verify the daemon terminal shows the command was received
  • Try a simpler command like get_place_info to test connectivity
  • Verify the plugin file was copied to the correct Plugins directory
  • Restart Roblox Studio completely (close all windows)
  • Check the Studio Output window for plugin load errors
  • Ensure the file is named with a .lua extension
Another process is using port 7766. Either:
  • Stop the other process
  • Modify src/server.ts to use a different port (also update the plugin’s HTTP endpoint)
If you encounter an issue not covered here, check the GitHub Issues or create a new one.

Build docs developers (and LLMs) love