ChangeHistoryService:SetWaypoint to save script changes

As a Roblox developer, it is currently impossible to use ChangeHistoryService to save script changes

Right now whenever I make a change with a script I have to reopen studio because I cannot undo the change
This is pretty annoying especially since studio has been opening up ultra slowly in the recent 3 months


I don’t want ChangeHistoryService to manage script changes. Changes to the game world and changes to code should be kept separate because they’re different working environments. The expected behavior is for undo to undo some change made in your immediate environment.

Instead, there should be some separate system for managing history per script.


I don’t think Roblox should insert automatic waypoints into the ChangeHistoryService list, I think whatever they do now is perfect for that

But if we use SetWaypoint explicitly, I think it is desired (at least I desire) to insert a waypoint into the ChangeHistoryService list, so that I can easily undo/redo

What would you do instead though? A separate shortcut to undo in scripts? What I use it for is, not to make changes to just one script, but hundreds, so the solution would need to be easily scalable to more than one script

You should describe your use cases so engineers can find a properly fitting solution.

What…? Ctrl+Z undos changes to script source. You don’t need to restart Studio to do this.

If you mean you can’t undo changes made by scripts to the game, that gets undone when you stop the game and return from play solo.

1 Like

Changes made by scripts via command bar/plugin is the topic of discussion

Plugins can save changes with ChangeHistoryService. It’s up to the developer to implement this properly. Some plugins do like the derivatives of CmdUtl, while others don’t. If plugins you use are in the latter category, that’s a plugin problem and not a Roblox one. Tell the plugin creator to fix their plugin, or locally modify the plugin yourself.

The command bar can use ChangeHistoryService as well. Insert a part into Workspace and then run:

workspace.Part.Color =,0,0) game:GetService("ChangeHistoryService"):SetWaypoint("Blah2")

You will be able to undo/redo the color of the part.

ChangeHistoryService:SetWaypoint to save script changes

I know ChangeHistoryService:SetWaypoint exists and I know you can use it
But it doesn’t work for script changes

What are “script changes”? Scripts can’t run in either of these cases

changes to script source via plugin