[0.1.2 Beta] Pesto: Lightweight VS Code ↔️ Roblox Studio Sync Tool

Hey Developers! :waving_hand:

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.

: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 .lua 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.

:hammer_and_wrench: How It Works

Pesto uses a lightweight local Python server to communicate with a custom Roblox Studio plugin.

  1. Export: Your game hierarchy is converted into a readable file structure on your computer.
  2. Edit: Use the power of VS Code (Copilot, Git, Extensions) to modify your game.
  3. Import: Push changes back to Roblox instantly with a single click.

:crystal_ball: Roadmap & Future Plans

I am actively working on making Pesto the go-to tool for Roblox power users:

  • VS Code Extension: Porting the Python backend to a native extension for a “zero-setup” experience.
  • In-Studio UI: A dedicated plugin widget to manage sync settings without leaving the viewport.
  • Auto-Sync: Automatically pull and push changes from roblox and your IDE so you can even use Team Create and other tools while the rest of your team uses their own tools.

:money_bag: Why paid?

Currently pesto is pay to access because I need some money for ad credits for my upcoming game. If the first goal of 15 plugin sales is hit I will make it free to use.

Of course the users who paid will get a better version, and a paid version will always be available. But there will then also be a free version released.

: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 Plugin: Plugin- Pesto

UPDATES:

Release 0.1.0 Beta
Release 0.1.1 Beta
Release 0.1.2 Beta

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

8 Likes

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

1 Like

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

2 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.
2 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)

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.

4 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.

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!

1 Like

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?