[TOC] ## Creating the Rojo Project To use Rojo to build a game, you'll need to create a new project file, which tells Rojo how to turn your files into a Roblox place. First, create a new folder to contain the files for your game and open up a new terminal inside of it, like cmd.exe or Bash. It's convenient to make the folder from the command line: ```sh mkdir my-new-project cd my-new-project ``` Inside the folder, initialize a new Rojo project: ```sh rojo init ``` Rojo will make a small project file in your directory, named `default.project.json`. It matches the "Baseplate" template from Roblox Studio, except that it'll take any files you put in a folder called `src` and put it into `ReplicatedStorage.Source`. Speaking of files, make sure to create a directory named `src` in this folder, or Rojo will be upset about missing files! ```sh mkdir src ``` Let's also add a Lua file, `hello.lua` to the `src` folder, so that we can make this project our own. ```sh echo 'return "Hello, Rojo!"' > src/hello.lua ``` ## Building Your Place Now that we have a project, one thing we can do is build a Roblox place file for our project. This is a great way to get started with a project quickly with no fuss. All we have to do is call `rojo build`: ```sh rojo build -o MyNewProject.rbxlx ``` If you open `MyNewProject.rbxlx` in Roblox Studio now, you should see a `Folder` named "Source" containing a `ModuleScript` under `ReplicatedStorage`. !!! info To generate a binary place file instead, use `rbxl`. Note that support for binary model/place files (`rbxm` and `rbxl`) is very limited in Rojo presently. ## Live-Syncing into Studio Building a place file is great for starting to work on a game, but for active iteration, you'll want something faster. In Roblox Studio, make sure the Rojo plugin is installed. If you need it, check out [the installation guide](../installation) to learn how to install it. To expose your project to the plugin, you'll need to start a new **live sync session** from the command line: ```sh rojo serve ``` You should see output like this in your terminal: ```sh $ rojo serve Rojo server listening on port 34872 ``` Switch into Roblox Studio and press the **Connect** button on the Rojo plugin toolbar. A dialog should appear: ![Rojo plugin connection dialog](../images/connection-dialog.png) {: class="feature-image" align="center" } If the port number doesn't match the output from the command line, change it, and then press **Connect**. If all went well, you should now be able to change files in the `src` directory and watch them sync into Roblox Studio in real time! ## Uploading Your Place Aimed at teams that want serious levels of automation, Rojo can upload places to Roblox.com automatically. You'll need an existing game on Roblox.com as well as the `.ROBLOSECURITY` cookie of an account that has write access to that game. !!! warning It's recommended that you set up a Roblox account dedicated to deploying your game instead of your personal account in case your security cookie is compromised. Generating and publishing your game is as simple as: ```sh rojo upload --asset_id [PLACE ID] --cookie "[SECURITY COOKIE]" ``` An example project is available on GitHub that deploys to Roblox.com from GitHub and Travis-CI automatically: [https://github.com/LPGhatguy/roads](https://github.com/LPGhatguy/roads)