# The IDE

> Browse your place's explorer, edit scripts in a full code editor with live two-way sync to Studio, change properties and attributes, and export a Rojo project.

The **IDE** puts your whole place one tab away. Browse the Studio explorer, read exactly what RoGenie wrote, and edit Scripts, LocalScripts and ModuleScripts yourself in a full code editor, in live two-way sync with Studio.

Open it with the **IDE** button in the top bar, or **Open script IDE** in the Studio menu. Studio must be [linked](https://rogenie.ai/docs/connect-studio).

## The explorer

- Shows your place's services and instances, like Studio's Explorer.
- **Search** the explorer and script contents from the search box. For big places, the explorer shows the first matches; narrow the search to reveal more.
- Very large places may load partially: the IDE says how many of the place's instances Studio sent.
- **Refresh** re-reads the explorer from Studio.

Select an instance and press `F2` to rename it, `Delete` to delete it, or `Shift+F10` for its actions. Deleting removes the instance and everything inside it from your place in Studio.

## Editing scripts

Choose a Script, LocalScript or ModuleScript to open it in the editor. Each script opens in its own tab.

- `Ctrl+S` saves the script straight to Studio.
- `Ctrl+P` quick-opens a script by name.
- Closing a tab with unsaved edits asks first.

### Live sync and conflicts

The IDE stays in sync with Studio both ways:

- When a script changes in Studio (because you or RoGenie edited it), the open tab updates, or tells you it changed so you can decide.
- If you try to save a script that changed in Studio since you opened it, the IDE asks before it overwrites the Studio version, and can show you both versions.
- When a script changed in Studio while you were editing it, the tab shows **Changed in Studio** with **Compare** and **Load Studio's version**. Loading Studio's version replaces your unsaved edits, so the IDE asks first.
- Clicking the open script in the explorer again reloads it from Studio; with unsaved edits, the IDE asks first (**Discard and reload**).

> **Note**
> If the IDE says a script was loaded as a **truncated** copy, saving is turned off for it so it cannot be cut short. Refresh the IDE (and restart Studio if the plugin is old) to load the full script.

## Properties and attributes

Select any other instance to see its **properties** and **attributes**. Changes save straight back to Studio.

- Attribute names use letters, numbers and underscores. Names starting with `RBX` are reserved by Roblox.
- Boolean attributes take `true` or `false`.
- Deleting an attribute means scripts that read it get `nil`.

## Creating instances

Create an instance by giving it a name with an extension:

| Name ends in | Creates |
|---|---|
| `.server.lua` | a Script |
| `.client.lua` | a LocalScript |
| `.lua` | a ModuleScript |
| anything else | a Folder |

## Rojo export

The IDE can export your place for [Rojo](https://rojo.space/) and external editors:

- `default.project.json`, the Rojo project file,
- `sourcemap.json` (`Ctrl+Shift+P` opens it),
- a full **Rojo project archive** (`.tar`) with every script as a file.

If a script was too large to include in full, the IDE warns that the archive truncated it.

This is a one-way export: RoGenie doesn't import Rojo projects or sync with `rojo serve` or a folder on disk. RoGenie and the IDE work with Studio itself.

## Compatibility mode

With an older RoGenie plugin, the IDE loads scripts in **compatibility mode**: you can read and edit scripts, but properties and attributes are not available and saving takes a slower path that cannot detect Studio-side changes. Restart Studio so the plugin updates itself, then reload the IDE.

## Shortcuts

See [Keyboard shortcuts](https://rogenie.ai/docs/keyboard-shortcuts#ide).
