Allow plugins to serialize and deserialize instances

As a Roblox developer, it is currently impossible to network instances for plugins like Rojo and Lync.

If Roblox is able to address this issue, it would improve my development experience because modelers would be able to save their changes to the Git repository.

For theft reasons, a new plugin permission will also need to be added.

Related functions:

  • StudioAssetService:SerializeInstances(…)
  • AssetService.DeserializeInstance(…)
3 Likes

Something of this nature is important for Rojo to be able to take Instances and pull them out of Studio automatically. One of the things our users request a lot is a concept called “two way sync”. One of the crucial parts of this feature would be the ability to pull Instances out of Studio and deliver them to Rojo’s server, which can save them locally.

Right now, this isn’t possible though. You can save a model file manually, which works but is manual. You can also mostly do this automatically, provided you have a list of properties and custom setters and getters for properties when necessary. We have that for Rojo and have to use it to compare properties anyway, so it’s in theory fine.

In practice though, there’s important parts of Roblox that aren’t scriptable. An obvious example is the mesh data of Unions. It’s obviously important for unions to have their mesh saves, but we can’t read it, so we can’t do that automatically from Rojo.

While this isn’t the only possible solution for Rojo, it’s the solution that would easily solve our problems; we could serialize models and send them directly to our server, bypassing the process entirely. I would support this solution over requests like “make UnionOperation.MeshId scriptable” which is a silly thing to ask for since it’s an implementation detail.

3 Likes

My lxm library is restricted by the fact that it can only insert scriptable properties of the context thats running it, also theres some older properties that have weird names (looks at siz, and Material’s weird encoding number).

Dekkonot also mentioned union data which cant be scripted either. This function would save a lot of hassle for us.