[2.7.2] Pesto: VS Code ↔️ Roblox Studio Sync Tool

Hey Developers! :waving_hand:

pesto_professional_2048 pesto_heavy_2048 pesto_lite_2048

I’m excited to introduce Pesto, a new open-source tool designed to seamlessly bridge the gap between Roblox Studio and Visual Studio Code. (AND EVERY OTHER IDE)

If you have ever felt that existing synchronization tools were too heavy, difficult to configure, or didn’t handle Instance Properties and Attributes the way you needed, Pesto was built for you. It is a robust Rojo alternative focused on simplicity and data fidelity.

:television: :film_frames: Showcase

Normal Export

In this preview I do the following:

  • Export my roblox project to VSC.
  • Add a part.
  • Rename the part .
  • And then Export to VSC again.

Normal Import

In this preview I do the following:

  • Rename a part in VSC.
  • Import the change back into Roblox.

Smart Sync

In this preview I do the following:

  • Rename a part in VSC.
  • Change a script inside that part in VSC.
  • View the changes being synced to roblox automatically.
  • Change the script again.
  • View the changes again.

Pesto Extension Explorer

:rocket: Why Choose Pesto?

While other tools focus primarily on scripts, Pesto aims for complete Instance synchronization.

  • :counterclockwise_arrows_button: True Bi-Directional Sync: Work where you are most comfortable. Edit scripts in VS Code and push to Roblox, or change properties in Studio and pull them back to your local file system.
  • :memo: Full Property Serialization: Pesto goes beyond just .luau files. It synchronizes Properties, Attributes, and Tags for every Instance. (Supports complex types like Vector3, CFrame, Color3, and more!)
  • :high_voltage: Smart Diffing: Pesto intelligently checks for changes before updating, ensuring your workflow remains fast and your console spam-free.

:down_arrow: How to install

Install Pesto Professional [$9.99]
  1. Download the plugin.
    You can buy the plugin here.
  2. Download the extension https://marketplace.visualstudio.com/items?itemName=jianbe-03.pesto-roblox-project-explorer OR download the .exe file directly here
  3. Create a new folder on your PC.
  4. Open this folder in VSC.
  5. Start the Pesto Server by clicking the button on the bottom right in VSC
    (If you downloaded the .exe file directly, please view the README.md included in the repository)
  6. In Roblox Studio press Export.
  7. Now you can start Auto Sync or use any other Pesto features included in your purchase.
Install Pesto Heavy [$4.99]
  1. Download the plugin.
    You can buy the plugin here.
  2. Download the extension https://marketplace.visualstudio.com/items?itemName=jianbe-03.pesto-roblox-project-explorer OR download the .exe file directly here
  3. Create a new folder on your PC.
  4. Open this folder in VSC.
  5. Start the Pesto Server by clicking the button on the bottom right in VSC
    (If you downloaded the .exe file directly, please view the README.md included in the repository)
  6. In Roblox Studio press Export.
  7. Now you can start Auto Sync or use any other Pesto features included in your purchase.
Install Pesto Lite [Free]
  1. Download the plugin.
    You can download the plugin here.
  2. Download the extension https://marketplace.visualstudio.com/items?itemName=jianbe-03.pesto-roblox-project-explorer OR download the .exe file directly here
  3. Create a new folder on your PC.
  4. Open this folder in VSC.
  5. Start the Pesto Server by clicking the button on the bottom right in VSC
    (If you downloaded the .exe file directly, please view the README.md included in the repository)
  6. In Roblox Studio press Export.
  7. Now you can start Auto Sync or use any other Pesto features included in your purchase.

:hammer_and_wrench: How It Works

Pesto uses a local Python server to communicate with a custom Roblox Studio plugin.
Pesto runs completely locally.

Pesto also uses helpers developed in Go for super high speeds during Import and Export!

You can read more about the speeds here!

:money_bag: What features?

Current

Currently there are THREE versions of Pesto available.
These versions include the following:

Functions Pesto Lite (free) Pesto Heavy ($4.99) Pesto Professional ($9.99)
Normal Export :white_check_mark: :white_check_mark: :white_check_mark:
Normal Import :white_check_mark: :white_check_mark: :white_check_mark:
Source Map Generation :white_check_mark: :white_check_mark: :white_check_mark:
Smart Export :cross_mark: :white_check_mark: :white_check_mark:
Smart Import :cross_mark: :white_check_mark: :white_check_mark:
Auto Sync :cross_mark: :white_check_mark: :white_check_mark:
Commands To Create Instances :cross_mark: :white_check_mark: :white_check_mark:
AI Agent Support :cross_mark: :white_check_mark: :white_check_mark:
Pesto Terminal :cross_mark: :cross_mark: :white_check_mark:
Pesto Settings :cross_mark: :cross_mark: :white_check_mark:
E2E Testing :cross_mark: :cross_mark: :white_check_mark:
Console Streaming :cross_mark: :cross_mark: :white_check_mark:

:handshake: Feedback

I built Pesto to solve specific pain points in my own development workflow, and I hope it helps you too.

I am looking for feedback! If you find bugs or have feature requests, please open an issue or submit a Pull Request.

:link: Check out the Repository: Github - Pesto
:link: Check out the Pesto Professional: Pesto Professional
:link: Check out the Pesto Heavy: Pesto Heavy
:link: Check out Pesto lite: Pesto Lite

UPDATES:


Pre-Release Updates
Release 0.2.0
Release 0.2.1
Release 0.2.2
Release 0.2.3
Release 0.2.4 Speed Update

[Release 0.2.4] :herb: Pesto

:waving_hand: Huge update!

I just released version 0.2.4 — this release introduces multiple helpers programmed in GO this increases the speed of Pesto by A LOT!

:up_arrow: Additions & Changes

  • Pesto Helper is a binary that has been programmed in GO.
  • Special Characters like ü should now work on Windows.

:fast_forward_button: :rocket: Speed Increase

Here you can see the increase in Items per second with the new update.

Function Old Speeds New Speeds Increase
Export ≈ 433/s ≈ 31.900/s ≈73x Faster
Import ≈ 45/s ≈ 10.000/s ≈220x Faster

:atom: Future Updates

  • Better Tutorial
  • Pesto Lite (free version of Pesto)
  • More Showcase video’s
  • SourceMap generation option.
  • More Settings

:vertical_traffic_light: Versioning

Release 0.2.4 is tagged on GitHub.

:white_question_mark: Questions

  • If you have any questions please feel free to reach out in the replies.
  • If you find any bugs, please report them to me as soon as possible via private messages. I will try and personally help and debug your issue.
Release 0.2.5 Settings Update

Release 1.0.0 First Release

Patch 1.0.1 Fix Fatal Error
Patch 1.0.2 Plugin-Type Headers [Latest]
Release 1.1.0 Source Map Generation
Patch 1.1.1 Plugin-Type Handshake

Release 2.0.0 Speed update
Patch 2.0.1 Fatal Windows Error Indetified Working On A Fix
Patch 2.0.2 First Fix Attempt
Patch 2.0.3 First Issue Identified
Patch 2.0.4 First Issue Fix
Patch 2.0.5 Second Issue Identified And Fixed

This version was not publicly announced due to uncertainty of working.

Patch 2.0.6 Restore All Functionality, The Issue Is Now Fixed

Release 2.1.0 Create Command, .rbxjson Support And Bug Fixes

Release 2.2.0 Test Command And Console Streaming
Patch 2.2.1 Plugin Type Check

Release 2.3.0 Pesto Professional

Release 2.4.0 Sourcemap Generation Helper And Smart Feature Update.

Release 2.5.0 Create Command All Classes Support

Release 2.6.0 Rename, Move, Agent Command, Extension Update

Release 2.7.0 Fix Issues, Increase Speeds, Add Attributes And Tags Syncing
Patch 2.7.1 Small issue/bug fix
Patch 2.7.2 Issue/bug fix

Keywords: Roblox Studio, VS Code, Script Sync, Roblox Plugin, Rojo Alternative, Argon Alternative, Roblox Development,

54 Likes

Ooh this looks cool! Are there any standout features that differentiate your tool from Rojo for example?

2 Likes

Yes! Rojo focuses mostly on just scripting, this plugin has EVERYTHING, all instances, all classes, and there is a Visual Studio Code plugin available right now that also makes everything LOOK like the roblox editor. Making it easier to switch and making it able to use things like CoPilot in VSC to code your project.

Im updating it daily so if you buy and download it id recommend running pesto Update each time.

I previously used the instances name’s to track if they where updated, but im now moving to a PestoID attribute system, this way you should be able to move, rename etc with instances and it should update accordingly.

If you need any help installing Pesto im happy to help and explain.

Heres a screenshot showing how it looks in Visual Studio Code

9 Likes

[Release 0.1.0] :herb: Pesto

:waving_hand: Hey devs!

I just released version 0.1.0, this version changes the tracking of instances from names to PestoID.
This way you can rename, move, and edit properties of instances without them being duplicated or other things happening. Here is a more ordered list of additions and updates:

:up_arrow: Additions & Changes

  • pesto Update command to easily pull and update pesto.
  • pesto Uninstall command to easily uninstall and remove pesto from your system.
  • Pesto now tracks instances with PestoID and PestoTracked tags and attributes.
    This means that instances can now be renamed, moved, properties changed and even deleted without Pesto losing track of wich instance this was.
  • Roblox Project Explorer extension for Visual Studio Code now allows you to drag files wich automatically updates their parent.
  • And much much more.

:atom_symbol: Upcoming Changes

  • Live Sync (Updating relevant instances automatically)
  • Smarter diffing (Only sending data for actual changes, not just all data everytime)
  • Progress bar (To display how long it will take before its done)
  • Extra filter for Pesto logs (To be able to see how long it will take before importing or exporting is done)

:white_question_mark: Questions

  • If you have any questions please feel free to reach out in the replies.
4 Likes

Extremely nice, if only my country supported purchasing plugins :joy:

1 Like

Thx, I would’ve made it cost like 50-100 robux but roblox only allows selling plugins with money :smiling_face_with_tear:

[Release 0.1.1] :herb: Pesto

:waving_hand: Hey devs!

I just released version 0.1.1, this is a smaller update implementing some of the upcoming promised features:

:up_arrow: Additions & Changes

  • Progress Bar Now whenever pressing import it shows you what the server is doing in the terminal, before you saw nothing and had to wait and hope it worked. Now it shows exactly whats happening.
  • Version checking, the plugin now verifies if its compatible with the installed version of Pesto, this is to make sure that whenever I update one or both they still work together.

:pencil: Currently In Progress

  • Right now im working on implementing the filter for your roblox Output, this now gets very cluttered very fast.

:atom_symbol: Upcoming Changes

  • Live Sync (Updating relevant instances automatically)
  • Smarter diffing (Only sending data for actual changes, not just all data everytime)
  • Extra filter for Pesto logs (To be able to see how long it will take before importing or exporting is done)

:vertical_traffic_light: Versioning

I also added the first Version tag to the github Repo (I forgot to do this before :smiling_face_with_tear: )

:white_question_mark: Questions

  • If you have any questions please feel free to reach out in the replies.
1 Like

Linux??? ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

1 Like

I have not yet tested on Linux but it works on MacOs (wich is also unix based) so it should technically work on Linux.

Just make a gamepass and prompt the user to buy it before they can use or connect with the plugin. Can also make tiers and free trial with this. (Pls free)

1 Like

Thats not how plugins work. I cant have them paid via gamepass. Only via Creator Store.

1 Like

Why not? Just make the plugin free on Creator Store and make an if statement like this:

local MarketplaceService = game:GetService("MarketplaceService")
local hasPurchased = MarketplaceService:UserOwnsGamePassAsync(player.UserId, 12345678)

if not hasPurchased then  
	MarketplaceService:PromptGamePassPurchase(player, 12345678)
end

Its a plugin not a game, thats why it cant use gamepasses. And making it free will make its source code available.

5 Likes

[Release 0.1.2] :herb: Pesto

:waving_hand: Hey devs!

I just released version 0.1.2!! This version introduces Smart Importing!

:up_arrow: Additions & Changes

  • Smart Import Previously the Import function could take 1-5 minutes based on the size of a project. Now with Smart Import it will take around 20 seconds for the entire process and all changes to import to roblox.
  • Every print made my Pesto will now be prefixed with [Pesto] there currently is no better way to filter print statements in the terminal.

:pencil: Currently In Progress

  • Smart Export is currently being looked into.

:atom_symbol: Upcoming Changes

  • Live Sync (Updating relevant instances automatically)
  • Settings Menu

:vertical_traffic_light: Versioning

Version 0.1.2 is also tagged in Github now.

:white_question_mark: Questions

  • If you have any questions please feel free to reach out in the replies.
1 Like

Looks great! Could you say make documentation on how to install this for beginnerss? You can use something like Scribe to do it automatically whilst you install it.

1 Like

The README.md file in the github repository explains how to install and use it. Along with additional information. If you have any other questions about how to install ill be here to answer them!

2 Likes

this is actually really useful, since i’ve had issues with rojo, and this fixes all of it. bookmarking this for sure.

1 Like

스크린샷 2025-12-15 182520
i got the error shown in the picture when I export. I think this is because of the DataModel, which cannot be encoded by the JSON.

1 Like

Would you prefer i try to add this to syncing aswell? or would you prefer i add this as an exception? (AKA skipping this instance during syncing)

Can you share some more of the logs?

1 Like

[Release 0.1.3] :herb: Pesto

:waving_hand: Hey devs!

I just released version 0.1.3!! This version introduces Auto Sync!

:up_arrow: Additions & Changes

  • Auto Sync You can now enable or disable Auto Sync this pushes and pulls all new changes automatically for you. This way you can even use things like Team Create and Pesto at the same time. Note: Team Create has not yet been tested.
  • Windows Installer has been updated to match the Linux/MacOs Installer
  • The Visual Studio Code Extension has also been updated to now correctly display Vector3 properties. In the future this will also include Editing these values, please wait for version 0.1.5 to release.

:pencil: Currently In Progress

  • Smart Export is currently being looked into.
  • Pesto Terminal is currently being worked on, to provide a better error logging and clearer output in the users terminal overall.
  • Vector3/Color3/CFrame/ETC... support in the Visual Studio Code Extension

:atom_symbol: Upcoming Changes

  • Settings Menu

:vertical_traffic_light: Versioning

Version 0.1.3 is also tagged in Github now.

:white_question_mark: Questions

  • If you have any questions please feel free to reach out in the replies.