Skip to content

0. Getting Started

LrgeAlvaro8882 edited this page Jan 11, 2026 · 7 revisions

Quick note

Make sure to have VSCode, a GitHub account and Git & GitHub Desktop installed before-hand! (GitHub Desktop isn't mandatory if you're familiar with Git but it makes life a lot easier, I won't be showing how to do it with Git commands).

Required VSCode extensions

These extensions MUST be installed for everything to work properly and so that you have a smooth development experience.

Recommended VSCode extensions

  • Todo+ (to be able to leave notes like to-do's through code comments and jump to them)
  • Better Comments (to make certain types of comments a different color)

Joining a project (not creating it)

Follow Joining A Project.

Creating the game's repository

First, extract the latest code of the repository to a folder with the same name as your future GitHub repository.

You can get the code for the repository through Code -> Download ZIP

1ZipDL

Here's how the final folder should look like:

2Extraction

Open GitHub Desktop (read the quick note at the top if you haven't) and create a new repository called the same as the folder you put Dysymmetrical in. Pick the parent folder when creating the repository so that it creates correctly.

3NewRepo

4RepoSettings

When the repo is created, click Publish repository and configure the repo however you want.

5PublishButton

6PublishSettings

GitHub Desktop won't be needed from now on but it's a good alternative to what I'll explain later.

Rojo setup

Download Rokit following their installation tutorial.

After that, install Wally by running rokit install, a package manager required for this engine to work.

When Wally is installed, restart VSCode and run wally init and wally install in VSCode's terminal.

7WallyInstall

Now that Wally is set up, create a selene.toml file in the root folder of the project.

Then, inside, simply write std = "roblox". This will tell Selene that you want Roblox linting and it will stop complaining about literally everything.

Also make sure to enable the new type solver for the language server's plugin through its config.

7.5LSP

To start Rojo, click the play icon besides the Rojo label at the bottom right.

8RojoServe

The first time it'll open the Rojo menu at the top. Install the Roblox Studio plugin through the button in the menu if you haven't yet.

9InstallPlugin

When installed, re-open the menu and click the label with a play icon to turn on the local server (also called "to serve"). Make sure that you use default.project.json.

10ProjectServe

This will make a window pop up at the bottom right saying that the Rojo server is listening (on).

11ServerListening

Rojo basics

I'd recommend enabling Auto Save to make it behave the same as Studio's editor.

12AutoSave

While the Rojo server is listening you can connect it to Studio by opening the plugin window and hitting Connect.

13Connect

If it says anything other than "Connected to session PROJECTNAMEHERE", read the Rojo docs.

Now everything is set up! Every time that you enter VSCode you'll have to do these steps.

GitHub basics

To push changes to GitHub so that they save in the version control and so that collaborators can receive them, open Source Control in VSCode, name your changes, commit them and sync them.

14Commit 15Push

If you haven't done this yet, copy your repository's link and add .git at the end.

For example: https://github.com/CodeBotsStudio/Dysymmetrical.git.

Then, take that link and execute git remote add origin [LINK] in the VSCode terminal, replacing [LINK] with the link.

To get changes that you don't have from GitHub, open the VSCode terminal and write git pull origin main.

Updating the engine

If you haven't done this yet, execute git remote add upstream https://github.com/CodeBotsStudio/Dysymmetrical.git.

After that, execute git pull upstream main --allow-unrelated-histories to make the repo have the same commit history as Dysymmetrical to be able to get new commits that add code to your existing code.

When an update releases, you can execute git pull upstream main to get the changes from the engine's repository.

Make sure to read the changelog in ServerScriptService/DYSYMMETRICAL_CHANGELOG to see if you have to take anything from the example place (e.g. UI).

If there's any merge conflicts, check out this page.

Clone this wiki locally